{"version":3,"sources":["webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app-error.handler.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/assets/images/Calc1.png","webpack:///./src/app/assets/images/Calc2.png","webpack:///./src/app/assets/images/Calc3.png","webpack:///./src/app/assets/images/Calc4.png","webpack:///./src/app/assets/images/demo/banner1.png","webpack:///./src/app/assets/images/demo/banner2.png","webpack:///./src/app/assets/images/demo/banner3.png","webpack:///./src/app/assets/images/demo/banner4.png","webpack:///./src/app/assets/images/logo.png","webpack:///./src/app/assets/scripts/alertify.js","webpack:///./src/app/components/about/about.component.html","webpack:///./src/app/components/about/about.component.scss","webpack:///./src/app/components/about/about.component.ts","webpack:///./src/app/components/app.component.html","webpack:///./src/app/components/app.component.scss","webpack:///./src/app/components/app.component.ts","webpack:///./src/app/components/category-template/child-item/child-item.component.html","webpack:///./src/app/components/category-template/child-item/child-item.component.scss","webpack:///./src/app/components/category-template/child-item/child-item.component.ts","webpack:///./src/app/components/category-template/parent.component.html","webpack:///./src/app/components/category-template/parent.component.scss","webpack:///./src/app/components/category-template/parent.component.ts","webpack:///./src/app/components/category-template/tree-dynamic-example.html","webpack:///./src/app/components/category-template/tree-dynamic-example.scss","webpack:///./src/app/components/category-template/tree-dynamic-example.ts","webpack:///./src/app/components/controls/banner-demo.component.html","webpack:///./src/app/components/controls/banner-demo.component.ts","webpack:///./src/app/components/controls/notifications-viewer.component.html","webpack:///./src/app/components/controls/notifications-viewer.component.scss","webpack:///./src/app/components/controls/notifications-viewer.component.ts","webpack:///./src/app/components/controls/role-editor.component.html","webpack:///./src/app/components/controls/role-editor.component.scss","webpack:///./src/app/components/controls/role-editor.component.ts","webpack:///./src/app/components/controls/roles-management.component.html","webpack:///./src/app/components/controls/roles-management.component.scss","webpack:///./src/app/components/controls/roles-management.component.ts","webpack:///./src/app/components/controls/search-box.component.html","webpack:///./src/app/components/controls/search-box.component.scss","webpack:///./src/app/components/controls/search-box.component.ts","webpack:///./src/app/components/controls/settings-configuration.component.html","webpack:///./src/app/components/controls/settings-configuration.component.scss","webpack:///./src/app/components/controls/settings-configuration.component.ts","webpack:///./src/app/components/controls/statistics-demo.component.html","webpack:///./src/app/components/controls/statistics-demo.component.scss","webpack:///./src/app/components/controls/statistics-demo.component.ts","webpack:///./src/app/components/controls/syspro-cart-management.component.html","webpack:///./src/app/components/controls/syspro-cart-management.component.scss","webpack:///./src/app/components/controls/syspro-cart-management.component.ts","webpack:///./src/app/components/controls/syspro-customer-notes.component.html","webpack:///./src/app/components/controls/syspro-customer-notes.component.scss","webpack:///./src/app/components/controls/syspro-customer-notes.component.ts","webpack:///./src/app/components/controls/syspro-customer-preview.component.html","webpack:///./src/app/components/controls/syspro-customer-preview.component.scss","webpack:///./src/app/components/controls/syspro-customer-preview.component.ts","webpack:///./src/app/components/controls/syspro-customer-view.component.html","webpack:///./src/app/components/controls/syspro-customer-view.component.scss","webpack:///./src/app/components/controls/syspro-customer-view.component.ts","webpack:///./src/app/components/controls/syspro-customers-management.component.html","webpack:///./src/app/components/controls/syspro-customers-management.component.scss","webpack:///./src/app/components/controls/syspro-customers-management.component.ts","webpack:///./src/app/components/controls/syspro-customers-movements.component.html","webpack:///./src/app/components/controls/syspro-customers-movements.component.scss","webpack:///./src/app/components/controls/syspro-customers-movements.component.ts","webpack:///./src/app/components/controls/syspro-customers-payments.component.html","webpack:///./src/app/components/controls/syspro-customers-payments.component.scss","webpack:///./src/app/components/controls/syspro-customers-payments.component.ts","webpack:///./src/app/components/controls/syspro-inventory-list.component.html","webpack:///./src/app/components/controls/syspro-inventory-list.component.scss","webpack:///./src/app/components/controls/syspro-inventory-list.component.ts","webpack:///./src/app/components/controls/syspro-inventory-management.component.html","webpack:///./src/app/components/controls/syspro-inventory-management.component.scss","webpack:///./src/app/components/controls/syspro-inventory-management.component.ts","webpack:///./src/app/components/controls/syspro-inventory-nonstock.component.html","webpack:///./src/app/components/controls/syspro-inventory-nonstock.component.scss","webpack:///./src/app/components/controls/syspro-inventory-nonstock.component.ts","webpack:///./src/app/components/controls/syspro-inventory-preview.component.html","webpack:///./src/app/components/controls/syspro-inventory-preview.component.scss","webpack:///./src/app/components/controls/syspro-inventory-preview.component.ts","webpack:///./src/app/components/controls/syspro-invoice-view.component.html","webpack:///./src/app/components/controls/syspro-invoice-view.component.scss","webpack:///./src/app/components/controls/syspro-invoice-view.component.ts","webpack:///./src/app/components/controls/syspro-purchaseorder-management.component.html","webpack:///./src/app/components/controls/syspro-purchaseorder-management.component.scss","webpack:///./src/app/components/controls/syspro-purchaseorder-management.component.ts","webpack:///./src/app/components/controls/syspro-purchaseorder-view.component.html","webpack:///./src/app/components/controls/syspro-purchaseorder-view.component.scss","webpack:///./src/app/components/controls/syspro-purchaseorder-view.component.ts","webpack:///./src/app/components/controls/syspro-quote-management-web.component.html","webpack:///./src/app/components/controls/syspro-quote-management-web.component.scss","webpack:///./src/app/components/controls/syspro-quote-management-web.component.ts","webpack:///./src/app/components/controls/syspro-quote-management.component.html","webpack:///./src/app/components/controls/syspro-quote-management.component.scss","webpack:///./src/app/components/controls/syspro-quote-management.component.ts","webpack:///./src/app/components/controls/syspro-quote-view.component.html","webpack:///./src/app/components/controls/syspro-quote-view.component.scss","webpack:///./src/app/components/controls/syspro-quote-view.component.ts","webpack:///./src/app/components/controls/syspro-rep-viewer.component.html","webpack:///./src/app/components/controls/syspro-rep-viewer.component.scss","webpack:///./src/app/components/controls/syspro-rep-viewer.component.ts","webpack:///./src/app/components/controls/syspro-salesorder-management.component.html","webpack:///./src/app/components/controls/syspro-salesorder-management.component.scss","webpack:///./src/app/components/controls/syspro-salesorder-management.component.ts","webpack:///./src/app/components/controls/syspro-salesorder-view.component.html","webpack:///./src/app/components/controls/syspro-salesorder-view.component.scss","webpack:///./src/app/components/controls/syspro-salesorder-view.component.ts","webpack:///./src/app/components/controls/syspro-weborders-management.component.html","webpack:///./src/app/components/controls/syspro-weborders-management.component.scss","webpack:///./src/app/components/controls/syspro-weborders-management.component.ts","webpack:///./src/app/components/controls/todo-demo.component.html","webpack:///./src/app/components/controls/todo-demo.component.scss","webpack:///./src/app/components/controls/todo-demo.component.ts","webpack:///./src/app/components/controls/user-info.component.html","webpack:///./src/app/components/controls/user-info.component.scss","webpack:///./src/app/components/controls/user-info.component.ts","webpack:///./src/app/components/controls/user-preferences.component.html","webpack:///./src/app/components/controls/user-preferences.component.scss","webpack:///./src/app/components/controls/user-preferences.component.ts","webpack:///./src/app/components/controls/users-management.component.html","webpack:///./src/app/components/controls/users-management.component.scss","webpack:///./src/app/components/controls/users-management.component.ts","webpack:///./src/app/components/customer-portal/customer-portal.component.html","webpack:///./src/app/components/customer-portal/customer-portal.component.scss","webpack:///./src/app/components/customer-portal/customer-portal.component.ts","webpack:///./src/app/components/customer-portal/syspro-customers-view-portal.component.html","webpack:///./src/app/components/customer-portal/syspro-customers-view-portal.component.scss","webpack:///./src/app/components/customer-portal/syspro-customers-view-portal.component.ts","webpack:///./src/app/components/customers/bank-tools/bank-export.component.html","webpack:///./src/app/components/customers/bank-tools/bank-export.component.scss","webpack:///./src/app/components/customers/bank-tools/bank-export.component.ts","webpack:///./src/app/components/customers/bank-tools/bank-import-management.component.html","webpack:///./src/app/components/customers/bank-tools/bank-import-management.component.scss","webpack:///./src/app/components/customers/bank-tools/bank-import-management.component.ts","webpack:///./src/app/components/customers/bank-tools/bank-import-report.component.html","webpack:///./src/app/components/customers/bank-tools/bank-import-report.component.scss","webpack:///./src/app/components/customers/bank-tools/bank-import-report.component.ts","webpack:///./src/app/components/customers/bank-tools/bank-import.component.html","webpack:///./src/app/components/customers/bank-tools/bank-import.component.scss","webpack:///./src/app/components/customers/bank-tools/bank-import.component.ts","webpack:///./src/app/components/customers/core-customers/core-customer-admin.component.html","webpack:///./src/app/components/customers/core-customers/core-customer-admin.component.scss","webpack:///./src/app/components/customers/core-customers/core-customer-admin.component.ts","webpack:///./src/app/components/customers/core-customers/core-customer-management.component.html","webpack:///./src/app/components/customers/core-customers/core-customer-management.component.scss","webpack:///./src/app/components/customers/core-customers/core-customer-management.component.ts","webpack:///./src/app/components/customers/core-customers/core-customer-settings.component.html","webpack:///./src/app/components/customers/core-customers/core-customer-settings.component.scss","webpack:///./src/app/components/customers/core-customers/core-customer-settings.component.ts","webpack:///./src/app/components/customers/customers.component.html","webpack:///./src/app/components/customers/customers.component.scss","webpack:///./src/app/components/customers/customers.component.ts","webpack:///./src/app/components/customers/statements/customer-statements.component.html","webpack:///./src/app/components/customers/statements/customer-statements.component.scss","webpack:///./src/app/components/customers/statements/customer-statements.component.ts","webpack:///./src/app/components/customers/tool-repairs/customer-tool-repairs.component.html","webpack:///./src/app/components/customers/tool-repairs/customer-tool-repairs.component.scss","webpack:///./src/app/components/customers/tool-repairs/customer-tool-repairs.component.ts","webpack:///./src/app/components/documents/document-components/document-editcategories.component.html","webpack:///./src/app/components/documents/document-components/document-editcategories.component.scss","webpack:///./src/app/components/documents/document-components/document-editcategories.component.ts","webpack:///./src/app/components/documents/document-components/document-view.component.html","webpack:///./src/app/components/documents/document-components/document-view.component.scss","webpack:///./src/app/components/documents/document-components/document-view.component.ts","webpack:///./src/app/components/documents/document.component.html","webpack:///./src/app/components/documents/document.component.scss","webpack:///./src/app/components/documents/document.component.ts","webpack:///./src/app/components/home/home.component.html","webpack:///./src/app/components/home/home.component.scss","webpack:///./src/app/components/home/home.component.ts","webpack:///./src/app/components/login/login.component.html","webpack:///./src/app/components/login/login.component.scss","webpack:///./src/app/components/login/login.component.ts","webpack:///./src/app/components/not-found/not-found.component.html","webpack:///./src/app/components/not-found/not-found.component.scss","webpack:///./src/app/components/not-found/not-found.component.ts","webpack:///./src/app/components/orders/orders.component.html","webpack:///./src/app/components/orders/orders.component.scss","webpack:///./src/app/components/orders/orders.component.ts","webpack:///./src/app/components/pod/pod-components/pod-editbatch.component.html","webpack:///./src/app/components/pod/pod-components/pod-editbatch.component.scss","webpack:///./src/app/components/pod/pod-components/pod-editbatch.component.ts","webpack:///./src/app/components/pod/pod-components/pod-file-sync.component.html","webpack:///./src/app/components/pod/pod-components/pod-file-sync.component.scss","webpack:///./src/app/components/pod/pod-components/pod-file-sync.component.ts","webpack:///./src/app/components/pod/pod-components/pod-reconcile.component.html","webpack:///./src/app/components/pod/pod-components/pod-reconcile.component.scss","webpack:///./src/app/components/pod/pod-components/pod-reconcile.component.ts","webpack:///./src/app/components/pod/pod-components/pod-search-missing.component.html","webpack:///./src/app/components/pod/pod-components/pod-search-missing.component.scss","webpack:///./src/app/components/pod/pod-components/pod-search-missing.component.ts","webpack:///./src/app/components/pod/pod-components/pod-search.component.html","webpack:///./src/app/components/pod/pod-components/pod-search.component.scss","webpack:///./src/app/components/pod/pod-components/pod-search.component.ts","webpack:///./src/app/components/pod/pod-components/pod-sync.component.html","webpack:///./src/app/components/pod/pod-components/pod-sync.component.scss","webpack:///./src/app/components/pod/pod-components/pod-sync.component.ts","webpack:///./src/app/components/pod/pod-components/pod-view.component.html","webpack:///./src/app/components/pod/pod-components/pod-view.component.scss","webpack:///./src/app/components/pod/pod-components/pod-view.component.ts","webpack:///./src/app/components/pod/pod.component.html","webpack:///./src/app/components/pod/pod.component.scss","webpack:///./src/app/components/pod/pod.component.ts","webpack:///./src/app/components/products/products-calculator.component.html","webpack:///./src/app/components/products/products-calculator.component.scss","webpack:///./src/app/components/products/products-calculator.component.ts","webpack:///./src/app/components/products/products-catalogue.component.html","webpack:///./src/app/components/products/products-catalogue.component.scss","webpack:///./src/app/components/products/products-catalogue.component.ts","webpack:///./src/app/components/products/products-category-catalogue.component.html","webpack:///./src/app/components/products/products-category-catalogue.component.scss","webpack:///./src/app/components/products/products-category-catalogue.component.ts","webpack:///./src/app/components/products/products-edit-metatags.component.html","webpack:///./src/app/components/products/products-edit-metatags.component.scss","webpack:///./src/app/components/products/products-edit-metatags.component.ts","webpack:///./src/app/components/products/products-editcategories.component.html","webpack:///./src/app/components/products/products-editcategories.component.scss","webpack:///./src/app/components/products/products-editcategories.component.ts","webpack:///./src/app/components/products/products-manage-datasheets.component.html","webpack:///./src/app/components/products/products-manage-datasheets.component.scss","webpack:///./src/app/components/products/products-manage-datasheets.component.ts","webpack:///./src/app/components/products/products-manage-images.component.html","webpack:///./src/app/components/products/products-manage-images.component.scss","webpack:///./src/app/components/products/products-manage-images.component.ts","webpack:///./src/app/components/products/products-missing-images.component.html","webpack:///./src/app/components/products/products-missing-images.component.scss","webpack:///./src/app/components/products/products-missing-images.component.ts","webpack:///./src/app/components/products/products-new.component.html","webpack:///./src/app/components/products/products-new.component.scss","webpack:///./src/app/components/products/products-new.component.ts","webpack:///./src/app/components/products/products.adverts.component.html","webpack:///./src/app/components/products/products.adverts.component.scss","webpack:///./src/app/components/products/products.adverts.component.ts","webpack:///./src/app/components/products/products.brands.component.html","webpack:///./src/app/components/products/products.brands.component.scss","webpack:///./src/app/components/products/products.brands.component.ts","webpack:///./src/app/components/products/products.clearance.component.html","webpack:///./src/app/components/products/products.clearance.component.scss","webpack:///./src/app/components/products/products.clearance.component.ts","webpack:///./src/app/components/products/products.component.html","webpack:///./src/app/components/products/products.component.scss","webpack:///./src/app/components/products/products.component.ts","webpack:///./src/app/components/products/products.newvideos.component.html","webpack:///./src/app/components/products/products.newvideos.component.scss","webpack:///./src/app/components/products/products.newvideos.component.ts","webpack:///./src/app/components/products/products.stockcodes.component.html","webpack:///./src/app/components/products/products.stockcodes.component.scss","webpack:///./src/app/components/products/products.stockcodes.component.ts","webpack:///./src/app/components/products/products.videos.component.html","webpack:///./src/app/components/products/products.videos.component.scss","webpack:///./src/app/components/products/products.videos.component.ts","webpack:///./src/app/components/purchaseorders/purchaseorders.component.html","webpack:///./src/app/components/purchaseorders/purchaseorders.component.scss","webpack:///./src/app/components/purchaseorders/purchaseorders.component.ts","webpack:///./src/app/components/quotes/copy-quote/customers-cart.component.html","webpack:///./src/app/components/quotes/copy-quote/customers-cart.component.scss","webpack:///./src/app/components/quotes/copy-quote/customers-cart.component.ts","webpack:///./src/app/components/quotes/copy-quote/customers-search.component.html","webpack:///./src/app/components/quotes/copy-quote/customers-search.component.scss","webpack:///./src/app/components/quotes/copy-quote/customers-search.component.ts","webpack:///./src/app/components/quotes/copy-quote/customers-view.component.html","webpack:///./src/app/components/quotes/copy-quote/customers-view.component.scss","webpack:///./src/app/components/quotes/copy-quote/customers-view.component.ts","webpack:///./src/app/components/quotes/quotes.component.html","webpack:///./src/app/components/quotes/quotes.component.scss","webpack:///./src/app/components/quotes/quotes.component.ts","webpack:///./src/app/components/repairs/repairs.component.html","webpack:///./src/app/components/repairs/repairs.component.scss","webpack:///./src/app/components/repairs/repairs.component.ts","webpack:///./src/app/components/repairs/tool-repairs/tool-repairs-dashboard.component.html","webpack:///./src/app/components/repairs/tool-repairs/tool-repairs-dashboard.component.scss","webpack:///./src/app/components/repairs/tool-repairs/tool-repairs-dashboard.component.ts","webpack:///./src/app/components/repairs/tool-repairs/tool-repairs-report.component.html","webpack:///./src/app/components/repairs/tool-repairs/tool-repairs-report.component.scss","webpack:///./src/app/components/repairs/tool-repairs/tool-repairs-report.component.ts","webpack:///./src/app/components/reports/report-components/reports-credit-notes-sales-component.html","webpack:///./src/app/components/reports/report-components/reports-credit-notes-sales-component.scss","webpack:///./src/app/components/reports/report-components/reports-credit-notes-sales-component.ts","webpack:///./src/app/components/reports/report-components/reports-creditors-component.html","webpack:///./src/app/components/reports/report-components/reports-creditors-component.scss","webpack:///./src/app/components/reports/report-components/reports-creditors-component.ts","webpack:///./src/app/components/reports/report-components/reports-debtors-release-component.html","webpack:///./src/app/components/reports/report-components/reports-debtors-release-component.scss","webpack:///./src/app/components/reports/report-components/reports-debtors-release-component.ts","webpack:///./src/app/components/reports/report-components/reports-inventory-adjustments.component.html","webpack:///./src/app/components/reports/report-components/reports-inventory-adjustments.component.scss","webpack:///./src/app/components/reports/report-components/reports-inventory-adjustments.component.ts","webpack:///./src/app/components/reports/report-components/reports-inventory-movements.component.html","webpack:///./src/app/components/reports/report-components/reports-inventory-movements.component.scss","webpack:///./src/app/components/reports/report-components/reports-inventory-movements.component.ts","webpack:///./src/app/components/reports/report-components/reports-invoice-reprint-component.html","webpack:///./src/app/components/reports/report-components/reports-invoice-reprint-component.scss","webpack:///./src/app/components/reports/report-components/reports-invoice-reprint-component.ts","webpack:///./src/app/components/reports/report-components/reports-invoice-status-component.html","webpack:///./src/app/components/reports/report-components/reports-invoice-status-component.scss","webpack:///./src/app/components/reports/report-components/reports-invoice-status-component.ts","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-collections.component.html","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-collections.component.scss","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-collections.component.ts","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-control.component.html","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-control.component.scss","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-control.component.ts","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-delivery.component.html","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-delivery.component.scss","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-delivery.component.ts","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-purge-component.html","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-purge-component.scss","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking-purge-component.ts","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking.component.html","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking.component.scss","webpack:///./src/app/components/reports/report-components/reports-invoice-tracking.component.ts","webpack:///./src/app/components/reports/report-components/reports-product-catalogue-usage.component.html","webpack:///./src/app/components/reports/report-components/reports-product-catalogue-usage.component.scss","webpack:///./src/app/components/reports/report-components/reports-product-catalogue-usage.component.ts","webpack:///./src/app/components/reports/report-components/reports-productivity-component.html","webpack:///./src/app/components/reports/report-components/reports-productivity-component.scss","webpack:///./src/app/components/reports/report-components/reports-productivity-component.ts","webpack:///./src/app/components/reports/report-components/reports-quote-sales.component.html","webpack:///./src/app/components/reports/report-components/reports-quote-sales.component.scss","webpack:///./src/app/components/reports/report-components/reports-quote-sales.component.ts","webpack:///./src/app/components/reports/report-components/reports-sales-component.html","webpack:///./src/app/components/reports/report-components/reports-sales-component.scss","webpack:///./src/app/components/reports/report-components/reports-sales-component.ts","webpack:///./src/app/components/reports/reports.component.html","webpack:///./src/app/components/reports/reports.component.scss","webpack:///./src/app/components/reports/reports.component.ts","webpack:///./src/app/components/salesorders/salesorders.component.html","webpack:///./src/app/components/salesorders/salesorders.component.scss","webpack:///./src/app/components/salesorders/salesorders.component.ts","webpack:///./src/app/components/settings/admin-components/settings-info-docs.component.html","webpack:///./src/app/components/settings/admin-components/settings-info-docs.component.scss","webpack:///./src/app/components/settings/admin-components/settings-info-docs.component.ts","webpack:///./src/app/components/settings/admin-components/settings-info.component.html","webpack:///./src/app/components/settings/admin-components/settings-info.component.scss","webpack:///./src/app/components/settings/admin-components/settings-info.component.ts","webpack:///./src/app/components/settings/admin-components/settings.ITS-Users.component.html","webpack:///./src/app/components/settings/admin-components/settings.ITS-Users.component.scss","webpack:///./src/app/components/settings/admin-components/settings.ITS-Users.component.ts","webpack:///./src/app/components/settings/admin-components/settings.ITS.component.html","webpack:///./src/app/components/settings/admin-components/settings.ITS.component.scss","webpack:///./src/app/components/settings/admin-components/settings.ITS.component.ts","webpack:///./src/app/components/settings/admin-components/settings.branch.component.html","webpack:///./src/app/components/settings/admin-components/settings.branch.component.scss","webpack:///./src/app/components/settings/admin-components/settings.branch.component.ts","webpack:///./src/app/components/settings/admin-components/settings.printer.component.html","webpack:///./src/app/components/settings/admin-components/settings.printer.component.scss","webpack:///./src/app/components/settings/admin-components/settings.printer.component.ts","webpack:///./src/app/components/settings/admin-components/settings.services.component.html","webpack:///./src/app/components/settings/admin-components/settings.services.component.scss","webpack:///./src/app/components/settings/admin-components/settings.services.component.ts","webpack:///./src/app/components/settings/admin-components/whatsapp-inbox.component.html","webpack:///./src/app/components/settings/admin-components/whatsapp-inbox.component.scss","webpack:///./src/app/components/settings/admin-components/whatsapp-inbox.component.ts","webpack:///./src/app/components/settings/admin-components/whatsapp-sales-inbox.component.html","webpack:///./src/app/components/settings/admin-components/whatsapp-sales-inbox.component.scss","webpack:///./src/app/components/settings/admin-components/whatsapp-sales-inbox.component.ts","webpack:///./src/app/components/settings/settings.component.html","webpack:///./src/app/components/settings/settings.component.scss","webpack:///./src/app/components/settings/settings.component.ts","webpack:///./src/app/components/templates/address.component.html","webpack:///./src/app/components/templates/address.component.scss","webpack:///./src/app/components/templates/address.component.ts","webpack:///./src/app/components/tracking/fingertprint-components/tracking-fingerprint.component.html","webpack:///./src/app/components/tracking/fingertprint-components/tracking-fingerprint.component.scss","webpack:///./src/app/components/tracking/fingertprint-components/tracking-fingerprint.component.ts","webpack:///./src/app/components/tracking/tracking-components/tracking-areas.component.html","webpack:///./src/app/components/tracking/tracking-components/tracking-areas.component.scss","webpack:///./src/app/components/tracking/tracking-components/tracking-areas.component.ts","webpack:///./src/app/components/tracking/tracking-components/tracking-cages.component.html","webpack:///./src/app/components/tracking/tracking-components/tracking-cages.component.scss","webpack:///./src/app/components/tracking/tracking-components/tracking-cages.component.ts","webpack:///./src/app/components/tracking/tracking-components/tracking-drivers-report-component.html","webpack:///./src/app/components/tracking/tracking-components/tracking-drivers-report-component.scss","webpack:///./src/app/components/tracking/tracking-components/tracking-drivers-report-component.ts","webpack:///./src/app/components/tracking/tracking-components/tracking-drivers.component.html","webpack:///./src/app/components/tracking/tracking-components/tracking-drivers.component.scss","webpack:///./src/app/components/tracking/tracking-components/tracking-drivers.component.ts","webpack:///./src/app/components/tracking/tracking-components/tracking-invoice-status-component.html","webpack:///./src/app/components/tracking/tracking-components/tracking-invoice-status-component.scss","webpack:///./src/app/components/tracking/tracking-components/tracking-invoice-status-component.ts","webpack:///./src/app/components/tracking/tracking-components/tracking-print-labels.component.html","webpack:///./src/app/components/tracking/tracking-components/tracking-print-labels.component.scss","webpack:///./src/app/components/tracking/tracking-components/tracking-print-labels.component.ts","webpack:///./src/app/components/tracking/tracking-components/tracking-vehicles.component.html","webpack:///./src/app/components/tracking/tracking-components/tracking-vehicles.component.scss","webpack:///./src/app/components/tracking/tracking-components/tracking-vehicles.component.ts","webpack:///./src/app/components/tracking/tracking.component.html","webpack:///./src/app/components/tracking/tracking.component.scss","webpack:///./src/app/components/tracking/tracking.component.ts","webpack:///./src/app/components/web/components/reports-websales-component.html","webpack:///./src/app/components/web/components/reports-websales-component.scss","webpack:///./src/app/components/web/components/reports-websales-component.ts","webpack:///./src/app/components/web/web.component.html","webpack:///./src/app/components/web/web.component.scss","webpack:///./src/app/components/web/web.component.ts","webpack:///./src/app/directives/auto-focus.directive.ts","webpack:///./src/app/directives/bootstrap-datepicker.directive.ts","webpack:///./src/app/directives/bootstrap-select.directive.ts","webpack:///./src/app/directives/bootstrap-tab.directive.ts","webpack:///./src/app/directives/bootstrap-toggle.directive.ts","webpack:///./src/app/directives/equal-validator.directive.ts","webpack:///./src/app/directives/last-element.directive.ts","webpack:///./src/app/models/applications.model.ts","webpack:///./src/app/models/arcustomer-edit.model.ts","webpack:///./src/app/models/arcustomer.model.ts","webpack:///./src/app/models/arnarration.model.ts","webpack:///./src/app/models/bank-import.model.ts","webpack:///./src/app/models/barcode-reference.model.ts","webpack:///./src/app/models/branch.model.ts","webpack:///./src/app/models/brand.model.ts","webpack:///./src/app/models/cart-detail.model.ts","webpack:///./src/app/models/cart-header.model.ts","webpack:///./src/app/models/cms-additional-images.model.ts","webpack:///./src/app/models/cms-category.model.ts","webpack:///./src/app/models/cms-stockcode.model.ts","webpack:///./src/app/models/company-establishment.model.ts","webpack:///./src/app/models/core-audit.model.ts","webpack:///./src/app/models/core-customer-prices.model.ts","webpack:///./src/app/models/core-customer-rule.model.ts","webpack:///./src/app/models/core-customer.model.ts","webpack:///./src/app/models/customerOTPHeader.model.ts","webpack:///./src/app/models/customerOTPReference.model.ts","webpack:///./src/app/models/document-category.model.ts","webpack:///./src/app/models/document-management.model.ts","webpack:///./src/app/models/email-template.model.ts","webpack:///./src/app/models/email.model.ts","webpack:///./src/app/models/enums.ts","webpack:///./src/app/models/info-board-notes.model.ts","webpack:///./src/app/models/inventory-movements.model.ts","webpack:///./src/app/models/inventory-wh.model.ts","webpack:///./src/app/models/inventory.model.ts","webpack:///./src/app/models/invoice-header.model.ts","webpack:///./src/app/models/invoice-tracking-areas.model.ts","webpack:///./src/app/models/invoice-tracking-driver-cages.model.ts","webpack:///./src/app/models/invoice-tracking-driver.model.ts","webpack:///./src/app/models/invoice-tracking-drivers-log.model.ts","webpack:///./src/app/models/invoice-tracking-label-printing.model.ts","webpack:///./src/app/models/invoice-tracking-lookup.model.ts","webpack:///./src/app/models/invoice-tracking-parcels.model.ts","webpack:///./src/app/models/invoice-tracking-status.model.ts","webpack:///./src/app/models/invoice-tracking-vehicles.model.ts","webpack:///./src/app/models/job-card.model.ts","webpack:///./src/app/models/notification.model.ts","webpack:///./src/app/models/permission.model.ts","webpack:///./src/app/models/printers.model.ts","webpack:///./src/app/models/purchaseorder-extended.model.ts","webpack:///./src/app/models/purchaseorder-header.model.ts","webpack:///./src/app/models/purchaseorder-list.model.ts","webpack:///./src/app/models/quote-detail.model.ts","webpack:///./src/app/models/quote-header.model.ts","webpack:///./src/app/models/role.model.ts","webpack:///./src/app/models/salesorder-detail.model.ts","webpack:///./src/app/models/salesorder-header.model.ts","webpack:///./src/app/models/salesperson.model.ts","webpack:///./src/app/models/supplier.model.ts","webpack:///./src/app/models/syspro-eft-file-detail.model.ts","webpack:///./src/app/models/syspro-eft-file-header.model.ts","webpack:///./src/app/models/syspro-payment-detail.model.ts","webpack:///./src/app/models/syspro-user.model.ts","webpack:///./src/app/models/user-edit.model.ts","webpack:///./src/app/models/user-login.model.ts","webpack:///./src/app/models/user.model.ts","webpack:///./src/app/models/valuehelper.model.ts","webpack:///./src/app/models/video.model.ts","webpack:///./src/app/models/wapp-inbox.model.ts","webpack:///./src/app/models/warehouse-user.model.ts","webpack:///./src/app/models/web-order.model.ts","webpack:///./src/app/models/whatsapp.model.ts","webpack:///./src/app/pipes/group-by.pipe.ts","webpack:///./src/app/pipes/safe.pipe.ts","webpack:///./src/app/services/account-endpoint.service.ts","webpack:///./src/app/services/account.service.ts","webpack:///./src/app/services/alert.service.ts","webpack:///./src/app/services/animations.ts","webpack:///./src/app/services/app-title.service.ts","webpack:///./src/app/services/app-translation.service.ts","webpack:///./src/app/services/auth-guard.service.ts","webpack:///./src/app/services/auth.service.ts","webpack:///./src/app/services/calculations.service.ts","webpack:///./src/app/services/configuration.service.ts","webpack:///./src/app/services/db-Keys.ts","webpack:///./src/app/services/endpoint-factory.service.ts","webpack:///./src/app/services/external-api.service.ts","webpack:///./src/app/services/fowkes-online-endpoint.service.ts","webpack:///./src/app/services/fowkes-online.service.ts","webpack:///./src/app/services/jwt-helper.ts","webpack:///./src/app/services/local-store-manager.service.ts","webpack:///./src/app/services/notification-endpoint.service.ts","webpack:///./src/app/services/notification.service.ts","webpack:///./src/app/services/printer-endpoint.service.ts","webpack:///./src/app/services/printer.service.ts","webpack:///./src/app/services/report-endpoint.service.ts","webpack:///./src/app/services/report.service.ts","webpack:///./src/app/services/syspro-endpoint.service.ts","webpack:///./src/app/services/syspro.service.ts","webpack:///./src/app/services/theme-manager.ts","webpack:///./src/app/services/utilities.ts","webpack:///./src/app/services/validation.service.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts","webpack:///zlib (ignored)","webpack:///fs (ignored)","webpack:///http (ignored)","webpack:///https (ignored)","webpack:///url (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA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ACI,CAAC,4BAA4B;AAEpB;AACU;AACH;AACe;AACiB;AAEpB;AACK;AACA;AACa;AACE;AACM;AACf;AACE;AACN;AACY;AACU;AACH;AACU;AACrB;AACI;AACE;AAIG;AACU;AACJ;AACE;AACN;AACC;AACO;AACN;AACW;AAE7C;AACe;AACS;AACxB;AACT;AACe;AACT;AACW;AAEG;AACJ;AACY;AACU;AACP;AACb;AACF;AACc;AACA;AACA;AACV;AAC+B;AACb;AACJ;AACA;AACe;AACF;AACO;AACK;AAC3B;AACa;AACQ;AACrB;AACyB;AACI;AACV;AACQ;AACR;AACZ;AACQ;AACN;AACV;AACY;AACO;AACC;AACd;AACM;AACE;AACN;AACG;AAC5B;AAC2B;AACY;AACM;AACxB;AACY;AACnC;AACA;AACyC;AACN;AACa;AACF;AACjB;AACmB;AACX;AACG;AACqB;AACR;AACH;AACe;AACE;AACM;AAC9B;AACe;AACF;AACI;AACpC;AACrB;AACmC;AACE;AACN;AACA;AACiB;AACJ;AACI;AACD;AAC9D;AACwB;AACS;AACL;AACM;AACA;AACS;AACnB;AACP;AAC6B;AACW;AACrC;AACc;AAEP;AA4OzF;IAAA;IACA,CAAC;IADY,SAAS;QAvOrB,8DAAQ,CAAC;YACR,OAAO,EAAE;gBACP,uEAAa;gBACb,4FAAuB;gBACvB,qEAAgB;gBAChB,0DAAW;gBACX,kEAAmB;gBACnB,oEAAe,CAAC,OAAO,CAAC;oBACtB,MAAM,EAAE;wBACN,OAAO,EAAE,oEAAe;wBACxB,QAAQ,EAAE,0FAAuB;qBAClC;iBACF,CAAC;gBACF,qEAAgB;gBAChB,iEAAc;gBACd,gEAAa;gBACb,qEAAc;gBACd,uEAAqB;gBACrB,gEAAc;gBACd,sEAAoB;gBACpB,iEAAe;gBACf,uEAAqB;gBACrB,+DAAa;gBACb,mEAAiB;gBACjB,gEAAc;gBACd,kEAAgB;gBAChB,qEAAmB;gBACnB,iEAAe;gBACf,kEAAgB;gBAChB,oEAAkB;gBAClB,mEAAiB;gBACjB,+DAAa;gBACb,gEAAc;gBACd,+DAAa;gBACb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AClE;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,uCAAuC,SAAS;;AAEhD;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,4BAA4B,SAAS;AACrC,4BAA4B,IAAI,8BAA8B,QAAQ;AACtE;AACA;AACA,4BAA4B,SAAS;AACrC,4BAA4B,IAAI,8BAA8B,QAAQ;AACtE;AACA;AACA,4BAA4B,SAAS;AACrC,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB,EAAE;AACjD,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,2FAA2F;AAC3G;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,uDAAuD,KAAK;AAC5D;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAsD,EAAE;AACnF;AACA,IAAI;;AAEJ;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,+CAA+C,sDAAsD,aAAa,EAAE;AACpH,+CAA+C,wDAAwD,aAAa,EAAE;AACtH;AACA;AACA,6CAA6C,oCAAoC,aAAa,EAAE;AAChG,4DAA4D,gEAAgE,aAAa,EAAE;AAC3I,uCAAuC,yCAAyC,aAAa,EAAE;AAC/F,uCAAuC,uCAAuC,aAAa,EAA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","file":"main.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","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 = \"./src/$$_lazy_route_resource lazy recursive\";","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Injectable, ErrorHandler } from '@angular/core';\r\nimport { AlertService, MessageSeverity } from './services/alert.service';\r\n\r\n\r\n@Injectable()\r\nexport class AppErrorHandler extends ErrorHandler {\r\n\r\n // private alertService: AlertService;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n\r\n handleError(error: any) {\r\n // if (this.alertService == null) {\r\n // this.alertService = this.injector.get(AlertService);\r\n // }\r\n\r\n // this.alertService.showStickyMessage(\"Fatal Error!\", \"An unresolved error has occured. Please reload the page to correct this error\", MessageSeverity.warn);\r\n // this.alertService.showStickyMessage(\"Unhandled Error\", error.message || error, MessageSeverity.error, error);\r\n\r\n if (confirm('Fatal Error!\\nAn unresolved error has occured. Do you want to reload the page to correct this?\\n\\nError: ' + error.message)) {\r\n window.location.reload(true);\r\n }\r\n\r\n super.handleError(error);\r\n }\r\n}\r\n","\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n Routes, RouterModule, PreloadingStrategy,\r\n PreloadAllModules, DefaultUrlSerializer, UrlSerializer, UrlTree } from '@angular/router';\r\n\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { HomeComponent } from './components/home/home.component';\r\nimport { CustomerPortalComponent } from './components/customer-portal/customer-portal.component';\r\nimport { RepairsComponent } from './components/repairs/repairs.component';\r\nimport { CustomersComponent } from './components/customers/customers.component';\r\nimport { OrdersComponent } from './components/orders/orders.component';\r\nimport { SalesOrdersComponent } from './components/salesorders/salesorders.component';\r\nimport { PurchaseOrdersComponent } from './components/purchaseorders/purchaseorders.component';\r\nimport { QuotesComponent } from './components/quotes/quotes.component';\r\nimport { SettingsComponent } from './components/settings/settings.component';\r\nimport { AboutComponent } from './components/about/about.component';\r\nimport { NotFoundComponent } from './components/not-found/not-found.component';\r\nimport { ReportsComponent } from './components/reports/reports.component';\r\nimport { PodComponent } from './components/pod/pod.component';\r\nimport { TrackingComponent } from './components/tracking/tracking.component';\r\nimport { AuthService } from './services/auth.service';\r\nimport { AuthGuard } from './services/auth-guard.service';\r\nimport { Utilities } from './services/utilities';\r\nimport { SysproCustomerViewComponent } from './components/controls/syspro-customer-view.component';\r\nimport { DocumentsComponent } from './components/documents/document.component';\r\nimport { ProductsComponent } from './components/products/products.component';\r\nimport { WebComponent } from './components/web/web.component';\r\nimport { ProductsAdvertsComponent } from './components/products/products.adverts.component';\r\nimport { ProductsClearanceComponent } from './components/products/products.clearance.component';\r\nimport { ProductsCalculatorComponent } from './components/products/products-calculator.component';\r\n\r\n\r\n\r\nexport class LowerCaseUrlSerializer extends DefaultUrlSerializer {\r\n parse(url: string): UrlTree {\r\n const possibleSeparators = /[?;#]/;\r\n const indexOfSeparator = url.search(possibleSeparators);\r\n let processedUrl: string;\r\n\r\n if (indexOfSeparator > -1) {\r\n const separator = url.charAt(indexOfSeparator);\r\n const urlParts = Utilities.splitInTwo(url, separator);\r\n urlParts.firstPart = urlParts.firstPart.toLowerCase();\r\n\r\n processedUrl = urlParts.firstPart + separator + urlParts.secondPart;\r\n } else {\r\n processedUrl = url.toLowerCase();\r\n }\r\n\r\n return super.parse(processedUrl);\r\n }\r\n}\r\n \r\n\r\nconst routes: Routes = [\r\n { path: '', component: HomeComponent, canActivate: [AuthGuard], data: { title: 'Home' } },\r\n { path: 'login', component: LoginComponent, data: { title: 'Login' } },\r\n {\r\n path: 'customers', component: CustomersComponent, canActivate: [AuthGuard], data: { title: 'Customers' },\r\n children: [{\r\n path: 'customers/view', // child route path\r\n component: SysproCustomerViewComponent, // child route component that the router renders\r\n }]\r\n },\r\n { path: 'products', component: ProductsComponent, canActivate: [AuthGuard], data: { title: 'Products' } },\r\n { path: 'orders', component: OrdersComponent, canActivate: [AuthGuard], data: { title: 'Orders' } },\r\n { path: 'salesorders', component: SalesOrdersComponent, canActivate: [AuthGuard], data: { title: 'Sales Orders' } },\r\n { path: 'purchaseorders', component: PurchaseOrdersComponent, canActivate: [AuthGuard], data: { title: 'Purchase Orders' } },\r\n { path: 'pods', component: PodComponent, canActivate: [AuthGuard], data: { title: 'Pods' } },\r\n { path: 'documents', component: DocumentsComponent, canActivate: [AuthGuard], data: { title: 'Documents' } },\r\n { path: 'quotes', component: QuotesComponent, canActivate: [AuthGuard], data: { title: 'Quotes' } },\r\n { path: 'web', component: WebComponent, canActivate: [AuthGuard], data: { title: 'Web' } },\r\n { path: 'repairs', component: RepairsComponent, canActivate: [AuthGuard], data: { title: 'Repairs' } },\r\n { path: 'reports', component: ReportsComponent, canActivate: [AuthGuard], data: { title: 'Reports' } },\r\n { path: 'settings', component: SettingsComponent, canActivate: [AuthGuard], data: { title: 'Settings' } },\r\n { path: 'about', component: AboutComponent, data: { title: 'About Us' } },\r\n { path: 'viewportal', component: CustomerPortalComponent, data: { title: 'Customer Portal' } },\r\n { path: 'tracking', component: TrackingComponent, data: { title: 'ITS' } },\r\n { path: 'adverts', component: ProductsAdvertsComponent, data: { title: 'Adverts' } },\r\n { path: 'clearance', component: ProductsClearanceComponent, data: { title: 'Clearance' } },\r\n { path: 'home', redirectTo: '/', pathMatch: 'full' },\r\n { path: '**', component: NotFoundComponent, data: { title: 'Page Not Found' } }\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, {\r\n preloadingStrategy: PreloadAllModules\r\n })],\r\n exports: [RouterModule],\r\n providers: [\r\n AuthService,\r\n AuthGuard,\r\n { provide: UrlSerializer, useClass: LowerCaseUrlSerializer }]\r\n})\r\nexport class AppRoutingModule { }\r\n","\r\nimport { NgModule, ErrorHandler } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport {\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n\r\n MatTreeModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n MatDividerModule,\r\n MatStepperModule,\r\n MatBottomSheetModule,\r\n MatBadgeModule\r\n} from '@angular/material';\r\n//import { ngCurrency } from 'ng-currency';\r\n\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\n\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { ToastaModule } from 'ngx-toasta';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\r\nimport { PopoverModule } from 'ngx-bootstrap/popover';\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\nimport { CarouselModule } from 'ngx-bootstrap/carousel';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { NgxDateRangePickerModule } from 'ngx-daterangepicker';\r\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\r\nimport { TreeviewModule } from 'ngx-treeview';\r\n/*import { NgxEditorModule } from 'ngx-editor';*/\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { Quagga} from 'quagga';\r\n\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppErrorHandler } from './app-error.handler';\r\nimport { AppTitleService } from './services/app-title.service';\r\nimport { AppTranslationService, TranslateLanguageLoader } from './services/app-translation.service';\r\nimport { ConfigurationService } from './services/configuration.service';\r\nimport { AlertService } from './services/alert.service';\r\nimport { ThemeManager } from './services/theme-manager';\r\nimport { LocalStoreManager } from './services/local-store-manager.service';\r\nimport { EndpointFactory } from './services/endpoint-factory.service';\r\nimport { NotificationService } from './services/notification.service';\r\nimport { NotificationEndpoint } from './services/notification-endpoint.service';\r\nimport { AccountService } from './services/account.service';\r\nimport { AccountEndpoint } from './services/account-endpoint.service';\r\nimport { FowkesOnlineService } from './services/fowkes-online.service';\r\nimport { FowkesOnlineEndpoint } from './services/fowkes-online-endpoint.service';\r\nimport { SysproService } from './services/syspro.service';\r\nimport { SysproEndpoint } from './services/syspro-endpoint.service';\r\nimport { ReportService } from './services/report.service';\r\nimport { ReportEndpoint } from './services/report-endpoint.service';\r\nimport { PrinterService } from './services/printer.service';\r\nimport { PrinterEndpoint } from './services/printer-endpoint.service';\r\nimport { ExternalHTTPService } from './services/external-api.service';\r\n\r\nimport { EqualValidator } from './directives/equal-validator.directive';\r\nimport { LastElementDirective } from './directives/last-element.directive';\r\n//import { AutofocusDirective } from './directives/autofocus.directive';\r\nimport { BootstrapTabDirective } from './directives/bootstrap-tab.directive';\r\nimport { BootstrapToggleDirective } from './directives/bootstrap-toggle.directive';\r\nimport { BootstrapSelectDirective } from './directives/bootstrap-select.directive';\r\nimport { BootstrapDatepickerDirective } from './directives/bootstrap-datepicker.directive';\r\nimport { AutofocusDirective } from './directives/auto-focus.directive';\r\nimport { GroupByPipe } from './pipes/group-by.pipe';\r\nimport { SafePipe } from './pipes/safe.pipe';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer'; // <- import PdfViewerModule\r\n\r\nimport { AppComponent } from './components/app.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { HomeComponent } from './components/home/home.component';\r\nimport { CustomersComponent } from './components/customers/customers.component';\r\nimport { CustomerPortalComponent } from './components/customer-portal/customer-portal.component';\r\n\r\nimport { ProductsComponent } from './components/products/products.component';\r\nimport { VideosComponent } from './components/products/products.videos.component';\r\nimport { BrandsComponent } from './components/products/products.brands.component';\r\nimport { ManageImagesComponent } from './components/products/products-manage-images.component';\r\nimport { MissingImagesComponent } from './components/products/products-missing-images.component';\r\nimport { ManageDataSheetsComponent } from './components/products/products-manage-datasheets.component';\r\nimport { NewVideosComponent } from './components/products/products.newvideos.component';\r\nimport { StockCodesComponent } from './components/products/products.stockcodes.component';\r\nimport { ProductsNewComponent } from './components/products/products-new.component';\r\nimport { ProductsCatalogueComponent } from './components/products/products-catalogue.component';\r\nimport { ProductsEditCategoriesComponent } from './components/products/products-editcategories.component';\r\nimport { ProductsEditMetaTagsComponent } from './components/products/products-edit-metatags.component';\r\nimport { ProductsCatagoryCatalogueComponent } from './components/products/products-category-catalogue.component';\r\nimport { ProductsAdvertsComponent } from './components/products/products.adverts.component';\r\nimport { ProductsClearanceComponent } from './components/products/products.clearance.component';\r\nimport { ProductsCalculatorComponent } from './components/products/products-calculator.component';\r\n\r\n\r\n\r\nimport { ITSSettingsComponent } from './components/settings/admin-components/settings.ITS.component';\r\nimport { ITSUserSettingsComponent } from './components/settings/admin-components/settings.ITS-Users.component';\r\nimport { BranchSettingsComponent } from './components/settings/admin-components/settings.branch.component';\r\nimport { PrinterSettingsComponent } from './components/settings/admin-components/settings.printer.component';\r\nimport { InfoSettingsComponent } from './components/settings/admin-components/settings-info.component';\r\nimport { InfoDocsComponent } from './components/settings/admin-components/settings-info-docs.component';\r\nimport { SettingsServicesComponent } from './components/settings/admin-components/settings.services.component';\r\nimport { WhatsappInboxComponent } from './components/settings/admin-components/whatsapp-inbox.component';\r\nimport { WhatsappSalesInboxComponent } from './components/settings/admin-components/whatsapp-sales-inbox.component';\r\n\r\nimport { OrdersComponent } from './components/orders/orders.component';\r\nimport { SalesOrdersComponent } from './components/salesorders/salesorders.component';\r\nimport { PurchaseOrdersComponent } from './components/purchaseorders/purchaseorders.component';\r\nimport { QuotesComponent } from './components/quotes/quotes.component';\r\nimport { WebComponent } from './components/web/web.component';\r\nimport { SettingsComponent } from './components/settings/settings.component';\r\nimport { AboutComponent } from './components/about/about.component';\r\nimport { NotFoundComponent } from './components/not-found/not-found.component';\r\n\r\nimport { BannerDemoComponent } from './components/controls/banner-demo.component';\r\nimport { TodoDemoComponent } from './components/controls/todo-demo.component';\r\nimport { StatisticsDemoComponent } from './components/controls/statistics-demo.component';\r\nimport { NotificationsViewerComponent } from './components/controls/notifications-viewer.component';\r\nimport { SysproRepViewerComponent } from './components/controls/syspro-rep-viewer.component';\r\nimport { SearchBoxComponent } from './components/controls/search-box.component';\r\nimport { UserInfoComponent } from './components/controls/user-info.component';\r\nimport { UserPreferencesComponent } from './components/controls/user-preferences.component';\r\nimport { UsersManagementComponent } from './components/controls/users-management.component';\r\nimport { RolesManagementComponent } from './components/controls/roles-management.component';\r\nimport { RoleEditorComponent } from './components/controls/role-editor.component';\r\nimport { SysproCustomersManagementComponent } from './components/controls/syspro-customers-management.component';\r\nimport { CustomerSearchComponent } from './components/quotes/copy-quote/customers-search.component';\r\nimport { CustomerViewComponent } from './components/quotes/copy-quote/customers-view.component';\r\nimport { CustomerCartComponent } from './components/quotes/copy-quote/customers-cart.component';\r\nimport { SysproCustomersMovementsComponent } from './components/controls/syspro-customers-movements.component';\r\nimport { SysproCustomersPaymentsComponent } from './components/controls/syspro-customers-payments.component';\r\nimport { SysproCustomerStatementsComponent } from './components/customers/statements/customer-statements.component';\r\nimport { SysproCustomerToolrepairsComponent } from './components/customers/tool-repairs/customer-tool-repairs.component';\r\nimport { BankImportComponent } from './components/customers/bank-tools/bank-import.component';\r\nimport { BankImportReportComponent } from './components/customers/bank-tools/bank-import-report.component';\r\nimport { BankImportManagementComponent } from './components/customers/bank-tools/bank-import-management.component';\r\nimport { BankExportComponent } from './components/customers/bank-tools/bank-export.component';\r\nimport { CoreCustomerSettingsComponent } from './components/customers/core-customers/core-customer-settings.component';\r\nimport { CoreCustomerManagementComponent } from './components/customers/core-customers/core-customer-management.component';\r\nimport { CoreCustomerAdminComponent } from './components/customers/core-customers/core-customer-admin.component';\r\nimport { SysproCustomersViewPortalComponent } from './components/customer-portal/syspro-customers-view-portal.component';\r\nimport { SysproInventoryManagementComponent } from './components/controls/syspro-inventory-management.component';\r\nimport { SysproInventoryListComponent } from './components/controls/syspro-inventory-list.component';\r\nimport { SysproInventoryNonStockComponent } from './components/controls/syspro-inventory-nonstock.component';\r\nimport { SysproCartManagementComponent } from './components/controls/syspro-cart-management.component';\r\nimport { SysproQuoteViewComponent } from './components/controls/syspro-quote-view.component';\r\nimport { SysproQuoteManagementComponent } from './components/controls/syspro-quote-management.component';\r\nimport { SysproQuoteManagementWebComponent } from './components/controls/syspro-quote-management-web.component';\r\nimport { SysproWebOrdersManagementComponent } from './components/controls/syspro-weborders-management.component';\r\nimport { SysproCustomerViewComponent } from './components/controls/syspro-customer-view.component';\r\nimport { SysproCustomerPreviewComponent } from './components/controls/syspro-customer-preview.component';\r\nimport { SysproInventoryPreviewComponent } from './components/controls/syspro-inventory-preview.component';\r\nimport { SysproCustomerNotesComponent } from './components/controls/syspro-customer-notes.component';\r\nimport { SettingsConfigurationComponent } from './components/controls/settings-configuration.component';\r\nimport { AddressComponent } from './components/templates/address.component';\r\nimport { SysproSalesOrderViewComponent } from './components/controls/syspro-salesorder-view.component';\r\nimport { SysproSalesOrderManagementComponent } from './components/controls/syspro-salesorder-management.component';\r\nimport { SysproPurchaseOrderManagementComponent } from './components/controls/syspro-purchaseorder-management.component';\r\nimport { SysproInvoiceViewComponent } from './components/controls/syspro-invoice-view.component';\r\nimport { SysproPurchaseOrderViewComponent } from './components/controls/syspro-purchaseorder-view.component';\r\nimport { ReportsComponent } from './components/reports/reports.component';\r\nimport { RepairsComponent } from './components/repairs/repairs.component';\r\nimport { ToolRepairsDashboardComponent } from './components/repairs/tool-repairs/tool-repairs-dashboard.component';\r\nimport { ToolRepairsReportComponent } from './components/repairs/tool-repairs/tool-repairs-report.component';\r\nimport { ReportsInvoiceReprintComponent } from './components/reports/report-components/reports-invoice-reprint-component';\r\nimport { ReportsInvoiceStatusComponent } from './components/reports/report-components/reports-invoice-status-component';\r\nimport { ReportsSalesComponent } from './components/reports/report-components/reports-sales-component';\r\nimport { ReportsDebtorsReleaseComponent } from './components/reports/report-components/reports-debtors-release-component';\r\nimport { ReportsCreditorsComponent } from './components/reports/report-components/reports-creditors-component';\r\nimport { ReportsQuoteSalesComponent } from './components/reports/report-components/reports-quote-sales.component';\r\nimport { ReportsInvoiceTrackingPurgeComponent } from './components/reports/report-components/reports-invoice-tracking-purge-component';\r\nimport { ReportsCreditNotesSalesComponent } from './components/reports/report-components/reports-credit-notes-sales-component';\r\nimport { ReportsInvoiceTrackingComponent } from './components/reports/report-components/reports-invoice-tracking.component';\r\nimport { ReportsInvoiceTrackingControlComponent } from './components/reports/report-components/reports-invoice-tracking-control.component';\r\nimport { ReportsInvoiceTrackingDeliveryComponent } from './components/reports/report-components/reports-invoice-tracking-delivery.component';\r\nimport { ReportsInvoiceTrackingCollectionsComponent } from './components/reports/report-components/reports-invoice-tracking-collections.component';\r\nimport { ReportsProductivityComponent } from './components/reports/report-components/reports-productivity-component';\r\nimport { ReportsProductCatalogueComponent } from './components/reports/report-components/reports-product-catalogue-usage.component';\r\nimport { ReportsInventoryMovementsComponent } from './components/reports/report-components/reports-inventory-movements.component';\r\nimport { ReportsInventoryAdjustmentsComponent } from './components/reports/report-components/reports-inventory-adjustments.component';\r\nimport { ReportsWebSalesComponent } from './components/web/components/reports-websales-component';\r\nimport { TrackingComponent } from './components/tracking/tracking.component';\r\nimport { TrackingDriversComponent } from './components/tracking/tracking-components/tracking-drivers.component';\r\nimport { TrackingVehiclesComponent } from './components/tracking/tracking-components/tracking-vehicles.component';\r\nimport { TrackingCagesComponent } from './components/tracking/tracking-components/tracking-cages.component';\r\nimport { TrackingAreasComponent } from './components/tracking/tracking-components/tracking-areas.component';\r\nimport { TrackingInvoiceStatusComponent } from './components/tracking/tracking-components/tracking-invoice-status-component';\r\nimport { TrackingPrintLabelsComponent } from './components/tracking/tracking-components/tracking-print-labels.component';\r\nimport { TrackingDriversReportComponent } from './components/tracking/tracking-components/tracking-drivers-report-component';\r\nimport { TrackingFingerPrintComponent } from './components/tracking/fingertprint-components/tracking-fingerprint.component';\r\nimport { PodComponent } from './components/pod/pod.component';\r\nimport { PodSyncComponent } from './components/pod/pod-components/pod-sync.component';\r\nimport { PodFileSyncComponent } from './components/pod/pod-components/pod-file-sync.component';\r\nimport { PodSearchComponent } from './components/pod/pod-components/pod-search.component';\r\nimport { PodEditBatchComponent } from './components/pod/pod-components/pod-editbatch.component';\r\nimport { PodReconcileComponent } from './components/pod/pod-components/pod-reconcile.component';\r\nimport { PodSearchMissingComponent } from './components/pod/pod-components/pod-search-missing.component';\r\nimport { PodViewComponent } from './components/pod/pod-components/pod-view.component';\r\nimport { DocumentsComponent } from './components/documents/document.component';\r\nimport { ViewDocumentsComponent } from './components/documents/document-components/document-view.component';\r\nimport { EditCategoriesComponent } from './components/documents/document-components/document-editcategories.component';\r\nimport { ParentComponent } from './components/category-template/parent.component';\r\nimport { ChildComponent } from './components/category-template/child-item/child-item.component';\r\n\r\nimport { TreeDynamicExample } from './components/category-template/tree-dynamic-example';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useClass: TranslateLanguageLoader\r\n }\r\n }),\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n /*NgxEditorModule,*/\r\n NgxDatatableModule,\r\n ToastaModule.forRoot(),\r\n TooltipModule.forRoot(),\r\n PopoverModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n CarouselModule.forRoot(),\r\n BsDatepickerModule.forRoot(),\r\n ModalModule.forRoot(),\r\n NgxDaterangepickerMd.forRoot(),\r\n NgxDateRangePickerModule,\r\n TreeviewModule.forRoot(),\r\n ChartsModule,\r\n PdfViewerModule,\r\n AppRoutingModule\r\n ],\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n HomeComponent,\r\n CustomersComponent,\r\n CustomerPortalComponent,\r\n ProductsComponent,\r\n WebComponent,\r\n VideosComponent,\r\n BrandsComponent,\r\n ManageImagesComponent,\r\n ManageDataSheetsComponent,\r\n MissingImagesComponent,\r\n NewVideosComponent,\r\n ProductsNewComponent,\r\n ProductsEditCategoriesComponent,\r\n ProductsEditMetaTagsComponent,\r\n ProductsCatagoryCatalogueComponent,\r\n ProductsCatalogueComponent,\r\n ProductsAdvertsComponent,\r\n ProductsClearanceComponent,\r\n ProductsCalculatorComponent,\r\n ITSSettingsComponent,\r\n ITSUserSettingsComponent,\r\n BranchSettingsComponent,\r\n PrinterSettingsComponent,\r\n WhatsappInboxComponent,\r\n WhatsappSalesInboxComponent,\r\n OrdersComponent,\r\n SalesOrdersComponent,\r\n PurchaseOrdersComponent,\r\n QuotesComponent,\r\n SettingsComponent,\r\n SettingsServicesComponent,\r\n CoreCustomerManagementComponent,\r\n CoreCustomerAdminComponent,\r\n UserInfoComponent,\r\n UsersManagementComponent,\r\n UserPreferencesComponent,\r\n RolesManagementComponent,\r\n RoleEditorComponent,\r\n SysproRepViewerComponent,\r\n SysproCustomersManagementComponent,\r\n CustomerSearchComponent,\r\n CustomerViewComponent,\r\n CustomerCartComponent,\r\n SysproCustomersMovementsComponent,\r\n SysproCustomersPaymentsComponent,\r\n SysproCustomerViewComponent,\r\n SysproCustomerPreviewComponent,\r\n SysproCustomerNotesComponent,\r\n SysproCustomersViewPortalComponent,\r\n SysproCustomerStatementsComponent,\r\n SysproCustomerToolrepairsComponent,\r\n BankImportComponent,\r\n BankExportComponent,\r\n BankImportReportComponent,\r\n BankImportManagementComponent,\r\n SettingsConfigurationComponent,\r\n InfoSettingsComponent,\r\n InfoDocsComponent,\r\n CoreCustomerSettingsComponent,\r\n SysproInventoryManagementComponent,\r\n SysproInventoryListComponent,\r\n SysproInventoryNonStockComponent,\r\n SysproInventoryPreviewComponent,\r\n SysproCartManagementComponent,\r\n SysproQuoteManagementComponent,\r\n SysproQuoteManagementWebComponent,\r\n SysproQuoteViewComponent,\r\n SysproWebOrdersManagementComponent,\r\n SysproSalesOrderViewComponent,\r\n SysproSalesOrderManagementComponent,\r\n SysproInvoiceViewComponent,\r\n SysproPurchaseOrderManagementComponent,\r\n SysproPurchaseOrderViewComponent,\r\n ReportsComponent,\r\n RepairsComponent,\r\n ToolRepairsDashboardComponent,\r\n ToolRepairsReportComponent,\r\n ReportsInvoiceReprintComponent,\r\n ReportsInvoiceStatusComponent,\r\n ReportsSalesComponent,\r\n ReportsDebtorsReleaseComponent,\r\n ReportsCreditorsComponent,\r\n ReportsQuoteSalesComponent,\r\n ReportsInvoiceTrackingPurgeComponent,\r\n ReportsInvoiceTrackingControlComponent,\r\n ReportsCreditNotesSalesComponent,\r\n ReportsInvoiceTrackingComponent,\r\n ReportsInvoiceTrackingDeliveryComponent,\r\n ReportsInvoiceTrackingCollectionsComponent,\r\n ReportsProductivityComponent,\r\n ReportsProductCatalogueComponent,\r\n ReportsInventoryMovementsComponent,\r\n ReportsInventoryAdjustmentsComponent,\r\n ReportsWebSalesComponent,\r\n TrackingComponent,\r\n TrackingDriversComponent,\r\n TrackingVehiclesComponent,\r\n TrackingCagesComponent,\r\n TrackingAreasComponent,\r\n TrackingInvoiceStatusComponent,\r\n TrackingPrintLabelsComponent,\r\n TrackingDriversReportComponent,\r\n TrackingFingerPrintComponent,\r\n PodComponent,\r\n PodSearchComponent,\r\n PodEditBatchComponent,\r\n PodReconcileComponent,\r\n PodSyncComponent,\r\n PodFileSyncComponent,\r\n PodViewComponent,\r\n PodSearchMissingComponent,\r\n DocumentsComponent,\r\n ViewDocumentsComponent,\r\n EditCategoriesComponent,\r\n AddressComponent,\r\n AboutComponent,\r\n StockCodesComponent,\r\n NotFoundComponent,\r\n NotificationsViewerComponent,\r\n SearchBoxComponent,\r\n StatisticsDemoComponent, TodoDemoComponent, BannerDemoComponent,\r\n EqualValidator,\r\n LastElementDirective,\r\n AutofocusDirective,\r\n BootstrapTabDirective,\r\n BootstrapToggleDirective,\r\n BootstrapSelectDirective,\r\n BootstrapDatepickerDirective,\r\n GroupByPipe,\r\n SafePipe,\r\n ParentComponent,\r\n ChildComponent,\r\n TreeDynamicExample\r\n ],\r\n providers: [\r\n { provide: ErrorHandler, useClass: AppErrorHandler },\r\n AlertService,\r\n ThemeManager,\r\n ConfigurationService,\r\n AppTitleService,\r\n AppTranslationService,\r\n NotificationService,\r\n NotificationEndpoint,\r\n AccountService,\r\n AccountEndpoint, \r\n FowkesOnlineService,\r\n FowkesOnlineEndpoint,\r\n SysproService,\r\n SysproEndpoint,\r\n ReportService,\r\n ReportEndpoint,\r\n PrinterService,\r\n PrinterEndpoint,\r\n ExternalHTTPService,\r\n LocalStoreManager,\r\n EndpointFactory,\r\n CurrencyPipe\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n}\r\n","module.exports = __webpack_public_path__ + \"Calc1.png\";","module.exports = __webpack_public_path__ + \"Calc2.png\";","module.exports = __webpack_public_path__ + \"Calc3.png\";","module.exports = __webpack_public_path__ + \"Calc4.png\";","module.exports = __webpack_public_path__ + \"banner1.png\";","module.exports = __webpack_public_path__ + \"banner2.png\";","module.exports = __webpack_public_path__ + \"banner3.png\";","module.exports = __webpack_public_path__ + \"banner4.png\";","module.exports = __webpack_public_path__ + \"logo.png\";","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\n/**\r\n * alertify\r\n * An unobtrusive customizable JavaScript notification system\r\n *\r\n * @author Fabien Doiron \r\n * @copyright Fabien Doiron 2013\r\n * @license MIT \r\n * @link http://fabien-d.github.com/alertify.js/\r\n * @module alertify\r\n * @version 0.3.11\r\n */\r\n(function (global, undefined) {\r\n\t\"use strict\";\r\n\r\n\tvar document = global.document,\r\n\t Alertify;\r\n\r\n\tAlertify = function () {\r\n\r\n\t\tvar _alertify = {},\r\n\t\t dialogs = {},\r\n\t\t isopen = false,\r\n\t\t keys = { ENTER: 13, ESC: 27, SPACE: 32 },\r\n\t\t queue = [],\r\n\t\t $, btnCancel, btnOK, btnReset, btnResetBack, btnFocus, elCallee, elCover, elDialog, elLog, form, input, getTransitionEvent;\r\n\r\n\t\t/**\r\n\t\t * Markup pieces\r\n\t\t * @type {Object}\r\n\t\t */\r\n\t\tdialogs = {\r\n\t\t\tbuttons : {\r\n\t\t\t\tholder : \"\",\r\n\t\t\t\tsubmit : \"\",\r\n\t\t\t\tok : \"\",\r\n\t\t\t\tcancel : \"\"\r\n\t\t\t},\r\n\t\t\tinput : \"
\",\r\n\t\t\tmessage : \"

{{message}}

\",\r\n\t\t\tlog : \"
{{message}}
\"\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Return the proper transitionend event\r\n\t\t * @return {String} Transition type string\r\n\t\t */\r\n\t\tgetTransitionEvent = function () {\r\n\t\t\tvar t,\r\n\t\t\t type,\r\n\t\t\t supported = false,\r\n\t\t\t el = document.createElement(\"fakeelement\"),\r\n\t\t\t transitions = {\r\n\t\t\t\t \"WebkitTransition\" : \"webkitTransitionEnd\",\r\n\t\t\t\t \"MozTransition\" : \"transitionend\",\r\n\t\t\t\t \"OTransition\" : \"otransitionend\",\r\n\t\t\t\t \"transition\" : \"transitionend\"\r\n\t\t\t };\r\n\r\n\t\t\tfor (t in transitions) {\r\n\t\t\t\tif (el.style[t] !== undefined) {\r\n\t\t\t\t\ttype = transitions[t];\r\n\t\t\t\t\tsupported = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttype : type,\r\n\t\t\t\tsupported : supported\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Shorthand for document.getElementById()\r\n\t\t *\r\n\t\t * @param {String} id A specific element ID\r\n\t\t * @return {Object} HTML element\r\n\t\t */\r\n\t\t$ = function (id) {\r\n\t\t\treturn document.getElementById(id);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Alertify private object\r\n\t\t * @type {Object}\r\n\t\t */\r\n\t\t_alertify = {\r\n\r\n\t\t\t/**\r\n\t\t\t * Labels object\r\n\t\t\t * @type {Object}\r\n\t\t\t */\r\n\t\t\tlabels : {\r\n\t\t\t\tok : \"OK\",\r\n\t\t\t\tcancel : \"Cancel\"\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Delay number\r\n\t\t\t * @type {Number}\r\n\t\t\t */\r\n\t\t\tdelay : 5000,\r\n\r\n\t\t\t/**\r\n\t\t\t * Whether buttons are reversed (default is secondary/primary)\r\n\t\t\t * @type {Boolean}\r\n\t\t\t */\r\n\t\t\tbuttonReverse : false,\r\n\r\n\t\t\t/**\r\n\t\t\t * Which button should be focused by default\r\n\t\t\t * @type {String}\t\"ok\" (default), \"cancel\", or \"none\"\r\n\t\t\t */\r\n\t\t\tbuttonFocus : \"ok\",\r\n\r\n\t\t\t/**\r\n\t\t\t * Set the transition event on load\r\n\t\t\t * @type {[type]}\r\n\t\t\t */\r\n\t\t\ttransition : undefined,\r\n\r\n\t\t\t/**\r\n\t\t\t * Set the proper button click events\r\n\t\t\t *\r\n\t\t\t * @param {Function} fn [Optional] Callback function\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\taddListeners : function (fn) {\r\n\t\t\t\tvar hasOK = (typeof btnOK !== \"undefined\"),\r\n\t\t\t\t hasCancel = (typeof btnCancel !== \"undefined\"),\r\n\t\t\t\t hasInput = (typeof input !== \"undefined\"),\r\n\t\t\t\t val = \"\",\r\n\t\t\t\t self = this,\r\n\t\t\t\t ok, cancel, common, key, reset;\r\n\r\n\t\t\t\t// ok event handler\r\n\t\t\t\tok = function (event) {\r\n\t\t\t\t\tif (typeof event.preventDefault !== \"undefined\") event.preventDefault();\r\n\t\t\t\t\tcommon(event);\r\n\t\t\t\t\tif (typeof input !== \"undefined\") val = input.value;\r\n\t\t\t\t\tif (typeof fn === \"function\") {\r\n\t\t\t\t\t\tif (typeof input !== \"undefined\") {\r\n\t\t\t\t\t\t\tfn(true, val);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse fn(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// cancel event handler\r\n\t\t\t\tcancel = function (event) {\r\n\t\t\t\t\tif (typeof event.preventDefault !== \"undefined\") event.preventDefault();\r\n\t\t\t\t\tcommon(event);\r\n\t\t\t\t\tif (typeof fn === \"function\") fn(false);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// common event handler (keyup, ok and cancel)\r\n\t\t\t\tcommon = function (event) {\r\n\t\t\t\t\tself.hide();\r\n\t\t\t\t\tself.unbind(document.body, \"keyup\", key);\r\n\t\t\t\t\tself.unbind(btnReset, \"focus\", reset);\r\n\t\t\t\t\tif (hasOK) self.unbind(btnOK, \"click\", ok);\r\n\t\t\t\t\tif (hasCancel) self.unbind(btnCancel, \"click\", cancel);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// keyup handler\r\n\t\t\t\tkey = function (event) {\r\n\t\t\t\t\tvar keyCode = event.keyCode;\r\n\t\t\t\t\tif ((keyCode === keys.SPACE && !hasInput) || (hasInput && keyCode === keys.ENTER)) ok(event);\r\n\t\t\t\t\tif (keyCode === keys.ESC && hasCancel) cancel(event);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// reset focus to first item in the dialog\r\n\t\t\t\treset = function (event) {\r\n\t\t\t\t\tif (hasInput) input.focus();\r\n\t\t\t\t\telse if (!hasCancel || self.buttonReverse) btnOK.focus();\r\n\t\t\t\t\telse btnCancel.focus();\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// handle reset focus link\r\n\t\t\t\t// this ensures that the keyboard focus does not\r\n\t\t\t\t// ever leave the dialog box until an action has\r\n\t\t\t\t// been taken\r\n\t\t\t\tthis.bind(btnReset, \"focus\", reset);\r\n\t\t\t\tthis.bind(btnResetBack, \"focus\", reset);\r\n\t\t\t\t// handle OK click\r\n\t\t\t\tif (hasOK) this.bind(btnOK, \"click\", ok);\r\n\t\t\t\t// handle Cancel click\r\n\t\t\t\tif (hasCancel) this.bind(btnCancel, \"click\", cancel);\r\n\t\t\t\t// listen for keys, Cancel => ESC\r\n\t\t\t\tthis.bind(document.body, \"keyup\", key);\r\n\t\t\t\tif (!this.transition.supported) {\r\n\t\t\t\t\tthis.setFocus();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Bind events to elements\r\n\t\t\t *\r\n\t\t\t * @param {Object} el HTML Object\r\n\t\t\t * @param {Event} event Event to attach to element\r\n\t\t\t * @param {Function} fn Callback function\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tbind : function (el, event, fn) {\r\n\t\t\t\tif (typeof el.addEventListener === \"function\") {\r\n\t\t\t\t\tel.addEventListener(event, fn, false);\r\n\t\t\t\t} else if (el.attachEvent) {\r\n\t\t\t\t\tel.attachEvent(\"on\" + event, fn);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Use alertify as the global error handler (using window.onerror)\r\n\t\t\t *\r\n\t\t\t * @return {boolean} success\r\n\t\t\t */\r\n\t\t\thandleErrors : function () {\r\n\t\t\t\tif (typeof global.onerror !== \"undefined\") {\r\n\t\t\t\t\tvar self = this;\r\n\t\t\t\t\tglobal.onerror = function (msg, url, line) {\r\n\t\t\t\t\t\tself.error(\"[\" + msg + \" on line \" + line + \" of \" + url + \"]\", 0);\r\n\t\t\t\t\t};\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Append button HTML strings\r\n\t\t\t *\r\n\t\t\t * @param {String} secondary The secondary button HTML string\r\n\t\t\t * @param {String} primary The primary button HTML string\r\n\t\t\t *\r\n\t\t\t * @return {String} The appended button HTML strings\r\n\t\t\t */\r\n\t\t\tappendButtons : function (secondary, primary) {\r\n\t\t\t\treturn this.buttonReverse ? primary + secondary : secondary + primary;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Build the proper message box\r\n\t\t\t *\r\n\t\t\t * @param {Object} item Current object in the queue\r\n\t\t\t *\r\n\t\t\t * @return {String} An HTML string of the message box\r\n\t\t\t */\r\n\t\t\tbuild : function (item) {\r\n\t\t\t\tvar html = \"\",\r\n\t\t\t\t type = item.type,\r\n\t\t\t\t message = item.message,\r\n\t\t\t\t css = item.cssClass || \"\";\r\n\r\n\t\t\t\thtml += \"
\";\r\n\t\t\t\thtml += \"Reset Focus\";\r\n\r\n\t\t\t\tif (_alertify.buttonFocus === \"none\") html += \"\";\r\n\r\n\t\t\t\t// doens't require an actual form\r\n\t\t\t\tif (type === \"prompt\") html += \"
\";\r\n\r\n\t\t\t\thtml += \"
\";\r\n\t\t\t\thtml += dialogs.message.replace(\"{{message}}\", message);\r\n\r\n\t\t\t\tif (type === \"prompt\") html += dialogs.input;\r\n\r\n\t\t\t\thtml += dialogs.buttons.holder;\r\n\t\t\t\thtml += \"
\";\r\n\r\n\t\t\t\tif (type === \"prompt\") html += \"
\";\r\n\r\n\t\t\t\thtml += \"Reset Focus\";\r\n\t\t\t\thtml += \"
\";\r\n\r\n\t\t\t\tswitch (type) {\r\n\t\t\t\tcase \"confirm\":\r\n\t\t\t\t\thtml = html.replace(\"{{buttons}}\", this.appendButtons(dialogs.buttons.cancel, dialogs.buttons.ok));\r\n\t\t\t\t\thtml = html.replace(\"{{ok}}\", this.labels.ok).replace(\"{{cancel}}\", this.labels.cancel);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"prompt\":\r\n\t\t\t\t\thtml = html.replace(\"{{buttons}}\", this.appendButtons(dialogs.buttons.cancel, dialogs.buttons.submit));\r\n\t\t\t\t\thtml = html.replace(\"{{ok}}\", this.labels.ok).replace(\"{{cancel}}\", this.labels.cancel);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"alert\":\r\n\t\t\t\t\thtml = html.replace(\"{{buttons}}\", dialogs.buttons.ok);\r\n\t\t\t\t\thtml = html.replace(\"{{ok}}\", this.labels.ok);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telDialog.className = \"alertify alertify-\" + type + \" \" + css;\r\n\t\t\t\telCover.className = \"alertify-cover\";\r\n\t\t\t\treturn html;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Close the log messages\r\n\t\t\t *\r\n\t\t\t * @param {Object} elem HTML Element of log message to close\r\n\t\t\t * @param {Number} wait [optional] Time (in ms) to wait before automatically hiding the message, if 0 never hide\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tclose : function (elem, wait) {\r\n\t\t\t\t// Unary Plus: +\"2\" === 2\r\n\t\t\t\tvar timer = (wait && !isNaN(wait)) ? +wait : this.delay,\r\n\t\t\t\t self = this,\r\n\t\t\t\t hideElement, transitionDone;\r\n\r\n\t\t\t\t// set click event on log messages\r\n\t\t\t\tthis.bind(elem, \"click\", function () {\r\n\t\t\t\t\thideElement(elem);\r\n\t\t\t\t});\r\n\t\t\t\t// Hide the dialog box after transition\r\n\t\t\t\t// This ensure it doens't block any element from being clicked\r\n\t\t\t\ttransitionDone = function (event) {\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t// unbind event so function only gets called once\r\n\t\t\t\t\tself.unbind(this, self.transition.type, transitionDone);\r\n\t\t\t\t\t// remove log message\r\n\t\t\t\t\telLog.removeChild(this);\r\n\t\t\t\t\tif (!elLog.hasChildNodes()) elLog.className += \" alertify-logs-hidden\";\r\n\t\t\t\t};\r\n\t\t\t\t// this sets the hide class to transition out\r\n\t\t\t\t// or removes the child if css transitions aren't supported\r\n\t\t\t\thideElement = function (el) {\r\n\t\t\t\t\t// ensure element exists\r\n\t\t\t\t\tif (typeof el !== \"undefined\" && el.parentNode === elLog) {\r\n\t\t\t\t\t\t// whether CSS transition exists\r\n\t\t\t\t\t\tif (self.transition.supported) {\r\n\t\t\t\t\t\t\tself.bind(el, self.transition.type, transitionDone);\r\n\t\t\t\t\t\t\tel.className += \" alertify-log-hide\";\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telLog.removeChild(el);\r\n\t\t\t\t\t\t\tif (!elLog.hasChildNodes()) elLog.className += \" alertify-logs-hidden\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// never close (until click) if wait is set to 0\r\n\t\t\t\tif (wait === 0) return;\r\n\t\t\t\t// set timeout to auto close the log message\r\n\t\t\t\tsetTimeout(function () { hideElement(elem); }, timer);\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Create a dialog box\r\n\t\t\t *\r\n\t\t\t * @param {String} message The message passed from the callee\r\n\t\t\t * @param {String} type Type of dialog to create\r\n\t\t\t * @param {Function} fn [Optional] Callback function\r\n\t\t\t * @param {String} placeholder [Optional] Default value for prompt input field\r\n\t\t\t * @param {String} cssClass [Optional] Class(es) to append to dialog box\r\n\t\t\t *\r\n\t\t\t * @return {Object}\r\n\t\t\t */\r\n\t\t\tdialog : function (message, type, fn, placeholder, cssClass) {\r\n\t\t\t\t// set the current active element\r\n\t\t\t\t// this allows the keyboard focus to be resetted\r\n\t\t\t\t// after the dialog box is closed\r\n\t\t\t\telCallee = document.activeElement;\r\n\t\t\t\t// check to ensure the alertify dialog element\r\n\t\t\t\t// has been successfully created\r\n\t\t\t\tvar check = function () {\r\n\t\t\t\t\tif ((elLog && elLog.scrollTop !== null) && (elCover && elCover.scrollTop !== null)) return;\r\n\t\t\t\t\telse check();\r\n\t\t\t\t};\r\n\t\t\t\t// error catching\r\n\t\t\t\tif (typeof message !== \"string\") throw new Error(\"message must be a string\");\r\n\t\t\t\tif (typeof type !== \"string\") throw new Error(\"type must be a string\");\r\n\t\t\t\tif (typeof fn !== \"undefined\" && typeof fn !== \"function\") throw new Error(\"fn must be a function\");\r\n\t\t\t\t// initialize alertify if it hasn't already been done\r\n\t\t\t\tthis.init();\r\n\t\t\t\tcheck();\r\n\r\n\t\t\t\tqueue.push({ type: type, message: message, callback: fn, placeholder: placeholder, cssClass: cssClass });\r\n\t\t\t\tif (!isopen) this.setup();\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Extend the log method to create custom methods\r\n\t\t\t *\r\n\t\t\t * @param {String} type Custom method name\r\n\t\t\t *\r\n\t\t\t * @return {Function}\r\n\t\t\t */\r\n\t\t\textend : function (type) {\r\n\t\t\t\tif (typeof type !== \"string\") throw new Error(\"extend method must have exactly one paramter\");\r\n\t\t\t\treturn function (message, wait) {\r\n\t\t\t\t\tthis.log(message, type, wait);\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t};\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Hide the dialog and rest to defaults\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\thide : function () {\r\n\t\t\t\tvar transitionDone,\r\n\t\t\t\t self = this;\r\n\t\t\t\t// remove reference from queue\r\n\t\t\t\tqueue.splice(0,1);\r\n\t\t\t\t// if items remaining in the queue\r\n\t\t\t\tif (queue.length > 0) this.setup(true);\r\n\t\t\t\telse {\r\n\t\t\t\t\tisopen = false;\r\n\t\t\t\t\t// Hide the dialog box after transition\r\n\t\t\t\t\t// This ensure it doens't block any element from being clicked\r\n\t\t\t\t\ttransitionDone = function (event) {\r\n\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t// unbind event so function only gets called once\r\n\t\t\t\t\t\tself.unbind(elDialog, self.transition.type, transitionDone);\r\n\t\t\t\t\t};\r\n\t\t\t\t\t// whether CSS transition exists\r\n\t\t\t\t\tif (this.transition.supported) {\r\n\t\t\t\t\t\tthis.bind(elDialog, this.transition.type, transitionDone);\r\n\t\t\t\t\t\telDialog.className = \"alertify alertify-hide alertify-hidden\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telDialog.className = \"alertify alertify-hide alertify-hidden alertify-isHidden\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telCover.className = \"alertify-cover alertify-cover-hidden\";\r\n\t\t\t\t\t// set focus to the last element or body\r\n\t\t\t\t\t// after the dialog is closed\r\n\t\t\t\t\telCallee.focus();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Initialize Alertify\r\n\t\t\t * Create the 2 main elements\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tinit : function () {\r\n\t\t\t\t// ensure legacy browsers support html5 tags\r\n\t\t\t\tdocument.createElement(\"nav\");\r\n\t\t\t\tdocument.createElement(\"article\");\r\n\t\t\t\tdocument.createElement(\"section\");\r\n\t\t\t\t// cover\r\n\t\t\t\tif ($(\"alertify-cover\") == null) {\r\n\t\t\t\t\telCover = document.createElement(\"div\");\r\n\t\t\t\t\telCover.setAttribute(\"id\", \"alertify-cover\");\r\n\t\t\t\t\telCover.className = \"alertify-cover alertify-cover-hidden\";\r\n\t\t\t\t\tdocument.body.appendChild(elCover);\r\n\t\t\t\t}\r\n\t\t\t\t// main element\r\n\t\t\t\tif ($(\"alertify\") == null) {\r\n\t\t\t\t\tisopen = false;\r\n\t\t\t\t\tqueue = [];\r\n\t\t\t\t\telDialog = document.createElement(\"section\");\r\n\t\t\t\t\telDialog.setAttribute(\"id\", \"alertify\");\r\n\t\t\t\t\telDialog.className = \"alertify alertify-hidden\";\r\n\t\t\t\t\tdocument.body.appendChild(elDialog);\r\n\t\t\t\t}\r\n\t\t\t\t// log element\r\n\t\t\t\tif ($(\"alertify-logs\") == null) {\r\n\t\t\t\t\telLog = document.createElement(\"section\");\r\n\t\t\t\t\telLog.setAttribute(\"id\", \"alertify-logs\");\r\n\t\t\t\t\telLog.className = \"alertify-logs alertify-logs-hidden\";\r\n\t\t\t\t\tdocument.body.appendChild(elLog);\r\n\t\t\t\t}\r\n\t\t\t\t// set tabindex attribute on body element\r\n\t\t\t\t// this allows script to give it focus\r\n\t\t\t\t// after the dialog is closed\r\n\t\t\t\tdocument.body.setAttribute(\"tabindex\", \"0\");\r\n\t\t\t\t// set transition type\r\n\t\t\t\tthis.transition = getTransitionEvent();\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Show a new log message box\r\n\t\t\t *\r\n\t\t\t * @param {String} message The message passed from the callee\r\n\t\t\t * @param {String} type [Optional] Optional type of log message\r\n\t\t\t * @param {Number} wait [Optional] Time (in ms) to wait before auto-hiding the log\r\n\t\t\t *\r\n\t\t\t * @return {Object}\r\n\t\t\t */\r\n\t\t\tlog : function (message, type, wait) {\r\n\t\t\t\t// check to ensure the alertify dialog element\r\n\t\t\t\t// has been successfully created\r\n\t\t\t\tvar check = function () {\r\n\t\t\t\t\tif (elLog && elLog.scrollTop !== null) return;\r\n\t\t\t\t\telse check();\r\n\t\t\t\t};\r\n\t\t\t\t// initialize alertify if it hasn't already been done\r\n\t\t\t\tthis.init();\r\n\t\t\t\tcheck();\r\n\r\n\t\t\t\telLog.className = \"alertify-logs\";\r\n\t\t\t\tthis.notify(message, type, wait);\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Add new log message\r\n\t\t\t * If a type is passed, a class name \"alertify-log-{type}\" will get added.\r\n\t\t\t * This allows for custom look and feel for various types of notifications.\r\n\t\t\t *\r\n\t\t\t * @param {String} message The message passed from the callee\r\n\t\t\t * @param {String} type [Optional] Type of log message\r\n\t\t\t * @param {Number} wait [Optional] Time (in ms) to wait before auto-hiding\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tnotify : function (message, type, wait) {\r\n\t\t\t\tvar log = document.createElement(\"article\");\r\n\t\t\t\tlog.className = \"alertify-log\" + ((typeof type === \"string\" && type !== \"\") ? \" alertify-log-\" + type : \"\");\r\n\t\t\t\tlog.innerHTML = message;\r\n\t\t\t\t// append child\r\n\t\t\t\telLog.appendChild(log);\r\n\t\t\t\t// triggers the CSS animation\r\n\t\t\t\tsetTimeout(function() { log.className = log.className + \" alertify-log-show\"; }, 50);\r\n\t\t\t\tthis.close(log, wait);\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Set properties\r\n\t\t\t *\r\n\t\t\t * @param {Object} args Passing parameters\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tset : function (args) {\r\n\t\t\t\tvar k;\r\n\t\t\t\t// error catching\r\n\t\t\t\tif (typeof args !== \"object\" && args instanceof Array) throw new Error(\"args must be an object\");\r\n\t\t\t\t// set parameters\r\n\t\t\t\tfor (k in args) {\r\n\t\t\t\t\tif (args.hasOwnProperty(k)) {\r\n\t\t\t\t\t\tthis[k] = args[k];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Common place to set focus to proper element\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tsetFocus : function () {\r\n\t\t\t\tif (input) {\r\n\t\t\t\t\tinput.focus();\r\n\t\t\t\t\tinput.select();\r\n\t\t\t\t}\r\n\t\t\t\telse btnFocus.focus();\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Initiate all the required pieces for the dialog box\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tsetup : function (fromQueue) {\r\n\t\t\t\tvar item = queue[0],\r\n\t\t\t\t self = this,\r\n\t\t\t\t transitionDone;\r\n\r\n\t\t\t\t// dialog is open\r\n\t\t\t\tisopen = true;\r\n\t\t\t\t// Set button focus after transition\r\n\t\t\t\ttransitionDone = function (event) {\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\tself.setFocus();\r\n\t\t\t\t\t// unbind event so function only gets called once\r\n\t\t\t\t\tself.unbind(elDialog, self.transition.type, transitionDone);\r\n\t\t\t\t};\r\n\t\t\t\t// whether CSS transition exists\r\n\t\t\t\tif (this.transition.supported && !fromQueue) {\r\n\t\t\t\t\tthis.bind(elDialog, this.transition.type, transitionDone);\r\n\t\t\t\t}\r\n\t\t\t\t// build the proper dialog HTML\r\n\t\t\t\telDialog.innerHTML = this.build(item);\r\n\t\t\t\t// assign all the common elements\r\n\t\t\t\tbtnReset = $(\"alertify-resetFocus\");\r\n\t\t\t\tbtnResetBack = $(\"alertify-resetFocusBack\");\r\n\t\t\t\tbtnOK = $(\"alertify-ok\") || undefined;\r\n\t\t\t\tbtnCancel = $(\"alertify-cancel\") || undefined;\r\n\t\t\t\tbtnFocus = (_alertify.buttonFocus === \"cancel\") ? btnCancel : ((_alertify.buttonFocus === \"none\") ? $(\"alertify-noneFocus\") : btnOK),\r\n\t\t\t\tinput = $(\"alertify-text\") || undefined;\r\n\t\t\t\tform = $(\"alertify-form\") || undefined;\r\n\t\t\t\t// add placeholder value to the input field\r\n\t\t\t\tif (typeof item.placeholder === \"string\" && item.placeholder !== \"\") input.value = item.placeholder;\r\n\t\t\t\tif (fromQueue) this.setFocus();\r\n\t\t\t\tthis.addListeners(item.callback);\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Unbind events to elements\r\n\t\t\t *\r\n\t\t\t * @param {Object} el HTML Object\r\n\t\t\t * @param {Event} event Event to detach to element\r\n\t\t\t * @param {Function} fn Callback function\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tunbind : function (el, event, fn) {\r\n\t\t\t\tif (typeof el.removeEventListener === \"function\") {\r\n\t\t\t\t\tel.removeEventListener(event, fn, false);\r\n\t\t\t\t} else if (el.detachEvent) {\r\n\t\t\t\t\tel.detachEvent(\"on\" + event, fn);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn {\r\n\t\t\talert : function (message, fn, cssClass) { _alertify.dialog(message, \"alert\", fn, \"\", cssClass); return this; },\r\n\t\t\tconfirm : function (message, fn, cssClass) { _alertify.dialog(message, \"confirm\", fn, \"\", cssClass); return this; },\r\n\t\t\textend : _alertify.extend,\r\n\t\t\tinit : _alertify.init,\r\n\t\t\tlog : function (message, type, wait) { _alertify.log(message, type, wait); return this; },\r\n\t\t\tprompt : function (message, fn, placeholder, cssClass) { _alertify.dialog(message, \"prompt\", fn, placeholder, cssClass); return this; },\r\n\t\t\tsuccess : function (message, wait) { _alertify.log(message, \"success\", wait); return this; },\r\n\t\t\terror : function (message, wait) { _alertify.log(message, \"error\", wait); return this; },\r\n\t\t\tset : function (args) { _alertify.set(args); },\r\n\t\t\tlabels : _alertify.labels,\r\n\t\t\tdebug : _alertify.handleErrors\r\n\t\t};\r\n\t};\r\n\r\n\t// AMD and window support\r\n\tif (typeof define === \"function\") {\r\n\t\tdefine([], function () { return new Alertify(); });\r\n\t} else if (typeof global.alertify === \"undefined\") {\r\n\t\tglobal.alertify = new Alertify();\r\n\t}\r\n\r\n}(window));\r\n","module.exports = \"
\\r\\n
\\r\\n

{{'pageHeader.About' | translate}}

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

Welcome

\\r\\n

This application template provides a quick and convenient way to create ASP.NET Core 2.2 / Angular 7 applications

\\r\\n\\r\\n
Technologies
\\r\\n \\r\\n\\r\\n
\\r\\n
Features
\\r\\n
    \\r\\n
  • A complete backend and frontend project structure to build on, with login, user and permission-based role management integrated
  • \\r\\n
  • Clean and simple Angular/ASP.NET Core code to serve as a guide
  • \\r\\n
  • Data Access Layer built with the Repository and Unit of Work Pattern
  • \\r\\n
  • Code First Database
  • \\r\\n
  • A RESTful API Design
  • \\r\\n
  • Dialog and Notification Services
  • \\r\\n
  • Configuration Page and Configuration Service
  • \\r\\n
  • Integrated Internationaliztion
  • \\r\\n
  • Theming with SASS
  • \\r\\n
  • Ready-to-use email API
  • \\r\\n
  • Handling Access and Refresh Tokens with WebStorage (Bearer authentication) - No Cookies
  • \\r\\n
  • CRUD APIs
  • \\r\\n
  • etc.
  • \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n Get more templates\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".pageHeader {\\n margin-bottom: 30px; }\\n\\n.reduced-font {\\n line-height: 1.4; }\\n\\n.bg-features {\\n border-radius: 0.25rem;\\n padding: 0.5rem;\\n margin-bottom: 0.5rem; }\\n\\n.bg-features ul {\\n position: relative;\\n z-index: 100; }\\n\\n.bg-features .logo {\\n font-size: 200px;\\n position: absolute;\\n top: 2rem;\\n right: 10px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hYm91dC9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGFib3V0XFxhYm91dC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLG1CQUFtQixFQUFBOztBQUd2QjtFQUNJLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLHNCQUFzQjtFQUN0QixlQUFlO0VBQ2YscUJBQXFCLEVBQUE7O0FBR3pCO0VBQ0ksa0JBQWtCO0VBQ2xCLFlBQVksRUFBQTs7QUFHaEI7RUFDSSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxXQUFXLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2Fib3V0L2Fib3V0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnBhZ2VIZWFkZXIge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxufVxyXG5cclxuLnJlZHVjZWQtZm9udCB7XHJcbiAgICBsaW5lLWhlaWdodDogMS40O1xyXG59XHJcblxyXG4uYmctZmVhdHVyZXMge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcclxuICAgIHBhZGRpbmc6IDAuNXJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxufVxyXG5cclxuLmJnLWZlYXR1cmVzIHVsIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDEwMDtcclxufVxyXG5cclxuLmJnLWZlYXR1cmVzIC5sb2dvIHtcclxuICAgIGZvbnQtc2l6ZTogMjAwcHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDJyZW07XHJcbiAgICByaWdodDogMTBweDtcclxufVxyXG4iXX0= */\"","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Component } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\n@Component({\r\n selector: 'about',\r\n templateUrl: './about.component.html',\r\n styleUrls: ['./about.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class AboutComponent {\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n Loaded!\\r\\n

\\r\\n

\\r\\n Next Gen - FowkesCore ©\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".app-container.app-component {\\n height: 100%; }\\n\\nmain.app-component {\\n height: calc(100% - 40px);\\n padding-top: 60px;\\n transition: margin-left .5s; }\\n\\n.footer-height.app-component {\\n height: 40px; }\\n\\nfooter.app-component {\\n width: 100%;\\n height: 40px;\\n line-height: 40px;\\n background-color: #f5f5f5; }\\n\\n.navbar-brand.app-component {\\n margin-top: 3px; }\\n\\n.navbar-brand.app-component > img {\\n height: 31px;\\n margin-top: -3px; }\\n\\n.navbar.app-component .nav-pills > .active > a,\\n.navbar.app-component .nav-pills > .active > a:hover,\\n.navbar.app-component .nav-pills > .active > a:focus {\\n background-color: #efefef;\\n color: black !important; }\\n\\n.topnav-centered {\\n position: absolute;\\n left: 50%;\\n transform: translatex(-50%); }\\n\\n/* Right-aligned section inside the top navigation */\\n\\n.topnav-right {\\n float: right; }\\n\\n/* Responsive navigation menu - display links on top of each other instead of next to each other (for mobile devices) */\\n\\n@media screen and (max-width: 600px) {\\n .topnav a, .topnav-right {\\n float: none;\\n display: block; }\\n .topnav-centered a {\\n position: relative;\\n top: 0;\\n left: 0;\\n transform: none; } }\\n\\n.navbar-center {\\n position: absolute;\\n left: 50%;\\n transform: translatex(-50%); }\\n\\n.navbar.app-component .nav-pills > li > a {\\n font-weight: bold;\\n padding-top: 0.4rem;\\n padding-bottom: 0.4rem; }\\n\\n.navbar.app-component .nav-link,\\n.navbar.app-component .navbar-text {\\n color: white; }\\n\\n@media screen and (max-width: 991px) {\\n .navbar.app-component .nav-pills > li + li {\\n margin-left: 0;\\n margin-top: 1px; } }\\n\\n@media screen and (min-width: 992px) {\\n .navbar.app-component .nav-pills > li + li {\\n margin-left: 2px; }\\n .container {\\n max-width: 1600px; } }\\n\\n.prebootShow.app-component {\\n opacity: 1 !important; }\\n\\n.prebootStep.app-component {\\n opacity: 0;\\n transition: .5s ease-in-out all; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGFwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJLFlBQVksRUFBQTs7QUFHaEI7RUFDRSx5QkFBcUM7RUFDckMsaUJBQWlCO0VBQ2pCLDJCQUEyQixFQUFBOztBQUc3QjtFQUNJLFlBYmUsRUFBQTs7QUFnQm5CO0VBQ0ksV0FBVztFQUNYLFlBbEJlO0VBbUJmLGlCQW5CZTtFQW9CZix5QkFBeUIsRUFBQTs7QUFHN0I7RUFDRyxlQUFlLEVBQUE7O0FBR2xCO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUdsQjs7O0VBR0kseUJBQXlCO0VBQ3pCLHVCQUF1QixFQUFBOztBQUczQjtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsMkJBQTJCLEVBQUE7O0FBRzdCLG9EQUFBOztBQUNBO0VBQ0UsWUFBWSxFQUFBOztBQUdkLHVIQUFBOztBQUNBO0VBQ0U7SUFDRSxXQUFXO0lBQ1gsY0FBYyxFQUFBO0VBR2hCO0lBQ0Usa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixPQUFPO0lBQ1AsZUFBZSxFQUFBLEVBQ2hCOztBQUdIO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCwyQkFBMkIsRUFBQTs7QUFJN0I7RUFDRSxpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLHNCQUFzQixFQUFBOztBQUd4Qjs7RUFFSSxZQUFZLEVBQUE7O0FBSWhCO0VBQ0k7SUFDSSxjQUFjO0lBQ2QsZUFBZSxFQUFBLEVBQ2xCOztBQUdMO0VBQ0k7SUFDSSxnQkFBZ0IsRUFBQTtFQUV0QjtJQUNFLGlCQUNGLEVBQUEsRUFBQzs7QUFJSDtFQUNJLHFCQUFxQixFQUFBOztBQUd6QjtFQUNJLFVBQVU7RUFDViwrQkFBK0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXBwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGZvb3RlckhlaWdodDogNDBweDtcclxuXHJcbi5hcHAtY29udGFpbmVyLmFwcC1jb21wb25lbnQge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG5tYWluLmFwcC1jb21wb25lbnQge1xyXG4gIGhlaWdodDogY2FsYygxMDAlIC0gI3skZm9vdGVySGVpZ2h0fSk7XHJcbiAgcGFkZGluZy10b3A6IDYwcHg7XHJcbiAgdHJhbnNpdGlvbjogbWFyZ2luLWxlZnQgLjVzO1xyXG59XHJcblxyXG4uZm9vdGVyLWhlaWdodC5hcHAtY29tcG9uZW50IHtcclxuICAgIGhlaWdodDogJGZvb3RlckhlaWdodDtcclxufVxyXG5cclxuZm9vdGVyLmFwcC1jb21wb25lbnQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6ICRmb290ZXJIZWlnaHQ7XHJcbiAgICBsaW5lLWhlaWdodDogJGZvb3RlckhlaWdodDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XHJcbn1cclxuXHJcbi5uYXZiYXItYnJhbmQuYXBwLWNvbXBvbmVudHtcclxuICAgbWFyZ2luLXRvcDogM3B4O1xyXG59XHJcblxyXG4ubmF2YmFyLWJyYW5kLmFwcC1jb21wb25lbnQgPiBpbWcge1xyXG4gIGhlaWdodDogMzFweDtcclxuICBtYXJnaW4tdG9wOiAtM3B4O1xyXG59XHJcblxyXG4ubmF2YmFyLmFwcC1jb21wb25lbnQgLm5hdi1waWxscyA+IC5hY3RpdmUgPiBhLFxyXG4ubmF2YmFyLmFwcC1jb21wb25lbnQgLm5hdi1waWxscyA+IC5hY3RpdmUgPiBhOmhvdmVyLFxyXG4ubmF2YmFyLmFwcC1jb21wb25lbnQgLm5hdi1waWxscyA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XHJcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnRvcG5hdi1jZW50ZXJlZCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZXgoLTUwJSk7XHJcbn1cclxuXHJcbi8qIFJpZ2h0LWFsaWduZWQgc2VjdGlvbiBpbnNpZGUgdGhlIHRvcCBuYXZpZ2F0aW9uICovXHJcbi50b3BuYXYtcmlnaHQge1xyXG4gIGZsb2F0OiByaWdodDtcclxufVxyXG5cclxuLyogUmVzcG9uc2l2ZSBuYXZpZ2F0aW9uIG1lbnUgLSBkaXNwbGF5IGxpbmtzIG9uIHRvcCBvZiBlYWNoIG90aGVyIGluc3RlYWQgb2YgbmV4dCB0byBlYWNoIG90aGVyIChmb3IgbW9iaWxlIGRldmljZXMpICovXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgLnRvcG5hdiBhLCAudG9wbmF2LXJpZ2h0IHtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAudG9wbmF2LWNlbnRlcmVkIGEge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5uYXZiYXItY2VudGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRleCgtNTAlKTtcclxufVxyXG5cclxuXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2LXBpbGxzID4gbGkgPiBhIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nLXRvcDogMC40cmVtO1xyXG4gIHBhZGRpbmctYm90dG9tOiAwLjRyZW07XHJcbn1cclxuXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2LWxpbmssXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2YmFyLXRleHQge1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG5cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcclxuICAgIC5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2LXBpbGxzID4gbGkgKyBsaSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLm5hdmJhci5hcHAtY29tcG9uZW50IC5uYXYtcGlsbHMgPiBsaSArIGxpIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMnB4O1xyXG4gICAgfVxyXG4gIC5jb250YWluZXIge1xyXG4gICAgbWF4LXdpZHRoOiAxNjAwcHhcclxuICB9XHJcbn1cclxuXHJcblxyXG4ucHJlYm9vdFNob3cuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wcmVib290U3RlcC5hcHAtY29tcG9uZW50IHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQgYWxsO1xyXG59XHJcbiJdfQ== */\"","\r\nimport { Component, ViewEncapsulation, OnInit, OnDestroy, ViewChildren, AfterViewInit, QueryList, ElementRef } from '@angular/core';\r\nimport { Router, NavigationStart } from '@angular/router';\r\nimport { ToastaService, ToastaConfig, ToastOptions, ToastData } from 'ngx-toasta';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, AlertDialog, DialogType, AlertCommand, AlertMessage, MessageSeverity } from '../services/alert.service';\r\nimport { NotificationService } from '../services/notification.service';\r\nimport { AppTranslationService } from '../services/app-translation.service';\r\nimport { AccountService } from '../services/account.service';\r\nimport { FowkesOnlineService } from '../services/fowkes-online.service';\r\nimport { SysproService } from '../services/syspro.service';\r\nimport { ReportService } from '../services/report.service';\r\nimport { LocalStoreManager } from '../services/local-store-manager.service';\r\nimport { AppTitleService } from '../services/app-title.service';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { ConfigurationService } from '../services/configuration.service';\r\nimport { Permission } from '../models/permission.model';\r\nimport { LoginComponent } from '../components/login/login.component';\r\n\r\nconst alertify: any = require('../assets/scripts/alertify.js');\r\n\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit, AfterViewInit {\r\n\r\n isAppLoaded: boolean;\r\n isUserLoggedIn: boolean;\r\n shouldShowLoginModal: boolean;\r\n removePrebootScreen: boolean;\r\n newNotificationCount = 0;\r\n loggedInBranch = '';\r\n appTitle = 'Next Gen';\r\n appLogo = require('../assets/images/logo.png');\r\n testEnvironment: boolean;\r\n\r\n stickyToasties: number[] = [];\r\n\r\n dataLoadingConsecutiveFailures = 0;\r\n notificationsLoadingSubscription: any;\r\n\r\n @ViewChildren('loginModal,loginControl')\r\n modalLoginControls: QueryList;\r\n\r\n loginModal: ModalDirective;\r\n loginControl: LoginComponent;\r\n\r\n gT = (key: string | Array, interpolateParams?: Object) => this.translationService.getTranslation(key, interpolateParams);\r\n\r\n get notificationsTitle() {\r\n if (this.newNotificationCount) {\r\n return `${this.gT('app.Notifications')} (${this.newNotificationCount} ${this.gT('app.New')})`;\r\n } else {\r\n return this.gT('app.Notifications');\r\n }\r\n }\r\n\r\n\r\n constructor(\r\n storageManager: LocalStoreManager,\r\n private toastaService: ToastaService,\r\n private toastaConfig: ToastaConfig,\r\n private accountService: AccountService,\r\n private alertService: AlertService,\r\n private notificationService: NotificationService,\r\n private appTitleService: AppTitleService,\r\n private authService: AuthService,\r\n private translationService: AppTranslationService,\r\n private fowkesOnlineService: FowkesOnlineService,\r\n private sysproService: SysproService,\r\n public configurations: ConfigurationService,\r\n public router: Router) {\r\n\r\n storageManager.initialiseStorageSyncListener();\r\n\r\n this.toastaConfig.theme = 'bootstrap';\r\n this.toastaConfig.position = 'top-right';\r\n this.toastaConfig.limit = 100;\r\n this.toastaConfig.showClose = true;\r\n\r\n this.appTitleService.appName = this.appTitle;\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.modalLoginControls.changes.subscribe((controls: QueryList) => {\r\n controls.forEach(control => {\r\n if (control) {\r\n if (control instanceof LoginComponent) {\r\n this.loginControl = control;\r\n this.loginControl.modalClosedCallback = () => this.loginModal.hide();\r\n } else {\r\n this.loginModal = control;\r\n this.loginModal.show();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n onLoginModalShown() {\r\n this.alertService.showStickyMessage('Session Expired', 'Your Session has expired. Please log in again', MessageSeverity.info);\r\n }\r\n\r\n\r\n onLoginModalHidden() {\r\n this.alertService.resetStickyMessage();\r\n this.loginControl.reset();\r\n this.shouldShowLoginModal = false;\r\n\r\n if (this.authService.isSessionExpired) {\r\n this.alertService.showStickyMessage('Session Expired', 'Your Session has expired. Please log in again to renew your session', MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onLoginModalHide() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.testEnvironment = false;\r\n this.isUserLoggedIn = this.authService.isLoggedIn;\r\n \r\n \r\n // 0.5 extra sec to display preboot/loader information. Preboot screen is removed 0.5 sec later\r\n setTimeout(() => this.isAppLoaded = true, 500);\r\n setTimeout(() => this.removePrebootScreen = true, 1000);\r\n\r\n setTimeout(() => {\r\n if (this.isUserLoggedIn) {\r\n this.alertService.resetStickyMessage();\r\n\r\n // if (!this.authService.isSessionExpired)\r\n this.alertService.showMessage('Login', `Welcome back ${this.userName}! You are logged into ${this.branchCode} `, MessageSeverity.default);\r\n // else\r\n // this.alertService.showStickyMessage(\"Session Expired\", \"Your Session has expired. Please log in again\", MessageSeverity.warn);\r\n }\r\n }, 2000);\r\n\r\n\r\n this.alertService.getDialogEvent().subscribe(alert => this.showDialog(alert));\r\n this.alertService.getMessageEvent().subscribe(message => this.showToast(message));\r\n\r\n this.authService.reLoginDelegate = () => this.shouldShowLoginModal = true;\r\n\r\n this.authService.getLoginStatusEvent().subscribe(isLoggedIn => {\r\n this.isUserLoggedIn = isLoggedIn;\r\n \r\n if (this.isUserLoggedIn) {\r\n this.initNotificationsLoading();\r\n } else {\r\n this.unsubscribeNotifications();\r\n }\r\n\r\n setTimeout(() => {\r\n if (!this.isUserLoggedIn) {\r\n this.alertService.showMessage('Session Ended!', '', MessageSeverity.default);\r\n }\r\n }, 500);\r\n });\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeNotifications();\r\n }\r\n\r\n\r\n private unsubscribeNotifications() {\r\n if (this.notificationsLoadingSubscription) {\r\n this.notificationsLoadingSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n\r\n initNotificationsLoading() {\r\n\r\n this.notificationsLoadingSubscription = this.notificationService.getNewNotificationsPeriodically()\r\n .subscribe(notifications => {\r\n this.dataLoadingConsecutiveFailures = 0;\r\n this.newNotificationCount = notifications.filter(n => !n.isRead).length;\r\n },\r\n error => {\r\n this.alertService.logError(error);\r\n\r\n if (this.dataLoadingConsecutiveFailures++ < 20) {\r\n setTimeout(() => this.initNotificationsLoading(), 5000);\r\n } else {\r\n this.alertService.showStickyMessage('Load Error', 'Loading new notifications from the server failed!', MessageSeverity.error);\r\n }\r\n });\r\n }\r\n\r\n\r\n markNotificationsAsRead() {\r\n\r\n const recentNotifications = this.notificationService.recentNotifications;\r\n\r\n if (recentNotifications.length) {\r\n this.notificationService.readUnreadNotification(recentNotifications.map(n => n.id), true)\r\n .subscribe(response => {\r\n for (const n of recentNotifications) {\r\n n.isRead = true;\r\n }\r\n\r\n this.newNotificationCount = recentNotifications.filter(n => !n.isRead).length;\r\n },\r\n error => {\r\n this.alertService.logError(error);\r\n this.alertService.showMessage('Notification Error', 'Marking read notifications failed', MessageSeverity.error);\r\n\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n showDialog(dialog: AlertDialog) {\r\n\r\n alertify.set({\r\n labels: {\r\n ok: dialog.okLabel || 'OK',\r\n cancel: dialog.cancelLabel || 'Cancel'\r\n }\r\n });\r\n\r\n switch (dialog.type) {\r\n case DialogType.alert:\r\n alertify.alert(dialog.message);\r\n\r\n break;\r\n case DialogType.confirm:\r\n alertify\r\n .confirm(dialog.message, (e) => {\r\n if (e) {\r\n dialog.okCallback();\r\n } else {\r\n if (dialog.cancelCallback) {\r\n dialog.cancelCallback();\r\n }\r\n }\r\n });\r\n\r\n break;\r\n case DialogType.prompt:\r\n alertify\r\n .prompt(dialog.message, (e, val) => {\r\n if (e) {\r\n dialog.okCallback(val);\r\n } else {\r\n if (dialog.cancelCallback) {\r\n dialog.cancelCallback();\r\n }\r\n }\r\n }, dialog.defaultValue);\r\n\r\n break;\r\n }\r\n }\r\n\r\n\r\n\r\n showToast(alert: AlertCommand) {\r\n\r\n if (alert.operation == 'clear') {\r\n for (const id of this.stickyToasties.slice(0)) {\r\n this.toastaService.clear(id);\r\n }\r\n\r\n return;\r\n }\r\n\r\n const toastOptions: ToastOptions = {\r\n title: alert.message.summary,\r\n msg: alert.message.detail,\r\n };\r\n\r\n\r\n if (alert.operation == 'add_sticky') {\r\n toastOptions.timeout = 0;\r\n\r\n toastOptions.onAdd = (toast: ToastData) => {\r\n this.stickyToasties.push(toast.id);\r\n };\r\n\r\n toastOptions.onRemove = (toast: ToastData) => {\r\n const index = this.stickyToasties.indexOf(toast.id, 0);\r\n\r\n if (index > -1) {\r\n this.stickyToasties.splice(index, 1);\r\n }\r\n\r\n if (alert.onRemove) {\r\n alert.onRemove();\r\n }\r\n\r\n toast.onAdd = null;\r\n toast.onRemove = null;\r\n };\r\n } else {\r\n toastOptions.timeout = 4000;\r\n }\r\n\r\n\r\n switch (alert.message.severity) {\r\n case MessageSeverity.default: this.toastaService.default(toastOptions); break;\r\n case MessageSeverity.info: this.toastaService.info(toastOptions); break;\r\n case MessageSeverity.success: this.toastaService.success(toastOptions); break;\r\n case MessageSeverity.error: this.toastaService.error(toastOptions); break;\r\n case MessageSeverity.warn: this.toastaService.warning(toastOptions); break;\r\n case MessageSeverity.wait: this.toastaService.wait(toastOptions); break;\r\n }\r\n }\r\n\r\n\r\n\r\n logout() {\r\n this.authService.logout();\r\n this.authService.redirectLogoutUser();\r\n }\r\n\r\n\r\n getYear() {\r\n return new Date().getUTCFullYear();\r\n }\r\n\r\n\r\n get userName(): string {\r\n return this.authService.currentUser ? this.authService.currentUser.userName : '';\r\n }\r\n\r\n\r\n get fullName(): string {\r\n return this.authService.currentUser ? this.authService.currentUser.fullName : '';\r\n }\r\n\r\n get currentApplication(): string {\r\n return this.authService.currentUser ? this.authService.currentUser.aspnetApplication : '';\r\n }\r\n\r\n\r\n get SysproSessionId(): string {\r\n return this.authService.currentUser ? this.authService.currentUser.sysproSessionId : '';\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewCustomersPermission); // eg. viewCustomersPermission\r\n }\r\n\r\n get canViewProducts() {\r\n return this.accountService.userHasPermission(Permission.viewQuotesPermission); // eg. viewProductsPermission\r\n }\r\n\r\n get canViewSalesOrders() {\r\n return this.accountService.userHasPermission(Permission.viewSalesOrdersPermission);\r\n }\r\n\r\n\r\n get canViewPurchaseOrders() {\r\n return this.accountService.userHasPermission(Permission.viewPurchaseOrdersPermission);\r\n }\r\n\r\n get canViewReports() {\r\n return this.accountService.userHasPermission(Permission.viewReportsPermission);\r\n }\r\n\r\n get canViewDocuments() {\r\n return this.accountService.userHasPermission(Permission.viewDocumentsPermission);\r\n }\r\n\r\n get canViewEquation() {\r\n return this.accountService.userHasPermission(Permission.eqationPODsPermission);\r\n }\r\n\r\n\r\n get canSearchPODs() {\r\n return this.accountService.userHasPermission(Permission.searchPODsPermission);\r\n }\r\n\r\n get canViewQuotes() {\r\n return this.accountService.userHasPermission(Permission.viewQuotesPermission);\r\n }\r\n\r\n get canViewOrders() {\r\n return this.accountService.userHasPermission(Permission.viewQuotesPermission);\r\n }\r\n\r\n\r\n get canViewWebOrders() {\r\n return this.accountService.userHasPermission(Permission.webQuotesPermission);\r\n }\r\n\r\n\r\n get canViewDriverConfiig() {\r\n return this.accountService.userHasPermission(Permission.viewITSConfigPermission);\r\n }\r\n\r\n get canManageToolrepairs() {\r\n return this.accountService.userHasPermission(Permission.manageRepairsPermission);\r\n }\r\n\r\n\r\n get canViewToolrepairs() {\r\n return this.accountService.userHasPermission(Permission.viewRepairsPermission);\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYXRlZ29yeS10ZW1wbGF0ZS9jaGlsZC1pdGVtL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcY2F0ZWdvcnktdGVtcGxhdGVcXGNoaWxkLWl0ZW1cXGNoaWxkLWl0ZW0uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2F0ZWdvcnktdGVtcGxhdGUvY2hpbGQtaXRlbS9jaGlsZC1pdGVtLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi50Ym9keSB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbn1cclxuIl19 */\"","import { Component, ViewChild, TemplateRef, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { Brand } from '../../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CMConsildidatedView } from '../../../models/cms-category-stockcodes.model';\r\nimport { CMCategories } from '../../../models/cms-category.model';\r\nimport { CMStockCode } from '../../../models/cms-stockcode.model';\r\nimport { StockCodeDocuments } from '../../../models/cms-stockcode.documents.model';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport {\r\n TreeviewItem, TreeviewConfig, TreeviewHelper, TreeviewComponent,\r\n TreeviewEventParser, OrderDownlineTreeviewEventParser, DownlineTreeviewItem\r\n} from 'ngx-treeview';\r\n\r\nimport { CatTemplate } from '../../../models/category-template.model';\r\n\r\n@Component({\r\n selector: 'child-item',\r\n templateUrl: './child-item.component.html',\r\n styleUrls: ['./child-item.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ChildComponent {\r\n\r\n @Input() items: CatTemplate[];\r\n @ViewChild('childMenu') public childMenu;\r\n\r\n\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('brandModal')\r\n brandModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n urlString: string = \"https://www.fowkes.co.za/FowkesOnline/FowkesDocuments/ContentManagementDocuments/BrandImages/\";\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n rows: CMStockCode[] = [];\r\n rowsCache: CMStockCode[];\r\n itemDetail: CMStockCode = new CMStockCode();\r\n\r\n\r\n searchTerm: string = \"\";\r\n brands: Brand[];\r\n brandDetail: Brand = new Brand();\r\n\r\n categoryStockCodeList: CMConsildidatedView[] = [];\r\n CategoryList: CMCategories[] = [];\r\n rootCategories: CMCategories[];\r\n\r\n\r\n treeRows: string[];\r\n item: any;\r\n //data: DocumentManagmement;\r\n\r\n seletedItem: TreeviewItem;\r\n\r\n config: TreeviewConfig = {\r\n hasAllCheckBox: false,\r\n hasFilter: false,\r\n hasCollapseExpand: true,\r\n decoupleChildFromParent: true,\r\n maxHeight: 500,\r\n hasDivider: false\r\n };\r\n\r\n @ViewChild(TreeviewComponent) treeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('itemTemplate')\r\n itemTemplate: TemplateRef;\r\n\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n // this.sysproService.getBrands().subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n this.sysproService.getAllCMCategories().subscribe(x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n // this.sysproService.GetAllCMStockCodes().subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDataLoadSuccessful(categories: any[]) {\r\n\r\n\r\n //this.CategoryList = [...categories];\r\n\r\n //if (this.CategoryList[0] ) {\r\n\r\n // //Add all the root categories\r\n // var tempList = this.CategoryList.filter(x => x.parentCategoryName === \"Root\");\r\n\r\n // tempList.forEach((cat: CMCategories, index: number) => {\r\n // let newCategoryRow = new CMConsildidatedView();\r\n // newCategoryRow.categoryId = cat.id;\r\n // newCategoryRow.categoryName = cat.categoryName;\r\n // newCategoryRow.parentCategoryName = cat.parentCategoryName;\r\n // newCategoryRow.categoryImage = cat.categoryImage;\r\n // newCategoryRow.categorySequence = cat.sequence;\r\n // newCategoryRow.categoryStatusIndicator = cat.statusIndicator;\r\n // newCategoryRow.categoryLevel = 1;\r\n // newCategoryRow.collapsed = true;\r\n // newCategoryRow.categoryLastLevel = this.CategoryList.filter(x => x.parentCategoryName.trim() === cat.categoryName).length >= 1 ? false : true;\r\n // newCategoryRow.path = cat.categoryName;\r\n // this.newMethod(newCategoryRow, cat);\r\n // });\r\n\r\n // this.rootCategories = [...tempList];\r\n\r\n // //console.log(this.categoryStockCodeList);\r\n // //this.populateChildCategories();\r\n\r\n // if (this.searchTerm.trim() != \"\") {\r\n // this.onSearchChanged(this.searchTerm);\r\n // }\r\n\r\n //}\r\n //else {\r\n // this.emptyDetails = true;\r\n //}\r\n }\r\n private newMethod(newCategoryRow: CMConsildidatedView, cat: CMCategories) {\r\n //newCategoryRow.childCategories = [];\r\n //newCategoryRow.stockCodeList = [];\r\n // if (newCategoryRow.categoryLastLevel) {\r\n // this.sysproService.getStockCodesForCategory(cat.id).subscribe(x => {\r\n // newCategoryRow.stockCodeList = x;\r\n // newCategoryRow.stockCodeList.forEach(s => {\r\n // s.path = newCategoryRow.path;\r\n // });\r\n // }, error => this.onDataLoadFailed(error));\r\n\r\n // this.categoryStockCodeList.push(newCategoryRow);\r\n // }\r\n // else {\r\n // this.CategoryList.filter(x => x.parentCategoryName === cat.categoryName).forEach(i => {\r\n // let childRow = new CMConsildidatedView();\r\n // childRow.categoryId = i.id;\r\n // childRow.categoryName = i.categoryName;\r\n // childRow.parentCategoryName = i.parentCategoryName;\r\n // childRow.categoryImage = i.categoryImage;\r\n // childRow.categorySequence = i.sequence;\r\n // childRow.categoryStatusIndicator = i.statusIndicator;\r\n // childRow.categoryLevel = newCategoryRow.categoryLevel++;\r\n // childRow.path = newCategoryRow.path + \"|\" + i.categoryName;\r\n // newCategoryRow.collapsed = true;\r\n // childRow.categoryLastLevel = this.CategoryList.filter(x => x.parentCategoryName === i.categoryName).length >= 1 ? false : true;\r\n // newCategoryRow.childCategories.push(childRow);\r\n\r\n // this.newMethod(childRow, i);\r\n // });\r\n\r\n // this.categoryStockCodeList.push(newCategoryRow);\r\n // }\r\n }\r\n\r\n //populateChildCategories() {\r\n\r\n // var tempList = this.categoryStockCodeList;\r\n // tempList.forEach((parent: CMConsildidatedView, index: number) => {\r\n // this.addChildren(parent);\r\n\r\n // });\r\n\r\n //}\r\n\r\n // addChildren(parent: CMConsildidatedView): CMConsildidatedView[]{\r\n // var childCategories = this.CategoryList.filter(x => x.parentCategoryName === parent.categoryName);\r\n //if (childCategories.length >= 1) {\r\n // var tempList = [];\r\n // childCategories.forEach((cat: CMCategories, index: number) => {\r\n // console.log(index, cat);\r\n // let newCategoryRow = new CMConsildidatedView();\r\n // newCategoryRow.categoryId = cat.id;\r\n // newCategoryRow.categoryName = cat.categoryName;\r\n // newCategoryRow.parentCategoryName = cat.parentCategoryName;\r\n // newCategoryRow.categoryImage = cat.categoryImage;\r\n // newCategoryRow.categorySequence = cat.sequence;\r\n // newCategoryRow.categoryStatusIndicator = cat.statusIndicator;\r\n // newCategoryRow.categoryLastLevel = this.CategoryList.filter(x => x.parentCategoryName === cat.categoryName).length >= 1;\r\n // newCategoryRow.categoryLevel = parent.categoryLevel ++;\r\n // newCategoryRow.stockCodeList = [];\r\n // newCategoryRow.childCategories = this.addChildren(newCategoryRow);\r\n // tempList.push(newCategoryRow);\r\n // });\r\n\r\n // return tempList;\r\n // }\r\n // else {\r\n // this.sysproService.getStockCodesForCategory(parent.categoryId).subscribe(x => this.onStockCodesForCategoryLoadSuccessful(x, parent), error => this.onDataLoadFailed(error));\r\n // }\r\n\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n //}\r\n\r\n onStockCodesForCategoryLoadSuccessful(stockCodes: CMStockCode[], cat: CMConsildidatedView): void {\r\n //if (stockCodes[0]) {\r\n // let newCategoryRow = new CMConsildidatedView();\r\n // newCategoryRow.categoryId = cat.categoryId;\r\n // newCategoryRow.categoryName = cat.categoryName;\r\n // newCategoryRow.parentCategoryName = cat.parentCategoryName;\r\n // newCategoryRow.categoryImage = cat.categoryImage;\r\n // newCategoryRow.categorySequence = cat.categorySequence;\r\n // newCategoryRow.categoryStatusIndicator = cat.categoryStatusIndicator;\r\n // newCategoryRow.categoryLastLevel = this.CategoryList.filter(x => x.parentCategoryName === cat.categoryName).length >= 1;\r\n // newCategoryRow.categoryLevel = cat.categoryLevel++;\r\n // newCategoryRow.stockCodeList = stockCodes;\r\n // this.categoryStockCodeList.push(newCategoryRow);\r\n //}\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.brandName, r.stockCode, r.stockCodeImage, r.categoryName, r.description));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n deleteRow(row: Brand) {\r\n //Check that brand doesnt have any stock codes assigned\r\n this.sysproService.getStockCodesForBrand(row.id).subscribe(x => this.onValidationSuccesful(x, row), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n onValidationSuccesful(x: CMStockCode[], row: Brand): void {\r\n console.log(x);\r\n if (x && x.length >= 1) {\r\n this.alertService.showMessage('Warning', `You cannot delete a brand with stock codes associated. There are ` + x.length + ' items linked to this brand ', MessageSeverity.warn);\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.deleteBrand(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n\r\n enableEditMethod(row: Brand, i) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n console.log(i, row);\r\n }\r\n\r\n saveSegment(row: Brand) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.editBrand(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n brandModalHide() {\r\n this.brandDetail = new Brand();\r\n this.brandModal.hide();\r\n }\r\n\r\n newBrand() {\r\n\r\n if (!this.brandModal) {\r\n setTimeout(() => {\r\n if (this.brandModal) {\r\n this.brandModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.brandModal.show();\r\n }\r\n\r\n }\r\n\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newformData.append('file', file);\r\n // this.sysproService.postFileData(formData, \"BRAND\", row.brandName).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n //this.myForm.patchValue({\r\n // fileSource: file\r\n //});\r\n }\r\n }\r\n\r\n saveBrand() {\r\n\r\n //Validate save\r\n if (this.brandDetail) {\r\n if (this.brandDetail.brandName) {\r\n if (this.rowsCache.filter(x => x.brandName == this.brandDetail.brandName).length >= 1) {\r\n this.alertService.showMessage('Warning', `This brand name already exists`, MessageSeverity.warn);\r\n }\r\n else {\r\n if (this.newformData.has('file')) {\r\n this.sysproService.postFileData(this.newformData, \"BRAND\", this.brandDetail.brandName).subscribe(x => this.newFilePostedSuccess(x), error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Remeber to add a file first`, MessageSeverity.warn);}\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a brand name`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n newFilePostedSuccess(x: any) {\r\n\r\n console.log(x);\r\n this.brandDetail.brandImage = x.fileName;\r\n this.brandDetail.createdBy = this.accountService.currentUser.email;\r\n this.brandDetail.brandImageChanged = new Date();\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.addBrand(this.brandDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n onSaveSuccesful(): void {\r\n\r\n this.brandModalHide(); \r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n //get f() {\r\n // return this.myForm.controls;\r\n //}\r\n\r\n onFileChange(event, row: Brand) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n this.sysproService.postFileData(formData, \"BRAND\", row.brandName).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n //this.myForm.patchValue({\r\n // fileSource: file\r\n //});\r\n }\r\n }\r\n filePostedSuccess(result: any, row: Brand) {\r\n\r\n console.log(result);\r\n row.brandImage = result.fileName;\r\n row.brandImageChanged = new Date();\r\n this.saveSegment(row);\r\n }\r\n\r\n //submit() {\r\n // const formData = new FormData();\r\n\r\n // formData.append('file', this.myForm.get('fileSource').value);\r\n\r\n // this.sysproService.postFileData(formData).subscribe(x => this.onPostDataSuccessful([x]), error => this.onPostDataLoadFailed(error));\r\n //}\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n //onPostDataSuccessful(arg0: any[]) {\r\n // throw new Error(\"Method not implemented.\");\r\n //}\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \".basic-container {\\n padding: 64px 64px 400px 64px; }\\n\\n.version-info {\\n font-size: 8pt;\\n float: right;\\n padding: 8px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYXRlZ29yeS10ZW1wbGF0ZS9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNhdGVnb3J5LXRlbXBsYXRlXFxwYXJlbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw2QkFBNkIsRUFBQTs7QUFHL0I7RUFDRSxjQUFjO0VBQ2QsWUFBWTtFQUNaLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2F0ZWdvcnktdGVtcGxhdGUvcGFyZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJhc2ljLWNvbnRhaW5lciB7XHJcbiAgcGFkZGluZzogNjRweCA2NHB4IDQwMHB4IDY0cHg7XHJcbn1cclxuXHJcbi52ZXJzaW9uLWluZm8ge1xyXG4gIGZvbnQtc2l6ZTogOHB0O1xyXG4gIGZsb2F0OiByaWdodDtcclxuICBwYWRkaW5nOiA4cHg7XHJcbn1cclxuIl19 */\"","import { Component, ViewChild, TemplateRef } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CatTemplate } from '../../models/category-template.model';\r\n\r\n@Component({\r\n selector: 'parent',\r\n templateUrl: './parent.component.html',\r\n styleUrls: ['./parent.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ParentComponent {\r\n loadingIndicator: boolean;\r\n\r\n navItems: CatTemplate[] = [\r\n {\r\n displayName: \"AngularMix\",\r\n iconName: \"close\",\r\n children: [\r\n {\r\n displayName: \"Speakers\",\r\n iconName: \"group\",\r\n children: [\r\n {\r\n displayName: \"Michael Prentice\",\r\n iconName: \"person\",\r\n route: \"michael-prentice\",\r\n children: [\r\n {\r\n displayName: \"Delight your Organization\",\r\n iconName: \"star_rate\",\r\n route: \"material-design\"\r\n }\r\n ]\r\n },\r\n {\r\n displayName: \"Stephen Fluin\",\r\n iconName: \"person\",\r\n route: \"stephen-fluin\",\r\n children: [\r\n {\r\n displayName: \"What's up with the Web?\",\r\n iconName: \"star_rate\",\r\n route: \"what-up-web\"\r\n }\r\n ]\r\n },\r\n {\r\n displayName: \"Mike Brocchi\",\r\n iconName: \"person\",\r\n route: \"mike-brocchi\",\r\n children: [\r\n {\r\n displayName: \"My ally, the CLI\",\r\n iconName: \"star_rate\",\r\n route: \"my-ally-cli\",\r\n children: [\r\n {\r\n displayName: \"Delight your Organization\",\r\n iconName: \"star_rate\",\r\n route: \"material-design\"\r\n }\r\n ]\r\n },\r\n {\r\n displayName: \"Become an Angular Tailor\",\r\n iconName: \"star_rate\",\r\n route: \"become-angular-tailer\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n displayName: \"Sessions\",\r\n iconName: \"speaker_notes\",\r\n children: [\r\n {\r\n displayName: \"Delight your Organization\",\r\n iconName: \"star_rate\",\r\n route: \"material-design\",\r\n children: [\r\n {\r\n displayName: \"Delight your Organization\",\r\n iconName: \"star_rate\",\r\n route: \"material-design\"\r\n }\r\n ]\r\n },\r\n {\r\n displayName: \"What's up with the Web?\",\r\n iconName: \"star_rate\",\r\n route: \"what-up-web\"\r\n },\r\n {\r\n displayName: \"My ally, the CLI\",\r\n iconName: \"star_rate\",\r\n route: \"my-ally-cli\"\r\n },\r\n {\r\n displayName: \"Become an Angular Tailor\",\r\n iconName: \"star_rate\",\r\n route: \"become-angular-tailer\"\r\n }\r\n ]\r\n },\r\n {\r\n displayName: \"Feedback\",\r\n iconName: \"feedback\",\r\n route: \"feedback\"\r\n }\r\n ]\r\n }\r\n ];\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n // this.sysproService.getBrands().subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n // this.sysproService.getAllCMCategories().subscribe(x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n // this.sysproService.GetAllCMStockCodes().subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDataLoadSuccessful(items: any[]) {\r\n\r\n }\r\n \r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n {{node.item}}\\r\\n \\r\\n \\r\\n \\r\\n {{node.item}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".example-tree-progress-bar {\\n margin-left: 30px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYXRlZ29yeS10ZW1wbGF0ZS9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNhdGVnb3J5LXRlbXBsYXRlXFx0cmVlLWR5bmFtaWMtZXhhbXBsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NhdGVnb3J5LXRlbXBsYXRlL3RyZWUtZHluYW1pYy1leGFtcGxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZXhhbXBsZS10cmVlLXByb2dyZXNzLWJhciB7XHJcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XHJcbn1cclxuIl19 */\"","import { CollectionViewer, SelectionChange } from '@angular/cdk/collections';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { Component, Injectable, OnInit } from '@angular/core';\r\nimport { BehaviorSubject, merge, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\n\r\n/** Flat node with expandable and level information */\r\nexport class DynamicFlatNode {\r\n constructor(public item: string, public level = 1, public expandable = false,\r\n public isLoading = false) { }\r\n}\r\n\r\n\r\n/**\r\n * File database, it can build a tree structured Json object from string.\r\n * Each node in Json object represents a file or a directory. For a file, it has filename and type.\r\n * For a directory, it has filename and children (a list of files or directories).\r\n * The input will be a json object string, and the output is a list of `FileNode` with nested\r\n * structure.\r\n */\r\n@Injectable()\r\nexport class DynamicDataSource {\r\n\r\n dataChange = new BehaviorSubject([]);\r\n\r\n get data(): DynamicFlatNode[] { return this.dataChange.value; }\r\n set data(value: DynamicFlatNode[]) {\r\n this._treeControl.dataNodes = value;\r\n this.dataChange.next(value);\r\n }\r\n\r\n constructor(private _treeControl: FlatTreeControl, private dataService: SysproService) { }\r\n\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n this._treeControl.expansionModel.onChange.subscribe(change => {\r\n if ((change as SelectionChange).added ||\r\n (change as SelectionChange).removed) {\r\n this.handleTreeControl(change as SelectionChange);\r\n }\r\n });\r\n\r\n return merge(collectionViewer.viewChange, this.dataChange).pipe(map(() => this.data));\r\n }\r\n\r\n /** Handle expand/collapse behaviors */\r\n handleTreeControl(change: SelectionChange) {\r\n if (change.added) {\r\n change.added.forEach(node => this.toggleNode(node, true));\r\n }\r\n if (change.removed) {\r\n change.removed.slice().reverse().forEach(node => this.toggleNode(node, false));\r\n }\r\n }\r\n\r\n /**\r\n * Toggle the node, remove from display list\r\n */\r\n toggleNode(node: DynamicFlatNode, expand: boolean) {\r\n const index = this.data.indexOf(node);\r\n if (!expand) {\r\n let count = 0;\r\n for (let i = index + 1; i < this.data.length\r\n && this.data[i].level > node.level; i++, count++) { }\r\n this.data.splice(index + 1, count);\r\n this.dataChange.next(this.data);\r\n }\r\n else {\r\n node.isLoading = true;\r\n this.dataService.getAllCMCategories(node.item).subscribe(children => {\r\n if (!children || index < 0) { // If no children, or cannot find the node, no op\r\n node.isLoading = false;\r\n\r\n return;\r\n }\r\n if (expand) {\r\n console.log(\"CHILDREN\", children)\r\n const nodes = children.map(obj =>\r\n new DynamicFlatNode(obj.categoryName, node.level + 1, obj.isExpandable));\r\n this.data.splice(index + 1, 0, ...nodes);\r\n console.log(\"DATA\", this.data)\r\n }\r\n node.isLoading = false;\r\n // notify the change\r\n this.dataChange.next(this.data);\r\n\r\n })\r\n }\r\n }\r\n addSubNode(index: number, name: string, isExpandable: boolean) {\r\n const node = this.data[index];\r\n const dfn = {\r\n item: name,\r\n level: node.level + 1,\r\n expandable: isExpandable,\r\n isLoading: false\r\n }\r\n this.data.splice(index + 1, 0, ...[dfn]);\r\n this.dataChange.next(this.data);\r\n }\r\n\r\n addNode(index: number, name: string, isExpandable: boolean) {\r\n const node = this.data[index];\r\n const dfn = {\r\n item: name,\r\n level: node.level,\r\n expandable: isExpandable,\r\n isLoading: false\r\n }\r\n this.data.splice(index + 1, 0, ...[dfn]);\r\n this.data = [...this.data]\r\n // this.dataChange.next(this.data);\r\n }\r\n\r\n changeNode(index: number, name: string) {\r\n this.data[index].item = name;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title Tree with dynamic data\r\n */\r\n@Component({\r\n selector: 'tree-dynamic-example',\r\n templateUrl: './tree-dynamic-example.html',\r\n styleUrls: ['./tree-dynamic-example.scss']\r\n})\r\nexport class TreeDynamicExample implements OnInit {\r\n constructor(private dataService: SysproService,) {\r\n }\r\n ngOnInit() {\r\n this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);\r\n this.dataSource = new DynamicDataSource(this.treeControl, this.dataService);\r\n this.dataService.getAllCMCategories(\"Root\").subscribe(res => {\r\n let resultList = res;\r\n this.dataSource.data = resultList.map(x => new DynamicFlatNode(x.categoryName, 0, true));\r\n\r\n });\r\n //this.dataService.getRootNodes().subscribe(res => {\r\n // this.dataSource.data = res.map(name => new DynamicFlatNode(name, 0, true));\r\n\r\n //})\r\n\r\n }\r\n addNode() {\r\n this.dataSource.addNode(0, \"New Node\", true);\r\n }\r\n addSubNode() {\r\n this.dataSource.addSubNode(0, \"New Child\", false);\r\n }\r\n changeNode() {\r\n this.dataSource.changeNode(0, \"New Name\");\r\n }\r\n treeControl: FlatTreeControl;\r\n\r\n dataSource: DynamicDataSource;\r\n\r\n getLevel = (node: DynamicFlatNode) => node.level;\r\n\r\n isExpandable = (node: DynamicFlatNode) => node.expandable;\r\n\r\n hasChild = (_: number, _nodeData: DynamicFlatNode) => _nodeData.expandable;\r\n}\r\n\r\n\r\n/** Copyright 2019 Google Inc. All Rights Reserved.\r\n Use of this source code is governed by an MIT-style license that\r\n can be found in the LICENSE file at http://angular.io/license */\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n \\\"ASP.NET\\\"\\r\\n
\\r\\n

\\r\\n Learn how to build ASP.NET apps that can run anywhere\\r\\n \\r\\n Learn More\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"Visual\\r\\n
\\r\\n

\\r\\n One platform for building modern web, native mobile and native desktop applications\\r\\n \\r\\n Learn More\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"Package\\r\\n
\\r\\n

\\r\\n Bring in libraries from NuGet and npm, and bundle with angular/cli\\r\\n \\r\\n Learn More\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"Eben\\r\\n
\\r\\n

\\r\\n Follow me on social media for updates and tips on using this startup project\\r\\n \\r\\n Learn More\\r\\n \\r\\n

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

Application uses

\\r\\n
    \\r\\n
  • Restful API backend using the cross platform ASP.NET Core MVC
  • \\r\\n
  • Client framework with Angular7 and typescript
  • \\r\\n
  • npm for managing client-side libraries
  • \\r\\n
  • Theming using Bootstrap
  • \\r\\n
  • Module bundling with Angular CLI
  • \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n

Run & Deploy

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Component } from '@angular/core';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'banner-demo',\r\n templateUrl: './banner-demo.component.html'\r\n})\r\nexport class BannerDemoComponent {\r\n banner1 = require('../../assets/images/demo/banner1.png');\r\n banner2 = require('../../assets/images/demo/banner2.png');\r\n banner3 = require('../../assets/images/demo/banner3.png');\r\n banner4 = require('../../assets/images/demo/banner4.png');\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{getPrintedDate(value)}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\"","module.exports = \".unread {\\n font-weight: bold; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxub3RpZmljYXRpb25zLXZpZXdlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9ub3RpZmljYXRpb25zLXZpZXdlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4udW5yZWFkIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcbiJdfQ== */\"","\r\nimport { Component, OnInit, OnDestroy, TemplateRef, ViewChild, Input } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from '../../services/app-translation.service';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Notification } from '../../models/notification.model';\r\n\r\n\r\n@Component({\r\n selector: 'notifications-viewer',\r\n templateUrl: './notifications-viewer.component.html',\r\n styleUrls: ['./notifications-viewer.component.scss']\r\n})\r\nexport class NotificationsViewerComponent implements OnInit, OnDestroy {\r\n columns: any[] = [];\r\n rows: Notification[] = [];\r\n loadingIndicator: boolean;\r\n\r\n dataLoadingConsecutiveFailurs = 0;\r\n dataLoadingSubscription: any;\r\n\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n verticalScrollbar = false;\r\n\r\n\r\n @ViewChild('statusHeaderTemplate')\r\n statusHeaderTemplate: TemplateRef;\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('contentHeaderTemplate')\r\n contentHeaderTemplate: TemplateRef;\r\n\r\n @ViewChild('contenBodytTemplate')\r\n contenBodytTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private notificationService: NotificationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n if (this.isViewOnly) {\r\n this.columns = [\r\n { prop: 'date', cellTemplate: this.dateTemplate, width: 100, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'header', cellTemplate: this.contentHeaderTemplate, width: 200, resizeable: false, sortable: false, draggable: false },\r\n ];\r\n } else {\r\n const gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: '', name: '', width: 10, headerTemplate: this.statusHeaderTemplate, cellTemplate: this.statusTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'date', name: gT('notifications.Date'), cellTemplate: this.dateTemplate, width: 30 },\r\n { prop: 'body', name: gT('notifications.Notification'), cellTemplate: this.contenBodytTemplate, width: 500 },\r\n { name: '', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n\r\n this.initDataLoading();\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this.dataLoadingSubscription) {\r\n this.dataLoadingSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n\r\n initDataLoading() {\r\n\r\n if (this.isViewOnly && this.notificationService.recentNotifications) {\r\n this.rows = this.processResults(this.notificationService.recentNotifications);\r\n return;\r\n }\r\n\r\n this.loadingIndicator = true;\r\n\r\n const dataLoadTask = this.isViewOnly ? this.notificationService.getNewNotifications() : this.notificationService.getNewNotificationsPeriodically();\r\n\r\n this.dataLoadingSubscription = dataLoadTask\r\n .subscribe(notifications => {\r\n this.loadingIndicator = false;\r\n this.dataLoadingConsecutiveFailurs = 0;\r\n\r\n this.rows = this.processResults(notifications);\r\n },\r\n error => {\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showMessage('Load Error', 'Loading new notifications from the server failed!', MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n\r\n if (this.dataLoadingConsecutiveFailurs++ < 5) {\r\n setTimeout(() => this.initDataLoading(), 5000);\r\n } else {\r\n this.alertService.showStickyMessage('Load Error', 'Loading new notifications from the server failed!', MessageSeverity.error);\r\n }\r\n\r\n });\r\n\r\n\r\n if (this.isViewOnly) {\r\n this.dataLoadingSubscription = null;\r\n }\r\n }\r\n\r\n\r\n private processResults(notifications: Notification[]) {\r\n\r\n if (this.isViewOnly) {\r\n notifications.sort((a, b) => {\r\n return b.date.valueOf() - a.date.valueOf();\r\n });\r\n }\r\n\r\n return notifications;\r\n }\r\n\r\n\r\n\r\n getPrintedDate(value: Date) {\r\n if (value) {\r\n return Utilities.printTimeOnly(value) + ' on ' + Utilities.printDateOnly(value);\r\n }\r\n }\r\n\r\n\r\n deleteNotification(row: Notification) {\r\n this.alertService.showDialog('Are you sure you want to delete the notification \\\"' + row.header + '\\\"?', DialogType.confirm, () => this.deleteNotificationHelper(row));\r\n }\r\n\r\n\r\n deleteNotificationHelper(row: Notification) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.notificationService.deleteNotification(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rows = this.rows.filter(item => item.id != row.id);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the notification.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n togglePin(row: Notification) {\r\n\r\n const pin = !row.isPinned;\r\n const opText = pin ? 'Pinning' : 'Unpinning';\r\n\r\n this.alertService.startLoadingMessage(opText + '...');\r\n this.loadingIndicator = true;\r\n\r\n this.notificationService.pinUnpinNotification(row, pin)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n row.isPinned = pin;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(opText + ' Error', `An error occured whilst ${opText} the notification.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n get canManageNotifications() {\r\n return this.accountService.userHasPermission(Permission.manageRolesPermission); // Todo: Consider creating separate permission for notifications\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{'roles.editor.RoleNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".row:not(:last-child) {\\n /*border-bottom: 1px solid #ccc;*/ }\\n\\n.separator-hr {\\n margin: 0 5px;\\n border-top-style: dashed; }\\n\\n.edit-separator-hr {\\n margin: 10px 5px;\\n border-top-style: dashed; }\\n\\n.last-separator-hr {\\n margin-top: 5px; }\\n\\n.edit-last-separator-hr {\\n margin-top: 15px; }\\n\\n.form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n\\ninput.form-control {\\n border-left-width: 5px; }\\n\\n.invalid-feedback {\\n display: block; }\\n\\n.group-name {\\n padding-top: 5px;\\n font-weight: 800;\\n padding-right: 0;\\n text-decoration: underline; }\\n\\n.permissionsColumn {\\n margin-bottom: 20px; }\\n\\n.permissionsRow {\\n margin: 0 15px; }\\n\\n.well-sm {\\n padding: 0.5rem; }\\n\\n@media (min-width: 992px) {\\n .user-enabled {\\n margin-left: 40px; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxyb2xlLWVkaXRvci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlDQUFBLEVBQWtDOztBQUdwQztFQUNFLGFBQWE7RUFDYix3QkFBd0IsRUFBQTs7QUFHMUI7RUFDRSxnQkFBZ0I7RUFDaEIsd0JBQXdCLEVBQUE7O0FBRzFCO0VBQ0UsZUFBZSxFQUFBOztBQUdqQjtFQUNFLGdCQUFnQixFQUFBOztBQUlsQjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxzQkFBc0IsRUFBQTs7QUFHeEI7RUFDRSxjQUFjLEVBQUE7O0FBR2hCO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsMEJBQTBCLEVBQUE7O0FBRzVCO0VBQ0UsbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UsY0FBYyxFQUFBOztBQUloQjtFQUNFLGVBQWUsRUFBQTs7QUFHakI7RUFDRTtJQUNFLGlCQUFpQixFQUFBLEVBQ2xCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9yb2xlLWVkaXRvci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDAgNXB4O1xyXG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDEwcHggNXB4O1xyXG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5cclxuLmZvcm0tZ3JvdXAge1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uaW52YWxpZC1mZWVkYmFjayB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5ncm91cC1uYW1lIHtcclxuICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgcGFkZGluZy1yaWdodDogMDtcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLndlbGwtc20ge1xyXG4gIHBhZGRpbmc6IDAuNXJlbTtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, ViewChild } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Role } from '../../models/role.model';\r\nimport { Permission } from '../../models/permission.model';\r\n\r\n\r\n@Component({\r\n selector: 'role-editor',\r\n templateUrl: './role-editor.component.html',\r\n styleUrls: ['./role-editor.component.scss']\r\n})\r\nexport class RoleEditorComponent {\r\n\r\n private isNewRole = false;\r\n private isSaving: boolean;\r\n private showValidationErrors = true;\r\n private editingRoleName: string;\r\n private roleEdit: Role = new Role();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService) {\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n this.roleEdit.permissions = this.getSelectedPermissions();\r\n\r\n if (this.isNewRole) {\r\n this.accountService.newRole(this.roleEdit).subscribe(role => this.saveSuccessHelper(role), error => this.saveFailedHelper(error));\r\n } else {\r\n this.accountService.updateRole(this.roleEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(role?: Role) {\r\n if (role) {\r\n Object.assign(this.roleEdit, role);\r\n }\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewRole) {\r\n this.alertService.showMessage('Success', `Role \\\"${this.roleEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n } else {\r\n this.alertService.showMessage('Success', `Changes to role \\\"${this.roleEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n\r\n this.roleEdit = new Role();\r\n this.resetForm();\r\n\r\n\r\n if (!this.isNewRole && this.accountService.currentUser.roles.some(r => r == this.editingRoleName)) {\r\n this.refreshLoggedInUser();\r\n }\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage('Refresh failed', 'An error occured whilst refreshing logged in user information from the server', MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback) {\r\n this.changesFailedCallback();\r\n }\r\n }\r\n\r\n\r\n private cancel() {\r\n this.roleEdit = new Role();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.showMessage('Cancelled', 'Operation cancelled by user', MessageSeverity.default);\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n\r\n\r\n private selectAll() {\r\n this.allPermissions.forEach(p => this.selectedValues[p.value] = true);\r\n }\r\n\r\n\r\n private selectNone() {\r\n this.allPermissions.forEach(p => this.selectedValues[p.value] = false);\r\n }\r\n\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName) {\r\n return;\r\n }\r\n\r\n if (firstMemberValue == null) {\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n }\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n } else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newRole(allPermissions: Permission[]) {\r\n this.isNewRole = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingRoleName = null;\r\n this.allPermissions = allPermissions;\r\n this.selectedValues = {};\r\n this.roleEdit = new Role();\r\n\r\n return this.roleEdit;\r\n }\r\n\r\n editRole(role: Role, allPermissions: Permission[]) {\r\n if (role) {\r\n this.isNewRole = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingRoleName = role.name;\r\n this.allPermissions = allPermissions;\r\n this.selectedValues = {};\r\n role.permissions.forEach(p => this.selectedValues[p.value] = true);\r\n this.roleEdit = new Role();\r\n Object.assign(this.roleEdit, role);\r\n\r\n return this.roleEdit;\r\n } else {\r\n return this.newRole(allPermissions);\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageRoles() {\r\n return this.accountService.userHasPermission(Permission.manageRolesPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'roles.management.Edit' | translate}}\\r\\n {{'roles.management.Details' | translate}}\\r\\n {{canManageRoles ? '|' : ''}}\\r\\n {{'roles.management.Delete' | translate}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'roles.management.RoleDetails' | translate:editingRoleName}}

\\r\\n

{{editingRoleName ? ('roles.management.EditRole' | translate:editingRoleName) : ('roles.management.NewRole' | translate)}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxyb2xlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksU0FBUyxFQUFBOztBQUdiO0VBQ0ksZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvcm9sZXMtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufSJdfQ== */\"","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from '../../services/app-translation.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Role } from '../../models/role.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { RoleEditorComponent } from './role-editor.component';\r\n\r\n\r\n@Component({\r\n selector: 'roles-management',\r\n templateUrl: './roles-management.component.html',\r\n styleUrls: ['./roles-management.component.scss']\r\n})\r\nexport class RolesManagementComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: Role[] = [];\r\n rowsCache: Role[] = [];\r\n allPermissions: Permission[] = [];\r\n editedRole: Role;\r\n sourceRole: Role;\r\n editingRoleName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('roleEditor')\r\n roleEditor: RoleEditorComponent;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n const gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'index', name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('roles.management.Name'), width: 180 },\r\n { prop: 'description', name: gT('roles.management.Description'), width: 320 },\r\n { prop: 'usersCount', name: gT('roles.management.Users'), width: 50 },\r\n { name: '', width: 160, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.roleEditor.changesSavedCallback = () => {\r\n this.addNewRoleToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.roleEditor.changesCancelledCallback = () => {\r\n this.editedRole = null;\r\n this.sourceRole = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewRoleToList() {\r\n if (this.sourceRole) {\r\n Object.assign(this.sourceRole, this.editedRole);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceRole, 0);\r\n if (sourceIndex > -1) {\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n }\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceRole, 0);\r\n if (sourceIndex > -1) {\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n }\r\n\r\n this.editedRole = null;\r\n this.sourceRole = null;\r\n } else {\r\n const role = new Role();\r\n Object.assign(role, this.editedRole);\r\n this.editedRole = null;\r\n\r\n let maxIndex = 0;\r\n for (const r of this.rowsCache) {\r\n if ((r).index > maxIndex) {\r\n maxIndex = (r).index;\r\n }\r\n }\r\n\r\n (role).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, role);\r\n this.rows.splice(0, 0, role);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.accountService.getRolesAndPermissions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n const roles = results[0];\r\n const permissions = results[1];\r\n\r\n roles.forEach((role, index, roles) => {\r\n (role).index = index + 1;\r\n });\r\n\r\n \r\n\r\n this.rowsCache = [...roles];\r\n this.rows = roles;\r\n\r\n this.allPermissions = permissions;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve roles from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingRoleName = null;\r\n this.roleEditor.resetForm(true);\r\n }\r\n\r\n\r\n newRole() {\r\n this.editingRoleName = null;\r\n this.sourceRole = null;\r\n this.editedRole = this.roleEditor.newRole(this.allPermissions);\r\n this.editorModal.show();\r\n }\r\n\r\n\r\n editRole(row: Role) {\r\n this.editingRoleName = { name: row.name };\r\n this.sourceRole = row;\r\n this.editedRole = this.roleEditor.editRole(row, this.allPermissions);\r\n this.editorModal.show();\r\n }\r\n\r\n deleteRole(row: Role) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" role?', DialogType.confirm, () => this.deleteRoleHelper(row));\r\n }\r\n\r\n\r\n deleteRoleHelper(row: Role) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.accountService.deleteRole(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row);\r\n this.rows = this.rows.filter(item => item !== row);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the role.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n get canManageRoles() {\r\n return this.accountService.userHasPermission(Permission.manageRolesPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \".search-icon {\\n pointer-events: none; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzZWFyY2gtYm94LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0ksb0JBQW9CLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3NlYXJjaC1ib3guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLnNlYXJjaC1pY29uIHtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcbiJdfQ== */\"","import { Component, ViewChild, ElementRef, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'search-box',\r\n templateUrl: './search-box.component.html',\r\n styleUrls: ['./search-box.component.scss']\r\n})\r\nexport class SearchBoxComponent {\r\n\r\n @Input()\r\n placeholder = 'Search...';\r\n\r\n @Output()\r\n searchChange = new EventEmitter();\r\n\r\n @ViewChild('searchInput')\r\n searchInput: ElementRef;\r\n\r\n\r\n onValueChange(value: string) {\r\n setTimeout(() => this.searchChange.emit(value));\r\n }\r\n\r\n\r\n clear() {\r\n this.searchInput.nativeElement.value = '';\r\n this.onValueChange(this.searchInput.nativeElement.value);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Vat %Effective DateDelete
{{row.value}}{{row.effectiveDate | date: 'yyyy/MM/dd'}}\\r\\n {{'users.management.Delete' | translate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
BranchPrice CodePrice Override PasswordInvoice Reprint PasswordSales Order Release PasswordPO Ledger Code
{{row.branch}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Update \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n line-height: 1; }\\n\\np {\\n font-family: Lato; }\\n\\n.datatable-scroller {\\n width: 100% !important; }\\n\\n.container {\\n height: 110px;\\n width: 110px;\\n margin: 10px;\\n border: solid 5px black;\\n background-color: white;\\n display: inline-block; }\\n\\ninput.form-control {\\n height: 18px;\\n font-size: 0.600rem; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.table tr {\\n height: 20px; }\\n\\n.tbody {\\n height: 500px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzZXR0aW5ncy1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBRUUsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsY0FBYyxFQUFBOztBQUdkO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0Usc0JBQXNCLEVBQUE7O0FBR3hCO0VBQ0UsYUFBYTtFQUNiLFlBQVk7RUFDWixZQUFZO0VBQ1osdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2QixxQkFBcUIsRUFBQTs7QUFHdkI7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBSXJCO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsWUFBWSxFQUFBOztBQUdkO0VBQ0UsWUFBWSxFQUFBOztBQUlkO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3NldHRpbmdzLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICAvL3BhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgfVxyXG5cclxuICBwIHtcclxuICAgIGZvbnQtZmFtaWx5OiBMYXRvO1xyXG4gIH1cclxuXHJcbiAgLmRhdGF0YWJsZS1zY3JvbGxlciB7XHJcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmNvbnRhaW5lciB7XHJcbiAgICBoZWlnaHQ6IDExMHB4O1xyXG4gICAgd2lkdGg6IDExMHB4O1xyXG4gICAgbWFyZ2luOiAxMHB4O1xyXG4gICAgYm9yZGVyOiBzb2xpZCA1cHggYmxhY2s7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB9XHJcblxyXG4gIGlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICBmb250LXNpemU6IDAuNjAwcmVtO1xyXG4gIH1cclxuXHJcblxyXG4gIC50YWJsZSB0aCB7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgfVxyXG5cclxuICAudGFibGUgdGgsIC50YWJsZSB0ZCB7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgfVxyXG5cclxuICAudGFibGUgdHIge1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gIH1cclxuXHJcblxyXG4gIC50Ym9keSB7XHJcbiAgICBoZWlnaHQ6IDUwMHB4O1xyXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgfVxyXG4iXX0= */\"","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { User } from '../../models/user.model';\r\nimport { ArCustomer } from '../../models/arcustomer.model';\r\nimport { ArNarration } from '../../models/arnarration.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Router } from '@angular/router';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { AuthGuard } from 'src/app/services/auth-guard.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { Branch } from '../../models/branch.model';\r\nimport { ConfigurationSettings } from '../../models/configuration-settings.model';\r\nimport { TaxCodes } from '../../models/tax-code.model';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n selector: 'settings-configuration',\r\n templateUrl: './settings-configuration.component.html',\r\n styleUrls: ['./settings-configuration.component.scss']\r\n})\r\nexport class SettingsConfigurationComponent implements OnInit {\r\n\r\n\r\n @ViewChild('table') table: DatatableComponent;\r\n rows: ArNarration[] = [];\r\n rowsCache: ArNarration[] = [];\r\n loadingIndicator: boolean;\r\n\r\n scrollbarV = false;\r\n bodyHeight = 'auto';\r\n\r\n editing = {};\r\n\r\n private isEditMode = false;\r\n private isSaving = false;\r\n private showValidationErrors = false;\r\n private customerNotes: ArNarration[] = [];\r\n \r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isGeneralEditor = false;\r\n\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n \r\n @ViewChild('vatCodeSelector')\r\n private vatCodeSelector;\r\n\r\n\r\n @ViewChild('effectiveDate')\r\n private effectiveDate;\r\n\r\n startDate = new Date().toISOString().slice(0, 16);\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n \r\n @ViewChild('f')\r\n private form;\r\n columns: ({ prop: string; name: string; width: number; canAutoResize: boolean; } | { prop: string; name: string; width: number; canAutoResize?: undefined; })[];\r\n id: string;\r\n noteLines: ArNarration[] = [];\r\n notelinenumber: any;\r\n\r\n newRow: ArNarration = new ArNarration();\r\n hasDetailRows: boolean;\r\n lastRow: number;\r\n rowsSaved: any;\r\n rowsToSave: ArNarration[] = [];\r\n allBranches: any[];\r\n configSettings: ConfigurationSettings[];\r\n taxCodes: TaxCodes[];\r\n taxCode: string;\r\n newTaxValue: string;\r\n vatHistory: ConfigurationSettings[];\r\n \r\n constructor(private alertService: AlertService, private accountService: AccountService, private sysproService: SysproService,\r\n private router: Router, private fowkesOnline: FowkesOnlineService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.startLoadingMessage();\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n this.sysproService.getConfigurationSettings().subscribe(x => this.onConfigLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n \r\n this.startDate = moment().format('YYYY-MM-DD');\r\n }\r\n onCurrentUserDataLoadFailed(error: any): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n onConfigLoadSuccessful(x: ConfigurationSettings[]): void {\r\n \r\n this.configSettings = x;\r\n this.vatHistory = x.filter(r => r.configuration == \"VAT\");\r\n this.sysproService.getSysproTaxCodes().subscribe(x => this.onTaxCodesLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n }\r\n\r\n onTaxCodesLoadSuccessful(x: TaxCodes[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.taxCodes = x;\r\n this.taxCode = this.configSettings.filter(r => r.configuration == \"TAXEXEMPT\")[0].value;\r\n\r\n setTimeout(() => {\r\n if (this.vatCodeSelector) {\r\n this.vatCodeSelector.refresh();\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n private onBranchLoadSuccessful(branches: Branch[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.allBranches = branches;\r\n console.log(\"Branches\", this.allBranches);\r\n }\r\n\r\n\r\n deleteRow(row: ConfigurationSettings) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n console.log(row);\r\n this.sysproService.deleteConfigurationSettings(row.id, row.configuration).subscribe(x => this.onConfigLoadSuccessful(x), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n updateRow(row: Branch) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n console.log(row);\r\n this.sysproService.updateBranchSettings(row.branch, row.priceOverridePassword, row.invoiceReprintPassword, row.salesOrderPassword,\r\n row.priceCode, row.ledgerCode).subscribe(x => this.onBranchLoadSuccessful(x), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n //setSave(row: ArNarration) {\r\n // console.log(row);\r\n // this.rowsToSave = null;\r\n // this.isSaving = true;\r\n // this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n // this.sysproService.insertCustomerNotes(this.currentCustomer, row.line, row.notation).subscribe(_response => this.saveLinesSuccessHelper(), error => this.saveFailedHelper(error));\r\n\r\n //}\r\n\r\n\r\n\r\n\r\n save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.loadingIndicator = true;\r\n let stringDate: Date = new Date(this.startDate.toString());\r\n if (this.newTaxValue != \"\") {\r\n this.sysproService.updateConfigurationSettings(\"VAT\", this.newTaxValue, this.accountService.currentUser.userName, stringDate.toJSON()).subscribe(x => this.onConfigLoadSuccessful(x), error => this.saveFailedHelper(error));\r\n }\r\n this.sysproService.updateConfigurationSettings(\"TAXEXEMPT\", this.taxCode, this.accountService.currentUser.userName, null).subscribe(x => this.onConfigLoadSuccessful(x), error => this.saveFailedHelper(error));\r\n\r\n \r\n }\r\n\r\n \r\n\r\n\r\n private saveSuccessHelper() { \r\n\r\n this.isEditMode = false;\r\n\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n \r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback) {\r\n this.changesFailedCallback();\r\n }\r\n }\r\n \r\n \r\n private cancel() {\r\n \r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.showMessage('Cancelled', 'Operation cancelled by user', MessageSeverity.default);\r\n this.alertService.resetStickyMessage();\r\n\r\n if (!this.isGeneralEditor) {\r\n this.isEditMode = false;\r\n }\r\n\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n\r\n private close() {\r\n \r\n this.resetForm();\r\n this.isEditMode = false;\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n } else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{label}}
{{d && d.label.split(' ').pop()}}{{d && d.data[j]}}
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \".statistics-container {\\n font-size: 0.875rem; }\\n\\n.chart-container {\\n display: block; }\\n\\n.refresh-btn {\\n margin-right: 10px; }\\n\\n.chart-type-container {\\n display: inline-block; }\\n\\n.chart-type-container .active {\\n background-color: #e8e8e8; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzdGF0aXN0aWNzLWRlbW8uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDSSxtQkFBbUIsRUFBQTs7QUFHdkI7RUFDSSxjQUFjLEVBQUE7O0FBSWxCO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0kscUJBQXFCLEVBQUE7O0FBSXpCO0VBQ0kseUJBQXlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N0YXRpc3RpY3MtZGVtby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uc3RhdGlzdGljcy1jb250YWluZXIge1xyXG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcclxufVxyXG5cclxuLmNoYXJ0LWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuXHJcbi5yZWZyZXNoLWJ0biB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbi5jaGFydC10eXBlLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcblxyXG4uY2hhcnQtdHlwZS1jb250YWluZXIgLmFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlOGU4O1xyXG59XHJcbiJdfQ== */\"","\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { Subscription, Observable, fromEvent, of, merge } from 'rxjs';\r\nimport { map, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nrequire('chart.js');\r\n\r\n\r\n\r\n@Component({\r\n selector: 'statistics-demo',\r\n templateUrl: './statistics-demo.component.html',\r\n styleUrls: ['./statistics-demo.component.scss']\r\n})\r\nexport class StatisticsDemoComponent implements OnInit, OnDestroy {\r\n\r\n chartData = [\r\n { data: [65, 59, 80, 81, 56, 55], label: 'Series A' },\r\n { data: [28, 48, 40, 19, 86, 27], label: 'Series B' },\r\n { data: [18, 48, 77, 9, 100, 27], label: 'Series C' }\r\n ];\r\n chartLabels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'];\r\n chartOptions = {\r\n responsive: true,\r\n title: {\r\n display: false,\r\n fontSize: 16,\r\n text: 'Important Stuff'\r\n }\r\n };\r\n chartColors = [\r\n { // grey\r\n backgroundColor: 'rgba(148,159,177,0.2)',\r\n borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n { // dark grey\r\n backgroundColor: 'rgba(77,83,96,0.2)',\r\n borderColor: 'rgba(77,83,96,1)',\r\n pointBackgroundColor: 'rgba(77,83,96,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(77,83,96,1)'\r\n },\r\n { // something else\r\n backgroundColor: 'rgba(128,128,128,0.2)',\r\n borderColor: 'rgba(128,128,128,1)',\r\n pointBackgroundColor: 'rgba(128,128,128,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(128,128,128,0.8)'\r\n }\r\n ];\r\n chartLegend = true;\r\n chartType = 'line';\r\n\r\n timerReference: any;\r\n windowWidth$: Observable;\r\n windowWidthSub: Subscription;\r\n\r\n\r\n constructor(private alertService: AlertService) {\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.timerReference = setInterval(() => this.randomize(), 5000);\r\n\r\n const initialWidth$ = of(window.innerWidth);\r\n const resizedWidth$ = fromEvent(window, 'resize').pipe(map((event: any) => event.target.innerWidth));\r\n this.windowWidth$ = merge(initialWidth$, resizedWidth$).pipe(distinctUntilChanged());\r\n\r\n this.windowWidthSub = this.windowWidth$.subscribe(width => this.chartLegend = width < 600 ? false : true);\r\n }\r\n\r\n ngOnDestroy() {\r\n clearInterval(this.timerReference);\r\n this.windowWidthSub.unsubscribe();\r\n }\r\n\r\n\r\n\r\n randomize(): void {\r\n const _chartData = new Array(this.chartData.length);\r\n for (let i = 0; i < this.chartData.length; i++) {\r\n _chartData[i] = { data: new Array(this.chartData[i].data.length), label: this.chartData[i].label };\r\n\r\n for (let j = 0; j < this.chartData[i].data.length; j++) {\r\n _chartData[i].data[j] = Math.floor((Math.random() * 100) + 1);\r\n }\r\n }\r\n\r\n this.chartData = _chartData;\r\n }\r\n\r\n changeChartType(type: string) {\r\n this.chartType = type;\r\n }\r\n\r\n showMessage(msg: string): void {\r\n this.alertService.showMessage('Demo', msg, MessageSeverity.info);\r\n }\r\n\r\n showDialog(msg: string): void {\r\n this.alertService.showDialog(msg, DialogType.prompt, (val) => this.configure(true, val), () => this.configure(false));\r\n }\r\n\r\n configure(response: boolean, value?: string) {\r\n\r\n if (response) {\r\n\r\n this.alertService.showStickyMessage('Simulating...', '', MessageSeverity.wait);\r\n\r\n setTimeout(() => {\r\n\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showMessage('Demo', `Your settings was successfully configured to \\\"${value}\\\"`, MessageSeverity.success);\r\n }, 2000);\r\n } else {\r\n this.alertService.showMessage('Demo', 'Operation cancelled by user', MessageSeverity.default);\r\n }\r\n }\r\n\r\n chartClicked(e): void {\r\n console.log(e);\r\n }\r\n\r\n chartHovered(e): void {\r\n console.log(e);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
StockCodeDescriptionAvail
Qty
Order
Qty
UOMPrice
(excl)
Disc
(%)
Nett Price
(excl)
Total(excl)Delete
\\r\\n\\r\\n \\r\\n {{row.stockCode}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{row.availQty}}\\r\\n \\r\\n {{row.orderUom}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.specialPrice | currency:' ':'symbol':'1.2'}}\\r\\n {{'users.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Total Items\\r\\n {{TotalItems}} (Lines: {{TotalLines}})\\r\\n
Total excl. V.A.T.R\\r\\n {{TotalExcl | currency:' ':'symbol':'1.2'}}\\r\\n
-DiscountR\\r\\n {{TotalDiscount | currency:' ':'symbol':'1.2'}}\\r\\n\\r\\n
\\r\\n \\r\\n Total excl. V.A.T.R\\r\\n {{TotalExclAfterDiscount | currency:' ':'symbol':'1.2'}}\\r\\n
+\\r\\n {{vatPercentage}}% V.A.T.\\r\\n R\\r\\n {{ TotalVat | currency:' ':'symbol':'1.2' }}\\r\\n
\\r\\n \\r\\n Total\\r\\n incl. V.A.T.\\r\\n \\r\\n R\\r\\n {{TotalIncl | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

Authorization Required

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
The price does not exceed the specified margin
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Notes:

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

\\r\\n GP Percentage: {{TotalGPPercent | currency:' ':'symbol':'1.2'}} %\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
StockCodeDescriptionUnit Nett
Price
Unit
Cost
GP
%
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".card .card-body {\\n padding: 2px 10px 2px 10px !important; }\\n .card .card-body .row {\\n height: 18px; }\\n .card .card-body .col-form-label {\\n font-size: smaller; }\\n .example-margin {\\n margin: 0 12px; }\\n .dropdown-item.active, .dropdown-item:active {\\n background-color: thistle !important;\\n color: red !important; }\\n input.form-control {\\n height: 20px;\\n font-size: 0.600rem; }\\n .standard {\\n height: 26px !important;\\n font-size: 0.700rem !important; }\\n .table th {\\n font-size: smaller; }\\n .table th, .table td {\\n padding: 2px 5px 2px 5px; }\\n .table tr {\\n height: 16px; }\\n .tbody {\\n height: calc(100vh - 500px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 98%; }\\n .flag {\\n height: 20px;\\n padding: 0 5px 2px 5px; }\\n .checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n .checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n .custom-checkbox.right {\\n padding: 0 0 0 0;\\n display: inline-block; }\\n .custom-checkbox.right label:before,\\n.custom-checkbox.right input[type=\\\"checkbox\\\"] {\\n right: 0;\\n left: auto; }\\n .custom-checkbox.right input[type=\\\"checkbox\\\"]:checked + label:after {\\n right: -1px;\\n left: auto; }\\n .user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n .control-box {\\n margin-bottom: 5px; }\\n .search-box {\\n margin: 0; }\\n .nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n .user-disabled {\\n color: #777;\\n font-style: italic; }\\n .locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n .seperate {\\n /* Large */ }\\n .seperate .address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .seperate .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n .seperate .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .seperate .flex-distributed.columns {\\n padding: 10px; }\\n .seperate .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .seperate .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .seperate .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .seperate .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .seperate .row {\\n height: 20px;\\n /*border: 1px solid #eee;\\r\\n background-image: linear-gradient(rgb(255, 255, 255), rgb(255, 255, 255) 10%, rgb(247, 247, 247));\\r\\n border-radius: 3px;*/ }\\n .seperate .control-label {\\n font-size: 12px;\\n font-weight: bolder;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .seperate .control-detail {\\n padding: 8px; }\\n .seperate .control-detail .nav-link {\\n padding: 0; }\\n .seperate .no-border {\\n border: 0; }\\n .seperate .no-padding {\\n padding: 0; }\\n .seperate [data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n .seperate [data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n .seperate [data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\"... see less \\\"; }\\n .seperate [data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... see more \\\"; }\\n .seperate .control-detail .no-padding {\\n padding: 2px; }\\n .seperate .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .seperate .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .seperate .small-flex-distributed.columns {\\n padding: 5px; }\\n .seperate .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .seperate .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .seperate .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .seperate .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n :host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-image: linear-gradient(to right, #0e4597, #134aa0, #174ea8, #1b53b1, #1f58ba, #1e63c4, #1f6fcd, #227ad6, #308ee0, #45a1e8, #5db4ef, #78c7f6);\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n :host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #78C7F6; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tY2FydC1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1jYXJ0LW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFFTSxxQ0FBcUMsRUFBQTtFQUYzQztJQUlNLFlBQVksRUFBQTtFQUpsQjtJQVFNLGtCQUFrQixFQUFBO0VBS3hCO0VBQ0UsY0FBYyxFQUFBO0VBR2hCO0VBQ0Usb0NBQW9DO0VBQ3BDLHFCQUFxQixFQUFBO0VBR3ZCO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBO0VBR3JCO0VBQ0UsdUJBQXVCO0VBQ3ZCLDhCQUE4QixFQUFBO0VBR2hDO0VBQ0Usa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0UsMkJBQTJCO0VBQzNCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLFVBQVUsRUFBQTtFQUdaO0VBQ0UsWUFBWTtFQUNaLHNCQUFzQixFQUFBO0VBR3hCO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBO0VBRmxCO0lBS0ksZ0JBQWdCLEVBQUE7RUFJcEI7RUFDRSxnQkFBZ0I7RUFDaEIscUJBQXFCLEVBQUE7RUFHdkI7O0VBRUUsUUFBUTtFQUNSLFVBQVUsRUFBQTtFQUdaO0VBQ0UsV0FBVztFQUNYLFVBQVUsRUFBQTtFQUdaO0VBQ0UsMkJBQTJCO0VBQzNCLGlCQUFpQixFQUFBO0VBR25CO0VBQ0ksa0JBQWtCLEVBQUE7RUFHdEI7RUFDSSxTQUFTLEVBQUE7RUFHYjtFQUNJLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7RUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7RUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7RUFHckI7RUFtQkUsVUFBQSxFQUFXO0VBbkJiO0lBR0ksZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixZQUFZO0lBQ1osMEVBQTBFLEVBQUE7RUFUOUU7TUFZTSw4QkFBOEI7TUFDOUIsZ0JBQWdCO01BQ2hCLGVBQWU7TUFDZixVQUFVO01BQ1YsV0FBVyxFQUFBO0VBaEJqQjtJQXFCSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQiw4QkFBOEI7SUFDOUIsdUJBQXVCO0lBQ3ZCLDZDQUEwQyxFQUFBO0VBMUI5QztJQStCSSxhQUFhLEVBQUE7RUEvQmpCO0lBbUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLDJCQUEyQjtJQUMzQixxQkFBcUIsRUFBQTtFQXZDekI7TUEwQ00sc0JBQXNCO01BQ3RCLGtCQUFrQjtNQUNsQixxQ0FBcUM7TUFDckMsNkJBQTZCO01BQzdCLGlCQUFpQjtNQUNqQixZQUFZO01BQ1osVUFBVSxFQUFBO0VBaERoQjtNQW9ETSxrQkFBa0I7TUFDbEIsWUFBWTtNQUNaLGdCQUFnQixFQUFBO0VBdER0QjtNQTBETSxrQkFBa0I7TUFDbEIsT0FBTztNQUNQLFlBQVksRUFBQTtFQTVEbEI7SUFpRUksWUFBWTtJQUNaOztzQkMxQ2tCLEVENENDO0VBcEV2QjtJQXdFSSxlQUFlO0lBQ2YsbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsZ0JBQWdCLEVBQUE7RUE1RXBCO0lBZ0ZJLFlBQVksRUFBQTtFQWhGaEI7TUFtRk0sVUFBVSxFQUFBO0VBbkZoQjtJQXdGSSxTQUFTLEVBQUE7RUF4RmI7SUE0RkksVUFBVSxFQUFBO0VBNUZkO0lBaUdJLGdCQUFnQixFQUFBO0VBakdwQjtJQXNHSSxnQkFBZ0IsRUFBQTtFQXRHcEI7SUEyR0ksd0JBQXdCLEVBQUE7RUEzRzVCO0lBZ0hJLHdCQUF3QixFQUFBO0VBaEg1QjtJQW9ISSxZQUFZLEVBQUE7RUFwSGhCO0lBd0hJLHdCQUF3QixFQUFBO0VBeEg1QjtJQTRISSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQiw4QkFBOEI7SUFDOUIsdUJBQXVCLEVBQUE7RUFoSTNCO0lBb0lJLFlBQVksRUFBQTtFQXBJaEI7SUF3SUksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsMkJBQTJCO0lBQzNCLHFCQUFxQixFQUFBO0VBNUl6QjtNQStJTSxzQkFBc0I7TUFDdEIsa0JBQWtCO01BQ2xCO21DQzVFNkI7TUQ4RTdCLGlCQUFpQjtNQUNqQixZQUFZLEVBQUE7RUFwSmxCO01Bd0pNLGtCQUFrQjtNQUNsQixnQkFBZ0IsRUFBQTtFQXpKdEI7TUE2Sk0sa0JBQWtCO01BQ2xCLE9BQU87TUFDUCxZQUFZLEVBQUE7RUFPbEI7RUFDRSx1SkFBdUo7RUFDdko7OztvSENuRmtILEVEc0ZDO0VBR3JIO0VBQ0UseUJBQXlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1jYXJ0LW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY2FyZCB7XHJcbiAgLmNhcmQtYm9keSB7XHJcbiAgICAgIHBhZGRpbmc6IDJweCAxMHB4IDJweCAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAucm93IHtcclxuICAgICAgaGVpZ2h0OiAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5leGFtcGxlLW1hcmdpbiB7XHJcbiAgbWFyZ2luOiAwIDEycHg7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1pdGVtLmFjdGl2ZSwgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGlzdGxlICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjBweDtcclxuICBmb250LXNpemU6IDAuNjAwcmVtO1xyXG59XHJcblxyXG4uc3RhbmRhcmQge1xyXG4gIGhlaWdodDogMjZweCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogMC43MDByZW0gIWltcG9ydGFudDtcclxufVxyXG5cclxuLnRhYmxlIHRoIHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcbi50YWJsZSB0aCwgLnRhYmxlIHRke1xyXG4gIHBhZGRpbmc6IDJweCA1cHggMnB4IDVweDtcclxufVxyXG5cclxuLnRhYmxlIHRyIHtcclxuICBoZWlnaHQ6IDE2cHg7XHJcbn1cclxuXHJcbi50Ym9keSB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgd2lkdGg6IDk4JTtcclxufVxyXG5cclxuLmZsYWd7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDJweCA1cHg7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcblxyXG4gIC50b2dnbGUuYnRuLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uY3VzdG9tLWNoZWNrYm94LnJpZ2h0IHtcclxuICBwYWRkaW5nOiAwIDAgMCAwO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmN1c3RvbS1jaGVja2JveC5yaWdodCBsYWJlbDpiZWZvcmUsXHJcbi5jdXN0b20tY2hlY2tib3gucmlnaHQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICByaWdodDogMDtcclxuICBsZWZ0OiBhdXRvO1xyXG59XHJcblxyXG4uY3VzdG9tLWNoZWNrYm94LnJpZ2h0IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xyXG4gIHJpZ2h0OiAtMXB4O1xyXG4gIGxlZnQ6IGF1dG87XHJcbn1cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5zZXBlcmF0ZSB7XHJcblxyXG4gIC5hZGRyZXNzLWNvbnRhaW5lciB7XHJcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xyXG4gICAgcGFkZGluZzogMjVweDtcclxuICAgIG1hcmdpbjogMTBweDtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xyXG5cclxuICAgIGZpZWxkc2V0IHtcclxuICAgICAgYm9yZGVyOiBtZWRpdW0gbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiBMYXJnZSAqL1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtcclxuICAgIC8vaGVpZ2h0OiAyNXB4O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gICAgLmNvbnRyb2wtbGFiZWwge1xyXG4gICAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgICBmbGV4OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb250cm9sLWRldGFpbCB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgICAgZmxleC1ncm93OiAyO1xyXG4gICAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgICBmbGV4OiAzO1xyXG4gICAgICBmbGV4LWdyb3c6IDI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucm93IHtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIC8qYm9yZGVyOiAxcHggc29saWQgI2VlZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiKDI1NSwgMjU1LCAyNTUpLCByZ2IoMjU1LCAyNTUsIDI1NSkgMTAlLCByZ2IoMjQ3LCAyNDcsIDI0NykpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDsqL1xyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcclxuICAgIHBhZGRpbmc6IDNweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIG1pbi13aWR0aDogMTcwcHg7XHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZzogOHB4O1xyXG5cclxuICAgIC5uYXYtbGluayB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubm8tYm9yZGVyIHtcclxuICAgIGJvcmRlcjogMDtcclxuICB9XHJcblxyXG4gIC5uby1wYWRkaW5nIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG5cclxuXHJcbiAgW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLmZhOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG4gIH1cclxuXHJcblxyXG4gIFtkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbiAgfVxyXG5cclxuXHJcbiAgW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLnR4dDpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCIuLi4gc2VlIGxlc3MgXCI7XHJcbiAgfVxyXG5cclxuXHJcbiAgW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiO1xyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcclxuICAgIHBhZGRpbmc6IDJweDtcclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmc6IDVweCAxMHB4IDAgMTBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gIH1cclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gICAgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xyXG4gICAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICB3aWR0aDogMTIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgICBmbGV4OiAzO1xyXG4gICAgICBmbGV4LWdyb3c6IDI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMGU0NTk3LCAjMTM0YWEwLCAjMTc0ZWE4LCAjMWI1M2IxLCAjMWY1OGJhLCAjMWU2M2M0LCAjMWY2ZmNkLCAjMjI3YWQ2LCAjMzA4ZWUwLCAjNDVhMWU4LCAjNWRiNGVmLCAjNzhjN2Y2KTtcclxuICAvKmJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7Ki9cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4QzdGNjtcclxufVxyXG5cclxuXHJcblxyXG4iLCIuY2FyZCAuY2FyZC1ib2R5IHtcbiAgcGFkZGluZzogMnB4IDEwcHggMnB4IDEwcHggIWltcG9ydGFudDsgfVxuICAuY2FyZCAuY2FyZC1ib2R5IC5yb3cge1xuICAgIGhlaWdodDogMThweDsgfVxuICAuY2FyZCAuY2FyZC1ib2R5IC5jb2wtZm9ybS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbi5leGFtcGxlLW1hcmdpbiB7XG4gIG1hcmdpbjogMCAxMnB4OyB9XG5cbi5kcm9wZG93bi1pdGVtLmFjdGl2ZSwgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdGhpc3RsZSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7IH1cblxuaW5wdXQuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDAuNjAwcmVtOyB9XG5cbi5zdGFuZGFyZCB7XG4gIGhlaWdodDogMjZweCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuNzAwcmVtICFpbXBvcnRhbnQ7IH1cblxuLnRhYmxlIHRoIHtcbiAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogMnB4IDVweCAycHggNXB4OyB9XG5cbi50YWJsZSB0ciB7XG4gIGhlaWdodDogMTZweDsgfVxuXG4udGJvZHkge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1MDBweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgd2lkdGg6IDk4JTsgfVxuXG4uZmxhZyB7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMCA1cHggMnB4IDVweDsgfVxuXG4uY2hlY2tib3gge1xuICBoZWlnaHQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAzcHg7IH1cbiAgLmNoZWNrYm94IC50b2dnbGUuYnRuLXNtIHtcbiAgICBtaW4taGVpZ2h0OiAyN3B4OyB9XG5cbi5jdXN0b20tY2hlY2tib3gucmlnaHQge1xuICBwYWRkaW5nOiAwIDAgMCAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmN1c3RvbS1jaGVja2JveC5yaWdodCBsYWJlbDpiZWZvcmUsXG4uY3VzdG9tLWNoZWNrYm94LnJpZ2h0IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5jdXN0b20tY2hlY2tib3gucmlnaHQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4gIHJpZ2h0OiAtMXB4O1xuICBsZWZ0OiBhdXRvOyB9XG5cbi51c2VyLXJvbGUge1xuICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMXB4OyB9XG5cbi5jb250cm9sLWJveCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4uc2VhcmNoLWJveCB7XG4gIG1hcmdpbjogMDsgfVxuXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XG4gIHBhZGRpbmctdG9wOiAzcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIG1pbi13aWR0aDogMTAwcHg7IH1cblxuLnVzZXItZGlzYWJsZWQge1xuICBjb2xvcjogIzc3NztcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5sb2NrZWQtb3V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xuICBjb2xvcjogd2hpdGVzbW9rZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cblxuLnNlcGVyYXRlIHtcbiAgLyogTGFyZ2UgKi8gfVxuICAuc2VwZXJhdGUgLmFkZHJlc3MtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xuICAgIHBhZGRpbmc6IDI1cHg7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XG4gICAgLnNlcGVyYXRlIC5hZGRyZXNzLWNvbnRhaW5lciBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5zZXBlcmF0ZSAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgLnNlcGVyYXRlIC5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICAgIHBhZGRpbmc6IDEwcHg7IH1cbiAgLnNlcGVyYXRlIC5jb250cm9sLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgICAuc2VwZXJhdGUgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWxhYmVsIHtcbiAgICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgIGZsZXg6IG5vbmU7IH1cbiAgICAuc2VwZXJhdGUgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICBmbGV4LWdyb3c6IDI7XG4gICAgICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gICAgLnNlcGVyYXRlIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICBmbGV4OiAzO1xuICAgICAgZmxleC1ncm93OiAyOyB9XG4gIC5zZXBlcmF0ZSAucm93IHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgLypib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4OyovIH1cbiAgLnNlcGVyYXRlIC5jb250cm9sLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1pbi13aWR0aDogMTcwcHg7IH1cbiAgLnNlcGVyYXRlIC5jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZzogOHB4OyB9XG4gICAgLnNlcGVyYXRlIC5jb250cm9sLWRldGFpbCAubmF2LWxpbmsge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAuc2VwZXJhdGUgLm5vLWJvcmRlciB7XG4gICAgYm9yZGVyOiAwOyB9XG4gIC5zZXBlcmF0ZSAubm8tcGFkZGluZyB7XG4gICAgcGFkZGluZzogMDsgfVxuICAuc2VwZXJhdGUgW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLmZhOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYxMzlcIjsgfVxuICAuc2VwZXJhdGUgW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTNhXCI7IH1cbiAgLnNlcGVyYXRlIFtkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC50eHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIi4uLiBzZWUgbGVzcyBcIjsgfVxuICAuc2VwZXJhdGUgW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIi4uLiBzZWUgbW9yZSBcIjsgfVxuICAuc2VwZXJhdGUgLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcbiAgICBwYWRkaW5nOiAycHg7IH1cbiAgLnNlcGVyYXRlIC5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7IH1cbiAgLnNlcGVyYXRlIC5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC5zZXBlcmF0ZSAuc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nOiA1cHg7IH1cbiAgLnNlcGVyYXRlIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgICAuc2VwZXJhdGUgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcbiAgICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB3aWR0aDogMTIwcHg7IH1cbiAgICAuc2VwZXJhdGUgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWRldGFpbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICBtaW4td2lkdGg6IDEwMHB4OyB9XG4gICAgLnNlcGVyYXRlIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICBmbGV4OiAzO1xuICAgICAgZmxleC1ncm93OiAyOyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzBlNDU5NywgIzEzNGFhMCwgIzE3NGVhOCwgIzFiNTNiMSwgIzFmNThiYSwgIzFlNjNjNCwgIzFmNmZjZCwgIzIyN2FkNiwgIzMwOGVlMCwgIzQ1YTFlOCwgIzVkYjRlZiwgIzc4YzdmNik7XG4gIC8qYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTsqLyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhDN0Y2OyB9XG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { ArNarration } from 'src/app/models/arnarration.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { BootstrapToggleDirective } from 'src/app/directives/bootstrap-toggle.directive';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { validation } from 'src/app/services/validation.service';\r\nimport { User } from '../../models/user.model';\r\nimport * as moment from 'moment';\r\nimport { ShippingInstr } from '../../models/shipping-instructions.model';\r\nimport { PurchaseOrderList } from '../../models/purchaseorder-list.model';\r\nimport { CoreAudit } from '../../models/core-audit.model';\r\nimport { CustomerPOList } from '../../models/customer-po-list.model';\r\nimport * as _ from 'lodash';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-cart-management',\r\n templateUrl: './syspro-cart-management.component.html',\r\n styleUrls: ['./syspro-cart-management.component.scss']\r\n})\r\nexport class SysproCartManagementComponent implements OnInit, AfterViewInit {\r\n\r\n private cart: CartHeader = new CartHeader();\r\n\r\n auditObj = new CoreAudit();\r\n columns: any[] = [];\r\n rows: CartDetail[] = [];\r\n rowsCache: CartDetail[] = [];\r\n cartComments: CartDetail[] = [];\r\n cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n stockCodedetail: Inventory;\r\n hasDataSheet: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n customerNotes: ArNarration[];\r\n gpPercentage: number;\r\n\r\n @ViewChild('netPriceCheck')\r\n netPriceCheck: BootstrapToggleDirective;\r\n\r\n @ViewChild('commentsModal')\r\n commentsModal: ModalDirective;\r\n @ViewChild('commentsSelector')\r\n private commentsSelector;\r\n\r\n commentLine: CartDetail = new CartDetail();\r\n comments: string[];\r\n newComment: string;\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n //@ViewChild('stockCodeModal')\r\n //stockCodeModal: ModalDirective;\r\n\r\n @ViewChild('notesModal')\r\n notesModal: ModalDirective;\r\n\r\n\r\n @ViewChild('gpModal')\r\n gpModal: ModalDirective;\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n inventoryList: Inventory[];\r\n customerPOList: CustomerPOList[] = [];\r\n\r\n\r\n @ViewChild('shipDate')\r\n private shipDate;\r\n\r\n @ViewChild('shippingInstr')\r\n private shippingInstr;\r\n\r\n @ViewChild('shippingInstrSelector')\r\n private shippingInstrSelector;\r\n shippingInstructionsList: ShippingInstr[] = [];\r\n\r\n @ViewChild('authModal')\r\n authModal: ModalDirective;\r\n\r\n authorized: boolean;\r\n stringToCompare: string;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n stockCode: string;\r\n\r\n itemId: string;\r\n\r\n cartId: string;\r\n id: string;\r\n gridHeight: number = 0;\r\n TotalItems: number = 0;\r\n TotalLines: number = 0;\r\n TotalExcl: number = 0;\r\n TotalDiscount: number = 0;\r\n TotalExclAfterDiscount: number = 0;\r\n TotalVat: number = 0;\r\n TotalIncl: number = 0;\r\n isSaving: boolean;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n cartSaved: boolean;\r\n quoteNumber: any;\r\n quoteUpdated: boolean;\r\n nettPriceSet: boolean = false;\r\n\r\n hasChanged: boolean = false;\r\n emptyDetails: boolean;\r\n hasNettPrices: boolean;\r\n InventoryRow: Inventory[];\r\n\r\n private isEditMode = false;\r\n saveCount: number;\r\n savedLineCount: number;\r\n\r\n itemDescription: string = \"\";\r\n startDate = new Date().toISOString().slice(0, 16);\r\n customer: ArCustomer;\r\n hasBuyouts: boolean;\r\n placePurchaseOrder: boolean;\r\n showGPWarning: boolean;\r\n SysproUser: User;\r\n TotalGPPercent: number;\r\n TotalCost: number;\r\n GPGrid: CartDetail[];\r\n vatPercentage: number = 0;\r\n src: string;\r\n salesOrderNumber: any;\r\n placePurchaseOrderOnly: boolean;\r\n quoteId: string;\r\n //isNewQuote: boolean;\r\n isCopiedQuote: boolean;\r\n // maintainQuote: boolean;\r\n poValidated: boolean;\r\n vatExempt: boolean;\r\n\r\n hasDataSheets: boolean;\r\n hasAddDataSheets: boolean;\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n ready: boolean;\r\n groupKey: string;\r\n isPosting: boolean;\r\n buyerResponsible: string;\r\n isWebOrder: boolean = false;\r\n SysproTotal: number;\r\n isWebQuote: boolean;\r\n firstTimeLoad: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService, private router: Router,\r\n private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n const action = sessionStorage.getItem(localStorageActions.Customer);\r\n const cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n const reset = sessionStorage.getItem(localStorageActions.Reset);\r\n this.cartId = cartId;\r\n this.id = action;\r\n this.auditObj.referenceType = \"CART\";\r\n this.auditObj.referenceNumber = this.cartId;\r\n this.auditObj.branch = this.branchCode;\r\n this.auditObj.applicationUser = this.accountService.currentUser.email;\r\n this.auditObj.actionedBy = this.accountService.currentUser.email;\r\n this.auditObj.groupKey = this.accountService.currentUser.id;\r\n this.postAudit();\r\n\r\n if (reset && reset == \"true\") {\r\n this.isCopiedQuote = true;\r\n }\r\n else {\r\n this.isCopiedQuote = false;\r\n }\r\n\r\n this.firstTimeLoad = true;\r\n\r\n this.sysproService.getShippingInstructions().subscribe(x => this.onShippingInstructionsLoadSuccessful([x]), error => this.onShippingInstructionsFailed(error));\r\n \r\n }\r\n\r\n\r\n ngAfterViewInit() { }\r\n\r\n\r\n loadData(detailOnly?: boolean) {\r\n if (this.cartId) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n if (!detailOnly) {\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n this.sysproService.getCustomerDetail(this.id).subscribe(x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.getCustomerPOList(this.id).subscribe(x => this.onCustomerPOLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.GetSysproComments().subscribe(x => this.onCommentsLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n private onDataLoadSuccessful(customer: ArCustomer) {\r\n this.alertService.stopLoadingMessage();\r\n this.customer = customer;\r\n this.ready = true;\r\n\r\n }\r\n\r\n onCustomerPOLoadSuccessful(x: CustomerPOList[]): void {\r\n this.customerPOList = x;\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n onCartHeaderLoadSuccessful(cart: CartHeader) {\r\n this.cart = cart;\r\n this.cart.branch_code = this.branchCode;\r\n this.startDate = moment().format('YYYY-MM-DD');\r\n this.cart.shipDate = new Date(this.startDate);\r\n\r\n if (this.cart.taxStatus.trim() == 'E') {\r\n this.vatExempt = true;\r\n this.vatPercentage = 0;\r\n }\r\n else {\r\n this.vatExempt = false;\r\n }\r\n\r\n //If this is a copied WEB Quote but not a web order, show discounts\r\n if (this.cart.quotedFrom && this.cart.quotedFrom.trim().startsWith(\"WEB\")) {\r\n this.isWebQuote = true;\r\n }\r\n\r\n if (this.isCopiedQuote) {\r\n this.hasNettPrices = false;\r\n this.cart.hasNettPrices = false;\r\n this.cart.specialInstrs = \"\";\r\n }\r\n else {\r\n this.hasNettPrices = this.cart.hasNettPrices;\r\n if (this.cart.specialInstrs = \"Normal Delivery\") {\r\n this.cart.specialInstrs = \"\";\r\n }\r\n }\r\n if (this.cart.shippingInstrs.trim() === \"\") {\r\n this.cart.shippingInstrs = \"01 - DELIVER VIA FOWKES CT BAKKIE\";\r\n //let clevertsring = (this.application == \"FowkesOnline\" ? \"FOWKES\" : \"MAX\");\r\n var bestMatch = this.shippingInstructionsList.find(t => t.instrText.includes(this.cart.branch_code + \" BAKKIE\"));\r\n if (bestMatch) {\r\n this.cart.shippingInstrs = bestMatch.instrText;\r\n }\r\n }\r\n \r\n console.log(\"CART HEADER LOADED\", this.cart);\r\n\r\n this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onShippingInstructionsFailed(error: any): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n onShippingInstructionsLoadSuccessful(x: any[]): void {\r\n var testlist = x[0];\r\n this.shippingInstructionsList = testlist;\r\n\r\n setTimeout(() => {\r\n if (this.shippingInstrSelector) {\r\n this.shippingInstrSelector.refresh();\r\n }\r\n });\r\n this.loadData();\r\n console.log(\"THIS IS THE SHIPPING INSTRUCTIONS\", this.shippingInstructionsList);\r\n }\r\n\r\n\r\n onCartDetailLoadSuccessful(cartDetail: any[]) {\r\n this.placePurchaseOrder = false;\r\n if (cartDetail[0]) {\r\n\r\n this.rowsCache = [...cartDetail];\r\n const updateRows = this.rowsCache;\r\n\r\n this.TotalLines = updateRows.filter(x => x.lineType !== \"6\").length;\r\n if (this.TotalLines >= 1) {\r\n\r\n this.setNettPrice(false);\r\n this.rows = cartDetail;\r\n this.hasBuyouts = cartDetail.some(x => x.lineType === \"7\");\r\n this.placePurchaseOrder = this.hasBuyouts;\r\n this.isWebOrder = (this.id && this.id == \"FBWEB\") ? true : false;\r\n if (this.isWebOrder === true) {\r\n this.hasBuyouts = false;\r\n this.placePurchaseOrder = false;\r\n\r\n //Check if copied from Web Quote\r\n if (this.isWebQuote && this.firstTimeLoad) {\r\n //Calculate discount percentage for each line\r\n this.setWebDiscountPrice();\r\n this.rows = cartDetail;\r\n //Save discounts applied\r\n this.save();\r\n this.firstTimeLoad = false;\r\n }\r\n }\r\n \r\n if (!this.vatExempt) {\r\n this.vatPercentage = updateRows.filter(x => x.lineType !== \"6\")[0].vatPercentage;\r\n }\r\n }\r\n else {\r\n\r\n this.alertService.showStickyMessage('Load Error', 'You have no items in your cart', MessageSeverity.warn);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n onCommentsLoadSuccessful(x: string[]): void {\r\n this.comments = x;\r\n setTimeout(() => {\r\n if (this.commentsSelector) {\r\n this.commentsSelector.refresh();\r\n }\r\n });\r\n\r\n console.log(\"COMMENTS\", this.comments);\r\n }\r\n\r\n openCommentsModal() {\r\n this.commentsModal.show();\r\n this.commentLine = new CartDetail();\r\n this.commentLine.commentType = \"I\";\r\n console.log(\"COMMENT LINE\", this.commentLine);\r\n }\r\n\r\n addTopComment() {\r\n const lineNumber = 0;\r\n let comment = this.commentLine.comment ? this.commentLine.comment : this.newComment.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\");\r\n this.sysproService.updateCartComments(this.cartId, lineNumber, 0, comment, \"TOP\")\r\n .subscribe(x => this.loadData(), error => this.onDataLoadFailed(error));\r\n this.commentsModal.hide();\r\n }\r\n\r\n addComment() {\r\n const lineNumber = this.rows[this.rows.length - 1].cartLineNumber + 1;\r\n let comment = this.commentLine.comment ? this.commentLine.comment : this.newComment.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\");\r\n let isPreviousLineAComment = (this.rows[this.rows.length - 1].lineType == \"6\") ? \"Y\" : \"N\";\r\n console.log(\"COMMENT LINE\", comment);\r\n this.sysproService.updateCartComments(this.cartId, lineNumber, 0, comment, isPreviousLineAComment)\r\n .subscribe(x => this.loadData(true), error => this.onDataLoadFailed(error));\r\n this.commentsModal.hide();\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n viewCustomer() {\r\n this.isNavigating = true;\r\n this.save();\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goAddItems() {\r\n this.isNavigating = true;\r\n this.save();\r\n this.router.navigate(['../../orders'], { fragment: 'inventory', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goAddNSItems() {\r\n this.isNavigating = true;\r\n this.save();\r\n this.router.navigate(['../../orders'], { fragment: 'nonstock', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goCreateQuote() {\r\n this.isSaving = true;\r\n this.isNavigating = true;\r\n this.saveQuote();\r\n }\r\n\r\n private edit() {\r\n this.isEditMode = true;\r\n this.authorized = false;\r\n for (var product of this.rowsCache) {\r\n product.sellingPrice = product.originalPrice;\r\n product.discountPercentage1 = product.originalDiscount;\r\n }\r\n }\r\n\r\n private cancel() {\r\n this.isEditMode = false;\r\n }\r\n\r\n saveSuccessHeaderHelper(): void {\r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.hasChanged = false;\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', ` Nett Pricing Updated Succesfully`, MessageSeverity.success);\r\n }\r\n\r\n private saveSuccessHelper() {\r\n\r\n this.savedLineCount++;\r\n if (this.saveCount === this.savedLineCount) {\r\n this.cartSaved = true;\r\n\r\n this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.isSaving = false;\r\n this.isEditMode = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', ` Updated successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n\r\n }\r\n }\r\n saveQuoteSuccessHelper(quoteNumber?: any) {\r\n if (quoteNumber) {\r\n this.quoteNumber = quoteNumber[0].quoteNumber;\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, this.quoteNumber);\r\n this.auditObj.actionOutput = \"Created Quote: \" + this.quoteNumber;\r\n this.postAudit();\r\n\r\n //Update Quote Totals\r\n this.auditObj.referenceType = \"QUOTE\";\r\n this.auditObj.referenceNumber = this.quoteNumber;\r\n this.auditObj.actionInput = \"UPDATE TOTALS: TotalIncl: \" + this.TotalIncl + \" TotalExcl: \" + this.TotalExcl + \" TotalDiscount: \" + this.TotalDiscount;\r\n this.sysproService.postQuoteTotals(this.quoteNumber, this.TotalIncl, this.TotalExcl, this.TotalDiscount).subscribe(_response => this.updateSuccessHelper(_response), error => this.saveFailedHelper(error));\r\n\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', ` Quote Created Succesfully`, MessageSeverity.success);\r\n }\r\n }\r\n\r\n private updateSuccessHelper(quoteNumber?: any) {\r\n\r\n this.quoteUpdated = true;\r\n this.auditObj.actionOutput = \"Updated Totals \" + this.quoteNumber;\r\n this.postAudit();\r\n this.alertService.showMessage('Success', this.quoteNumber + ` Updated successfully`, MessageSeverity.success);\r\n //Clear Cart\r\n sessionStorage.removeItem(localStorageActions.CartId);\r\n this.router.navigate(['../quotes'], { fragment: 'quote', queryParams: { customer: this.id, quoteNumber: this.quoteNumber } });\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n validatePost(): boolean {\r\n let error = \"\";\r\n\r\n error = validation.validateCustomerOnHold(this.customer.customerOnHold, this.customer.creditLimit, this.customer.currentBalance1, error);\r\n if (error == \"\") {\r\n error = validation.validateCustomerPO(this.cart.customerPoNumber, error);\r\n if (error == \"\" && !!this.customerPOList[0] && !this.poValidated) {\r\n this.validatePO();\r\n this.isSaving = false;\r\n return false;\r\n }\r\n else {\r\n error = validation.validateSalesPerson(this.cart.salesperson, error);\r\n error = validation.validateShippingInstructions(this.cart.shippingInstrs, error);\r\n\r\n for (var product of this.rows) {\r\n if (product.lineType == \"1\") {\r\n error = validation.validateQtyForOrder(product.stockCode, product.availQty, product.orderQty, error);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n validatePO() {\r\n //Compare customer PO list\r\n let exactMatch = this.customerPOList.filter(x => x.customerPoNumber == this.cart.customerPoNumber);\r\n if (exactMatch.length >= 1) {\r\n if (exactMatch.length == 1) {\r\n this.alertService.showDialog('This PO has been used before on Invoice \\\"' + exactMatch[0].invoice + '\\\" do you want to continue?', DialogType.confirm, () => this.continueSaveHelper(), this.tryAgainHelper());\r\n\r\n }\r\n else {\r\n this.alertService.showDialog('This PO has been used before on \\\"' + exactMatch.length.toString() + '\\\" invoices, do you want to continue?', DialogType.confirm, () => this.continueSaveHelper(), this.tryAgainHelper());\r\n\r\n }\r\n }\r\n else {\r\n let partialString = this.cart.customerPoNumber.length > 4 ? this.cart.customerPoNumber.substr(0, 5) : this.cart.customerPoNumber;\r\n let partialMatch = this.customerPOList.filter(r => Utilities.searchArray(partialString, false, r.customerPoNumber));\r\n if (partialMatch.length >= 1) {\r\n\r\n this.alertService.showDialog('This PO is similar to PO \\\"' + partialMatch[0].customerPoNumber + '\\\" , do you want to continue?', DialogType.confirm, () => this.continueSaveHelper(), this.tryAgainHelper());\r\n\r\n }\r\n else {\r\n partialMatch = this.customerPOList.filter(r => Utilities.searchArray(this.cart.customerPoNumber, false, r.customerPoNumber));\r\n if (partialMatch.length >= 1) {\r\n\r\n this.alertService.showDialog('This PO is similar to PO \\\"' + partialMatch[0].customerPoNumber + '\\\" , do you want to continue?', DialogType.confirm, () => this.continueSaveHelper(), this.tryAgainHelper());\r\n\r\n }\r\n else {\r\n this.continueSaveHelper();\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n continueSaveHelper(): any {\r\n this.poValidated = true;\r\n this.goPlaceOrder();\r\n }\r\n\r\n tryAgainHelper(): any {\r\n this.poValidated = false;\r\n this.isPosting = false;\r\n }\r\n\r\n ValidateSave(row: CartDetail): boolean {\r\n let error = \"\";\r\n let lineValid = this.authorized;\r\n if (row.lineType !== \"6\") {\r\n if (!lineValid) {\r\n error = validation.minSpecialPrice(row.unitCost, row.nettPrice, error);\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error + 'For item ' + row.stockCode, MessageSeverity.error);\r\n this.authorized = false;\r\n this.authModal.show();\r\n return false;\r\n }\r\n else {\r\n lineValid = true;\r\n }\r\n }\r\n if (lineValid) {\r\n error = validation.qty(row.orderQty, error);\r\n error = validation.uom(row.orderUom, error);\r\n error = validation.price(row.sellingPrice, error);\r\n error = validation.discount(row.discountPercentage1, error);\r\n error = validation.cost(row.unitCost, error);\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error + 'For item ' + row.stockCode, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n verifyAuth() {\r\n this.alertService.startLoadingMessage(\"Verfiying...\");\r\n this.loadingIndicator = true;\r\n this.fowkesService.VerifyPassword(this.branchCode, \"PRICE\", encodeURIComponent(this.stringToCompare)).subscribe(x => this.onVerificationSuccess(), error => this.onVerificationFailed(error));\r\n\r\n }\r\n onVerificationSuccess(): void {\r\n this.authorized = true;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', 'Authorized', MessageSeverity.success);\r\n this.authModal.hide();\r\n this.save();\r\n }\r\n\r\n onVerificationFailed(error: any): void {\r\n this.authorized = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', 'Authorization Failed ', MessageSeverity.error);\r\n }\r\n //viewInventory() {\r\n\r\n //}\r\n\r\n calcOrderQty(row: any, event) {\r\n var val = event.target.value;\r\n row.orderQty = val;\r\n\r\n //let total = 0;\r\n //let discount = (row.discountPercentage1 && row.discountPercentage1 >= 0 ? row.discountPercentage1 : 0);\r\n\r\n //if (discount > 0) {\r\n // total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, discount, total);\r\n //}\r\n //else {\r\n // let specialUnit = row.specialPrice * row.priceConvFac;\r\n // total = Calculations.getGridLineTotal(row.orderQty, specialUnit, row.priceConvFac, discount, total);\r\n //}\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcDisc(row: any, event) {\r\n var val = event.target.value;\r\n row.discountPercentage1 = val;\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n\r\n row.specialPrice = Calculations.getGridLineTotal(1, row.sellingPrice, row.priceConvFac, row.discountPercentage1, total);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcPrice(row: any, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n let discount = (row.discountPercentage1 && row.discountPercentage1 >= 0 ? row.discountPercentage1 : 0);\r\n let qty = (row.orderQty && row.orderQty >= 0 ? row.orderQty : 0);\r\n let total = 0;\r\n\r\n row.specialPrice = Calculations.getGridLineTotal(1, row.sellingPrice, row.priceConvFac, discount, total);\r\n\r\n total = Calculations.getGridLineTotal(qty, row.sellingPrice, row.priceConvFac, discount, total);\r\n\r\n\r\n //(row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n //let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n //row.lineTotal = total;\r\n }\r\n\r\n\r\n calcTotal(row: any) {\r\n let total = 0;\r\n row.nettDiscount = 0;\r\n row.nettPrice = Calculations.getGridNettLinePrice(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n \r\n\r\n //let discount = (row.discountPercentage1 && row.discountPercentage1 >= 0 ? row.discountPercentage1 : 0);\r\n\r\n //if (discount > 0) {\r\n // total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, discount, total);\r\n //}\r\n //else {\r\n // //let specialUnit = row.specialPrice * row.priceConvFac;\r\n // total = Calculations.getGridLineTotal(row.orderQty, row.specialPrice, row.priceConvFac, discount, total);\r\n //}\r\n row.lineTotal = total;\r\n //row.gP = Calculations.precise_round(row.gP, 2);\r\n }\r\n\r\n\r\n deleteRow(row: CartDetail) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.stockCode + ' - ' + row.stockDescription + '\\\"?', DialogType.confirm, () => this.deleteRowHelper(row));\r\n }\r\n\r\n deleteRowHelper(row: CartDetail) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.auditObj.actionType = \"DELETE\";\r\n this.auditObj.actionInput = row.cartNumber + \": Line\" + row.cartLineNumber + \": Description\" + row.stockDescription;\r\n\r\n this.fowkesService.cartDetailDelete(row.cartNumber, row.cartLineNumber).subscribe(results => {\r\n this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n //this.auditObj.actionOutput = \"Deleted Successfully\";\r\n //this.postAudit();\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.stockCode + ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n //this.auditObj.actionOutput = \"Delete Failed\";\r\n //this.postAudit();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n private saveQuote() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Creating Quote...');\r\n this.auditObj.actionType = \"UPDATE\";\r\n this.auditObj.actionInput = this.cart.cartNumber;\r\n //Update the cart header\r\n if (this.cart.customerPoNumber) {\r\n\r\n this.cart.customerPoNumber = this.cart.customerPoNumber.toUpperCase();\r\n }\r\n\r\n //Add cut to zize comment\r\n this.fowkesService.newCart(this.cart).subscribe(_response => this.saveCartSuccessHelper(this.cart.cartNumber, true), error => this.saveFailedHelper(error));\r\n }\r\n\r\n saveCartSuccessHelper(cartNumber: string, createQuote?: boolean): void {\r\n this.auditObj.actionOutput = \"UPDATED\";\r\n\r\n this.alertService.showMessage('Success', `Updated cart successfully ` + cartNumber, MessageSeverity.success);\r\n if (createQuote) {\r\n this.auditObj.actionType = \"CONVERT TO QUOTE\";\r\n this.auditObj.actionInput = this.cartId;\r\n this.sysproService.postCartToQuote(this.cartId).subscribe(_response => this.saveQuoteSuccessHelper(_response), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n goPlaceOrder() {\r\n if (!this.isPosting) {\r\n if (this.validatePost()) {\r\n //Check SYSPRO User\r\n this.isPosting = true;\r\n this.alertService.startLoadingMessage('Loggin into Syspro...');\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser).subscribe(x => this.onsessionCreatedSuccesful(x), error => this.onSessionFailed(error));\r\n }\r\n } \r\n }\r\n\r\n\r\n onsessionCreatedSuccesful(x: User): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Logged into syspro successfully`, MessageSeverity.success);\r\n\r\n\r\n this.alertService.startLoadingMessage('Creating Sales Order...');\r\n this.cart.shipDate = new Date(this.startDate);\r\n\r\n this.SysproUser = x;\r\n this.auditObj.sysproOperator = this.SysproUser.sysproOperator; \r\n\r\n const header = this.cart;\r\n const detail = this.rows.filter(r => r.lineType != \"6\");\r\n\r\n if (this.SysproUser.sysproSessionId) {\r\n this.auditObj.actionOutput = this.SysproUser.sysproSessionId;\r\n this.postAudit();\r\n \r\n if (!this.placePurchaseOrderOnly) {\r\n const postObject = {\r\n \"user\": this.SysproUser, \"header\": header, \"detail\": detail\r\n };\r\n console.log(\"POSTING\", postObject);\r\n this.auditObj.actionType = \"PLACE ORDER\";\r\n this.auditObj.actionInput = JSON.stringify(postObject);\r\n this.sysproService.postSalesOrderSyspro(postObject).subscribe(x => this.onSoirtoiPOSTSuccesful(x), error => this.onSoirtoiPOSTFailed(error));\r\n }\r\n else {\r\n this.newMethod(this.salesOrderNumber);\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `You have not logged into Syspro`, MessageSeverity.warn);\r\n this.isPosting = false;\r\n }\r\n\r\n }\r\n onSoirtoiPOSTSuccesful(x: any): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n var salesOrderHeader = x[0];\r\n\r\n if (salesOrderHeader) {\r\n this.alertService.showMessage('Success', `Created Sales Order`, MessageSeverity.success);\r\n sessionStorage.removeItem(localStorageActions.SalesOrderNumber);\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, salesOrderHeader.salesOrderNumber);\r\n this.salesOrderNumber = salesOrderHeader.salesOrderNumber;\r\n\r\n //Handle Comments\r\n const commentCount = this.rows.filter(x => x.lineType === \"6\").length;\r\n if (commentCount >= 1) {\r\n this.cartComments = this.rows.filter(x => x.lineType === \"6\");\r\n console.log(\"Handle Comments\", commentCount);\r\n this.postComments(null, commentCount, 0);\r\n }\r\n else {\r\n //Handle Purchase Order\r\n this.newMethod(salesOrderHeader.salesOrderNumber);\r\n }\r\n \r\n }\r\n else {\r\n console.log(\"POST RESPONSE\", x);\r\n this.isSaving = false;\r\n this.isPosting = false;\r\n this.alertService.showStickyMessage('Failed', 'Creating Sales Order Failed ', MessageSeverity.error);\r\n this.alertService.showStickyMessage(x.message, null, MessageSeverity.error);\r\n }\r\n\r\n }\r\n\r\n postComments(result: any, commentCount: number, lineNumber: number) {\r\n if (commentCount > lineNumber) {\r\n let product = this.cartComments[lineNumber];\r\n this.sysproService.InsertSalesOrderComments(this.salesOrderNumber, product.cartLineNumber, product.comment.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"),\r\n product.commentFromLineNumber, product.commentType, false).subscribe(x => this.postComments(x, commentCount, lineNumber + 1), error => this.onCommentFailed(error));\r\n }\r\n else {\r\n //Handle Purchase Order\r\n this.newMethod(this.salesOrderNumber);\r\n }\r\n }\r\n\r\n onCommentFailed(error: any): void {\r\n console.log(error);\r\n //Handle Purchase Order\r\n this.newMethod(this.salesOrderNumber);\r\n }\r\n\r\n\r\n private newMethod(salesOrder: string) {\r\n console.log(\"Handle Purchase Order:\", this.hasBuyouts);\r\n if (this.hasBuyouts) {\r\n this.alertService.startLoadingMessage('Staging Purchase Order...');\r\n this.auditObj.referenceType = \"SALES ORDER PO\";\r\n this.auditObj.referenceNumber = salesOrder;\r\n this.auditObj.actionType = \"STAGE PURCHASE ORDER\";\r\n \r\n const user = this.SysproUser;\r\n const filteredRows = this.rows.filter(x => x.lineType === \"7\");\r\n const flags = {};\r\n const newPlaces = filteredRows.filter(function (entry) {\r\n if (flags[entry.boSupplierCode]) {\r\n return false;\r\n }\r\n flags[entry.boSupplierCode] = true;\r\n return true;\r\n });\r\n console.log(newPlaces);\r\n console.log(flags);\r\n\r\n this.alertService.startLoadingMessage('Loggin into Syspro...');\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser, true).subscribe(x => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Logged into syspro successfully`, MessageSeverity.success);\r\n this.SysproUser = x;\r\n if (this.SysproUser && this.SysproUser.sysproBuyer && this.SysproUser.sysproBuyer != '') {\r\n for (const supplier in flags) {\r\n const header = this.cart;\r\n console.log(supplier);\r\n const detail = filteredRows.filter(x => x.boSupplierCode === supplier);\r\n const postObject = {\r\n \"user\": this.SysproUser, \"header\": header, \"detail\": detail, \"poResult\": new PurchaseOrderList()\r\n };\r\n this.auditObj.actionInput = \"SUPPLIER :\" + supplier + \"Values: \" + JSON.stringify(postObject);\r\n this.sysproService.InsertPurchaseOrderStaging(postObject, salesOrder, supplier).subscribe(x => this.onPOSaveSuccesful(x, salesOrder, supplier, postObject), error => this.onPortoiPOSTFailed(error));\r\n\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Error', 'Buyer code invalid for placing purchase orders', MessageSeverity.warn);\r\n }\r\n \r\n }, error => this.onSessionFailed(error));\r\n }\r\n if (!this.placePurchaseOrder) {\r\n\r\n //clean up cart\r\n sessionStorage.removeItem(localStorageActions.CartId); \r\n this.isNavigating = true;\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: this.id, salesorder: this.salesOrderNumber} });\r\n\r\n }\r\n }\r\n onPOSaveSuccesful(x: PurchaseOrderList, salesOrder: string, supplier: string, postObject: any): void {\r\n console.log(\"Purchase Order staging saved\", this.placePurchaseOrder);\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Success', 'Purchase Order staging saved:', MessageSeverity.success);\r\n this.auditObj.actionOutput = \"Purchase Order staging saved\";\r\n this.postAudit();\r\n if (this.placePurchaseOrder)\r\n {\r\n this.alertService.startLoadingMessage('Posting Purchase Order...');\r\n this.auditObj.actionType = \"POST PURCHASE ORDER\";\r\n postObject = {\r\n ...postObject, \"poResult\": x[0]\r\n }\r\n console.log(postObject);\r\n this.auditObj.actionInput = \"SUPPLIER :\" + supplier + \"Values: \" + JSON.stringify(postObject);\r\n this.sysproService.PostPurchaseOrderToSyspro(postObject).subscribe(x => this.onPortoiPOSTSuccesful(x), error => this.onPortoiPOSTFailed(error));\r\n\r\n }\r\n }\r\n\r\n onSessionFailed(error: any): void {\r\n this.isSaving = false;\r\n this.isPosting = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Error', 'Could not log you into SYSPRO', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n\r\n onSoirtoiPOSTFailed(error: any): void {\r\n this.isSaving = false;\r\n this.isPosting = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Error', 'The below errors occured whilst placing Sales Order:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n onPortoiPOSTSuccesful(x: any): void {\r\n console.log(\"PO POSTED\", x);\r\n this.placePurchaseOrderOnly = false;\r\n this.alertService.stopLoadingMessage();\r\n var poHeader = x[0];\r\n if (poHeader) {\r\n\r\n this.alertService.showStickyMessage('Success', 'Purchase Order Posted to Syspro:', MessageSeverity.success);\r\n this.auditObj.actionOutput = \"Purchase Order Posted\";\r\n this.postAudit();\r\n this.isNavigating = true;\r\n console.log(\"PO SalesOrder\", x[0].salesOrder);\r\n sessionStorage.removeItem(localStorageActions.SalesOrderNumber);\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, poHeader.salesOrder);\r\n\r\n //clean up cart\r\n sessionStorage.removeItem(localStorageActions.CartId);\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: this.id, salesorder: x[0].salesOrder } });\r\n }\r\n else {\r\n this.isPosting = false;\r\n this.isSaving = false;\r\n this.alertService.showStickyMessage('Failed', 'Creating Purchase Order Failed ', MessageSeverity.error);\r\n this.alertService.showStickyMessage(x.message, null, MessageSeverity.error);\r\n this.alertService.showStickyMessage('WARNING', 'Sales Order ' + this.salesOrderNumber + ' has already been created, placing order again will only create the PO', MessageSeverity.info);\r\n this.placePurchaseOrderOnly = true;\r\n }\r\n\r\n }\r\n onPortoiPOSTFailed(error: any): void {\r\n this.isPosting = false;\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Error', 'The below errors occured whilst placing Purchase Order:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n \r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n if (this.isCopiedQuote) {\r\n //Make sure to clear copied quote flag to prevent resetting of peices again\r\n sessionStorage.removeItem(localStorageActions.Reset);\r\n this.isCopiedQuote = false;\r\n }\r\n\r\n if (this.cart.customerPoNumber) {\r\n\r\n this.cart.customerPoNumber = this.cart.customerPoNumber.toUpperCase();\r\n }\r\n\r\n\r\n this.fowkesService.newCart(this.cart).subscribe(_response => this.saveCartSuccessHelper(this.cart.cartNumber, false), error => this.saveFailedHelper(error));\r\n\r\n //Update the cart header if nett pricing has been switched on or off\r\n if (this.hasChanged) {\r\n this.sysproService.updateCartStatus(this.cart.cartNumber, this.cart.hasNettPrices).subscribe(_response => this.saveSuccessHeaderHelper(), error => this.saveFailedHelper(error));\r\n }\r\n this.savedLineCount = 0;\r\n this.saveCount = this.rows.filter(x => x.lineType !== \"6\" || x.selected == true).length;\r\n for (var product of this.rowsCache) {\r\n //Find each updated row, validate and update cart details\r\n if (product.selected) {\r\n this.fowkesService.cartDetailDelete(product.cartNumber, product.cartLineNumber).subscribe(_response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n if (product.lineType !== \"6\") {\r\n\r\n //Set Prices\r\n if (this.cart.hasNettPrices) {\r\n product.sellingPrice = product.nettPrice;\r\n product.discountPercentage1 = product.nettDiscount;\r\n }\r\n else {\r\n if (this.isEditMode) {\r\n product.originalPrice = product.sellingPrice;\r\n product.originalDiscount = product.discountPercentage1;\r\n }\r\n else {\r\n product.sellingPrice = product.originalPrice;\r\n product.discountPercentage1 = product.originalDiscount;\r\n }\r\n }\r\n if (product.lineType == \"7\") {\r\n\r\n product.unitCost = Calculations.setUnitCostDecimals(product.unitCost);\r\n }\r\n\r\n if (this.ValidateSave(product)) {\r\n // product.sellingPrice = (product.discountPercentage1 > 0 ? product.sellingPrice : product.specialPrice);\r\n this.fowkesService.cartDetail(product, product.cartNumber).subscribe(_response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n //else {\r\n // this.savedLineCount++;\r\n //}\r\n }\r\n }\r\n } \r\n }\r\n\r\n \r\n\r\n setNettPrice(hasChanged?: boolean) {\r\n this.hasChanged = hasChanged;\r\n this.nettPriceSet = this.cart.hasNettPrices;\r\n let resetPrice = this.isCopiedQuote;\r\n \r\n\r\n this.TotalItems = 0;\r\n this.TotalExcl = 0;\r\n this.TotalDiscount = 0;\r\n this.TotalExclAfterDiscount = 0;\r\n this.TotalVat = 0;\r\n this.TotalIncl = 0;\r\n this.TotalCost = 0;\r\n this.SysproTotal = 0;\r\n this.TotalGPPercent = 0;\r\n var sumOfLineDiscount = 0;\r\n var roundedTotalExclForVatCalc = 0;\r\n\r\n const updateRows = [...this.rowsCache];\r\n\r\n for (var product of updateRows) {\r\n if (product.lineType == '1' && resetPrice) {\r\n let sysproPrice = product.currentPrice;\r\n // product.discountPercentage1 = product.originalDiscount;\r\n product.discountPercentage1 = product.originalDiscount;\r\n product.originalPrice = sysproPrice;\r\n product.sellingPrice = sysproPrice;\r\n product.nettPrice = sysproPrice;\r\n }\r\n\r\n if (product.lineType == \"7\") {\r\n product.unitCost = Calculations.setUnitCostDecimals(product.unitCost);\r\n }\r\n\r\n var lineTotalExclVat = Calculations.calculateBaseLineTotal(product.orderQty, product.originalPrice, product.priceConvFac, product.lineTotal);\r\n var lineDiscount = Calculations.calculateLineDiscountTotal(product.orderQty, product.originalPrice, product.originalDiscount, product.priceConvFac, 0);\r\n var lineTotalNettPrice = Calculations.calculateNettLinePrice(product.orderQty, product.sellingPrice, product.priceConvFac, lineTotalExclVat, lineDiscount);\r\n //var lineTotalNettPrice = Calculations.calculateNettLinePriceWithDiscPerc(product.orderQty, product.originalPrice, product.priceConvFac, lineTotalExclVat, product.originalDiscount);\r\n var lineTotalNett = Calculations.calculateBaseLineTotal(product.orderQty, lineTotalNettPrice, product.priceConvFac, product.lineTotal);\r\n var lineSysproLineTotal = Calculations.calculateLineSysproTotal(product.orderQty, product.originalPrice, product.originalDiscount, product.priceConvFac, 0);\r\n\r\n //product.unitPrice = (lineTotalExclVat > 0 ? Calculations.RoundAwayFromZero(((lineTotalExclVat - lineDiscount) / product.orderQty), 2) : 0);\r\n product.unitPrice = (lineTotalExclVat > 0 ? ((lineTotalExclVat - lineDiscount) / product.orderQty) : 0);\r\n\r\n var test = product.specialPrice;\r\n\r\n var lineTotalGpPercent = Calculations.calculateGPLineTotal(product.unitCost, product.specialPrice , product.priceConvFac, product.lineTotal);\r\n if (lineTotalGpPercent < 20) {\r\n this.showGPWarning = true;\r\n }\r\n\r\n this.TotalCost += (product.unitCost * product.orderQty);\r\n\r\n this.TotalItems += product.orderQty;\r\n if (this.nettPriceSet) {\r\n\r\n this.TotalExcl += lineTotalNett;\r\n this.TotalDiscount = 0;\r\n }\r\n else {\r\n this.TotalExcl += lineTotalExclVat;\r\n sumOfLineDiscount += lineDiscount;\r\n this.SysproTotal += lineSysproLineTotal;\r\n \r\n }\r\n\r\n var lineVat = 0;\r\n if (product.vatPercentage && product.vatExempt == false) {\r\n lineVat = Calculations.calculateLineVat(lineTotalExclVat, lineDiscount, 0, product.vatPercentage);\r\n }\r\n\r\n this.TotalVat += lineVat; \r\n\r\n this.calcTotal(product);\r\n\r\n }\r\n\r\n //this.TotalExclAfterDiscount = (Calculations.RoundAwayFromZero(this.TotalExcl, 2) - Calculations.RoundAwayFromZero( this.TotalDiscount, 2));\r\n //this.TotalIncl = Calculations.RoundAwayFromZero((this.TotalExclAfterDiscount + this.TotalVat), 2);\r\n\r\n roundedTotalExclForVatCalc = (Calculations.RoundAwayFromZero(this.TotalExcl, 2) - Calculations.RoundAwayFromZero(sumOfLineDiscount, 2));\r\n this.TotalExclAfterDiscount = this.TotalExcl - sumOfLineDiscount;\r\n this.TotalIncl = Calculations.RoundAwayFromZero((roundedTotalExclForVatCalc + this.TotalVat), 2);\r\n this.TotalDiscount = this.TotalExcl - this.TotalExclAfterDiscount;\r\n\r\n this.TotalGPPercent = this.TotalExclAfterDiscount > 0 ? Calculations.RoundAwayFromZero(((this.TotalExclAfterDiscount - this.TotalCost) / this.TotalExclAfterDiscount) * 100, 2) : 0;\r\n if (this.TotalGPPercent < 20) {\r\n this.showGPWarning = true;\r\n }\r\n\r\n if (this.isCopiedQuote) {\r\n //Make sure to clear copied quote flag to prevent resetting of peices again\r\n sessionStorage.removeItem(localStorageActions.Reset);\r\n this.isCopiedQuote = false;\r\n }\r\n }\r\n\r\n\r\n setWebDiscountPrice() {\r\n this.TotalItems = 0;\r\n this.TotalExcl = 0;\r\n this.TotalDiscount = 0;\r\n this.TotalExclAfterDiscount = 0;\r\n this.TotalVat = 0;\r\n this.TotalIncl = 0;\r\n this.TotalCost = 0;\r\n this.SysproTotal = 0;\r\n this.TotalGPPercent = 0;\r\n var sumOfLineDiscount = 0;\r\n var roundedTotalExclForVatCalc = 0;\r\n\r\n const webQuoteRows = [...this.rowsCache];\r\n\r\n for (var product of webQuoteRows) {\r\n if (product.lineType == '1') {\r\n let sysproPrice = product.currentPrice;\r\n\r\n //Calulcate the discount percentage between Syspro price and Web Price\r\n //Calculate based on QTY && priceConvFac\r\n product.originalPrice = sysproPrice;\r\n product.originalDiscount = Calculations.calculateSpecialDiscountTotal(sysproPrice, product.specialPrice, 0);\r\n //product.lineTotal\r\n }\r\n\r\n if (product.lineType == \"7\") {\r\n product.unitCost = Calculations.setUnitCostDecimals(product.unitCost);\r\n }\r\n\r\n var lineTotalExclVat = Calculations.calculateBaseLineTotal(product.orderQty, product.originalPrice, product.priceConvFac, product.lineTotal);\r\n var lineDiscount = Calculations.calculateLineDiscountTotal(product.orderQty, product.originalPrice, product.originalDiscount, product.priceConvFac, 0);\r\n var lineTotalNettPrice = Calculations.calculateNettLinePrice(product.orderQty, product.sellingPrice, product.priceConvFac, lineTotalExclVat, lineDiscount);\r\n //var lineTotalNettPrice = Calculations.calculateNettLinePriceWithDiscPerc(product.orderQty, product.originalPrice, product.priceConvFac, lineTotalExclVat, product.originalDiscount);\r\n var lineTotalNett = Calculations.calculateBaseLineTotal(product.orderQty, lineTotalNettPrice, product.priceConvFac, product.lineTotal);\r\n var lineSysproLineTotal = Calculations.calculateLineSysproTotal(product.orderQty, product.originalPrice, product.originalDiscount, product.priceConvFac, 0);\r\n\r\n //product.unitPrice = (lineTotalExclVat > 0 ? Calculations.RoundAwayFromZero(((lineTotalExclVat - lineDiscount) / product.orderQty), 2) : 0);\r\n product.unitPrice = (lineTotalExclVat > 0 ? ((lineTotalExclVat - lineDiscount) / product.orderQty) : 0);\r\n\r\n var test = product.specialPrice;\r\n\r\n var lineTotalGpPercent = Calculations.calculateGPLineTotal(product.unitCost, product.specialPrice, product.priceConvFac, product.lineTotal);\r\n if (lineTotalGpPercent < 20) {\r\n this.showGPWarning = true;\r\n }\r\n\r\n this.TotalCost += (product.unitCost * product.orderQty);\r\n\r\n this.TotalItems += product.orderQty;\r\n if (this.nettPriceSet) {\r\n\r\n this.TotalExcl += lineTotalNett;\r\n this.TotalDiscount = 0;\r\n }\r\n else {\r\n this.TotalExcl += lineTotalExclVat;\r\n sumOfLineDiscount += lineDiscount;\r\n this.SysproTotal += lineSysproLineTotal;\r\n\r\n }\r\n\r\n var lineVat = 0;\r\n if (product.vatPercentage && product.vatExempt == false) {\r\n lineVat = Calculations.calculateLineVat(lineTotalExclVat, lineDiscount, 0, product.vatPercentage);\r\n }\r\n\r\n this.TotalVat += lineVat;\r\n\r\n this.calcTotal(product);\r\n\r\n }\r\n\r\n roundedTotalExclForVatCalc = (Calculations.RoundAwayFromZero(this.TotalExcl, 2) - Calculations.RoundAwayFromZero(sumOfLineDiscount, 2));\r\n this.TotalExclAfterDiscount = this.TotalExcl - sumOfLineDiscount;\r\n this.TotalIncl = Calculations.RoundAwayFromZero((roundedTotalExclForVatCalc + this.TotalVat), 2);\r\n this.TotalDiscount = this.TotalExcl - this.TotalExclAfterDiscount;\r\n\r\n this.TotalGPPercent = this.TotalExclAfterDiscount > 0 ? Calculations.RoundAwayFromZero(((this.TotalExclAfterDiscount - this.TotalCost) / this.TotalExclAfterDiscount) * 100, 2) : 0;\r\n if (this.TotalGPPercent < 20) {\r\n this.showGPWarning = true;\r\n }\r\n }\r\n\r\n showGPModal() {\r\n this.gpModal.show();\r\n const gpRows = this.rowsCache.filter(x => x.lineType !== \"6\");\r\n for (var product of gpRows) {\r\n //var specialUnitPrice = (product.specialPrice / product.priceConvFac);\r\n var lineTotalGpPercent = Calculations.calculateGPLineTotal(product.unitCost, product.specialPrice, product.priceConvFac, product.lineTotal);\r\n product.gP = lineTotalGpPercent;\r\n }\r\n this.GPGrid = gpRows;\r\n }\r\n\r\n //viewCustomerNotes(row: ArCustomerEdit) {\r\n // sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n // this.router.navigate(['../../customers'], { fragment: 'notes', queryParams: { customer: row.customer } });\r\n //}\r\n\r\n onStockLoadSuccessful(inventory: any[]) {\r\n\r\n this.inventoryList = inventory[0];\r\n }\r\n\r\n stockCodeModalHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n \r\n if (row.lineType != \"7\" && row.mapped) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.stockDescription;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.addSheetImage = row.addSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n this.stockCodedetail.onSpecialFowkes = row.onSpecialFowkes;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n onStockCodeLoadSuccessful(row: Inventory): void {\r\n\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail = row[0];\r\n this.hasDataSheet = false;\r\n this.hasAddDataSheets = false;\r\n this.hasSpecials = false;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (this.stockCodedetail.dataSheetImage) {\r\n this.hasDataSheet = true;\r\n this.stockCodedetail.dataSheetImage = encodeURIComponent(this.stockCodedetail.dataSheetImage);\r\n }\r\n if (this.stockCodedetail.addSheetImage) {\r\n this.hasAddDataSheets = true;\r\n this.stockCodedetail.addSheetImage = encodeURIComponent(this.stockCodedetail.addSheetImage);\r\n }\r\n if (this.stockCodedetail.specialsImage) {\r\n this.hasSpecials = true;\r\n }\r\n if (!!this.stockCodedetail) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.sysproService.getStockCodeAvailableQuantities(row.alternateKey.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n openSpecials(row: Inventory) {\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"https://www.maxarcus.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"https://www.fowkes.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n //if (!!row.specialsImage && row.specialsImage != \"\") {\r\n // window.open(row.filePath + \"/SpecialImages/\" + row.specialsImage, \"_blank\");\r\n //}\r\n }\r\n\r\n showWHDetail(row: any, event) {\r\n if (row) {\r\n if (row.lineType != \"7\") {\r\n this.stockDescription = row.stockCode + \": \" + row.stockDescription;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n\r\n onEmailLoadSuccessful() {\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasAddDataSheets = false;\r\n this.hasSpecials = false;\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n this.hasAddDataSheets = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage.length >= 1);\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.specialsImage.length >= 1 && (this.stockCodedetail.onSpecial || this.stockCodedetail.onSpecialFowkes));\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"), this.branchCode, this.application).subscribe(x => this.emailModal.show(), error => this.onDataLoadFailed(error));\r\n\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.customer.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim();\r\n }\r\n\r\n if (this.hasAddDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc3 = this.stockCodedetail.addSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n titleCase(str) {\r\n str = str.toLowerCase();\r\n return str.replace(/\\w\\S/g, function (t) { return t.toUpperCase() });\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n\r\n viewInventory() {\r\n console.log(\"TEST\");\r\n\r\n }\r\n\r\n viewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n console.log(this.emailObject);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.emailObject.AddDoc1 = (this.attachDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var stockCode = this.emailObject.Attachment;\r\n\r\n this.src = url;\r\n // window.open(this.src).print();\r\n // const blobUrl = window.URL.createObjectURL((test));\r\n //const iframeDoc = document.getElementsByTagName(\"iframe\")[0].contentWindow;\r\n // iframeDoc.src = url;\r\n\r\n\r\n\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = stockCode.replace('/', '_').replace('+', '_') + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n private onNotesLoadSuccessful(notes: any[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.customerNotes = notes;\r\n //if (notes[0].length > 0) {\r\n // this.notesModal.show();\r\n //}\r\n }\r\n\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n\r\n private postAudit() {\r\n this.sysproService.postCoreAudit(this.auditObj).subscribe(x => console.log(x));\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{customerHeading.customer}} - {{customerHeading.customerName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Customer Notes
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Save\\r\\n \\r\\n Clear\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n line-height: 1; }\\n\\np {\\n font-family: Lato; }\\n\\n.datatable-scroller {\\n width: 100% !important; }\\n\\n.container {\\n height: 110px;\\n width: 110px;\\n margin: 10px;\\n border: solid 5px black;\\n background-color: white;\\n display: inline-block; }\\n\\ninput.form-control {\\n height: 18px;\\n font-size: 0.600rem; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.table tr {\\n height: 20px; }\\n\\n.tbody {\\n height: 100%;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tY3VzdG9tZXItbm90ZXMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFFRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixjQUFjLEVBQUE7O0FBR2Q7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxzQkFBc0IsRUFBQTs7QUFHeEI7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLFlBQVk7RUFDWix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLFlBQVk7RUFDWixtQkFBbUIsRUFBQTs7QUFJckI7RUFDRSxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxZQUFZLEVBQUE7O0FBR2Q7RUFDRSxZQUFZLEVBQUE7O0FBSWQ7RUFDRSxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvc3lzcHJvLWN1c3RvbWVyLW5vdGVzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgLy9wYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIH1cclxuXHJcbiAgcCB7XHJcbiAgICBmb250LWZhbWlseTogTGF0bztcclxuICB9XHJcblxyXG4gIC5kYXRhdGFibGUtc2Nyb2xsZXIge1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5jb250YWluZXIge1xyXG4gICAgaGVpZ2h0OiAxMTBweDtcclxuICAgIHdpZHRoOiAxMTBweDtcclxuICAgIG1hcmdpbjogMTBweDtcclxuICAgIGJvcmRlcjogc29saWQgNXB4IGJsYWNrO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG5cclxuICBpbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgaGVpZ2h0OiAxOHB4O1xyXG4gICAgZm9udC1zaXplOiAwLjYwMHJlbTtcclxuICB9XHJcblxyXG5cclxuICAudGFibGUgdGgge1xyXG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIH1cclxuXHJcbiAgLnRhYmxlIHRoLCAudGFibGUgdGQge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gIH1cclxuXHJcbiAgLnRhYmxlIHRyIHtcclxuICAgIGhlaWdodDogMjBweDtcclxuICB9XHJcblxyXG5cclxuICAudGJvZHkge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgfVxyXG4iXX0= */\"","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { User } from '../../models/user.model';\r\nimport { ArCustomer } from '../../models/arcustomer.model';\r\nimport { ArNarration } from '../../models/arnarration.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Router } from '@angular/router';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { AuthGuard } from 'src/app/services/auth-guard.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-customer-notes',\r\n templateUrl: './syspro-customer-notes.component.html',\r\n styleUrls: ['./syspro-customer-notes.component.scss']\r\n})\r\nexport class SysproCustomerNotesComponent implements OnInit {\r\n\r\n\r\n @ViewChild('table') table: DatatableComponent;\r\n rows: ArNarration[] = [];\r\n rowsCache: ArNarration[] = [];\r\n loadingIndicator: boolean;\r\n\r\n scrollbarV = false;\r\n bodyHeight = 'auto';\r\n\r\n editing = {};\r\n\r\n private isEditMode = false;\r\n private isSaving = false;\r\n private showValidationErrors = false;\r\n private customerNotes: ArNarration[] = [];\r\n \r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isGeneralEditor = false;\r\n\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n \r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n \r\n @ViewChild('f')\r\n private form;\r\n columns: ({ prop: string; name: string; width: number; canAutoResize: boolean; } | { prop: string; name: string; width: number; canAutoResize?: undefined; })[];\r\n id: string;\r\n noteLines: ArNarration[] = [];\r\n notelinenumber: any;\r\n\r\n newRow: ArNarration = new ArNarration();\r\n hasDetailRows: boolean;\r\n lastRow: number;\r\n rowsSaved: any;\r\n rowsToSave: ArNarration[] = [];\r\n \r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService, private sysproService: SysproService, private router: Router) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n\r\n this.loadCurrentUserData();\r\n\r\n\r\n }\r\n\r\n private loadCurrentUserData() {\r\n\r\n this.columns = [\r\n { prop: 'line', name: 'Line', width: 50, canAutoResize: false },\r\n { prop: 'notation', name: 'Notation', width: 250, canAutoResize: true }\r\n ];\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n\r\n this.searchType = \"customer\";\r\n if (action && action.length >= 4) {\r\n this.id = action;\r\n this.currentCustomer = this.id;\r\n this.searchText = this.id;\r\n if (!this.isViewOnly) {\r\n\r\n this.alertService.startLoadingMessage();\r\n\r\n this.sysproService.getCustomerDetail(this.id).subscribe(\r\n x => this.onSpecificSearchSuccesful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n }\r\n else {\r\n this.sysproService.getCustomerNotes(this.id).subscribe(x => this.onNotesLoadSuccessful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n }\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n onCustomerLoadSuccessful(x: ArCustomer[]): void {\r\n this.customerSearch = x;\r\n this.customerHeading = this.customerSearch.find(x => x.customer == this.currentCustomer);\r\n setTimeout(() => {\r\n if (this.customerSelector) {\r\n this.customerSelector.refresh();\r\n }\r\n });\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResults = null;\r\n this.searchResultSelected = null;\r\n\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rows = null;\r\n this.rowsCache = null;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n this.searchResults = x;\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.loadCustomer();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Customer could not be found',\r\n MessageSeverity.warn);\r\n }\r\n \r\n\r\n }\r\n\r\n private loadCustomer() {\r\n this.id = this.searchResultSelected.customer;\r\n this.currentCustomer = this.id;\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.currentCustomer);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.customerHeading = this.searchResultSelected;\r\n this.sysproService.getCustomerNotes(this.currentCustomer).subscribe(x => this.onNotesLoadSuccessful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n this.router.navigate(['../../customers'], { fragment: 'notes', queryParams: { customer: this.currentCustomer } });\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n viewCustomerSelected() {\r\n if (this.searchResultSelected) {\r\n this.loadCustomer();\r\n }\r\n }\r\n \r\n private onNotesLoadSuccessful(notes: any[]) {\r\n \r\n if (notes[0]) {\r\n console.log(\"LOADING THE NOTES\");\r\n this.noteLines = notes[0];\r\n this.notelinenumber = notes[0].length + 1;\r\n this.newRow.line = this.notelinenumber + 1;\r\n\r\n this.rows = this.noteLines;\r\n this.hasDetailRows = true;\r\n\r\n if (!this.isViewOnly) {\r\n for (var i = 0; i < 5; i++) {\r\n let newLine = new ArNarration();\r\n newLine.line = this.notelinenumber + i;\r\n newLine.customer = this.currentCustomer;\r\n newLine.notation = \"\";\r\n newLine.existingNote = \"F\";\r\n this.rows.push(newLine);\r\n }\r\n }\r\n\r\n this.rowsCache = [...this.rows];\r\n\r\n console.log(\"THESE ARE THE NOTES\", this.rows);\r\n }\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n setDelete(row: ArNarration) {\r\n console.log(row);\r\n this.rowsToSave = null;\r\n row.notation = ' ';\r\n // this.sysproService.deleteCustomerNotes(this.id, row.line).subscribe(_response => this.clearNotesSuccessHelper(), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n\r\n setSave(row: ArNarration) {\r\n console.log(row);\r\n this.rowsToSave = null;\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n if (row.notation.trim() == \"\") {\r\n row.notation = ' ';\r\n }\r\n this.sysproService.insertCustomerNotes(this.currentCustomer, row.line, row.notation.replace(/\\%/g, 'zzzz').replace(/\\//g, '--').replace(/\\+/g, '___')).subscribe(_response => this.saveLinesSuccessHelper(), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n reload() {\r\n this.alertService.startLoadingMessage(\"...Reloading\");\r\n this.loadingIndicator = true;\r\n this.sysproService.getCustomerNotes(this.currentCustomer).subscribe(x => this.onNotesLoadSuccessful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n }\r\n\r\n addMoreLines() {\r\n this.alertService.startLoadingMessage(\"...Adding lines\");\r\n this.loadingIndicator = true;\r\n this.notelinenumber = this.rows.length + 1;\r\n for (var i = 0; i < 5; i++) {\r\n let newLine = new ArNarration();\r\n newLine.line = this.notelinenumber + i;\r\n newLine.customer = this.currentCustomer;\r\n newLine.notation = \"\";\r\n newLine.existingNote = \"F\";\r\n this.rows.push(newLine);\r\n }\r\n this.rowsCache = [...this.rows];\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n\r\n save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n // Find last row with a note in\r\n this.rowsToSave = this.rows;\r\n this.lastRow = this.rowsToSave.length;\r\n this.clearNotesSuccessHelper();\r\n //First Delete all rows..\r\n // this.sysproService.deleteCustomerNotes(this.currentCustomer, 0).subscribe(_response => this.clearNotesSuccessHelper(), error => this.saveFailedHelper(error));\r\n \r\n }\r\n\r\n clearNotesSuccessHelper(): void {\r\n let index = 0;\r\n //Update header.. could possibly just skip\r\n if (this.rowsToSave) {\r\n this.rowsSaved = 0;\r\n //Insert all rows up to last row\r\n for (var line of this.rowsToSave) {\r\n index++;\r\n if (index <= this.lastRow) {\r\n if (line.notation.trim() == \"\") {\r\n line.notation = ' ';\r\n }\r\n this.sysproService.insertCustomerNotes(this.currentCustomer, index, line.notation.replace(/\\%/g, 'zzzz').replace(/\\//g, '--').replace(/\\+/g, '___')).subscribe(_response => this.saveLinesSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n }\r\n else {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Deleted successfully`, MessageSeverity.success);\r\n\r\n this.reload();\r\n }\r\n }\r\n saveLinesSuccessHelper(): void {\r\n this.rowsSaved++;\r\n\r\n if (this.rowsSaved == this.lastRow) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.reload();\r\n }\r\n if (!this.rowsToSave) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n GenerateUniqueNoteLineNumber() {\r\n if (this.rowsCache.length > 0) {\r\n const maxId = this.rowsCache.reduce(\r\n (max, character) => (character.line > max ? character.line : max),\r\n this.rowsCache[0].line\r\n );\r\n return maxId;\r\n }\r\n else {\r\n return 1;\r\n }\r\n }\r\n\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n updateValue(event, cell, rowIndex) {\r\n console.log(event);\r\n console.log('inline editing rowIndex', rowIndex)\r\n\r\n var val = event.target.value;\r\n\r\n this.rows[rowIndex][cell] = val;\r\n this.rows = [...this.rows];\r\n console.log('UPDATED!', this.rows[rowIndex][cell]);\r\n }\r\n\r\n split(data, rowIndex) {\r\n rowIndex += 1;\r\n // Copy the data\r\n let rowData = { ...data };\r\n\r\n // With updation of values \r\n rowData.notation = '';\r\n this.rows.splice(rowIndex, 0, rowData);\r\n this.rows = [...this.rows]\r\n }\r\n\r\n\r\n remove(data, rowIndex) {\r\n // Copy the data\r\n this.rows.splice(rowIndex, 1);\r\n this.rows = [...this.rows]\r\n }\r\n\r\n\r\n setStyles() {\r\n return {\r\n 'height': (this.isViewOnly ? \"350px\" : \"\")\r\n //this.bodyHeight\r\n };\r\n }\r\n\r\n private edit() { \r\n\r\n \r\n }\r\n \r\n\r\n\r\n private saveSuccessHelper() { \r\n\r\n this.isEditMode = false;\r\n\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n \r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback) {\r\n this.changesFailedCallback();\r\n }\r\n }\r\n \r\n \r\n private cancel() {\r\n \r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.showMessage('Cancelled', 'Operation cancelled by user', MessageSeverity.default);\r\n this.alertService.resetStickyMessage();\r\n\r\n if (!this.isGeneralEditor) {\r\n this.isEditMode = false;\r\n }\r\n\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n\r\n private close() {\r\n \r\n this.resetForm();\r\n this.isEditMode = false;\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n } else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{customer.customer}} - {{customer.customerName }}\\r\\n \\r\\n \\r\\n

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

\\r\\n {{customer.customer}} - {{customer.customerName }}\\r\\n \\r\\n \\r\\n

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

\\r\\n {{customer.customer}} - {{customer.customerName }} - {{quote.quoteNumber}}\\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.customer}} - {{customer.customerName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.branch}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.telephone}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.salesperson}} - {{customer.salespersonName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.addTelephone}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
R {{customer.currentBalance1 | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.email}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.termsDescription}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.companyTaxNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.taxExemptNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{cart.soldToAddr1 }}
\\r\\n
{{cart.soldToAddr2 }}
\\r\\n
{{cart.soldToAddr3 }}
\\r\\n
{{cart.soldToAddr4 }}
\\r\\n
{{cart.soldToAddr5 }}
\\r\\n
{{cart.soldPostalCode }}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{cart.shipToAddr1 }}
\\r\\n
{{cart.shipToAddr2 }}
\\r\\n
{{cart.shipToAddr3 }}
\\r\\n
{{cart.shipToAddr4 }}
\\r\\n
{{cart.shipToAddr5 }}
\\r\\n
{{cart.shipPostalCode }}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quote.quoteStatus}}
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
R {{quote.totalIncl | currency:' ':'symbol':'1.2'}}
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

DEBTORS AGEING:

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Credit Status:
\\r\\n
Credit Limit:
\\r\\n
Current Balance:
\\r\\n
Over Limit:
\\r\\n
\\r\\n
\\r\\n
{{customer.creditStatus }}
\\r\\n
R {{customer.creditLimit }}
\\r\\n
R {{customer.currentBalance1 }}
\\r\\n
R {{overLimit }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Current:
\\r\\n
30 Days:
\\r\\n
60 Days:
\\r\\n
90 Days:
\\r\\n
120 Days:
\\r\\n
Balance:
\\r\\n
\\r\\n
\\r\\n
{{customer.valCurrentInv }}
\\r\\n
R {{customer.val30daysInv }}
\\r\\n
R {{customer.val60daysInv }}
\\r\\n
R {{customer.val90daysInv }}
\\r\\n
R {{customer.val120daysInv }}
\\r\\n
R {{customer.currentBalance1 }}
\\r\\n
\\r\\n
\\r\\n
No. in Current:
\\r\\n
No. in 30 Days:
\\r\\n
No. in 60 Days:
\\r\\n
No. in 90 Days:
\\r\\n
No. in 120 Days:
\\r\\n
No. of balance:
\\r\\n
\\r\\n
\\r\\n
{{customer.numCurrentInv }}
\\r\\n
{{customer.num30daysInv }}
\\r\\n
{{customer.num60daysInv }}
\\r\\n
{{customer.num90daysInv }}
\\r\\n
{{customer.num120daysInv }}
\\r\\n
{{totalInvoiceCount}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n height: 20px;\\n /*border: 1px solid #eee;\\r\\n background-image: linear-gradient(rgb(255, 255, 255), rgb(255, 255, 255) 10%, rgb(247, 247, 247));\\r\\n border-radius: 3px;*/ }\\n .control-label {\\n font-size: 12px;\\n font-weight: bolder;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .no-border {\\n border: 0; }\\n .no-padding {\\n padding: 0; }\\n [data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n [data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n [data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\"... see less \\\"; }\\n [data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... see more \\\"; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tY3VzdG9tZXItcHJldmlldy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zeXNwcm8tY3VzdG9tZXItcHJldmlldy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsWUFBWTtFQUNaLDBFQUEwRSxFQUFBO0VBUDVFO0lBVUksOEJBQThCO0lBQzlCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsVUFBVTtJQUNWLFdBQVcsRUFBQTtFQUlmLFVBQUE7RUFDQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUI7RUFDdkIsNkNBQTBDLEVBQUE7RUFJNUM7RUFDRSxhQUFhLEVBQUE7RUFHZjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDJCQUEyQjtFQUMzQixxQkFBcUIsRUFBQTtFQUx2QjtJQVFJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIscUNBQXFDO0lBQ3JDLDZCQUE2QjtJQUM3QixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLFVBQVUsRUFBQTtFQWRkO0lBbUJJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osZ0JBQWdCLEVBQUE7RUFyQnBCO0lBMEJJLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsWUFBWSxFQUFBO0VBSWhCO0VBQ0UsWUFBWTtFQUNaOztzQkNkb0IsRURnQkM7RUFHdkI7RUFDRSxlQUFlO0VBQ2YsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxZQUFZLEVBQUE7RUFEZDtJQUlJLFVBQVUsRUFBQTtFQUtkO0VBQ0UsU0FBUyxFQUFBO0VBR1g7RUFDRSxVQUFVLEVBQUE7RUNyQlo7RUQwQkUsZ0JBQWdCLEVBQUE7RUN2QmxCO0VENEJFLGdCQUFnQixFQUFBO0VDekJsQjtFRDhCRSx3QkFBd0IsRUFBQTtFQzNCMUI7RURnQ0Usd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QixFQUFBO0VBRXpCO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCO21DQ25DK0I7SURxQy9CLGlCQUFpQjtJQUNqQixZQUFZLEVBQUE7RUFiaEI7SUFpQkksa0JBQWtCO0lBQ2xCLGdCQUFnQixFQUFBO0VBbEJwQjtJQXNCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQixtQkFBQTtFQUNBO0VBQ0U7SUFDRSwrRkFBQTtJQUNBLDZCQUE2QixFQUFBLEVBQzlCO0VBR0gsa0JBQUE7RUFDQTtFQUNFO0lBQ0Usc0VBQUE7SUFDQSxzQkFBc0IsRUFBQSxFQUN2QjtFQUlIO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsV0FBVyxFQUFBO0VBR2I7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLE9BQU87RUFDUCxXQUFXLEVBQUE7RUFKYjtJQU9JLFlBQVksRUFBQTtFQUlkO0VBQ0UsZUFBZTtFQUNmLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsZUFBZTtFQUNmLGlDQUFpQyxFQUFBO0VBR25DO0VBQ0UsZUFBZSxFQUFBO0VBR2pCO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxjQUFjLEVBQUE7RUFHaEI7RUFDRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGlCQUFpQixFQUFBO0VBR25COztFQUVFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0U7SUFDRSxnQkFBZ0IsRUFBQSxFQUNqQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvc3lzcHJvLWN1c3RvbWVyLXByZXZpZXcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmFkZHJlc3MtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xyXG4gIHBhZGRpbmc6IDI1cHg7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xyXG5cclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyogTGFyZ2UgKi9cclxuLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xyXG4gIC8vaGVpZ2h0OiAyNXB4O1xyXG59XHJcblxyXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICBmbGV4OiBub25lO1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4ucm93IHtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbiAgLypib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4OyovXHJcbn1cclxuXHJcbi5jb250cm9sLWxhYmVsIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcclxuICBwYWRkaW5nOiAzcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gIG1pbi13aWR0aDogMTcwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCB7XHJcbiAgcGFkZGluZzogOHB4O1xyXG5cclxuICAubmF2LWxpbmsge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG59XHJcblxyXG4ubm8tYm9yZGVye1xyXG4gIGJvcmRlcjogMDtcclxufVxyXG5cclxuLm5vLXBhZGRpbmcge1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIGxlc3MgXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiO1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xyXG4gIHBhZGRpbmc6IDJweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gIHBhZGRpbmc6IDVweCAxMHB4IDAgMTBweDtcclxufVxyXG5cclxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuc21hbGwtY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgd2lkdGg6IDEyMHB4O1xyXG4gIH1cclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLyogTWVkaXVtIHNjcmVlbnMgKi9cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcclxuICAuZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgICAvKiBXaGVuIG9uIG1lZGl1bSBzaXplZCBzY3JlZW5zLCB3ZSBjZW50ZXIgaXQgYnkgZXZlbmx5IGRpc3RyaWJ1dGluZyBlbXB0eSBzcGFjZSBhcm91bmQgaXRlbXMgKi9cclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gIH1cclxufVxyXG5cclxuLyogU21hbGwgc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5jb2x1bW4ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4OiAxO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG5cclxuICBsYWJlbCB7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogN3B4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxuICB9XHJcblxyXG4gIC5zdWJzZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDdweDtcclxuICB9XHJcblxyXG4gIC5mb3JtLWdyb3VwIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xyXG4gICAgbWluLWhlaWdodDogMDtcclxuICB9XHJcblxyXG4gIC5jaGVja2JveCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxuICB9XHJcblxyXG4gIC5jb2wtcmVzZXQtZGVmYXVsdCB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1zZXQtZGVmYXVsdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICB9XHJcblxyXG4gIC5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxyXG4gIC5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XHJcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuY29sLWZvcm0tbGFiZWwge1xyXG4gICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuIiwiLmFkZHJlc3MtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI0Y5RjlGOTtcbiAgcGFkZGluZzogMjVweDtcbiAgbWFyZ2luOiAxMHB4O1xuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI0KTsgfVxuICAuYWRkcmVzcy1jb250YWluZXIgZmllbGRzZXQge1xuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi8qIExhcmdlICovXG4uZmxleC1kaXN0cmlidXRlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLmZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDEwcHg7IH1cblxuLmNvbnRyb2wtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZzogLjEwcmVtIC41MHJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgZmxleDogbm9uZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleC1ncm93OiAyO1xuICAgIG1pbi13aWR0aDogMjAwcHg7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleDogMztcbiAgICBmbGV4LWdyb3c6IDI7IH1cblxuLnJvdyB7XG4gIGhlaWdodDogMjBweDtcbiAgLypib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4OyovIH1cblxuLmNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIHBhZGRpbmc6IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBtaW4td2lkdGg6IDE3MHB4OyB9XG5cbi5jb250cm9sLWRldGFpbCB7XG4gIHBhZGRpbmc6IDhweDsgfVxuICAuY29udHJvbC1kZXRhaWwgLm5hdi1saW5rIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5uby1ib3JkZXIge1xuICBib3JkZXI6IDA7IH1cblxuLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOVwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2FcIjsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBsZXNzIFwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiOyB9XG5cbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XG4gIHBhZGRpbmc6IDJweDsgfVxuXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDAgMTBweDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZzogLjA1cmVtIC4yNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7Ki9cbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aWR0aDogMTIwcHg7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIG1pbi13aWR0aDogMTAwcHg7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleDogMztcbiAgICBmbGV4LWdyb3c6IDI7IH1cblxuLyogTWVkaXVtIHNjcmVlbnMgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgICAvKiBXaGVuIG9uIG1lZGl1bSBzaXplZCBzY3JlZW5zLCB3ZSBjZW50ZXIgaXQgYnkgZXZlbmx5IGRpc3RyaWJ1dGluZyBlbXB0eSBzcGFjZSBhcm91bmQgaXRlbXMgKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfSB9XG5cbi8qIFNtYWxsIHNjcmVlbnMgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgICAvKiBPbiBzbWFsbCBzY3JlZW5zLCB3ZSBhcmUgbm8gbG9uZ2VyIHVzaW5nIHJvdyBkaXJlY3Rpb24gYnV0IGNvbHVtbiAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuXG4ucm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uY29sdW1uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmNvbHVtbiBsYWJlbCB7XG4gICAgcGFkZGluZzogNXB4OyB9XG5cbi5zZXBhcmF0b3ItaHIge1xuICBtYXJnaW46IDdweCA1cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDsgfVxuXG4uc3Vic2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luLXRvcDogN3B4OyB9XG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XG4gIG1pbi1oZWlnaHQ6IDA7IH1cblxuLmNoZWNrYm94IHtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLmNvbC1yZXNldC1kZWZhdWx0IHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uY29sLXNldC1kZWZhdWx0IHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cblxuLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXG4uY29sLXNldC1kZWZhdWx0IC5idG4ge1xuICBtaW4td2lkdGg6IDE1MHB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sLWZvcm0tbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiA1cHg7IH0gfVxuIl19 */\"","import { Component, OnInit, ViewChild, Input, TemplateRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { User } from '../../models/user.model';\r\nimport { Role } from '../../models/role.model';\r\nimport { ArCustomer } from '../../models/arcustomer.model';\r\nimport { CartHeader } from '../../models/cart-header.model';\r\nimport { ArCustomerEdit } from '../../models/arcustomer-edit.model';\r\nimport { SalesPerson } from '../../models/salesperson.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ArNarration } from 'src/app/models/arnarration.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { QuoteHeader } from 'src/app/models/quote-header.model';\r\nimport { Observable, of, timer } from 'rxjs';\r\nimport { delay, flatMap } from 'rxjs/operators';\r\nimport { ShippingInstr } from 'src/app/models/shipping-instructions.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-customer-preview',\r\n templateUrl: './syspro-customer-preview.component.html',\r\n styleUrls: ['./syspro-customer-preview.component.scss']\r\n})\r\nexport class SysproCustomerPreviewComponent implements OnInit {\r\n\r\n\r\n uniqueId: string = Utilities.uniqueId();\r\n private isEditMode = false;\r\n private isSaving = false;\r\n private isNavigating = false;\r\n private showValidationErrors = false;\r\n private editingUserName: string;\r\n private user: User = new User();\r\n customer: ArCustomer = new ArCustomer();\r\n private customerEdit: ArCustomerEdit;\r\n columns: any[] = [];\r\n rows: ArNarration[] = [];\r\n rowsCache: ArNarration[] = [];\r\n private allSalesPersons: SalesPerson[] = [];\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isGeneralEditor = false;\r\n\r\n @Input()\r\n isCart: boolean;\r\n @Input()\r\n isQuote: boolean;\r\n @Input()\r\n isCustomer: boolean;\r\n @Input()\r\n isSalesOrder: boolean;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n // ViewChilds Required because ngIf hides template variables from global scope\r\n @ViewChild('customerName')\r\n private customerName;\r\n \r\n @ViewChild('email')\r\n private email;\r\n\r\n @ViewChild('salespersons')\r\n private salespersons;\r\n\r\n @ViewChild('salespersonSelector')\r\n private salespersonSelector;\r\n\r\n @ViewChild('sysproOperator')\r\n private sysproOperator;\r\n\r\n @ViewChild('shippingInstr')\r\n private shippingInstr;\r\n\r\n @ViewChild('shippingInstrSelector')\r\n private shippingInstrSelector;\r\n\r\n \r\n @ViewChild('debtorsModal')\r\n debtorsModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n private customerAccountStatus: string = \"\"\r\n private sub: any;\r\n private id: any = \"\";\r\n customerNotes: ArNarration[];\r\n customerIsOnHoldText: string;\r\n totalInvoiceCount: number;\r\n cartSaved: boolean;\r\n cartId: string;\r\n quoteId: string;\r\n\r\n\r\n cart: CartHeader = new CartHeader();\r\n private cartEdit: CartHeader;\r\n quote: QuoteHeader = new QuoteHeader();\r\n shippingInstructionsList: ShippingInstr;\r\n customerId: string;\r\n salesOrderNumber: string;\r\n overLimit: number;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService,\r\n private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (!this.isGeneralEditor) {\r\n this.loadCurrentUserData();\r\n }\r\n\r\n }\r\n\r\n private loadCurrentUserData() {\r\n this.alertService.startLoadingMessage();\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n if (action) {\r\n this.id = action;\r\n this.sysproService.getCustomerDetail(this.id).subscribe(x => this.onDataLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n //this.sysproService.getCustomerNotes(this.id).subscribe(x => this.onNotesLoadSuccessful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n } else {\r\n //this.router.navigate(['../../customers']);\r\n }\r\n\r\n if (!!this.isCart) {\r\n let cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n if (!!cartId) {\r\n this.cartId = cartId;\r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n }\r\n }\r\n\r\n if (!!this.isQuote) {\r\n let quoteId = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n if (!!quoteId) {\r\n this.quoteId = quoteId;\r\n console.log(\"I have loaded with this quoteId\", this.quoteId); \r\n }\r\n }\r\n\r\n if (!!this.isCustomer) {\r\n let customerId = sessionStorage.getItem(localStorageActions.Customer);\r\n if (!!customerId) {\r\n this.customerId = customerId;\r\n console.log(\"I have loaded with this customerId\", this.customerId);\r\n }\r\n }\r\n\r\n if (!!this.isSalesOrder) {\r\n let salesOrderNumber = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n if (!!salesOrderNumber) {\r\n this.salesOrderNumber = salesOrderNumber;\r\n console.log(\"I have loaded with this salesOrderNumber\", this.salesOrderNumber);\r\n }\r\n }\r\n }\r\n\r\n onCartHeaderLoadSuccessful(x: CartHeader): void {\r\n this.cart = x;\r\n Object.assign(this.customer, this.cart);\r\n }\r\n\r\n\r\n onQuoteHeaderLoadFailed(error: any): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n onQuoteHeaderLoadSuccessful(x: QuoteHeader): void {\r\n this.quote = x[0];\r\n console.log(\"THIS IS THE QUOTE\", this.quote);\r\n }\r\n\r\n\r\n\r\n onCartHeaderLoadFailed(error: any): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n\r\n private edit() {\r\n this.isEditMode = true;\r\n this.showValidationErrors = true;\r\n this.setCartHeader();\r\n }\r\n\r\n private setCartHeader() {\r\n this.cartEdit = new CartHeader();\r\n Object.assign(this.cartEdit, this.cart);\r\n this.cartEdit.userid = this.accountService.currentUser.id;\r\n console.log(\"THIS IS MY EDITING CART POPULATED WITH CUSTOMER\", this.cartEdit);\r\n if (!!this.cartId) {\r\n if (this.cart) {\r\n Object.assign(this.cartEdit, this.cart);\r\n console.log(\"THIS IS MY EDITING CART POPULATED WITH EXISTING CART\", this.cartEdit);\r\n console.log(\"THIS IS THE CART THAT WAS ADDED\", this.cart);\r\n }\r\n }\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n private onSalesPersonoadSuccessful(salesPersons: any[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.allSalesPersons = salesPersons[0];\r\n console.log(this.allSalesPersons);\r\n }\r\n\r\n private onDataLoadSuccessful(customer: ArCustomer) {\r\n this.alertService.stopLoadingMessage();\r\n this.customer = customer;\r\n\r\n let overLimit = parseFloat(customer.creditLimit) - parseFloat(customer.currentBalance1);\r\n\r\n if (customer.customerOnHold === \"Y\") {\r\n this.customerIsOnHoldText = \"Customer is on hold\";\r\n this.customerAccountStatus = (overLimit < 0 ? \"On hold and exceeded credit limit\" : \"Customer on hold\");\r\n }\r\n else {\r\n this.customerAccountStatus = (overLimit < 0 ? \"Customer exceeded credit limit\" : \"In Terms\");\r\n }\r\n\r\n if (overLimit < 0) {\r\n this.overLimit = overLimit;\r\n }\r\n\r\n this.getTotalInvoices();\r\n\r\n if (!!this.cartId) {\r\n this.GetCurrentCartDelayed().then(x =>\r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onCartHeaderLoadFailed(error)));\r\n }\r\n if (!!this.quoteId) {\r\n this.GetCurrentCartDelayed().then(x =>\r\n this.sysproService.getQuoteHeader(this.quoteId).subscribe(x => this.onQuoteHeaderLoadSuccessful(x), error => this.onQuoteHeaderLoadFailed(error)));\r\n }\r\n }\r\n\r\n private getTotalInvoices() {\r\n this.totalInvoiceCount = parseFloat(this.customer.numCurrentInv) + parseFloat(this.customer.num30daysInv) + parseFloat(this.customer.num60daysInv)\r\n + parseFloat(this.customer.num90daysInv) + parseFloat(this.customer.num120daysInv);\r\n }\r\n\r\n public GetCurrentCartDelayed() {\r\n return new Promise(resolve =>\r\n setTimeout(resolve, 2000)\r\n );\r\n }\r\n\r\n\r\n goAddItems() {\r\n this.isNavigating = true;\r\n this.setCartHeader();\r\n //this.save();\r\n }\r\n\r\n private onCurrentUserDataLoadSuccessful(user: User, roles: Role[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.user = user;\r\n }\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n this.user = new User();\r\n }\r\n\r\n copySoldToShip() {\r\n this.cartEdit.shipToAddr1 = this.cartEdit.soldToAddr1;\r\n this.cartEdit.shipToAddr2 = this.cartEdit.soldToAddr2;\r\n this.cartEdit.shipToAddr3 = this.cartEdit.soldToAddr3;\r\n this.cartEdit.shipToAddr4 = this.cartEdit.soldToAddr4;\r\n this.cartEdit.shipToAddr5 = this.cartEdit.soldToAddr5;\r\n this.cartEdit.shipPostalCode = this.cartEdit.soldPostalCode;\r\n }\r\n copyShipToSold() {\r\n this.cartEdit.soldToAddr1 = this.cartEdit.shipToAddr1;\r\n this.cartEdit.soldToAddr2 = this.cartEdit.shipToAddr2;\r\n this.cartEdit.soldToAddr3 = this.cartEdit.shipToAddr3;\r\n this.cartEdit.soldToAddr4 = this.cartEdit.shipToAddr4;\r\n this.cartEdit.soldToAddr5 = this.cartEdit.shipToAddr5;\r\n this.cartEdit.soldPostalCode = this.cartEdit.shipPostalCode;\r\n }\r\n\r\n private getSalesPersonByName(name: string) {\r\n return this.allSalesPersons.find((r) => r.salesperson == name);\r\n }\r\n \r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n \r\n setLocalCartId(cartId: string) {\r\n if (sessionStorage.getItem(localStorageActions.CartId) != cartId) {\r\n sessionStorage.setItem(localStorageActions.CartId, cartId);\r\n }\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n console.log(\"CartNumberSave\", this.cartEdit.cartNumber);\r\n this.fowkesService.newCart(this.cartEdit).subscribe(_response => this.saveSuccessHelper(this.cartEdit.cartNumber), error => this.saveFailedHelper(error));\r\n }\r\n\r\n search() {\r\n //this.router.navigate(['../../customers'], { fragment: 'customers', queryParams: { customer: this.customer } });\r\n }\r\n\r\n\r\n private saveSuccessHelper(cartId: string) {\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n this.isEditMode = false;\r\n\r\n this.alertService.showMessage('Success', `Updated successfully ` + cartId, MessageSeverity.success);\r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onCartHeaderLoadFailed(error));\r\n\r\n }\r\n \r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback) {\r\n this.changesFailedCallback();\r\n }\r\n }\r\n \r\n \r\n private cancel() {\r\n if (this.isGeneralEditor) {\r\n //this.userEdit = this.user = new UserEdit();\r\n this.customerEdit = this.customer = new ArCustomerEdit();\r\n } else {\r\n //this.userEdit = new UserEdit();\r\n this.customerEdit = new ArCustomerEdit();\r\n }\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.showMessage('Cancelled', 'Operation cancelled by user', MessageSeverity.default);\r\n this.alertService.resetStickyMessage();\r\n\r\n if (!this.isGeneralEditor) {\r\n this.isEditMode = false;\r\n }\r\n\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n\r\n private close() {\r\n // this.userEdit = this.user = new UserEdit();\r\n this.customerEdit = this.customer = new ArCustomerEdit();\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n this.isEditMode = false;\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n \r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n } else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n editCustomer(customer: ArCustomer, allSalesPersons: SalesPerson[]) {\r\n if (customer) {\r\n this.isGeneralEditor = true;\r\n\r\n this.setSalesPerson(customer, allSalesPersons);\r\n this.customer = new ArCustomer();\r\n this.customerEdit = new ArCustomerEdit();\r\n Object.assign(this.customer, customer);\r\n Object.assign(this.customerEdit, customer);\r\n this.edit();\r\n\r\n console.log(this.customerEdit);\r\n console.log(this.customer);\r\n return this.customerEdit;\r\n } \r\n }\r\n\r\n\r\n displayCustomer(customer: ArCustomer, allSalesPersons?: SalesPerson[]) {\r\n\r\n this.customer = new ArCustomer();\r\n Object.assign(this.customer, customer);\r\n this.setSalesPerson(customer, allSalesPersons);\r\n this.isEditMode = false;\r\n }\r\n\r\n\r\n private setSalesPerson(customer: ArCustomer, allSalesPersons?: SalesPerson[]) {\r\n\r\n this.allSalesPersons = allSalesPersons ? [...allSalesPersons] : [];\r\n\r\n if (customer.salesperson) {\r\n if (!this.allSalesPersons.some(r => r.salesperson == customer.salesperson)) {\r\n this.allSalesPersons.unshift(new SalesPerson(customer.salesperson));\r\n }\r\n }\r\n\r\n if (allSalesPersons == null || this.allSalesPersons.length != allSalesPersons.length) {\r\n setTimeout(() => {\r\n if (this.salespersonSelector) {\r\n this.salespersonSelector.refresh();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n get canViewAllSalesPersons(){\r\n return true;\r\n }\r\n\r\n get canAssignSalesPersons() {\r\n return true;\r\n }\r\n\r\n get canViewAllBranches() {\r\n return true;\r\n }\r\n get canAssignBranches() {\r\n return true;\r\n }\r\n\r\n get canAssignApplications() {\r\n return true;\r\n }\r\n\r\n get canViewAllRoles() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canAssignRoles() {\r\n return this.accountService.userHasPermission(Permission.assignRolesPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
0\\\" class=\\\"row\\\">\\r\\n
\\r\\n
\\r\\n {{customer.customer}} has had a total of\\r\\n \\r\\n sales orders over the last 12 months.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Quote conversion to order =\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.customer}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.branch}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.customerName }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.area}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.telephone }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.salesperson}} - {{customer.salespersonName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.addTelephone }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.fax }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.termsDescription }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.email }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.currency }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.companyTaxNumber }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Vat number is required\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.buyersName }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.taxExemptNumber }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Customer is vat exempt\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.taxExemptNumber }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.buyersEmail }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
R {{customer.currentBalance1 | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.telex }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Too many characters (maximum of 10 allowed)\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.soldToAddr1 }}
\\r\\n
{{customer.soldToAddr2 }}
\\r\\n
{{customer.soldToAddr3 }}
\\r\\n
{{customer.soldToAddr4 }}
\\r\\n
{{customer.soldToAddr5 }}
\\r\\n
{{customer.soldPostalCode }}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Too many characters (maximum of 10 allowed)\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.shipToAddr1 }}
\\r\\n
{{customer.shipToAddr2 }}
\\r\\n
{{customer.shipToAddr3 }}
\\r\\n
{{customer.shipToAddr4 }}
\\r\\n
{{customer.shipToAddr5 }}
\\r\\n
{{customer.shipPostalCode }}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Too many characters (maximum of 10 allowed)\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Notes:

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

DEBTORS AGEING:

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Credit Status:
\\r\\n
Credit Limit:
\\r\\n
Current Balance:
\\r\\n
Over Limit:
\\r\\n
\\r\\n
\\r\\n
{{customer.creditStatus }}
\\r\\n
R {{customer.creditLimit | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.currentBalance1 | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{overLimit | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Current:
\\r\\n
30 Days:
\\r\\n
60 Days:
\\r\\n
90 Days:
\\r\\n
120 Days:
\\r\\n
Balance:
\\r\\n
\\r\\n
\\r\\n
R {{customer.valCurrentInv | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.val30daysInv | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.val60daysInv | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.val90daysInv | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.val120daysInv | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.currentBalance1 | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n
No. in Current:
\\r\\n
No. in 30 Days:
\\r\\n
No. in 60 Days:
\\r\\n
No. in 90 Days:
\\r\\n
No. in 120 Days:
\\r\\n
No. of balance:
\\r\\n
\\r\\n
\\r\\n
{{customer.numCurrentInv }}
\\r\\n
{{customer.num30daysInv }}
\\r\\n
{{customer.num60daysInv }}
\\r\\n
{{customer.num90daysInv }}
\\r\\n
{{customer.num120daysInv }}
\\r\\n
{{totalInvoiceCount}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .customerview .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px;\\n margin-left: 0; }\\n .control-label {\\n font-size: 13px;\\n font-weight: bold;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n /*\\r\\ninput.form-control {\\r\\n height: 18px;\\r\\n font-size: 0.600rem;\\r\\n}\\r\\n*/\\n .table th {\\n font-size: smaller; }\\n .table th, .table td {\\n padding: 5px; }\\n .table tr {\\n height: 20px; }\\n :host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-image: linear-gradient(to right, #0e4597, #134aa0, #174ea8, #1b53b1, #1f58ba, #1e63c4, #1f6fcd, #227ad6, #308ee0, #45a1e8, #5db4ef, #78c7f6);\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n :host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #78C7F6; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tY3VzdG9tZXItdmlldy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zeXNwcm8tY3VzdG9tZXItdmlldy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsWUFBWTtFQUNaLDBFQUEwRSxFQUFBO0VBUDVFO0lBVUksOEJBQThCO0lBQzlCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsVUFBVTtJQUNWLFdBQVcsRUFBQTtFQUlmLFVBQUE7RUFDQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUI7RUFDdkIsNkNBQTBDLEVBQUE7RUFJNUM7RUFDRSxhQUFhLEVBQUE7RUFHZjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDJCQUEyQjtFQUMzQixxQkFBcUIsRUFBQTtFQUx2QjtJQVFJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIscUNBQXFDO0lBQ3JDLDZCQUE2QjtJQUM3QixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLFVBQVUsRUFBQTtFQWRkO0lBbUJJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osZ0JBQWdCLEVBQUE7RUFyQnBCO0lBMEJJLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsWUFBWSxFQUFBO0VBR2hCO0VBRUksc0JBQXNCO0VBQ3RCLDREQUFpRztFQUNqRyxrQkFBa0I7RUFDbEIsY0FBYyxFQUFBO0VBSWxCO0VBQ0UsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsWUFBWSxFQUFBO0VBRGQ7SUFJSSxVQUFVLEVBQUE7RUFLZDtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0Usd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCLEVBQUE7RUFFekI7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDJCQUEyQjtFQUMzQixxQkFBcUIsRUFBQTtFQUx2QjtJQVFJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEI7bUNDMUIrQjtJRDRCL0IsaUJBQWlCO0lBQ2pCLFlBQVksRUFBQTtFQWJoQjtJQWlCSSxrQkFBa0I7SUFDbEIsZ0JBQWdCLEVBQUE7RUFsQnBCO0lBc0JJLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsWUFBWSxFQUFBO0VBSWhCLG1CQUFBO0VBQ0E7RUFDRTtJQUNFLCtGQUFBO0lBQ0EsNkJBQTZCLEVBQUEsRUFDOUI7RUFHSCxrQkFBQTtFQUNBO0VBQ0U7SUFDRSxzRUFBQTtJQUNBLHNCQUFzQixFQUFBLEVBQ3ZCO0VBSUg7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixXQUFXLEVBQUE7RUFHYjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsT0FBTztFQUNQLFdBQVcsRUFBQTtFQUpiO0lBT0ksWUFBWSxFQUFBO0VBSWQ7RUFDRSxlQUFlO0VBQ2Ysd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxlQUFlO0VBQ2YsaUNBQWlDLEVBQUE7RUFHbkM7RUFDRSxlQUFlLEVBQUE7RUFHakI7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxhQUFhLEVBQUE7RUFHZjtFQUNFLGNBQWMsRUFBQTtFQUdoQjtFQUNFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsaUJBQWlCLEVBQUE7RUFHbkI7O0VBRUUsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRTtJQUNFLGdCQUFnQixFQUFBLEVBQ2pCO0VBR0w7Ozs7O0NDaERDO0VEdUREO0VBQ0Usa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLFlBQVksRUFBQTtFQUlkO0VBQ0UsdUpBQXVKO0VBQ3ZKOzs7b0hDdkRrSCxFRDBEQztFQUdySDtFQUNFLHlCQUF5QixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zeXNwcm8tY3VzdG9tZXItdmlldy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uYWRkcmVzcy1jb250YWluZXIge1xyXG4gIG1heC13aWR0aDogNDAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XHJcbiAgcGFkZGluZzogMjVweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7XHJcblxyXG4gIGZpZWxkc2V0IHtcclxuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMCAwIDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBMYXJnZSAqL1xyXG4uZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XHJcbiAgLy9oZWlnaHQ6IDI1cHg7XHJcbn1cclxuXHJcbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIGZsZXg6IG5vbmU7XHJcblxyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICAgIG1pbi13aWR0aDogMjAwcHg7XHJcblxyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleDogMztcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICB9XHJcbn1cclxuLmN1c3RvbWVydmlld3tcclxuICAucm93IHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiKDI1NSwgMjU1LCAyNTUpLCByZ2IoMjU1LCAyNTUsIDI1NSkgMTAlLCByZ2IoMjQ3LCAyNDcsIDI0NykpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4uY29udHJvbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMnB4O1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4gIH1cclxuXHJcbiAgLnN1YnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDdweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogN3B4O1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tZ3JvdXAge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmNoZWNrYm94IHtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAuY29sLXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbiAgLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcclxuICAgIG1pbi13aWR0aDogMTUwcHg7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLypcclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBoZWlnaHQ6IDE4cHg7XHJcbiAgZm9udC1zaXplOiAwLjYwMHJlbTtcclxufVxyXG4qL1xyXG5cclxuLnRhYmxlIHRoIHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi50YWJsZSB0ciB7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwZTQ1OTcsICMxMzRhYTAsICMxNzRlYTgsICMxYjUzYjEsICMxZjU4YmEsICMxZTYzYzQsICMxZjZmY2QsICMyMjdhZDYsICMzMDhlZTAsICM0NWExZTgsICM1ZGI0ZWYsICM3OGM3ZjYpO1xyXG4gIC8qYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTsqL1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhDN0Y2O1xyXG59XHJcbiIsIi5hZGRyZXNzLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIG1hcmdpbjogMTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLmFkZHJlc3MtY29udGFpbmVyIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4vKiBMYXJnZSAqL1xuLmZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGZsZXg6IG5vbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXgtZ3JvdzogMjtcbiAgICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi5jdXN0b21lcnZpZXcgLnJvdyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh3aGl0ZSwgd2hpdGUgMTAlLCAjZjdmN2Y3KTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBtaW4td2lkdGg6IDE3MHB4OyB9XG5cbi5jb250cm9sLWRldGFpbCB7XG4gIHBhZGRpbmc6IDhweDsgfVxuICAuY29udHJvbC1kZXRhaWwgLm5hdi1saW5rIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XG4gIHBhZGRpbmc6IDJweDsgfVxuXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDAgMTBweDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZzogLjA1cmVtIC4yNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7Ki9cbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aWR0aDogMTIwcHg7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIG1pbi13aWR0aDogMTAwcHg7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleDogMztcbiAgICBmbGV4LWdyb3c6IDI7IH1cblxuLyogTWVkaXVtIHNjcmVlbnMgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgICAvKiBXaGVuIG9uIG1lZGl1bSBzaXplZCBzY3JlZW5zLCB3ZSBjZW50ZXIgaXQgYnkgZXZlbmx5IGRpc3RyaWJ1dGluZyBlbXB0eSBzcGFjZSBhcm91bmQgaXRlbXMgKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfSB9XG5cbi8qIFNtYWxsIHNjcmVlbnMgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgICAvKiBPbiBzbWFsbCBzY3JlZW5zLCB3ZSBhcmUgbm8gbG9uZ2VyIHVzaW5nIHJvdyBkaXJlY3Rpb24gYnV0IGNvbHVtbiAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuXG4ucm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uY29sdW1uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmNvbHVtbiBsYWJlbCB7XG4gICAgcGFkZGluZzogNXB4OyB9XG5cbi5zZXBhcmF0b3ItaHIge1xuICBtYXJnaW46IDdweCA1cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDsgfVxuXG4uc3Vic2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luLXRvcDogN3B4OyB9XG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XG4gIG1pbi1oZWlnaHQ6IDA7IH1cblxuLmNoZWNrYm94IHtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLmNvbC1yZXNldC1kZWZhdWx0IHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uY29sLXNldC1kZWZhdWx0IHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cblxuLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXG4uY29sLXNldC1kZWZhdWx0IC5idG4ge1xuICBtaW4td2lkdGg6IDE1MHB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sLWZvcm0tbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiA1cHg7IH0gfVxuXG4vKlxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMThweDtcclxuICBmb250LXNpemU6IDAuNjAwcmVtO1xyXG59XHJcbiovXG4udGFibGUgdGgge1xuICBmb250LXNpemU6IHNtYWxsZXI7IH1cblxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLnRhYmxlIHRyIHtcbiAgaGVpZ2h0OiAyMHB4OyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzBlNDU5NywgIzEzNGFhMCwgIzE3NGVhOCwgIzFiNTNiMSwgIzFmNThiYSwgIzFlNjNjNCwgIzFmNmZjZCwgIzIyN2FkNiwgIzMwOGVlMCwgIzQ1YTFlOCwgIzVkYjRlZiwgIzc4YzdmNik7XG4gIC8qYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTsqLyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhDN0Y2OyB9XG4iXX0= */\"","import { Component, OnInit, ViewChild, Input, TemplateRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { User } from '../../models/user.model';\r\nimport { UserEdit } from '../../models/user-edit.model';\r\nimport { Role } from '../../models/role.model';\r\nimport { Branch } from '../../models/branch.model';\r\nimport { ArCustomer } from '../../models/arcustomer.model';\r\nimport { CartHeader } from '../../models/cart-header.model';\r\nimport { ArCustomerEdit } from '../../models/arcustomer-edit.model';\r\nimport { SalesPerson } from '../../models/salesperson.model';\r\nimport { AspnetApplications } from '../../models/applications.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ArNarration } from 'src/app/models/arnarration.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { CustomerSalesConversion } from '../../models/customer-sales-conversion.model';\r\nimport { CoreCustomer } from '../../models/core-customer.model';\r\nimport { CoreCustomerRule } from '../../models/core-customer-rule.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-customer-view',\r\n templateUrl: './syspro-customer-view.component.html',\r\n styleUrls: ['./syspro-customer-view.component.scss']\r\n})\r\nexport class SysproCustomerViewComponent implements OnInit {\r\n\r\n private isEditMode = false;\r\n private isSaving = false;\r\n private isNavigating = false;\r\n private showValidationErrors = false;\r\n private editingUserName: string;\r\n uniqueId: string = Utilities.uniqueId();\r\n private user: User = new User();\r\n customer: ArCustomer = new ArCustomer();\r\n private customerEdit: ArCustomerEdit;\r\n private cartEdit: CartHeader;\r\n private cartSwitch: CartHeader;\r\n columns: any[] = [];\r\n rows: ArNarration[] = [];\r\n rowsCache: ArNarration[] = [];\r\n private allSalesPersons: SalesPerson[] = [];\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isGeneralEditor = false;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n // ViewChilds Required because ngIf hides template variables from global scope soldPostalCode\r\n @ViewChild('customerName')\r\n private customerName;\r\n\r\n @ViewChild('telex')\r\n private telex;\r\n\r\n @ViewChild('companyTaxNumber')\r\n private companyTaxNumber;\r\n\r\n @ViewChild('taxExemptNumber')\r\n private taxExemptNumber;\r\n\r\n @ViewChild('soldPostalCode')\r\n private soldPostalCode;\r\n\r\n @ViewChild('shipPostalCode')\r\n private shipPostalCode;\r\n \r\n @ViewChild('email')\r\n private email;\r\n\r\n @ViewChild('salespersons')\r\n private salespersons;\r\n\r\n @ViewChild('salespersonSelector')\r\n private salespersonSelector;\r\n\r\n @ViewChild('sysproOperator')\r\n private sysproOperator;\r\n\r\n @ViewChild('applications')\r\n private applications;\r\n\r\n @ViewChild('applicationsSelector')\r\n private applicationsSelector;\r\n\r\n\r\n @ViewChild('notesModal')\r\n notesModal: ModalDirective;\r\n \r\n @ViewChild('debtorsModal')\r\n debtorsModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n private customerAccountStatus: string = \"\"\r\n private sub: any;\r\n private id: any = \"\";\r\n customerNotes: ArNarration[];\r\n customerIsOnHoldText: string;\r\n totalInvoiceCount: number;\r\n cartSaved: boolean;\r\n\r\n cartId: string = \"\";\r\n cart: CartHeader = new CartHeader();\r\n isNavigatingTo: string;\r\n customerSalesConversion: CustomerSalesConversion;\r\n conversionMessage: string;\r\n customerSalesConversionPercentage: string;\r\n\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n\r\n @ViewChild('applyDiscountCheck')\r\n private applyDiscountCheck;\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n loadingIndicator: boolean;\r\n overLimit: number;\r\n coreCustomer: CoreCustomer;\r\n currentDiscountId: number;\r\n rowCustomerRulesCache: CoreCustomerRule[];\r\n rowCustomerRules: CoreCustomerRule[];\r\n generalPriceRow: any;\r\n hasDicounts: boolean;\r\n applyDiscounts: boolean;\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService,\r\n private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit() {\r\n \r\n if (!this.isGeneralEditor) {\r\n this.loadCurrentUserData();\r\n }\r\n if (this.isViewOnly) {\r\n this.searchType = \"customer\";\r\n }\r\n }\r\n\r\n private loadCurrentUserData() {\r\n this.alertService.startLoadingMessage();\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n\r\n if (action) {\r\n this.id = action;\r\n this.searchText = action;\r\n\r\n if (!this.isViewOnly) {\r\n if (!!cartId) {\r\n this.cartId = cartId;\r\n }\r\n }\r\n\r\n //Header should populate from the syspro customer\r\n this.sysproService.getCustomerDetail(this.id).subscribe(x => this.onDataLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n this.sysproService.getCustomerOrderConversion(this.id).subscribe(x => this.onSalesConversionSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n this.sysproService.getCustomerNotes(this.id).subscribe(x => this.onNotesLoadSuccessful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n this.sysproService.GetAllSalesPersons(this.branchCode).subscribe(x => this.onSalesPersonoadSuccessful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n } \r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResults = null;\r\n this.searchResultSelected = null;\r\n\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rows = null;\r\n this.rowsCache = null;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n this.searchResults = x;\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.loadCustomer();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Customer could not be found',\r\n MessageSeverity.warn);\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n viewCustomerSelected() {\r\n if (this.searchResultSelected) {\r\n this.loadCustomer();\r\n }\r\n }\r\n\r\n loadCustomer() {\r\n this.id = this.searchResultSelected.customer;\r\n this.sysproService.getCustomerDetail(this.searchResultSelected.customer).subscribe(x => this.onDataLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n }\r\n\r\n private onSalesPersonoadSuccessful(salesPersons: any[]) {\r\n this.allSalesPersons = salesPersons[0];\r\n console.log(this.allSalesPersons);\r\n }\r\n \r\n private onDataLoadSuccessful(customer: ArCustomer) {\r\n this.alertService.stopLoadingMessage();\r\n this.customer = customer;\r\n\r\n if (!this.isViewOnly) {\r\n if (!!this.cartId) {\r\n\r\n //If this is a new customer, create a new cart from existing details\r\n \r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n else {\r\n if (this.customer.companyTaxNumber.length == 0 || (this.customer.taxStatus == \"E\" && this.customer.taxExemptNumber.length == 0)) {\r\n this.edit();\r\n }\r\n }\r\n }\r\n\r\n let overLimit = parseFloat(customer.creditLimit) - parseFloat(customer.currentBalance1);\r\n\r\n if (customer.customerOnHold === \"Y\") {\r\n this.customerIsOnHoldText = \"Customer is on hold\";\r\n this.customerAccountStatus = (overLimit < 0 ? \"On hold and exceeded credit limit\" : \"Customer on hold\");\r\n }\r\n else {\r\n this.customerAccountStatus = (overLimit < 0 ? \"Customer exceeded credit limit\" : \"In Terms\");\r\n }\r\n\r\n // only show if over limit\r\n if (overLimit < 0) {\r\n this.overLimit = overLimit;\r\n }\r\n\r\n this.getTotalInvoices();\r\n this.hasDicounts = false;\r\n this.applyDiscounts = false;\r\n this.coreCustomer = new CoreCustomer();\r\n this.sysproService.getPricingCustomer(this.id, this.application).subscribe(x => this.onCoreCustomerLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.alertService.showMessage('Success', `Loaded Syspro Customer`, MessageSeverity.success); \r\n\r\n }\r\n\r\n onCoreCustomerLoadSuccessful(x: CoreCustomer[]): void {\r\n if (x && x.length == 1) {\r\n if (x[0].customerCode != \"\") {\r\n this.coreCustomer = x[0];\r\n this.applyDiscounts = this.coreCustomer.enabled;\r\n this.sysproService.getAllPricingCustomerRules(this.coreCustomer.id).subscribe(x => this.onPricingRulesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n\r\n toggleDiscount() {\r\n this.coreCustomer.enabled = !this.coreCustomer.enabled;\r\n this.applyDiscounts = this.coreCustomer.enabled;\r\n this.isSaving = true;\r\n if (this.coreCustomer && this.coreCustomer.id > 0) {\r\n //Edit\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info);\r\n \r\n this.isSaving = false;\r\n }, error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n onPricingRulesLoadSuccessful(x: CoreCustomerRule[][]): void {\r\n this.currentDiscountId = 0;\r\n if (x && x.length >= 1) {\r\n var ruleList = x[0];\r\n this.hasDicounts = true;\r\n this.rowCustomerRulesCache = [...ruleList];\r\n this.rowCustomerRules = this.rowCustomerRulesCache; \r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n }\r\n\r\n onSalesConversionSuccessful(x: CustomerSalesConversion): void {\r\n if (x && x[0]) {\r\n this.customerSalesConversion = x[0];\r\n let conversionPercentage = 0;\r\n if (this.customerSalesConversion.numberOfSalesOrders > 0) {\r\n if (this.customerSalesConversion.numberOfQuotes > 0) {\r\n conversionPercentage = (this.customerSalesConversion.valueOfOrders / ((this.customerSalesConversion.valueOfQuotes + this.customerSalesConversion.valueOfOrders)\r\n - this.customerSalesConversion.convertedQuotes)) * 100;\r\n }\r\n else {\r\n conversionPercentage = 100;\r\n }\r\n this.customerSalesConversion.percentage = conversionPercentage;\r\n }\r\n }\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onCartHeaderLoadSuccessful(cart: CartHeader) {\r\n this.cart = cart;\r\n if (this.cart.customer != this.id) {\r\n this.switchCustomer();\r\n }\r\n else {\r\n Object.assign(this.customer, this.cart);\r\n }\r\n \r\n if (this.cart.companyTaxNumber.length == 0 || (this.cart.taxStatus == \"E\" && this.cart.taxExemptNumber.length == 0)) {\r\n this.edit();\r\n }\r\n this.alertService.showMessage('Success', `Loaded Cart Header`, MessageSeverity.success);\r\n }\r\n\r\n private getTotalInvoices() {\r\n this.totalInvoiceCount = parseFloat(this.customer.numCurrentInv) + parseFloat(this.customer.num30daysInv) + parseFloat(this.customer.num60daysInv)\r\n + parseFloat(this.customer.num90daysInv) + parseFloat(this.customer.num120daysInv);\r\n }\r\n\r\n private onNotesLoadSuccessful(notes: any[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.customerNotes = notes;\r\n if (notes[0].length > 0) {\r\n this.notesModal.show();\r\n }\r\n }\r\n\r\n goAddItems() {\r\n this.isNavigating = true;\r\n this.isNavigatingTo = \"inventory\";\r\n this.showValidationErrors = false;\r\n this.setCartHeader();\r\n this.save();\r\n }\r\n\r\n goAddNSItems() {\r\n this.isNavigating = true;\r\n this.isNavigatingTo = \"nonstock\";\r\n this.showValidationErrors = false;\r\n this.setCartHeader();\r\n this.save();\r\n }\r\n\r\n private onCurrentUserDataLoadSuccessful(user: User, roles: Role[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.user = user;\r\n }\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n this.user = new User();\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n private getSalesPersonByName(name: string) {\r\n return this.allSalesPersons.find((r) => r.salesperson == name);\r\n }\r\n \r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n \r\n private edit() {\r\n\r\n this.isEditMode = true;\r\n this.showValidationErrors = true;\r\n this.setCartHeader();\r\n }\r\n\r\n private switchCustomer() {\r\n\r\n this.cartEdit = new CartHeader();\r\n Object.assign(this.cartEdit, this.customer);\r\n this.cartEdit.userid = this.accountService.currentUser.id;\r\n this.cartEdit.cartNumber = this.cartId;\r\n this.cartEdit.branch_code = this.configurations.branchCode;\r\n this.cartEdit.customerPoNumber = (this.cart.customerPoNumber ? this.cart.customerPoNumber : \"\");\r\n this.cartEdit.shippingInstrs = (this.cart.shippingInstrs ? this.cart.shippingInstrs : \"\");\r\n this.cartEdit.specialInstrs = (this.cart.specialInstrs ? this.cart.specialInstrs : \"\");\r\n this.cartEdit.ordertype = \"\";\r\n this.cartEdit.orderdiscountpercentage = 0;\r\n this.cartEdit.quotedFrom = (this.cart.quotedFrom ? this.cart.quotedFrom : \"\");\r\n this.cartEdit.hasNettPrices = this.cart.hasNettPrices;\r\n this.cartEdit.userid = this.accountService.currentUser.id;\r\n this.cartEdit.specialPricesEnabled = this.applyDiscounts;\r\n \r\n this.save();\r\n // this.fowkesService.newCart(this.cart).subscribe(_response => this.saveSuccessHelper(this.cartEdit.cartNumber), error => this.saveFailedHelper(error));\r\n\r\n }\r\n \r\n private setCartHeader() {\r\n\r\n this.cartEdit = new CartHeader();\r\n Object.assign(this.cartEdit, this.customer);\r\n this.cartEdit.userid = this.accountService.currentUser.id;\r\n this.cartEdit.specialPricesEnabled = this.applyDiscounts;\r\n if (!!this.cartId) {\r\n if (this.cart) {\r\n Object.assign(this.cartEdit, this.cart);\r\n }\r\n }\r\n else {\r\n let uniqueId = this.id + Math.random().toString(36).substring(2) + Date.now().toString(36);\r\n this.cartEdit.cartNumber = uniqueId;\r\n this.cartEdit.branch_code = this.configurations.branchCode;\r\n this.cartEdit.customerPoNumber = \"\";\r\n this.cartEdit.shippingInstrs = \"\";\r\n this.cartEdit.specialInstrs = \"\";\r\n this.cartEdit.ordertype = \"\";\r\n this.cartEdit.orderdiscountpercentage = 0;\r\n this.cartEdit.quotedFrom = \"\";\r\n this.cartEdit.hasNettPrices = false;\r\n this.cartEdit.specialPricesEnabled = this.applyDiscounts;\r\n console.log(\"CartNumber2\", this.cartEdit.cartNumber);\r\n }\r\n\r\n console.log(\"THIS IS WHAT I HAVE AFTER setCartHeader\", this.cartEdit);\r\n }\r\n\r\n setLocalCartId(cartId: string) {\r\n if (sessionStorage.getItem(localStorageActions.CartId) != cartId) {\r\n sessionStorage.setItem(localStorageActions.CartId, cartId);\r\n this.cartId = cartId;\r\n }\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n console.log(\"CartNumberSave\", this.cartEdit.cartNumber);\r\n\r\n this.cartEdit.specialPricesEnabled = this.applyDiscounts;\r\n //if (this.coreCustomer && this.coreCustomer.id > 0 && this.applyDiscounts == false) {\r\n // //Edit\r\n // this.coreCustomer.enabled = false;\r\n // this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n // this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => { });\r\n //}\r\n\r\n this.fowkesService.newCart(this.cartEdit).subscribe(_response => this.saveSuccessHelper(this.cartEdit.cartNumber), error => this.saveFailedHelper(error));\r\n \r\n }\r\n\r\n\r\n private saveSuccessHelper(cartId: string) {\r\n\r\n this.setLocalCartId(cartId);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n this.isEditMode = false;\r\n\r\n this.alertService.showMessage('Success', `Updated successfully ` + cartId, MessageSeverity.success);\r\n\r\n if (!this.isNavigating) {\r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error)); \r\n }\r\n else {\r\n if (this.isNavigatingTo == \"nonstock\") {\r\n this.router.navigate(['../orders'], { fragment: 'nonstock', queryParams: { customer: this.customer.customer, cartId: cartId } });\r\n }\r\n if (this.isNavigatingTo == \"inventory\") {\r\n this.router.navigate(['../orders'], { fragment: 'inventory', queryParams: { customer: this.customer.customer, cartId: cartId } });\r\n }\r\n }\r\n }\r\n \r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback) {\r\n this.changesFailedCallback();\r\n }\r\n }\r\n \r\n \r\n private cancel() {\r\n //if (this.isGeneralEditor) {\r\n // //this.userEdit = this.user = new UserEdit();\r\n // this.customerEdit = this.customer = new ArCustomerEdit();\r\n //} else {\r\n // //this.userEdit = new UserEdit();\r\n // this.customerEdit = new ArCustomerEdit();\r\n // // Object.assign(this.cartEdit, this.customer);\r\n //}\r\n this.setCartHeader();\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.showMessage('Cancelled', 'Operation cancelled by user', MessageSeverity.default);\r\n this.alertService.resetStickyMessage();\r\n\r\n if (!this.isGeneralEditor) {\r\n this.isEditMode = false;\r\n }\r\n\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n\r\n private close() {\r\n // this.userEdit = this.user = new UserEdit();\r\n this.customerEdit = this.customer = new ArCustomerEdit();\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n this.isEditMode = false;\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n\r\n copySoldToShip() {\r\n this.cartEdit.shipToAddr1 = this.cartEdit.soldToAddr1;\r\n this.cartEdit.shipToAddr2 = this.cartEdit.soldToAddr2;\r\n this.cartEdit.shipToAddr3 = this.cartEdit.soldToAddr3;\r\n this.cartEdit.shipToAddr4 = this.cartEdit.soldToAddr4;\r\n this.cartEdit.shipToAddr5 = this.cartEdit.soldToAddr5;\r\n this.cartEdit.shipPostalCode = this.cartEdit.soldPostalCode;\r\n }\r\n\r\n copyShipToSold() {\r\n this.cartEdit.soldToAddr1 = this.cartEdit.shipToAddr1;\r\n this.cartEdit.soldToAddr2 = this.cartEdit.shipToAddr2;\r\n this.cartEdit.soldToAddr3 = this.cartEdit.shipToAddr3;\r\n this.cartEdit.soldToAddr4 = this.cartEdit.shipToAddr4;\r\n this.cartEdit.soldToAddr5 = this.cartEdit.shipToAddr5;\r\n this.cartEdit.soldPostalCode = this.cartEdit.shipPostalCode;\r\n }\r\n \r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n } else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n search() {\r\n // if (this.cartId) {\r\n\r\n this.router.navigate(['../../orders'], { fragment: 'customers', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n //}\r\n //else {\r\n // this.router.navigate(['../../customers'], { fragment: 'customers', queryParams: { customer: this.customer } });\r\n //}\r\n }\r\n\r\n //editCustomer(customer: ArCustomer, allSalesPersons: SalesPerson[]) {\r\n // if (customer) {\r\n // this.isGeneralEditor = true;\r\n\r\n // this.setSalesPerson(customer, allSalesPersons);\r\n // this.customer = new ArCustomer();\r\n // this.customerEdit = new ArCustomerEdit();\r\n // Object.assign(this.customer, customer);\r\n // Object.assign(this.customerEdit, customer);\r\n // this.edit();\r\n\r\n // console.log(this.customerEdit);\r\n // console.log(this.customer);\r\n // return this.customerEdit;\r\n // } \r\n //}\r\n\r\n\r\n //displayCustomer(customer: ArCustomer, allSalesPersons?: SalesPerson[]) {\r\n\r\n // this.customer = new ArCustomer();\r\n // Object.assign(this.customer, customer);\r\n // this.setSalesPerson(customer, allSalesPersons);\r\n // this.isEditMode = false;\r\n //}\r\n\r\n\r\n private setSalesPerson(customer: ArCustomer, allSalesPersons?: SalesPerson[]) {\r\n\r\n this.allSalesPersons = allSalesPersons ? [...allSalesPersons] : [];\r\n\r\n if (customer.salesperson) {\r\n if (!this.allSalesPersons.some(r => r.salesperson == customer.salesperson)) {\r\n this.allSalesPersons.unshift(new SalesPerson(customer.salesperson));\r\n }\r\n }\r\n\r\n if (allSalesPersons == null || this.allSalesPersons.length != allSalesPersons.length) {\r\n setTimeout(() => {\r\n if (this.salespersonSelector) {\r\n this.salespersonSelector.refresh();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n get canViewAllSalesPersons(){\r\n return true;\r\n }\r\n\r\n get canAssignSalesPersons() {\r\n return true;\r\n }\r\n\r\n get canViewAllBranches() {\r\n return true;\r\n }\r\n get canAssignBranches() {\r\n return true;\r\n }\r\n\r\n get canAssignApplications() {\r\n return true;\r\n }\r\n\r\n get canViewAllRoles() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n get canCreateCart() {\r\n return this.accountService.userHasPermission(Permission.placeOrderPermission);\r\n }\r\n\r\n\r\n get canMaintainPrices() {\r\n return this.accountService.userHasPermission(Permission.cartPricingPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{value}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{value}}\\r\\n {{value}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-image: linear-gradient(to right, #0e4597, #134aa0, #174ea8, #1b53b1, #1f58ba, #1e63c4, #1f6fcd, #227ad6, #308ee0, #45a1e8, #5db4ef, #78c7f6);\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #78C7F6; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tY3VzdG9tZXJzLW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvc3lzcHJvLWN1c3RvbWVycy1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUlqQztFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLGdCQUFnQixFQUFBOztBQUtwQjtFQUNFLHVKQUF1SjtFQUN2Sjs7O29IQ0hrSCxFRE1DOztBQUdySDtFQUNFLHlCQUF5QixFQUFBOztBQUczQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1jdXN0b21lcnMtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiBcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICBhIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwZTQ1OTcsICMxMzRhYTAsICMxNzRlYTgsICMxYjUzYjEsICMxZjU4YmEsICMxZTYzYzQsICMxZjZmY2QsICMyMjdhZDYsICMzMDhlZTAsICM0NWExZTgsICM1ZGI0ZWYsICM3OGM3ZjYpO1xyXG4gIC8qYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTsqL1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhDN0Y2O1xyXG59XHJcblxyXG4udXNlci1yb2xlIHtcclxuICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogIzc3NztcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLmxvY2tlZC1vdXQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gICAgY29sb3I6IHdoaXRlc21va2U7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcblxyXG5cclxuIiwiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IH1cblxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG4gIDpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCBhIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzBlNDU5NywgIzEzNGFhMCwgIzE3NGVhOCwgIzFiNTNiMSwgIzFmNThiYSwgIzFlNjNjNCwgIzFmNmZjZCwgIzIyN2FkNiwgIzMwOGVlMCwgIzQ1YTFlOCwgIzVkYjRlZiwgIzc4YzdmNik7XG4gIC8qYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTsqLyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhDN0Y2OyB9XG5cbi51c2VyLXJvbGUge1xuICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMXB4OyB9XG5cbi5jb250cm9sLWJveCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4uc2VhcmNoLWJveCB7XG4gIG1hcmdpbjogMDsgfVxuXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XG4gIHBhZGRpbmctdG9wOiAzcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIG1pbi13aWR0aDogMTAwcHg7IH1cblxuLnVzZXItZGlzYWJsZWQge1xuICBjb2xvcjogIzc3NztcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5sb2NrZWQtb3V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xuICBjb2xvcjogd2hpdGVzbW9rZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cbiJdfQ== */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, EventEmitter, Output } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-customers-management',\r\n templateUrl: './syspro-customers-management.component.html',\r\n styleUrls: ['./syspro-customers-management.component.scss']\r\n})\r\nexport class SysproCustomersManagementComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: ArCustomer[] = [];\r\n rowsCache: ArCustomer[] = [];\r\n loadingIndicator: boolean;\r\n\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n \r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n isSearch: boolean;\r\n\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService,\r\n private sysproService: SysproService, private configurations: ConfigurationService, \r\n private router: Router) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n\r\n if (cartId && action) {\r\n //You have a cart in progress, what would you like to do?\r\n this.alertService.showDialog('You currently have a cart in progress for customer \\\"' + action + '. Do you want to start a new order or continue with the current one ' + '\\\"?',\r\n DialogType.confirm, () => this.clearCartHelper(), this.continueCartHelper(), \"Start New Order\", \"Update my cart\");\r\n }\r\n\r\n this.SetDataGrid();\r\n this.loadData();\r\n }\r\n\r\n continueCartHelper(): any {\r\n\r\n\r\n }\r\n\r\n clearCartHelper(): any {\r\n if (this.isCart) {\r\n sessionStorage.removeItem(localStorageActions.CartId);\r\n }\r\n }\r\n\r\n\r\n private SetDataGrid() {\r\n if (this.isSearch) {\r\n this.columns = [\r\n { prop: 'customer', name: 'Customer', width: 70, cellClass: \"left\", cellTemplate: this.selectTemplate },\r\n { prop: 'customerName', name: 'Name', width: 250, cellClass: \"left\", cellTemplate: this.selectTemplate },\r\n { prop: 'telephone', name: 'Tel', width: 100, cellClass: \"left\", cellTemplate: this.selectTemplate },\r\n { prop: 'email', name: 'Email', width: 220, cellClass: \"left\", cellTemplate: this.selectTemplate },\r\n { prop: 'addTelephone', name: 'Mobile', width: 100, cellClass: \"left\", cellTemplate: this.selectTemplate }\r\n ];\r\n }\r\n else {\r\n this.columns = [\r\n { prop: 'customer', name: 'Customer', width: 90, cellClass: \"center\", cellTemplate: this.actionsTemplate },\r\n { prop: 'customerName', name: 'Name', width: 220, cellClass: \"left\", cellTemplate: this.actionsTemplate },\r\n { prop: 'telephone', name: 'Tel', width: 110, cellClass: \"left\", cellTemplate: this.actionsTemplate },\r\n { prop: 'email', name: 'Email', width: 200, cellClass: \"left\", cellTemplate: this.actionsTemplate },\r\n { prop: 'addTelephone', name: 'Mobile', width: 110, cellClass: \"left\", cellTemplate: this.actionsTemplate },\r\n { prop: 'contact', name: 'Contact', width: 130, cellClass: \"left\", cellTemplate: this.actionsTemplate },\r\n { prop: 'branch', name: 'Branch', width: 50, cellClass: \"center\", cellTemplate: this.actionsTemplate },\r\n { prop: 'customerOnHold', name: 'On Hold', width: 50, cellClass: \"center\", cellTemplate: this.actionsTemplate }\r\n ];\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n\r\n }\r\n\r\n loadData() {\r\n\r\n this.searchType = \"customer\";\r\n \r\n if (this.loadCache == true) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getCustomers(this.branchCode).subscribe(x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n\r\n onDataLoadSuccessful(customers: ArCustomer[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //customers.forEach((customer, index, customers) => {\r\n // (customer).index = index + 1;\r\n // });\r\n\r\n this.rowsCache = [...customers];\r\n this.rows = customers.slice(0,18);\r\n }\r\n\r\n \r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n var filterValues = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.customerName, r.customer, r.telephone, r.email, r.addTelephone, r.branch, r.contact, r.salesperson));\r\n this.rows = this._sortByTerm(filterValues, \"customerName\", value.toUpperCase());\r\n } \r\n }\r\n\r\n\r\n _sortByTerm(data, key, term) {\r\n return data.sort(function (a, b) {\r\n return a[key].indexOf(term) > b[key].indexOf(term) ? -1 : 1;\r\n });\r\n }\r\n\r\n viewCustomer(row: ArCustomerEdit) {\r\n this.setLocalCustomer(row.customer);\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: row.customer } });\r\n \r\n }\r\n \r\n customerCart(row: ArCustomerEdit) {\r\n this.setLocalCustomer(row.customer); \r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: row.customer } });\r\n \r\n }\r\n \r\n viewCustomerNotes(row: ArCustomerEdit) {\r\n this.setLocalCustomer(row.customer);\r\n this.router.navigate(['../customers'], { fragment: 'notes', queryParams: { customer: row.customer } });\r\n }\r\n\r\n setCustomer(row: ArCustomerEdit) {\r\n this.setLocalCustomer(row.customer);\r\n \r\n }\r\n\r\n setLocalCustomer(customer: string) {\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n } \r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{customerHeading.customer}} - {{customerHeading.customerName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n          \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.date-range-picker-container {\\n width: 50%;\\n height: 50px;\\n background: #fff;\\n display: inline-block;\\n border: 1px solid #9da3a6;\\n border-radius: 7px;\\n position: relative; }\\n\\n.input-section {\\n width: calc(100%);\\n height: 48px;\\n display: block;\\n float: left;\\n outline: 0;\\n border: none;\\n padding: 7px 10px;\\n color: #2c2e2f;\\n cursor: pointer;\\n position: relative; }\\n\\n.date-range-picker-icon {\\n margin-left: -25px;\\n z-index: 1; }\\n\\n/*[data-toggle=\\\"collapse\\\"] .fa:before {\\r\\n content: \\\"\\\\f139\\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\r\\n content: \\\"\\\\f13a\\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\r\\n content: \\\"... see less \\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\r\\n content: \\\"... see more \\\";\\r\\n}*/\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tY3VzdG9tZXJzLW1vdmVtZW50cy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zeXNwcm8tY3VzdG9tZXJzLW1vdmVtZW50cy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFPSSxnQkFBZ0IsRUFBQTs7QUFLcEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksU0FBUyxFQUFBOztBQUdiO0VBQ0ksZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBOztBQUdyQjtFQUNFLFVBQVU7RUFDVixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLHFCQUFxQjtFQUNyQix5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osY0FBYztFQUNkLFdBQVc7RUFDWCxVQUFVO0VBQ1YsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QsZUFBZTtFQUNmLGtCQUFrQixFQUFBOztBQUdsQjtFQUNFLGtCQUFrQjtFQUNsQixVQUFVLEVBQUE7O0FBSWQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0VDRUUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1jdXN0b21lcnMtbW92ZW1lbnRzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICBhIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5kYXRlLXJhbmdlLXBpY2tlci1jb250YWluZXIge1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICM5ZGEzYTY7XHJcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbn1cclxuLmlucHV0LXNlY3Rpb24ge1xyXG4gIHdpZHRoOiBjYWxjKDEwMCUpO1xyXG4gIGhlaWdodDogNDhweDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBmbG9hdDogbGVmdDtcclxuICBvdXRsaW5lOiAwO1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBwYWRkaW5nOiA3cHggMTBweDtcclxuICBjb2xvcjogIzJjMmUyZjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4gIC5kYXRlLXJhbmdlLXBpY2tlci1pY29uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMjVweDtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgfVxyXG5cclxuXHJcbi8qW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLmZhOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGYxMzlcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzYVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBsZXNzIFwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBzZWUgbW9yZSBcIjtcclxufSovXHJcblxyXG5cclxuIiwiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IH1cblxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG4gIDpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCBhIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi51c2VyLXJvbGUge1xuICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMXB4OyB9XG5cbi5jb250cm9sLWJveCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4uc2VhcmNoLWJveCB7XG4gIG1hcmdpbjogMDsgfVxuXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XG4gIHBhZGRpbmctdG9wOiAzcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIG1pbi13aWR0aDogMTAwcHg7IH1cblxuLnVzZXItZGlzYWJsZWQge1xuICBjb2xvcjogIzc3NztcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5sb2NrZWQtb3V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xuICBjb2xvcjogd2hpdGVzbW9rZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cblxuLmRhdGUtcmFuZ2UtcGlja2VyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA1MCU7XG4gIGhlaWdodDogNTBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IDFweCBzb2xpZCAjOWRhM2E2O1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uaW5wdXQtc2VjdGlvbiB7XG4gIHdpZHRoOiBjYWxjKDEwMCUpO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiA3cHggMTBweDtcbiAgY29sb3I6ICMyYzJlMmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5kYXRlLXJhbmdlLXBpY2tlci1pY29uIHtcbiAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xuICB6LWluZGV4OiAxOyB9XG5cbi8qW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLmZhOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGYxMzlcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzYVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBsZXNzIFwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBzZWUgbW9yZSBcIjtcclxufSovXG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { DatepickerModule, BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { NgxDateRangePickerOptions } from 'ngx-daterangepicker';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from '../../services/app-translation.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { CustomerMovements } from 'src/app/models/customer-movements.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'syspro-customers-movements',\r\n templateUrl: './syspro-customers-movements.component.html',\r\n styleUrls: ['./syspro-customers-movements.component.scss']\r\n})\r\nexport class SysproCustomersMovementsComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: CustomerMovements[] = [];\r\n rowsCache: CustomerMovements[] = [];\r\n customerMovementsList: CustomerMovements[];\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('bsDatepicker')\r\n bsDatepicker: BsDatepickerModule;\r\n\r\n\r\n @ViewChild('sellpriceTemplate')\r\n sellpriceTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('bsValue')\r\n bsValue: TemplateRef;\r\n myDateValue: Date;\r\n bsRangeValue: Date[];\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n \r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n isSearch: boolean; \r\n id: string;\r\n\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n //moment = _moment;\r\n selected: { startDate: Moment, endDate: Moment };\r\n ranges = {\r\n 'All Dates': [moment().subtract(5, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 12 Months': [moment().subtract(12, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 2 Years': [moment().subtract(24, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Years': [moment().subtract(36, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n };\r\n locale: LocaleConfig = {\r\n applyLabel: 'Done'\r\n };\r\n start: Date;\r\n end: Date;\r\n inlineDate: any;\r\n inlineDateTime: any;\r\n show: boolean;\r\n chkNS: boolean;\r\n chkAll: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.columns = [\r\n { prop: 'invoice', name: 'Invoice', width: 70, cellClass: \"left\" },\r\n { prop: 'filterDate', name: 'Date', width: 80, cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'customerPoNumber', name: 'PONumber', width: 100, cellClass: \"left\" },\r\n { prop: 'documentType', name: 'Doc', width: 50, cellClass: \"left\" },\r\n { prop: 'shippingInstrs', name: 'Delivery', cellClass: \"left\" },\r\n { prop: 'stockCode', name: 'StockCode', width: 100, cellClass: \"left\" },\r\n { prop: 'stockDescription', name: 'Description', width: 250, cellClass: \"left\" },\r\n { prop: 'warehouse', name: 'WH', width: 30, cellClass: \"left\" },\r\n { prop: 'operator', name: 'Operator', width: 70, cellClass: \"left\" },\r\n { prop: 'orderQty', name: 'Qty', width: 50, cellClass: \"right\" },\r\n { prop: 'sellingPrice', name: 'Price', width: 80, cellTemplate: this.sellpriceTemplate, cellClass: \"right\" },\r\n { prop: 'total', name: 'Total', width: 90, cellTemplate: this.totalTemplate, cellClass: \"right\" }\r\n ];\r\n\r\n this.selected = {\r\n startDate: moment().subtract(0, 'month').startOf('month'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n showNSOnly() {\r\n this.chkNS = !this.chkNS;\r\n this.chkAll = !this.chkNS;\r\n this.dateFilterChanged();\r\n }\r\n\r\n showAll() {\r\n this.chkAll = !this.chkAll;\r\n this.chkNS = !this.chkAll;\r\n this.dateFilterChanged();\r\n }\r\n\r\n dateFilterChanged() {\r\n if (this.currentCustomer) {\r\n var start = new Date(this.selected.startDate.toString());\r\n var end = new Date(this.selected.endDate.toString());\r\n if (this.rowsCache && this.rowsCache.length >= 1) {\r\n if (this.chkNS) {\r\n this.rows = this.rowsCache.filter(m => m.lineType == \"7\" && new Date(m.filterDate) >= new Date(start) && new Date(m.filterDate) <= new Date(end));\r\n }\r\n else {\r\n this.rows = this.rowsCache.filter(m => new Date(m.filterDate) >= new Date(start) && new Date(m.filterDate) <= new Date(end));\r\n }\r\n }\r\n }\r\n }\r\n\r\n searchDates(e) {\r\n \r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadDetails();\r\n // this.dateFilterChanged();\r\n\r\n this.show = false;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadDetails();\r\n // this.dateFilterChanged();\r\n\r\n this.show = false;\r\n }\r\n\r\n \r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n\r\n this.loadDetails();\r\n // this.dateFilterChanged();\r\n\r\n this.show = false;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.columns = [\r\n { prop: 'invoice', name: 'Invoice', width: 70, cellClass: \"left\" },\r\n { prop: 'filterDate', name: 'Date', width: 80, cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'customerPoNumber', name: 'PONumber', width: 100, cellClass: \"left\" },\r\n { prop: 'documentType', name: 'Doc', width: 50, cellClass: \"left\" },\r\n { prop: 'shippingInstrs', name: 'Delivery', cellClass: \"left\" },\r\n { prop: 'stockCode', name: 'StockCode', width: 100, cellClass: \"left\" },\r\n { prop: 'stockDescription', name: 'Description', width: 250, cellClass: \"left\" },\r\n { prop: 'warehouse', name: 'WH', width: 30, cellClass: \"left\" },\r\n { prop: 'operator', name: 'Operator', width: 70, cellClass: \"left\" },\r\n { prop: 'orderQty', name: 'Qty', width: 50, cellClass: \"right\" },\r\n { prop: 'sellingPrice', name: 'Price', width: 80, cellTemplate: this.sellpriceTemplate, cellClass: \"right\" },\r\n { prop: 'total', name: 'Total', width: 90, cellTemplate: this.totalTemplate, cellClass: \"right\" }\r\n ];\r\n\r\n }\r\n\r\n\r\n\r\n loadData() {\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n this.searchType = \"customer\";\r\n if (action && action.length >= 4) {\r\n this.id = action;\r\n this.currentCustomer = this.id;\r\n this.searchText = this.id;\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getCustomerDetail(this.id).subscribe(\r\n x => this.onSpecificSearchSuccesful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResults = null;\r\n this.searchResultSelected = null;\r\n\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.customerMovementsList = null;\r\n this.rowsCache = null;\r\n this.rows = null;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n this.searchResults = x;\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.loadCustomer();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Customer could not be found',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n \r\n private loadCustomer() {\r\n this.id = this.searchResultSelected.customer;\r\n this.currentCustomer = this.id;\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.currentCustomer);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.customerHeading = this.searchResultSelected;\r\n this.loadDetails();\r\n this.router.navigate(['../../customers'], { fragment: 'movements', queryParams: { customer: this.currentCustomer } });\r\n }\r\n\r\n onDataLoadSuccessful(customers: any[]) {\r\n\r\n if (customers && customers[0].length >= 1) {\r\n this.customerMovementsList = customers[0];\r\n\r\n this.customerMovementsList.forEach((customer, index, customers) => {\r\n (customer).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...this.customerMovementsList];\r\n\r\n this.chkAll = true;\r\n this.dateFilterChanged();\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No reults found',\r\n MessageSeverity.warn);\r\n }\r\n \r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n viewCustomerSelected() {\r\n if (this.searchResultSelected) {\r\n this.loadCustomer();\r\n }\r\n }\r\n\r\n\r\n loadDetails() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.rows = null;\r\n this.rowsCache = null;\r\n\r\n var start = new Date(this.selected.startDate.toString());\r\n var end = new Date(this.selected.endDate.toString());\r\n\r\n this.sysproService.getCustomerMovements(start.toJSON(), end.toJSON(), this.id).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Customer\", \"Invoice\", \"Date\", \"CustomerPO\", \"Document\", \"ShippingInstrs\", \"StockCode\", \"Description\", \"WH\", \"Operator\", \"Qty\", \"Price\", \"Total\"]\r\n };\r\n\r\n var filename = this.id + \"-Movements\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Customer: row.customer, Invoice: row.invoice, Date: (moment(row.filterDate)).format('DD-MMM-YYYY'), \r\n CustomerPO: row.customerPoNumber, Document: row.documentType, ShippingInstrs: row.shippingInstrs, StockCode: row.stockCode,\r\n Description: row.stockDescription, WH: row.warehouse, Operator: row.operator,\r\n Qty: row.orderQty, Price: row.sellingPrice, Total: row.total\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rows.filter(r => Utilities.searchArray(value, false, r.invoice, r.date, r.customerPoNumber, r.warehouse, r.documentType, r.operator, r.stockCode, r.stockDescription));\r\n }\r\n else {\r\n this.dateFilterChanged();\r\n }\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{customerHeading.customer}} - {{customerHeading.customerName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
  {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
  {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Y\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
To view your Tax Invoices and Credit Notes online, click here for the Online Portal
\\r\\n Please be sure to enter your unique OTP: valid for 5 days only.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

INVOICE:

\\r\\n

CREDIT NOTE:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tY3VzdG9tZXJzLXBheW1lbnRzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUdqQztFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLGdCQUFnQixFQUFBOztBQUtwQjtFQUNFLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLFNBQVMsRUFBQTs7QUFHWDtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7O0FBR2xCO0VBQ0UsV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvc3lzcHJvLWN1c3RvbWVycy1wYXltZW50cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5jb250cm9sLWJveCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgcGFkZGluZy10b3A6IDNweDtcclxuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICBjb2xvcjogIzc3NztcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgY29sb3I6IHdoaXRlc21va2U7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcbiJdfQ== */\"","\r\nimport { AfterViewInit, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { CustomerPayments } from 'src/app/models/customer-payments.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { CustomerOTPReference } from '../../models/customerOTPReference.model';\r\nimport { Email } from '../../models/email.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'syspro-customers-payments',\r\n templateUrl: './syspro-customers-payments.component.html',\r\n styleUrls: ['./syspro-customers-payments.component.scss']\r\n})\r\nexport class SysproCustomersPaymentsComponent implements OnInit, AfterViewInit {\r\n\r\n columns: any[] = [];\r\n rows: CustomerPayments[] = [];\r\n rowsCache: CustomerPayments[] = [];\r\n customerPaymentsList: CustomerPayments[];\r\n\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n @ViewChild('pdfModal')\r\n pdfModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('podTemplate')\r\n podTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n \r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n isSearch: boolean; \r\n id: string;\r\n\r\n @Input()\r\n selectedCustomer: string;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @ViewChild('salesOrderModal')\r\n salesOrderModal: ModalDirective;\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n ranges = {\r\n 'All Dates': [moment().subtract(5, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 12 Months': [moment().subtract(12, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 2 Years': [moment().subtract(24, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Years': [moment().subtract(36, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n };\r\n\r\n locale: LocaleConfig = {\r\n applyLabel: 'Done'\r\n };\r\n\r\n start: Date;\r\n end: Date;\r\n inlineDate: any;\r\n inlineDateTime: any;\r\n show: boolean;\r\n chkDb: boolean;\r\n chkCr: boolean;\r\n\r\n emailObject: Email = new Email();\r\n customerOTP: string;\r\n\r\n src: string;\r\n url: string;\r\n\r\n selectedInvoice: string;\r\n selectedSalesOrder: string;\r\n isCreditNote: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private reportService: ReportService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.setData();\r\n\r\n this.selected = {\r\n startDate: moment().subtract(0, 'month').startOf('month'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n setData() {\r\n this.columns = [\r\n { prop: 'invoice', name: 'Invoice', width: 100, cellClass: \"left\", cellTemplate: this.selectTemplate },\r\n { prop: 'filterDate', name: 'Date', width: 100, cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'transaction', name: 'Transaction', width: 150, cellClass: \"left\" },\r\n { prop: 'customerPoNumber', name: 'Customer Po Number', width: 210, cellClass: \"left\" },\r\n { prop: 'reference', name: 'Transaction Reference', width: 210, cellClass: \"left\" },\r\n { prop: 'amount', name: 'Total (Incl VAT)', width: 210, cellClass: \"right\" },\r\n {\r\n prop: 'hasPOD',\r\n name: 'POD?',\r\n width: 80,\r\n cellClass: \"left\",\r\n cellTemplate: this.podTemplate\r\n },\r\n ];\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.setData();\r\n }\r\n\r\n \r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n dateFilterChanged() {\r\n if (this.currentCustomer) {\r\n\r\n var start = new Date(this.selected.startDate.toString());\r\n var end = new Date(this.selected.endDate.toString());\r\n this.rows = this.rowsCache.filter(m => new Date(m.filterDate) >= new Date(start) && new Date(m.filterDate) <= new Date(end));\r\n if (this.rows && this.rows.length >= 1) {\r\n\r\n if (this.chkCr) {\r\n this.rows = this.rowsCache.filter(m => m.transaction == \"Credit\" && new Date(m.filterDate) >= new Date(start) && new Date(m.filterDate) <= new Date(end));\r\n }\r\n else {\r\n if (this.chkDb) {\r\n this.rows = this.rowsCache.filter(m => m.transaction == \"Payment\" && new Date(m.filterDate) >= new Date(start) && new Date(m.filterDate) <= new Date(end));\r\n }\r\n else {\r\n this.rows = this.rowsCache.filter(m => new Date(m.filterDate) >= new Date(start) && new Date(m.filterDate) <= new Date(end));\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n }\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadDetails();\r\n this.show = false;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadDetails();\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n this.loadDetails();\r\n\r\n this.show = false;\r\n }\r\n\r\n showPaymentsOnly() {\r\n this.chkDb = !this.chkDb;\r\n this.chkCr = false;\r\n this.dateFilterChanged();\r\n }\r\n\r\n showCreditsOnly() {\r\n this.chkDb = false;\r\n this.chkCr = !this.chkCr;\r\n this.dateFilterChanged();\r\n }\r\n\r\n loadData() {\r\n this.searchType = \"customer\";\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n if (action && action.length >= 4) {\r\n this.id = action;\r\n this.currentCustomer = this.id;\r\n this.searchText = this.id;\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getCustomerDetail(this.id).subscribe(\r\n x => this.onSpecificSearchSuccesful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResults = null;\r\n this.searchResultSelected = null;\r\n\r\n this.customerPaymentsList = null;\r\n this.rowsCache = null;\r\n this.rows = null;\r\n\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n this.searchResults = x;\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.loadCustomer();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Customer could not be found',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n \r\n onDataLoadSuccessful(customers: any[]) {\r\n\r\n this.customerPaymentsList = customers[0];\r\n\r\n if (this.customerPaymentsList && this.customerPaymentsList.length >= 1) {\r\n\r\n this.customerPaymentsList.forEach((customer, index, customers) => {\r\n\r\n (customer).index = index + 1;\r\n customer.podLoading = true;\r\n if (customer.transaction == \"Invoice\" || customer.transaction == \"Credit\") {\r\n this.checkPODStatus(customer);\r\n }\r\n else {\r\n customer.podLoading = false;\r\n }\r\n });\r\n\r\n this.rowsCache = [...this.customerPaymentsList];\r\n\r\n this.dateFilterChanged();\r\n\r\n }\r\n else {\r\n this.alertService.showMessage('No results', 'No payment details for the search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n checkPODStatus(payment: CustomerPayments) {\r\n\r\n this.sysproService.getPODByInvoice(payment.invoice).subscribe(\r\n (response) => {\r\n payment.hasPOD = response && response.length > 0; // If response contains documents, set true\r\n payment.podLoading = false;\r\n },\r\n (error) => {\r\n payment.hasPOD = false; // Default to false if API call fails\r\n payment.podLoading = false;\r\n }\r\n );\r\n }\r\n\r\n private loadCustomer() {\r\n this.id = this.searchResultSelected.customer;\r\n this.currentCustomer = this.id;\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.currentCustomer); \r\n this.customerHeading = this.searchResultSelected;\r\n this.loadDetails();\r\n this.router.navigate(['../../customers'], { fragment: 'payments', queryParams: { customer: this.currentCustomer } });\r\n }\r\n\r\n loadDetails() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n var start = new Date(this.selected.startDate.toString());\r\n var end = new Date(this.selected.endDate.toString());\r\n\r\n\r\n this.customerPaymentsList = null;\r\n this.rowsCache = null;\r\n this.rows = null;\r\n\r\n this.sysproService.getCustomerPayments(start.toJSON(), end.toJSON(),this.id).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n viewCustomerSelected() {\r\n if (this.searchResultSelected) {\r\n this.loadCustomer();\r\n }\r\n }\r\n\r\n\r\n onCustomerLoadSuccessful(x: ArCustomer[]): void {\r\n this.customerSearch = x;\r\n this.customerHeading = this.customerSearch.find(x => x.customer == this.currentCustomer);\r\n setTimeout(() => {\r\n if (this.customerSelector) {\r\n this.customerSelector.refresh();\r\n }\r\n });\r\n }\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Customer\", \"CustomerName\", \"Invoice\", \"Date\", \"Transaction\", \"Customer PO\", \"Payment Ref\",\r\n \"Operator\",\r\n \"Total (Incl VAT)\"]\r\n };\r\n\r\n var filename = this.id + \"-Payments\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Customer: row.customer, CustomerName: row.customerName, Invoice: row.invoice, Date: (moment(row.filterDate)).format('DD-MMM-YYYY'), Transaction: row.transaction,\r\n CustomerPO: row.customerPoNumber, PaymentRef: row.reference,\r\n Operator: row.operator,\r\n Total: row.amount\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.invoice, r.date, r.customerPoNumber, r.operator, r.transaction, r.reference, r.amount));\r\n }\r\n\r\n else {\r\n this.dateFilterChanged();\r\n }\r\n }\r\n\r\n\r\n\r\n onEmailLoadSuccessful(type?: string) {\r\n\r\n if (this.currentCustomer && this.rows && this.rows.length >= 1) {\r\n\r\n \r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n var uniqueCode = this.currentCustomer + \"-\" + this.generateOTP();\r\n this.customerOTP = uniqueCode;\r\n\r\n this.emailObject.RecepientName = this.customerHeading.contact;\r\n this.emailObject.RecepientEmail = this.customerHeading.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = this.accountService.currentUser.email;\r\n this.emailObject.Subject = \"Customer Account: \" + this.currentCustomer;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = \"CustomerAccount_\" + uniqueCode + \".pdf\";\r\n\r\n this.url = (this.application == \"FowkesOnline\" ? \"https://nextgen.fowkes.co.za/viewportal\" : \"https://nextgen.maxarcus.co.za/viewportal\");\r\n\r\n // this.emailObject.Bod = \"These documents can be viewed online at \" + this.url + \", please be sure to enter your unique OTP: \" + this.customerOTP + \" valid for 5 days only.\";\r\n this.emailObject.Bod = this.customerOTP;\r\n this.emailObject.EmailType = \"Statement\";\r\n\r\n var start = new Date(this.selected.startDate.toString());\r\n var end = new Date(this.selected.endDate.toString());\r\n\r\n this.reportService.getStatementPDF(this.currentCustomer, this.application, start.toJSON(), end.toJSON(), this.customerOTP).subscribe(x => {\r\n\r\n this.emailModal.show();\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }, error => this.onDataLoadFailed(error));\r\n\r\n this.generateRelatedDocs();\r\n }\r\n\r\n }\r\n\r\n\r\n generateRelatedDocs() {\r\n\r\n var selectRows = [...this.rows];\r\n\r\n for (var row of selectRows) {\r\n\r\n if (row.invoice != \"\" && row.transaction == \"Invoice\") {\r\n\r\n //Generate Document\r\n // this.reportService.getStatementInvoicePDF(this.currentCustomer, this.application, row.salesOrder, row.invoice, this.customerOTP).subscribe(x => { }, error => this.onDataLoadFailed(error));\r\n\r\n var OTPDetails = new CustomerOTPReference();\r\n OTPDetails.application = this.application;\r\n OTPDetails.dateFrom = new Date(this.selected.startDate.toString());\r\n OTPDetails.dateTo = new Date(this.selected.endDate.toString());\r\n OTPDetails.customerCode = this.currentCustomer;\r\n OTPDetails.documentNumber = \"Invoice_\" + row.invoice + \".pdf\";\r\n OTPDetails.otpReference = this.customerOTP;\r\n OTPDetails.createdBy = this.accountService.currentUser.email;\r\n OTPDetails.sentTo = this.emailObject.RecepientEmail;\r\n OTPDetails.status = \"Done\";\r\n\r\n //UpdateRecord\r\n this.fowkesService.newOTPDetail(OTPDetails).subscribe(x => this.onReferenceSuccess(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n if (row.invoice != \"\" && row.transaction == \"Credit\") {\r\n\r\n //Generate Document\r\n // this.reportService.getStatementCreditPDF(this.currentCustomer, this.application, row.salesOrder, row.invoice, this.customerOTP).subscribe(x => { }, error => this.onDataLoadFailed(error));\r\n\r\n var OTPDetails = new CustomerOTPReference();\r\n OTPDetails.application = this.application;\r\n OTPDetails.dateFrom = new Date(this.selected.startDate.toString());\r\n OTPDetails.dateTo = new Date(this.selected.endDate.toString());\r\n OTPDetails.customerCode = this.currentCustomer;\r\n OTPDetails.documentNumber = \"InvoiceCredit_\" + row.invoice + \".pdf\";\r\n OTPDetails.otpReference = this.customerOTP;\r\n OTPDetails.createdBy = this.accountService.currentUser.email;\r\n OTPDetails.sentTo = this.emailObject.RecepientEmail;\r\n OTPDetails.status = \"Done\";\r\n\r\n //UpdateRecord\r\n this.fowkesService.newOTPDetail(OTPDetails).subscribe(x => this.onReferenceSuccess(x, false), error => this.onDataLoadFailed(error));\r\n } \r\n }\r\n }\r\n\r\n onReferenceSuccess(x: CustomerOTPReference, arg1: boolean): void {\r\n\r\n var test = x;\r\n\r\n }\r\n\r\n generateOTP() {\r\n\r\n // Declare a digits variable \r\n // which stores all digits\r\n var digits = '0123456789';\r\n let OTP = '';\r\n for (let i = 0; i < 4; i++) {\r\n OTP += digits[Math.floor(Math.random() * 10)];\r\n }\r\n return OTP;\r\n }\r\n\r\n\r\n viewPDF() {\r\n this.reportService.getFileStreamStatement(this.emailObject.Attachment).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n\r\n this.reportService.getFileStreamStatement(this.emailObject.Attachment).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n\r\n if (this.emailObject.RecepientEmail && this.emailObject.RecepientEmail.trim().length >= 1) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Remeber to add email address for recepient`, MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n getPDF(x: Blob, quoteNumber: string): void {\r\n\r\n this.reportService.getFileStreamStatement(this.customerOTP).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.emailObject.Attachment;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n previewSalesOrder(row: CustomerPayments) {\r\n\r\n this.selectedInvoice = row.invoice;\r\n this.selectedSalesOrder = row.salesOrder;\r\n this.isCreditNote = (row.transaction == \"Credit\" ? true : false);\r\n\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != row.salesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.salesOrder);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != row.invoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, row.invoice);\r\n }\r\n\r\n if (!!this.selectedSalesOrder) {\r\n if (!this.salesOrderModal) {\r\n setTimeout(() => {\r\n if (this.salesOrderModal) {\r\n this.salesOrderModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.salesOrderModal.show();\r\n }\r\n }\r\n }\r\n\r\n salesOrderModalHide() {\r\n this.selectedSalesOrder = null;\r\n this.selectedInvoice = null;\r\n this.isCreditNote = false;\r\n\r\n this.salesOrderModal.hide();\r\n }\r\n\r\n\r\n viewSalesOrder() {\r\n\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n get canCreateStatementsCustomers() {\r\n return this.accountService.userHasPermission(Permission.customerStatementsPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n Edit\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n.datatable-header-cell {\\n display: flex !important;\\n align-items: center !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row red {\\n background-color: red; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8taW52ZW50b3J5LWxpc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsK0JBQStCLEVBQUE7O0FBRWpDO0VBQ0Usd0JBQXdCO0VBQ3hCLDhCQUE4QixFQUFBOztBQUVoQztFQUVJLHFCQUFxQixFQUFBOztBQUd6QjtFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLG1CQUFtQixFQUFBOztBQVB2QjtJQVdJLGdCQUFnQjtJQUNoQiwwQkFBMEIsRUFBQTs7QUFaOUI7SUFnQkksMEJBQTBCLEVBQUE7O0FBSTlCO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHckI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1pbnZlbnRvcnktbGlzdC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcclxufVxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3d7XHJcbiAgcmVke1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIH1cclxufVxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcblxyXG4gIC5idG4tbGluay5ncmlkIHtcclxuICAgIGZvbnQtc2l6ZTogMC43MDByZW07XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIGEuaG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udXNlci1yb2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Pipe, PipeTransform } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { validation } from 'src/app/services/validation.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-inventory-list',\r\n templateUrl: './syspro-inventory-list.component.html',\r\n styleUrls: ['./syspro-inventory-list.component.scss']\r\n})\r\n\r\n \r\nexport class SysproInventoryListComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Inventory[] = [];\r\n rowsCache: Inventory[] = [];\r\n cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('sellpriceTemplate')\r\n sellpriceTemplate: TemplateRef;\r\n\r\n @ViewChild('unitCostTemplate')\r\n unitCostTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n // inventoryList: Inventory[];\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n stockCode: string;\r\n\r\n id: string;\r\n cartId: string;\r\n customer: ArCustomer;\r\n stockCodedetail: Inventory;\r\n isNavigating: boolean;\r\n isSaving: boolean;\r\n cartSaved: boolean;\r\n cartlinenumber: number = 0;\r\n saveCount: number;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n isNavigatingTo: string;\r\n hasDataSheets: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n savedLineCount: number;\r\n isReloading: boolean;\r\n src: string;\r\n searchTerm: string = \"\";\r\n chkNew: boolean;\r\n chkSp: boolean;\r\n chkAlt: boolean;\r\n chkDis: any;\r\n chkUnmapped: boolean;\r\n chkAll: boolean;\r\n chkDt1: boolean;\r\n chkDt2: boolean;\r\n\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: Inventory[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n\r\n inventoryList: Inventory[];\r\n searchingOn: string;\r\n chkShortDescription: boolean;\r\n chkLongDescription: boolean;\r\n chkAnyDescription: boolean;\r\n hasAddDataSheets: boolean;\r\n buyerResponsible: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService, private reportService: ReportService, \r\n private router: Router, private route: ActivatedRoute, private numberPipe: CurrencyPipe) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.SetDataGrid();\r\n\r\n this.loadData();\r\n }\r\n\r\n \r\n private SetDataGrid() {\r\n //this.isManagement = this.isManagement == true ? this.isManagement : false;\r\n\r\n //this.columns = [\r\n // { prop: 'stockCode', name: 'StockCode', width: 100, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n // { prop: 'description', name: 'Description', width: 400, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n // { prop: 'availQty', name: 'Qty On Hand', width: 50, cellClass: \"right\" },\r\n // { prop: 'binLoc', name: 'Bin', width: 60, cellClass: \"right\" },\r\n // { prop: 'orderqty', name: 'Order Qty', width: 60, cellTemplate: this.orderQtyTemplate },\r\n // { prop: 'uom', name: 'UOM', width: 50, cellClass: \"center\" },\r\n // { prop: 'sellingPrice', name: 'Price (excl)', width: 100, cellTemplate: this.priceTemplate },\r\n // { prop: 'discountpercentage1', name: 'Disc
(%)', width: 60, cellTemplate: this.discountTemplate },\r\n // { prop: 'lineTotal', name: 'Total (excl)', width: 90, cellTemplate: this.totalTemplate, cellClass: \"right\" }\r\n //];\r\n\r\n //if (this.isManagement) {\r\n\r\n var variableWidth = this.canManageInventory ? 100 : 160;\r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: variableWidth, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 370, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n { prop: 'uom', name: 'UOM', width: 50, cellClass: \"center\" },\r\n { prop: 'warehouse', name: 'WH', width: 50, cellClass: \"center\" },\r\n { prop: 'availQty', name: 'Qty On Hand', width: 50, cellClass: \"right\" },\r\n { prop: 'binLoc', name: 'Bin', width: 70, cellClass: \"right\" },\r\n { prop: 'qtyOnOrder', name: 'Qty On Order', width: 70, cellClass: \"right\" },\r\n { prop: 'qtyInTransit', name: 'Qty In Transit', width: 50, cellClass: \"right\" },\r\n { prop: 'sellingPrice', name: 'Selling Price', width: 90, cellTemplate: this.priceTemplate, cellClass: \"right\", pipe: { transform: this.currencyPipe } },\r\n { prop: 'unitCost', name: 'Unit Cost', width: 90, cellTemplate: this.unitCostTemplate, cellClass: \"right\", pipe: { transform: this.currencyPipe } }\r\n ];\r\n\r\n if (this.canManageInventory) {\r\n this.columns.push({ name: 'CMS', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n }\r\n //}\r\n }\r\n\r\n currencyPipe(value: any, ...args: any[]) {\r\n let updated = value.toFixed(2);\r\n updated += '';\r\n let x = updated.split('.');\r\n let x1 = x[0];\r\n let x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n //return value.toFixed(2);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n reset() {\r\n this.chkShortDescription = false;\r\n this.chkLongDescription = false;\r\n this.chkAnyDescription = false;\r\n this.chkNew = false;\r\n this.chkSp = false;\r\n this.chkAlt = false;\r\n this.chkDis = false;\r\n this.chkUnmapped = false;\r\n this.chkDt1 = false;\r\n this.chkDt2 = false;\r\n this.chkAll = false;\r\n this.searchTerm = \"\";\r\n this.searchingOn = \"\";\r\n this.rows = [];\r\n this.rowsCache = [];\r\n this.SetDataGrid();\r\n this.loadData();\r\n\r\n }\r\n\r\n loadData() {\r\n this.searchType = \"description\";\r\n\r\n this.chkShortDescription = true;\r\n this.chkLongDescription = false;\r\n this.chkAnyDescription = false;\r\n\r\n\r\n if (this.loadCache == true) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n // this.inventoryList = null;\r\n this.searchingOn = (this.chkAnyDescription && this.searchType == \"description\" ? \"STOCK\" :\r\n this.chkLongDescription && this.searchType == \"description\" ? \"LONGDESCRIPTION\" :\r\n (this.chkShortDescription && this.searchType == \"description\" ? \"SHORTDESCRIPTION\" : this.searchType));\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchingOn, this.searchText.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => this.onStockLoadSuccessful([x], false), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: Inventory[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n this.onStockLoadSuccessful([x], false);\r\n\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n \r\n onDataLoadSuccessful(customer: ArCustomer) {\r\n this.customer = customer;\r\n }\r\n\r\n onStockLoadSuccessful(inventory: any[], trim?: boolean) {\r\n\r\n this.inventoryList = inventory[0];\r\n\r\n this.inventoryList.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n stockCode.description = stockCode.shortDescription + ' - ' + stockCode.longDescription;\r\n });\r\n\r\n this.rowsCache = [...this.inventoryList];\r\n if (this.inventoryList.length >= 100 && trim) {\r\n this.rows = this.inventoryList.slice(0, 100);\r\n }\r\n else {\r\n this.rows = [...this.rowsCache];\r\n }\r\n\r\n this.isReloading = false;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n \r\n }\r\n\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n \r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return;}\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n filterNew() {\r\n this.chkNew = !this.chkNew;\r\n this.filterChanged();\r\n }\r\n\r\n filterSpecial() {\r\n this.chkSp = !this.chkSp;\r\n this.filterChanged();\r\n }\r\n\r\n filterDatasheet1() {\r\n this.chkDt1 = !this.chkDt1;\r\n this.filterChanged();\r\n }\r\n\r\n filterDatasheet2() {\r\n this.chkDt2 = !this.chkDt2;\r\n this.filterChanged();\r\n }\r\n\r\n filterAlternate() {\r\n this.chkAlt = !this.chkAlt;\r\n this.filterChanged();\r\n }\r\n\r\n filterDisabled() {\r\n this.chkDis = !this.chkDis;\r\n this.filterChanged();\r\n }\r\n\r\n filterUnmapped() {\r\n this.chkUnmapped = !this.chkUnmapped;\r\n this.filterChanged();\r\n }\r\n\r\n filterAll() {\r\n this.chkAll = !this.chkAll;\r\n this.filterChanged();\r\n }\r\n\r\n filterChanged() {\r\n if (this.chkAll) {\r\n this.chkAlt = false;\r\n this.chkSp = false;\r\n this.chkNew = false;\r\n this.chkUnmapped = false;\r\n this.chkDis = false;\r\n this.chkDt1 = false;\r\n this.chkDt2 = false;\r\n this.searchTerm = \"\";\r\n this.rows = this.rowsCache;\r\n return;\r\n }\r\n\r\n if (this.chkAlt || this.chkSp || this.chkNew || this.chkUnmapped || this.chkDis || this.chkDt1 || this.chkDt2) {\r\n this.rows = this.rowsCache.filter(m => (this.chkAlt ? m.showAlternate == true : '') ||\r\n (this.chkSp ? (m.onSpecial == true || m.onSpecialFowkes == true) : '') ||\r\n (this.chkDt1 ? m.dataSheetImage != \"\" : '') || (this.chkDt2 ? m.addSheetImage != \"\" : '') ||\r\n (this.chkNew ? m.newArrival == true : '') ||\r\n (this.chkUnmapped ? m.mapped == false : '') || (this.chkDis ? m.status == 'D' : ''));\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n \r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n var filterValues = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.description, r.stockCode, r.warehouse, r.impaCodes, r.extraProductInform, r.topSellerText)); \r\n\r\n this.rows = this._sortByTerm(filterValues, \"description\", value.toUpperCase());\r\n\r\n if (this.chkAlt || this.chkSp || this.chkNew || this.chkDt1 || this.chkDt2) {\r\n this.rows = this.rows.filter(m => (this.chkAlt ? m.showAlternate == true : '') ||\r\n (this.chkSp ? (m.onSpecial == true || m.onSpecialFowkes == true) : '') ||\r\n (this.chkDt1 ? m.dataSheetImage != \"\" : '') || (this.chkDt2 ? m.addSheetImage != \"\" : '') ||\r\n (this.chkNew ? m.newArrival == true : ''));\r\n }\r\n\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n _sortByTerm(data, key, term) {\r\n return data.sort(function (a, b) {\r\n return a[key].indexOf(term) < b[key].indexOf(term) ? -1 : 1;\r\n });\r\n }\r\n\r\n _sortByrank(array, searchKey, props) {\r\n if (!array || !searchKey || !props) return array;\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n var obj = array[i];\r\n obj.rankSearch = 0;\r\n for (var j = 0; j < props.length; j++) {\r\n var index = obj[props[j]].indexOf(searchKey);\r\n // i should probably spend time tweaking these arbitrary numbers\r\n // to find good values that produce the best results, but\r\n // here's what I have so far...\r\n obj.rankSearch += (index === -1 ? 15 : index) * ((j + 1) * 8);\r\n }\r\n }\r\n\r\n return array;\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"UOM\", \"WH\", \"Qty On Hand\", \"Bin\", \"Qty On Order\", \"Qty In Transit\",\r\n \"Selling Price\", \"Unit Cost\", \"Brand\", \"StockCodeImage\", \"DataSheetImage\", \"DataSheetImage2\", \"SpecialsImage\", \"Status\",\r\n \"NewArrival\", \"OnSpecial\", \"ShowAlternate\", \"AlternateKey\", \"Mapped\", \"Category\", \"ExtraProductInfo\"]\r\n };\r\n\r\n var filename = \"InventoryList\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode, Description: row.description, UOM: row.uom, WH: row.warehouse,\r\n QtyOnHand: row.qtyOnHand, Bin: row.binLoc, QtyOnOrder: row.qtyOnOrder, QtyInTransit: row.qtyInTransit,\r\n SellingPrice: row.sellingPrice, UnitCost: row.unitCost, Brand: row.brandName, StockCodeImage: row.stockCodeImage,\r\n DataSheetImage: row.dataSheetImage, DataSheetImage2: row.addSheetImage, SpecialsImage: row.specialsImage, Status: row.status,\r\n NewArrival: row.newArrival, OnSpecial: row.onSpecial, ShowAlternate: row.showAlternate,\r\n AlternateKey: row.alternateKey, Mapped: row.mapped, Category: row.categoryName, ExtraProductInfo: row.extraProductInform\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n\r\n metaList() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"UOM\", \"WH\", \"Qty On Hand\", \"Bin\", \"Qty On Order\", \"Qty In Transit\",\r\n \"Selling Price\", \"Unit Cost\", \"Brand\", \"StockCodeImage\", \"DataSheetImage\", \"DataSheetImage2\", \"SpecialsImage\", \"Status\",\r\n \"NewArrival\", \"OnSpecial\", \"ShowAlternate\", \"AlternateKey\", \"Mapped\", \"Category\", \"ExtraProductInfo\"]\r\n };\r\n\r\n var filename = \"InventoryList\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode, Description: row.description, UOM: row.uom, WH: row.warehouse,\r\n QtyOnHand: row.qtyOnHand, Bin: row.binLoc, QtyOnOrder: row.qtyOnOrder, QtyInTransit: row.qtyInTransit,\r\n SellingPrice: row.sellingPrice, UnitCost: row.unitCost, Brand: row.brandName, StockCodeImage: row.stockCodeImage,\r\n DataSheetImage: row.dataSheetImage, DataSheetImage2: row.addSheetImage, SpecialsImage: row.specialsImage, Status: row.status,\r\n NewArrival: row.newArrival, OnSpecial: row.onSpecial, ShowAlternate: row.showAlternate,\r\n AlternateKey: row.alternateKey, Mapped: row.mapped, Category: row.categoryName, ExtraProductInfo: row.extraProductInform\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n private refreshAll() {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.isReloading = true;\r\n this.alertService.startLoadingMessage(\"Reloading...\");\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n //Check if all the lines have been saved\r\n if (this.saveCount == this.savedLineCount) {\r\n \r\n //Reload the inventory and cart details\r\n this.refreshAll();\r\n }\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n stockCodeModalHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n \r\n if (row.lineType != \"7\" && row.mapped) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.description;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.addSheetImage = row.addSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n this.stockCodedetail.onSpecialFowkes = row.onSpecialFowkes;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n editStockCode(row: Inventory) {\r\n if (row) {\r\n if (sessionStorage.getItem(localStorageActions.StockCode) != row.stockCode) {\r\n sessionStorage.setItem(localStorageActions.StockCode, row.stockCode);\r\n }\r\n this.router.navigate(['../../products'], { fragment: 'stockcodes' });\r\n } \r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey && row.mapped) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.alternateKey;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n\r\n openSpecials(row: Inventory) {\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"https://www.maxarcus.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"https://www.fowkes.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n //if (!!row.specialsImage && row.specialsImage != \"\") {\r\n // window.open(row.filePath + \"/SpecialImages/\" + row.specialsImage, \"_blank\");\r\n //}\r\n }\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n\r\n onEmailLoadSuccessful() {\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasAddDataSheets = false;\r\n this.hasSpecials = false;\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n this.hasAddDataSheets = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage.length >= 1);\r\n\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.specialsImage.length >= 1 && (this.stockCodedetail.onSpecial || this.stockCodedetail.onSpecialFowkes));\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"), this.branchCode, this.application).subscribe(x => this.emailModal.show(), error => this.onDataLoadFailed(error));\r\n\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.accountService.currentUser.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim(); \r\n }\r\n\r\n if (this.hasAddDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc3 = this.stockCodedetail.addSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n titleCase(str) {\r\n str = str.toLowerCase();\r\n return str.replace(/\\w\\S/g, function (t) { return t.toUpperCase() });\r\n }\r\n\r\n viewInventory() {\r\n console.log(\"TEST\");\r\n\r\n }\r\n\r\n viewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n console.log(this.emailObject);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.emailObject.AddDoc1 = (this.attachDataSheets && this.hasDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n this.emailObject.AddDoc3 = (this.attachDataSheets && this.hasAddDataSheets ? this.emailObject.AddDoc3 : \"\");\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var stockCode = this.emailObject.Attachment.replace('/', '_').replace('+', '_').replace('%', '_');\r\n\r\n this.src = url;\r\n // window.open(this.src).print();\r\n // const blobUrl = window.URL.createObjectURL((test));\r\n //const iframeDoc = document.getElementsByTagName(\"iframe\")[0].contentWindow;\r\n // iframeDoc.src = url;\r\n\r\n\r\n\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = stockCode + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n calcOrderQty(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.orderqty = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n \r\n calcDisc(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.discountpercentage1 = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcPrice(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n \r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n get canManageInventory() {\r\n return this.accountService.userHasPermission(Permission.manageInventoryPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

Authorization Required

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
The price does not exceed the specified margin
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n.datatable-header-cell {\\n display: flex !important;\\n align-items: center !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.banner {\\n top: 0px;\\n right: 0px;\\n transform: rotate(45deg);\\n filter: progid:DXImageTransform.Microsoft.Matrix(M11='0.7071067811865476', M12='-0.7071067811865475', M21='0.7071067811865475', M22='0.7071067811865476', sizingMethod='auto expand'); }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-image: linear-gradient(to right, #0e4597, #134aa0, #174ea8, #1b53b1, #1f58ba, #1e63c4, #1f6fcd, #227ad6, #308ee0, #45a1e8, #5db4ef, #78c7f6);\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #78C7F6; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8taW52ZW50b3J5LW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvc3lzcHJvLWludmVudG9yeS1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUVqQztFQUNFLHdCQUF3QjtFQUN4Qiw4QkFBOEIsRUFBQTs7QUFFaEM7RUFDRSwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFPSSxtQkFBbUIsRUFBQTs7QUFQdkI7SUFXSSxnQkFBZ0I7SUFDaEIsMEJBQTBCLEVBQUE7O0FBWjlCO0lBZ0JJLDBCQUEwQixFQUFBOztBQUk5QjtFQUNFLFlBQVk7RUFDWixtQkFBbUIsRUFBQTs7QUFHckI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksU0FBUyxFQUFBOztBQUdiO0VBQ0ksZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBOztBQUdyQjtFQUNFLFFBQVE7RUFDUixVQUFVO0VBR1Ysd0JBQXdCO0VBQ3hCLHFMQUFxTCxFQUFBOztBQUd2TDtFQUNFLHVKQUF1SjtFQUN2Sjs7O29IQ1prSCxFRGVDOztBQUdySDtFQUNFLHlCQUF5QixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zeXNwcm8taW52ZW50b3J5LW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG59XHJcbi5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XHJcbn1cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBoZWlnaHQ6IDI2cHg7XHJcbiAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxufVxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5iYW5uZXIge1xyXG4gIHRvcDogMHB4O1xyXG4gIHJpZ2h0OiAwcHg7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0Lk1hdHJpeChNMTE9JzAuNzA3MTA2NzgxMTg2NTQ3NicsIE0xMj0nLTAuNzA3MTA2NzgxMTg2NTQ3NScsIE0yMT0nMC43MDcxMDY3ODExODY1NDc1JywgTTIyPScwLjcwNzEwNjc4MTE4NjU0NzYnLCBzaXppbmdNZXRob2Q9J2F1dG8gZXhwYW5kJyk7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMGU0NTk3LCAjMTM0YWEwLCAjMTc0ZWE4LCAjMWI1M2IxLCAjMWY1OGJhLCAjMWU2M2M0LCAjMWY2ZmNkLCAjMjI3YWQ2LCAjMzA4ZWUwLCAjNDVhMWU4LCAjNWRiNGVmLCAjNzhjN2Y2KTtcclxuICAvKmJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7Ki9cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4QzdGNjtcclxufVxyXG5cclxuIiwiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IH1cblxuLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OyB9XG5cbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuICA6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwgLmJ0bi1saW5rLmdyaWQge1xuICAgIGZvbnQtc2l6ZTogMC43MDByZW07IH1cbiAgOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIGEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7IH1cbiAgOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIGEuaG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbmlucHV0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMjZweDtcbiAgZm9udC1zaXplOiAwLjcwMHJlbTsgfVxuXG4udXNlci1yb2xlIHtcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuXG4uY29udHJvbC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLnNlYXJjaC1ib3gge1xuICBtYXJnaW46IDA7IH1cblxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xuICBwYWRkaW5nLXRvcDogM3B4O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtaW4td2lkdGg6IDEwMHB4OyB9XG5cbi51c2VyLWRpc2FibGVkIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ubG9ja2VkLW91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcbiAgY29sb3I6IHdoaXRlc21va2U7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5iYW5uZXIge1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0Lk1hdHJpeChNMTE9JzAuNzA3MTA2NzgxMTg2NTQ3NicsIE0xMj0nLTAuNzA3MTA2NzgxMTg2NTQ3NScsIE0yMT0nMC43MDcxMDY3ODExODY1NDc1JywgTTIyPScwLjcwNzEwNjc4MTE4NjU0NzYnLCBzaXppbmdNZXRob2Q9J2F1dG8gZXhwYW5kJyk7IH1cblxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMGU0NTk3LCAjMTM0YWEwLCAjMTc0ZWE4LCAjMWI1M2IxLCAjMWY1OGJhLCAjMWU2M2M0LCAjMWY2ZmNkLCAjMjI3YWQ2LCAjMzA4ZWUwLCAjNDVhMWU4LCAjNWRiNGVmLCAjNzhjN2Y2KTtcbiAgLypiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSkgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpOyovIH1cblxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OEM3RjY7IH1cbiJdfQ== */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Pipe, PipeTransform, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { validation } from 'src/app/services/validation.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { CoreCustomerPrices } from '../../models/core-customer-prices.model';\r\nimport { CoreCustomer } from '../../models/core-customer.model';\r\nimport { CoreCustomerRule } from '../../models/core-customer-rule.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-inventory-management',\r\n templateUrl: './syspro-inventory-management.component.html',\r\n styleUrls: ['./syspro-inventory-management.component.scss']\r\n})\r\n\r\n \r\nexport class SysproInventoryManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Inventory[] = [];\r\n rowsCache: Inventory[] = [];\r\n cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n priceRows: CoreCustomerPrices[] = [];\r\n priceRowsCache: CoreCustomerPrices[] = [];\r\n\r\n @ViewChild('searchInput')\r\n searchInput: ElementRef;\r\n smartsearch: string = \"\";\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('sellpriceTemplate')\r\n sellpriceTemplate: TemplateRef;\r\n\r\n @ViewChild('unitCostTemplate')\r\n unitCostTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n inventoryList: Inventory[];\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n stockCode: string;\r\n\r\n id: string;\r\n cartId: string;\r\n customer: ArCustomer;\r\n stockCodedetail: Inventory;\r\n isNavigating: boolean;\r\n isSaving: boolean;\r\n cartSaved: boolean;\r\n cartlinenumber: number = 0;\r\n saveCount: number;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n isNavigatingTo: string;\r\n hasDataSheet: boolean;\r\n hasDataSheets: boolean\r\n hasAddDataSheets: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n savedLineCount: number;\r\n isReloading: boolean;\r\n src: string;\r\n searchTerm: string = \"\";\r\n\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n\r\n @ViewChild('authModal')\r\n authModal: ModalDirective;\r\n\r\n authorized: boolean;\r\n stringToCompare: string;\r\n\r\n chkShortDescription: boolean;\r\n chkLongDescription: boolean;\r\n chkAnyDescription: boolean;\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: Inventory[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n searchingOn: string;\r\n buyerResponsible: string;\r\n hasPricing: boolean;\r\n coreCustomer: CoreCustomer;\r\n applyDiscounts: boolean;\r\n hasDicounts: boolean;\r\n rowCustomerRulesCache: CoreCustomerRule[];\r\n rowCustomerRules: CoreCustomerRule[];\r\n applyGeneralDiscount: boolean;\r\n generalDiscountPerc: number;\r\n rowCustomerRulesSpecialPrice: CoreCustomerRule[];\r\n rowCustomerRulesSupplierDiscount: CoreCustomerRule[];\r\n rowCustomerRulesCategoryDiscount: CoreCustomerRule[];\r\n rowCustomerRulesGeneralDiscount: CoreCustomerRule;\r\n applyGeneralNett: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService, private reportService: ReportService, \r\n private router: Router, private route: ActivatedRoute, private numberPipe: CurrencyPipe) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.SetDataGrid();\r\n\r\n this.authorized = false;\r\n\r\n this.loadData();\r\n } \r\n \r\n private SetDataGrid() {\r\n\r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: 100, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 400, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n { prop: 'availQty', name: 'Qty On Hand', width: 50, cellClass: \"right\" },\r\n { prop: 'binLoc', name: 'Bin', width: 60, cellClass: \"right\" },\r\n { prop: 'orderqty', name: 'Order Qty', width: 60, cellTemplate: this.orderQtyTemplate },\r\n { prop: 'uom', name: 'UOM', width: 50, cellClass: \"center\" },\r\n { prop: 'sellingPrice', name: 'Price (excl)', width: 100, cellTemplate: this.priceTemplate },\r\n { prop: 'discountpercentage1', name: 'Disc
(%)', width: 60, cellTemplate: this.discountTemplate },\r\n { prop: 'specialPrice', name: 'Nett Price (excl)', width: 80, cellTemplate: this.totalTemplate, cellClass: \"right\" },\r\n { prop: 'lineTotal', name: 'Total (excl)', width: 90, cellTemplate: this.totalTemplate, cellClass: \"right\" }\r\n ];\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n loadData() {\r\n\r\n this.searchType = \"description\";\r\n this.chkShortDescription = true;\r\n this.chkLongDescription = false;\r\n this.chkAnyDescription = false;\r\n\r\n this.hasPricing = false;\r\n this.applyDiscounts = false;\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n if (cartId) {\r\n this.cartId = cartId;\r\n console.log(\"Starting CART LOAD\", this.cartId);\r\n this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n else {\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n if (action) {\r\n this.id = action;\r\n this.sysproService.getCustomerDetail(this.id).subscribe(x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n onCartDetailLoadSuccessful(cartDetail: any[]) {\r\n if (cartDetail[0]) {\r\n this.cartRows = cartDetail;\r\n this.cartlinenumber = cartDetail.length;\r\n }\r\n }\r\n\r\n \r\n onDataLoadSuccessful(customer: ArCustomer) {\r\n this.customer = customer;\r\n this.coreCustomer = new CoreCustomer();\r\n this.sysproService.getPricingCustomer(this.id, this.application).subscribe(x => this.onCoreCustomerLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onCoreCustomerLoadSuccessful(x: CoreCustomer[]): void {\r\n if (x && x.length == 1) {\r\n if (x[0].customerCode != \"\") {\r\n this.coreCustomer = x[0];\r\n this.applyDiscounts = (this.coreCustomer.enabled == true? true : false);\r\n if (this.applyDiscounts) {\r\n this.sysproService.getAllPricingCustomerRules(this.coreCustomer.id).subscribe(x => this.onPricingRulesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n //console.log(\"Starting Special Prices\", this.branchCode);\r\n this.sysproService.getAllPricingCustomerPricesForCustomerCodeInventorySelect(this.id, this.application).subscribe(x => this.onPricesLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n if (this.loadCache == true) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (this.loadCache == true) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n\r\n\r\n onPricesLoadSuccessful(prices: CoreCustomerPrices[]): void {\r\n\r\n if (prices && prices.length > 0) {\r\n this.priceRows = prices;\r\n // this.priceRowsCache = [...this.priceRows];\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Success', 'Autmatic Pricing Applied',\r\n MessageSeverity.info);\r\n\r\n //console.log(\"Starting INVENTORY LOAD\", this.branchCode);\r\n if (this.loadCache == true) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n onPricingRulesLoadSuccessful(x: CoreCustomerRule[][]): void {\r\n \r\n if (x && x.length >= 1) {\r\n var ruleList = x[0];\r\n this.hasDicounts = true;\r\n //this.rowCustomerRulesCache = [...ruleList];\r\n //this.rowCustomerRules = this.rowCustomerRulesCache;\r\n this.rowCustomerRules = ruleList;\r\n\r\n\r\n }\r\n }\r\n\r\n onStockLoadSuccessful(inventory: any[], initialLoad?: boolean) {\r\n\r\n if (initialLoad && this.inventoryList && this.inventoryList.length >= 1) {\r\n // We dont want to replace what we just searched for\r\n }\r\n else {\r\n var generalDiscountPerc = new CoreCustomerRule();\r\n this.inventoryList = inventory[0];\r\n this.inventoryList.forEach((stockCode, index, inventory) => {\r\n\r\n (stockCode).index = index + 1;\r\n (stockCode).lineTotal = 0;\r\n (stockCode).cartNumber = this.cartId;\r\n stockCode.description = stockCode.shortDescription + ' - ' + stockCode.longDescription;\r\n (stockCode).sellingPrice = Calculations.RoundAwayFromZero(stockCode.sellingPrice, 5);\r\n // (stockCode).specialPrice = Calculations.RoundAwayFromZero((stockCode.sellingPrice / stockCode.priceConvFac), 5).toFixed(2);\r\n (stockCode).specialPrice = Calculations.RoundAwayFromZero((stockCode.sellingPrice / stockCode.priceConvFac), 5);\r\n\r\n\r\n if (this.applyDiscounts && this.rowCustomerRules && this.rowCustomerRules.length > 0) {\r\n\r\n //Apply Automatic Pricing\r\n this.hasPricing = true;\r\n generalDiscountPerc = this.rowCustomerRules.find(x => x.priority == 4);\r\n\r\n if (this.priceRows && this.priceRows.length >= 1) {\r\n\r\n // Preprocessing\r\n //var priceRowsLookup = {};\r\n //this.priceRows.forEach(row => {\r\n // priceRowsLookup[row.stockCode] = row;\r\n //});\r\n\r\n\r\n let specialPrice = this.priceRows.find(x => x.stockCode == stockCode.stockCode);\r\n //let specialPrice = priceRowsLookup[stockCode.stockCode];\r\n if (specialPrice) {\r\n if (specialPrice.priority == 1) {\r\n (stockCode).specialPrice = specialPrice.newPrice;\r\n (stockCode).discountpercentage1 = specialPrice.value;\r\n }\r\n else {\r\n if (stockCode.sysproNettPrice == false || this.coreCustomer.staffAccount == true) {\r\n (stockCode).specialPrice = specialPrice.newPrice;\r\n (stockCode).discountpercentage1 = specialPrice.value;\r\n }\r\n }\r\n }\r\n else {\r\n if (generalDiscountPerc && (stockCode.sysproNettPrice == false || this.coreCustomer.staffAccount == true)) {\r\n if (generalDiscountPerc.addValue > 0) {\r\n (stockCode).specialPrice = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, generalDiscountPerc.addValue, 0, stockCode.priceConvFac, 0);\r\n (stockCode).discountpercentage1 = 0;\r\n }\r\n if (generalDiscountPerc.value > 0) {\r\n (stockCode).discountpercentage1 = generalDiscountPerc.value;\r\n (stockCode).specialPrice = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, generalDiscountPerc.value, stockCode.priceConvFac, 0);\r\n }\r\n }\r\n } \r\n }\r\n \r\n else {\r\n if (generalDiscountPerc && (stockCode.sysproNettPrice == false || this.coreCustomer.staffAccount == true)) {\r\n if (generalDiscountPerc.addValue > 0) {\r\n (stockCode).specialPrice = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, generalDiscountPerc.addValue, 0, stockCode.priceConvFac, 0);\r\n (stockCode).discountpercentage1 = 0;\r\n }\r\n if (generalDiscountPerc.value > 0) {\r\n (stockCode).discountpercentage1 = generalDiscountPerc.value;\r\n (stockCode).specialPrice = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, generalDiscountPerc.value, stockCode.priceConvFac, 0);\r\n }\r\n }\r\n } \r\n }\r\n\r\n });\r\n \r\n this.rowsCache = [...this.inventoryList];\r\n if (this.inventoryList.length >= 100) {\r\n this.rows = this.inventoryList.slice(0, 100);\r\n }\r\n else {\r\n this.rows = [...this.inventoryList];\r\n }\r\n\r\n this.isReloading = false;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.authorized = false;\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n } \r\n }\r\n\r\n getSpecialPrice(stockCode: Inventory, generalDiscountPerc?: CoreCustomerRule): any {\r\n var specialPrice = this.priceRows.filter(x => x.stockCode == stockCode.stockCode);\r\n \r\n if (specialPrice && specialPrice[0]) {\r\n var priceToApply = specialPrice.sort(p => p.priority)[0];\r\n stockCode.specialPrice = priceToApply.newPrice;\r\n stockCode.discountpercentage1 = priceToApply.value;\r\n }\r\n \r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchTerm = \"\";\r\n this.inventoryList = null;\r\n this.searchingOn = (this.chkAnyDescription && this.searchType == \"description\" ? \"STOCK\" :\r\n this.chkLongDescription && this.searchType == \"description\" ? \"LONGDESCRIPTION\" :\r\n (this.chkShortDescription && this.searchType == \"description\" ? \"SHORTDESCRIPTION\" : this.searchType));\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchingOn, this.searchText.trim().replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => this.onStockLoadSuccessful([x], false), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: Inventory[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n\r\n calcOrderQty(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.orderqty = val;\r\n let total = 0;\r\n let discount = (row.discountpercentage1 && row.discountpercentage1 >= 0 ? row.discountpercentage1 : 0);\r\n\r\n if (discount > 0) {\r\n total = Calculations.getGridLineTotal(row.orderqty, row.sellingPrice, row.priceConvFac, discount, total);\r\n }\r\n else {\r\n let specialUnit = row.specialPrice * row.priceConvFac;\r\n total = Calculations.getGridLineTotal(row.orderqty, specialUnit, row.priceConvFac, discount, total);\r\n }\r\n\r\n //(row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n\r\n row.lineTotal = total;\r\n }\r\n\r\n calcDisc(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.discountpercentage1 = val;\r\n let qty = (row.orderqty && row.orderqty >= 0 ? row.orderqty : 0);\r\n let total = 0;\r\n\r\n total = Calculations.getGridLineTotal(qty, row.sellingPrice, row.priceConvFac, row.discountpercentage1, total);\r\n row.specialPrice = Calculations.getGridLineTotal(1, row.sellingPrice, row.priceConvFac, row.discountpercentage1, total);\r\n\r\n //(row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcPrice(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n\r\n let discount = (row.discountpercentage1 && row.discountpercentage1 >= 0 ? row.discountpercentage1 : 0);\r\n let qty = (row.orderqty && row.orderqty >= 0 ? row.orderqty : 0);\r\n let total = 0;\r\n\r\n row.specialPrice = Calculations.getGridLineTotal(1, row.sellingPrice, row.priceConvFac, discount, total);\r\n\r\n total = Calculations.getGridLineTotal(qty, row.sellingPrice, row.priceConvFac, discount, total);\r\n\r\n\r\n //(row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n \r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return;}\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchChanged(e: any) {\r\n let test = e;\r\n let value = this.smartsearch;\r\n if (value.trim() != \"\") {\r\n var filterValues = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.description, r.stockCode, r.warehouse, r.extraProductInform));\r\n this.rows = this._sortByTerm(filterValues, \"description\", value.toUpperCase());\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n _sortByTerm(data, key, term) {\r\n return data.sort(function (a, b) {\r\n return a[key].indexOf(term) < b[key].indexOf(term) ? -1 : 1;\r\n });\r\n }\r\n\r\n\r\n viewCustomer() {\r\n this.isNavigating = true;\r\n this.isNavigatingTo = \"customer\";\r\n this.save();\r\n //this.cartlinenumber > 0 && \r\n if (this.rowsCache.filter(x => x.orderqty > 0).length <= 0) {\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n }\r\n }\r\n\r\n goAddNSItems() {\r\n this.isNavigating = true;\r\n this.isNavigatingTo = \"nonstock\";\r\n this.save();\r\n //this.cartlinenumber > 0 && \r\n if (this.rowsCache.filter(x => x.orderqty > 0).length <= 0) {\r\n this.router.navigate(['../../orders'], { fragment: 'nonstock', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n }\r\n }\r\n\r\n goSaveItems() {\r\n this.isNavigating = true;\r\n this.isNavigatingTo = \"cart\";\r\n this.save();\r\n //this.cartlinenumber > 0 && \r\n if (this.rowsCache.filter(x => x.orderqty > 0).length <= 0) {\r\n this.router.navigate(['../../orders'], { fragment: 'cart', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n }\r\n }\r\n\r\n private save() {\r\n \r\n //If we are still busy saving but want to navigate, don't save again\r\n if (this.isSaving || this.isReloading) {\r\n return;\r\n }\r\n else {\r\n //Do we have lines we want to save\r\n const saveRows = this.rowsCache.filter(x => x.orderqty > 0);\r\n this.saveCount = saveRows.length;\r\n\r\n if (this.saveCount > 0) {\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.savedLineCount = 0;\r\n\r\n //Populate cart rows with selected input \r\n for (var product of saveRows) {\r\n this.cartlinenumber = this.GenerateUniqueCartLineNumber() + 1;\r\n product.discountpercentage1 = (product.discountpercentage1 && product.discountpercentage1 >= 0 ? product.discountpercentage1 : 0);\r\n const cartRow = new CartDetail;\r\n cartRow.cartNumber = this.cartId;\r\n cartRow.lineType = \"1\";\r\n cartRow.stockCode = product.stockCode;\r\n cartRow.cartLineNumber = this.cartlinenumber;\r\n cartRow.stockDescription = product.description.length > 50 ? product.description.substr(0, 50) : product.description;\r\n cartRow.warehouse = product.warehouse;\r\n cartRow.orderQty = product.orderqty;\r\n cartRow.unitCost = product.unitCost;\r\n cartRow.orderUom = product.uom;\r\n //if (product.specialPrice && product.specialPrice > 0) {\r\n \r\n //}\r\n //else {\r\n // cartRow.sellingPrice = product.sellingPrice;\r\n //} \r\n cartRow.discountPercentage1 = product.discountpercentage1;\r\n cartRow.discountValue = 0;\r\n cartRow.unitmass = 0;\r\n cartRow.unitvolume = 0;\r\n cartRow.comment = \"\";\r\n cartRow.commentFromLineNumber = 0;\r\n cartRow.commentType = \"\";\r\n cartRow.boSupplierName = \"\";\r\n cartRow.boSupplierInvoice = \"\";\r\n cartRow.boLineInfo = \"\";\r\n cartRow.boSupplierCode = \"\";\r\n cartRow.vatExempt = product.vatExempt;\r\n\r\n cartRow.sellingPrice = product.sellingPrice;// (product.specialPrice * product.priceConvFac);\r\n cartRow.originalDiscount = product.discountpercentage1;\r\n \r\n cartRow.specialPrice = (product.specialPrice);\r\n cartRow.nettPrice = Calculations.getGridNettLinePrice(product.orderqty, product.sellingPrice, product.priceConvFac, product.discountpercentage1, 0);\r\n cartRow.nettDiscount = 0;\r\n cartRow.gP = 0;\r\n \r\n if (this.ValidateSave(cartRow)) {\r\n let newPrice = (product.discountpercentage1 > 0 ? cartRow.sellingPrice : (product.specialPrice * product.priceConvFac));\r\n // cartRow.sellingPrice = (product.discountpercentage1 > 0 ? cartRow.sellingPrice : (product.specialPrice * product.priceConvFac));\r\n cartRow.originalPrice = product.sellingPrice;\r\n if (product.discountpercentage1 == 0 && Math.floor(newPrice) < Math.floor(cartRow.originalPrice)) {\r\n cartRow.discountPercentage1 = Calculations.calculateSpecialDiscountTotal(cartRow.originalPrice, newPrice, 0);\r\n cartRow.originalDiscount = cartRow.discountPercentage1;\r\n }\r\n this.fowkesService.cartDetail(cartRow).subscribe(_response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n this.cartRows.push(cartRow);\r\n this.savedLineCount++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n ValidateSave(row: CartDetail): boolean {\r\n let error = \"\";\r\n if (row.lineType !== \"6\") {\r\n if (!this.authorized) {\r\n error = validation.minSpecialPrice(row.unitCost, row.specialPrice, error);\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Error', error + 'For item ' + row.stockCode, MessageSeverity.error);\r\n this.authorized = false;\r\n this.authModal.show();\r\n return false;\r\n }\r\n else {\r\n this.authorized = true;\r\n }\r\n }\r\n if (this.authorized) {\r\n row.discountPercentage1 = (row.discountPercentage1 && row.discountPercentage1 >= 0 ? row.discountPercentage1 : 0);\r\n error = validation.stockCode(row.stockCode, error);\r\n error = validation.description(row.stockDescription, error);\r\n error = validation.qty(row.orderQty, error);\r\n error = validation.uom(row.orderUom, error);\r\n error = validation.price(row.sellingPrice, error);\r\n error = validation.discount(row.discountPercentage1, error);\r\n error = validation.cost(row.unitCost, error);\r\n // error = validation.minPrice(row.unitCost, row.sellingPrice, row.discountPercentage1, error);\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error + 'For item ' + row.stockCode, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n verifyAuth() {\r\n this.alertService.startLoadingMessage(\"Verfiying...\");\r\n this.loadingIndicator = true;\r\n this.fowkesService.VerifyPassword(this.branchCode, \"PRICE\", encodeURIComponent(this.stringToCompare)).subscribe(x => this.onVerificationSuccess(), error => this.onVerificationFailed(error));\r\n\r\n }\r\n onVerificationSuccess(): void {\r\n this.authorized = true;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', 'Authorized', MessageSeverity.success);\r\n this.authModal.hide();\r\n this.save();\r\n }\r\n\r\n onVerificationFailed(error: any): void {\r\n this.authorized = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', 'Authorization Failed ', MessageSeverity.error);\r\n } \r\n\r\n GenerateUniqueCartLineNumber(): any {\r\n if (this.cartRows.length > 0) {\r\n const maxId = this.cartRows.reduce(\r\n (max, character) => (character.cartLineNumber > max ? character.cartLineNumber : max),\r\n this.cartRows[0].cartLineNumber\r\n );\r\n return maxId;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n \r\n private saveSuccessHelper(cart?: CartDetail) {\r\n\r\n this.cartSaved = true;\r\n\r\n if (cart) {\r\n // Object.assign(this.cartRows, cart); \r\n }\r\n\r\n if (this.isNavigating) {\r\n if (this.isNavigatingTo == \"nonstock\") {\r\n this.router.navigate(['../orders'], { fragment: 'nonstock', queryParams: { customer: this.customer.customer, cartId: this.cartId } });\r\n }\r\n if (this.isNavigatingTo == \"cart\") {\r\n\r\n this.router.navigate(['../orders'], { fragment: 'cart', queryParams: { customer: this.customer.customer, cartId: this.cartId } });\r\n }\r\n if (this.isNavigatingTo == \"customer\") {\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.customer.customer, cartId: this.cartId } });\r\n }\r\n }\r\n\r\n //Check if all the lines have been saved\r\n if (this.saveCount == this.savedLineCount) {\r\n\r\n //Reload the inventory and cart details\r\n this.refreshAll();\r\n\r\n this.searchInput.nativeElement.focus();\r\n\r\n }\r\n\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n }\r\n\r\n private refreshAll() {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.isReloading = true;\r\n this.alertService.startLoadingMessage(\"Reloading...\");\r\n this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n if (this.searchText.trim().length >= 1) {\r\n this.searchingOn = (this.chkAnyDescription && this.searchType == \"description\" ? \"STOCK\" :\r\n this.chkLongDescription && this.searchType == \"description\" ? \"LONGDESCRIPTION\" :\r\n (this.chkShortDescription && this.searchType == \"description\" ? \"SHORTDESCRIPTION\" : this.searchType));\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchingOn, this.searchText.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => this.onStockLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n //Check if all the lines have been saved\r\n if (this.saveCount == this.savedLineCount) {\r\n \r\n //Reload the inventory and cart details\r\n this.refreshAll();\r\n }\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n stockCodeModalHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n \r\n if (row.lineType != \"7\" && row.mapped) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.description;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.addSheetImage = row.addSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n this.stockCodedetail.onSpecialFowkes = row.onSpecialFowkes;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey && row.mapped) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.alternateKey;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n //this.sysproService.getStockCodeAvailableQuantities(row.alternateKey).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n openSpecials(row: Inventory) {\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"https://www.maxarcus.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"https://www.fowkes.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n\r\n //if (!!row.specialsImage && row.specialsImage != \"\") {\r\n // window.open(row.filePath + \"/SpecialImages/\" + row.specialsImage, \"_blank\");\r\n //}\r\n }\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n\r\n onEmailLoadSuccessful() {\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasAddDataSheets = false;\r\n this.hasSpecials = false;\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n this.hasAddDataSheets = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage.length >= 1);\r\n\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.specialsImage.length >= 1 && (this.stockCodedetail.onSpecial || this.stockCodedetail.onSpecialFowkes));\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"), this.branchCode, this.application).subscribe(x => this.emailModal.show(), error => this.onDataLoadFailed(error));\r\n\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.customer.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim();\r\n }\r\n if (this.hasAddDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc3 = this.stockCodedetail.addSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n titleCase(str) {\r\n str = str.toLowerCase();\r\n return str.replace(/\\w\\S/g, function (t) { return t.toUpperCase() });\r\n }\r\n\r\n\r\n viewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n console.log(this.emailObject);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.emailObject.AddDoc1 = (this.attachDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var stockCode = this.emailObject.Attachment.replace('/', '_').replace('+', '_').replace('%', '_');\r\n\r\n this.src = url;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = stockCode + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n \r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
New Line
StockCodeDescriptionOrder
Qty
UOMPrice(excl)Disc
(%)
Cost(excl)SupplierTotal(excl)
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{newRow.boSupplierName}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Existing N/S Lines
StockCodeDescriptionOrder
Qty
UOMPrice(excl)Disc
(%)
Cost(excl)SupplierTotal(excl)
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{row.boSupplierCode}} - {{row.boSupplierName}} {{row.boLineInfo}}\\r\\n \\r\\n \\r\\n Del\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Search and Select Supplier:

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

Authorization Required

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
The price does not exceed the specified margin
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.tbody {\\n height: calc(100vh - 500px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-image: linear-gradient(to right, #191b1e, #182433, #142c49, #0d3460, #063c78, #0f498b, #17579e, #1d65b2, #2f7dc4, #4596d6, #5daee6, #78c7f6);\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #78C7F6; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8taW52ZW50b3J5LW5vbnN0b2NrLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1pbnZlbnRvcnktbm9uc3RvY2suY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsK0JBQStCLEVBQUE7O0FBR2pDO0VBQ0UsK0JBQStCLEVBQUE7O0FBRGpDO0lBR0ksZ0JBQWdCLEVBQUE7O0FBSXBCO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLGtCQUFrQixFQUFBOztBQUVwQjtFQUNFLFlBQVksRUFBQTs7QUFHZDtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHckI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0UsMkJBQTJCO0VBQzNCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUE7O0FBS25CO0VBQ0UsdUpBQXVKO0VBQ3ZKOzs7b0hDWGtILEVEY0M7O0FBR3JIO0VBQ0UseUJBQXlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1pbnZlbnRvcnktbm9uc3RvY2suY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIGEge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgaGVpZ2h0OiAyNnB4O1xyXG4gIGZvbnQtc2l6ZTogMC43MDByZW07XHJcbn1cclxuXHJcbi50YWJsZSB0aHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi50Ym9keSB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbn1cclxuXHJcblxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMxOTFiMWUsICMxODI0MzMsICMxNDJjNDksICMwZDM0NjAsICMwNjNjNzgsICMwZjQ5OGIsICMxNzU3OWUsICMxZDY1YjIsICMyZjdkYzQsICM0NTk2ZDYsICM1ZGFlZTYsICM3OGM3ZjYpO1xyXG4gIC8qYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTsqL1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhDN0Y2O1xyXG59XHJcblxyXG4iLCI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgfVxuXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyB9XG4gIDpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCBhIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbmlucHV0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMjZweDtcbiAgZm9udC1zaXplOiAwLjcwMHJlbTsgfVxuXG4udGFibGUgdGgge1xuICBmb250LXNpemU6IHNtYWxsZXI7IH1cblxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLnVzZXItcm9sZSB7XG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cblxuLmNvbnRyb2wtYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG5cbi5zZWFyY2gtYm94IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcbiAgcGFkZGluZy10b3A6IDNweDtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgbWluLXdpZHRoOiAxMDBweDsgfVxuXG4udXNlci1kaXNhYmxlZCB7XG4gIGNvbG9yOiAjNzc3O1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLmxvY2tlZC1vdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4udGJvZHkge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1MDBweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDNweDsgfVxuXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMxOTFiMWUsICMxODI0MzMsICMxNDJjNDksICMwZDM0NjAsICMwNjNjNzgsICMwZjQ5OGIsICMxNzU3OWUsICMxZDY1YjIsICMyZjdkYzQsICM0NTk2ZDYsICM1ZGFlZTYsICM3OGM3ZjYpO1xuICAvKmJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7Ki8gfVxuXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4QzdGNjsgfVxuIl19 */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { Supplier } from 'src/app/models/supplier.model';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { validation } from 'src/app/services/validation.service';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-inventory-nonstock',\r\n templateUrl: './syspro-inventory-nonstock.component.html',\r\n styleUrls: ['./syspro-inventory-nonstock.component.scss']\r\n})\r\nexport class SysproInventoryNonStockComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: CartDetail[] = [];\r\n rowsCache: CartDetail[] = [];\r\n cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n\r\n suppliersCache: Supplier[] = [];\r\n\r\n \r\n newRow: CartDetail = new CartDetail();\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n \r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('uomTemplate')\r\n uomTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n \r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('supplierTemplate')\r\n supplierTemplate: TemplateRef;\r\n \r\n\r\n @ViewChild('supplierNameTemplate')\r\n supplierNameTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n// inventoryList: Inventory[];\r\n\r\n\r\n @ViewChild('supplierModal')\r\n supplierModal: ModalDirective;\r\n\r\n\r\n @ViewChild('currentSupplier')\r\n currentSupplier: Supplier;\r\n\r\n\r\n @ViewChild('suppliers')\r\n private suppliers;\r\n\r\n @ViewChild('supplierSelector')\r\n private supplierSelector;\r\n\r\n @ViewChild('authModal')\r\n authModal: ModalDirective;\r\n\r\n authorized: boolean;\r\n stringToCompare: string;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n\r\n cartId: string;\r\n cart: CartHeader;\r\n isSaving: boolean;\r\n cartlinenumber: any;\r\n isNavigating: boolean;\r\n currentRow: number = 1;\r\n //currentSupplier: any;\r\n lineDetail: CartDetail;\r\n rowNumber: number;\r\n id: string;\r\n hasDetailRows: boolean;\r\n selectedRow: any;\r\n\r\n @ViewChild('boSupplierNameRow')\r\n private boSupplierNameRow;\r\n\r\n rememberSupplier: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n this.id = action;\r\n let cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n if (cartId) {\r\n\r\n this.cartId = cartId;\r\n this.authorized = false;\r\n\r\n this.loadData();\r\n }\r\n\r\n else {\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n console.log(\"LOADING SUPPLIERS\");\r\n this.sysproService.getAllSuppliers().subscribe(x => this.onSupplierLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n onCartHeaderLoadSuccessful(cart: CartHeader) {\r\n this.cart = cart;\r\n this.alertService.showMessage('Loaded', `Cart Header Loaded`, MessageSeverity.success);\r\n }\r\n\r\n onCartDetailLoadSuccessful(cartDetail: CartDetail[]) {\r\n\r\n this.loadNewNSRow();\r\n\r\n if (cartDetail[0]) {\r\n console.log(\"LOADING THE CART DETAIL\");\r\n this.cartRows = cartDetail;\r\n this.cartlinenumber = cartDetail.length;\r\n this.newRow.cartLineNumber = this.GenerateUniqueCartLineNumber() + 1;\r\n\r\n this.rows = this.cartRows.filter(x => x.lineType == \"7\");\r\n this.hasDetailRows = true;\r\n for (var product of this.rows) {\r\n this.calcTotal(product);\r\n }\r\n }\r\n this.authorized = false;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n loadNewNSRow() {\r\n\r\n\r\n console.log(\"Creating New Row\");\r\n const cartRow = new CartDetail();\r\n cartRow.cartNumber = this.cartId;\r\n cartRow.lineType = \"7\";\r\n cartRow.stockCode = \"##_\";\r\n cartRow.cartLineNumber = this.GenerateUniqueCartLineNumber() + 1;\r\n cartRow.stockDescription = \"\";\r\n cartRow.warehouse = \"**\";\r\n cartRow.orderQty = 0;\r\n cartRow.unitCost = 0.00;\r\n cartRow.orderUom = \"EA\";\r\n cartRow.sellingPrice = 0.00;\r\n cartRow.discountPercentage1 = 0.00;\r\n cartRow.discountValue = 0;\r\n cartRow.priceConvFac = 1;\r\n cartRow.unitmass = 0;\r\n cartRow.unitvolume = 0;\r\n cartRow.comment = \"\";\r\n cartRow.commentFromLineNumber = 0;\r\n cartRow.commentType = \"\";\r\n cartRow.boSupplierName = (this.currentSupplier && this.currentSupplier.supplier != \"\") ? this.currentSupplier.supplierName : \"Select Supplier\";\r\n cartRow.boSupplierInvoice = \"\";\r\n cartRow.boLineInfo = \"\";\r\n cartRow.boSupplierCode = (this.currentSupplier && this.currentSupplier.supplier != \"\") ? this.currentSupplier.supplier : \"\";\r\n cartRow.vatExempt = false;\r\n Object.assign(this.newRow, cartRow);\r\n\r\n\r\n\r\n }\r\n\r\n formatUnitCost(row: CartDetail): any {\r\n row.unitCost = Calculations.setUnitCostDecimals(row.unitCost);\r\n }\r\n\r\n calcTotal(row: CartDetail): any {\r\n let total = 0;\r\n total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = total;\r\n }\r\n\r\n private saveSuccessHelper(cart?: CartDetail) {\r\n \r\n if (cart) {\r\n }\r\n\r\n if (!this.isNavigating) {\r\n this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n }\r\n\r\n \r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n saveNewRow() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n console.log(\"SAVING THESE VALUES\", this.newRow);\r\n if (this.newRow.boSupplierCode.length > 1) {\r\n if (this.newRow.stockCode.startsWith(\"##_\")) {\r\n\r\n this.newRow.stockCode = this.newRow.stockCode.toUpperCase();\r\n }\r\n else {\r\n this.newRow.stockCode = \"##_\" + this.newRow.stockCode.toUpperCase();\r\n }\r\n this.newRow.stockDescription = this.newRow.stockDescription.toUpperCase();\r\n this.newRow.orderUom = this.newRow.orderUom.toUpperCase();\r\n\r\n //Check if stockcode already exist on order\r\n if (this.rows.find(x => x.stockCode == this.newRow.stockCode)) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Save Warning', 'This stock code has already been added to the cart', MessageSeverity.warn);\r\n\r\n }\r\n else {\r\n\r\n if (this.ValidateSave(this.newRow)) {\r\n this.newRow.nettDiscount = 0;\r\n this.newRow.nettPrice = Calculations.getGridNettLinePrice(this.newRow.orderQty, this.newRow.sellingPrice, this.newRow.priceConvFac, this.newRow.discountPercentage1, 0);\r\n this.newRow.originalPrice = this.newRow.sellingPrice;\r\n this.newRow.originalDiscount = this.newRow.discountPercentage1;\r\n this.fowkesService.cartDetail(this.newRow).subscribe(_response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n\r\n }\r\n }\r\n\r\n }\r\n else {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Save Warning', 'Make sure to select the supplier before saving', MessageSeverity.warn);\r\n\r\n }\r\n }\r\n\r\n ValidateSave(row: CartDetail): boolean {\r\n let error = \"\";\r\n if (!this.authorized) {\r\n error = validation.minPrice(row.unitCost, row.sellingPrice, row.discountPercentage1, error);\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error + 'For item ' + row.stockCode, MessageSeverity.error);\r\n this.authorized = false;\r\n this.authModal.show();\r\n return false;\r\n }\r\n else {\r\n this.authorized = true;\r\n }\r\n }\r\n if (this.authorized) {\r\n error = validation.stockCode(row.stockCode, error);\r\n error = validation.description(row.stockDescription, error);\r\n error = validation.qty(row.orderQty, error);\r\n error = validation.uom(row.orderUom, error);\r\n error = validation.NSprice(row.sellingPrice, error);\r\n error = validation.discount(row.discountPercentage1, error);\r\n error = validation.NScost(row.unitCost, error);\r\n error = validation.supplier(row.boSupplierCode, row.boSupplierName, row.boLineInfo, error);\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error + 'For item ' + row.stockCode, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n verifyAuth() {\r\n this.alertService.startLoadingMessage(\"Verfiying...\");\r\n this.loadingIndicator = true;\r\n this.fowkesService.VerifyPassword(this.branchCode, \"PRICE\", encodeURIComponent(this.stringToCompare)).subscribe(x => this.onVerificationSuccess(), error => this.onVerificationFailed(error));\r\n\r\n }\r\n onVerificationSuccess(): void {\r\n this.authorized = true;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', 'Authorized', MessageSeverity.success);\r\n this.authModal.hide();\r\n if (this.newRow.stockDescription && this.newRow.stockDescription != \"\") {\r\n this.saveNewRow();\r\n }\r\n else {\r\n this.save();\r\n }\r\n }\r\n\r\n onVerificationFailed(error: any): void {\r\n this.authorized = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', 'Authorization Failed ', MessageSeverity.error);\r\n }\r\n\r\n\r\n GenerateUniqueCartLineNumber(): any {\r\n if (this.cartRows.length > 0) {\r\n const maxId = this.cartRows.reduce(\r\n (max, character) => (character.cartLineNumber > max ? character.cartLineNumber : max),\r\n this.cartRows[0].cartLineNumber\r\n );\r\n return maxId;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n deleteRow(row: CartDetail) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.stockCode + ' - ' + row.stockDescription + '\\\"?', DialogType.confirm, () => this.deleteRowHelper(row));\r\n }\r\n\r\n deleteRowHelper(row: CartDetail) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.cartDetailDelete(row.cartNumber, row.cartLineNumber).subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.stockCode + ` Successfully deleted`, MessageSeverity.success);\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row);\r\n this.rows = this.rows.filter(item => item !== row);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n\r\n }\r\n \r\n onSupplierLoadSuccessful(suppliers: Supplier[]) {\r\n this.suppliersCache = suppliers;\r\n this.setSupplier(suppliers);\r\n console.log(\"SUPPLIERS LOADED\");\r\n }\r\n\r\n setSupplier(suppliers: Supplier[]) {\r\n\r\n if (this.newRow.boSupplierCode) {\r\n if (!this.suppliers.some(r => r.supplier == this.newRow.boSupplierCode)) {\r\n // this.suppliers.unshift(new Supplier(this.newRow.boSupplierCode));\r\n }\r\n }\r\n\r\n if (suppliers == null || this.suppliers.length != suppliers.length) {\r\n setTimeout(() => {\r\n if (this.supplierSelector) {\r\n this.supplierSelector.refresh();\r\n }\r\n });\r\n }\r\n }\r\n \r\n onDataLoadFailed(error: any, source?: string) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n if (error.status == 404 || error.status == 500) {\r\n this.onCartDetailLoadSuccessful([new CartDetail()]);\r\n }\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n viewCustomer() {\r\n if (!this.checkFornewRow(\"view\")) {\r\n this.isNavigating = true;\r\n this.save();\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.id, cartId: this.cartId } });\r\n\r\n } \r\n }\r\n\r\n checkFornewRow(navigate?: string) {\r\n if (this.newRow.stockDescription != \"\" || this.newRow.orderQty > 0) {\r\n this.alertService.showDialog('There are values for a new non stock line, did you mean to save new line first?', DialogType.confirm,\r\n () => this.SaveNewHelper(navigate),\r\n () => this.ClearNewHelper(navigate),\r\n \"Save New Line\",\r\n \"Clear New Line\");\r\n return true;\r\n }\r\n else return false;\r\n }\r\n\r\n SaveNewHelper(navigate?: string): any {\r\n\r\n this.saveNewRow();\r\n //this.save();\r\n //if (navigate.length > 1) {\r\n // this.router.navigate(['../../orders'], { fragment: navigate, queryParams: { customer: this.id, cartId: this.cartId } });\r\n //} \r\n }\r\n\r\n ClearNewHelper(navigate?: string): any {\r\n this.loadNewNSRow();\r\n this.isNavigating = true;\r\n this.save();\r\n if (navigate.length > 1) {\r\n this.router.navigate(['../../orders'], { fragment: navigate, queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n }\r\n\r\n goAddItems() {\r\n if (!this.checkFornewRow(\"inventory\")) {\r\n this.isNavigating = true;\r\n this.save();\r\n this.router.navigate(['../../orders'], { fragment: 'inventory', queryParams: { customer: this.id, cartId: this.cartId } });\r\n\r\n } \r\n }\r\n\r\n goSaveItems() {\r\n if (!this.checkFornewRow(\"cart\")) {\r\n this.isNavigating = true;\r\n this.save();\r\n this.router.navigate(['../../orders'], { fragment: 'cart', queryParams: { customer: this.id, cartId: this.cartId } });\r\n\r\n } \r\n }\r\n\r\n private save(location?) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n //Populate cart rows with selected input\r\n const saveRows = this.rows.filter(x => x.lineType !== \"6\");\r\n if (saveRows.length >= 1) {\r\n\r\n // Validate Duplicate Stock Codes\r\n var seen = {};\r\n var hasDuplicates = saveRows.some(function (currentObject) {\r\n return seen.hasOwnProperty(currentObject.stockCode)\r\n || (seen[currentObject.stockCode] = false);\r\n });\r\n\r\n if (hasDuplicates) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Save Error', 'Please make sure all stockcodes are unique', MessageSeverity.warn);\r\n }\r\n else {\r\n for (let product of saveRows) {\r\n if (this.ValidateSave(product)) {\r\n //All validation passed, save NS item\r\n if (this.cart.hasNettPrices) {\r\n product.sellingPrice = product.nettPrice;\r\n product.discountPercentage1 = product.nettDiscount;\r\n }\r\n else {\r\n product.originalPrice = product.sellingPrice;\r\n product.originalDiscount = product.discountPercentage1;\r\n }\r\n product.specialPrice = product.sellingPrice;\r\n product.unitCost = Calculations.setUnitCostDecimals(product.unitCost);\r\n this.fowkesService.cartDetail(product, this.cartId).subscribe(_response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n } \r\n }\r\n //else {\r\n // this.alertService.showMessage('Warning', 'There are no items to save, did you mean to save the new line?', MessageSeverity.warn);\r\n // this.isSaving = false;\r\n // this.alertService.stopLoadingMessage();\r\n //}\r\n }\r\n\r\n showSupplierDetail(row: number) {\r\n this.currentRow = row;\r\n this.supplierModal.show();\r\n }\r\n\r\n inlineSupplierSelect(row: CartDetail) {\r\n this.selectedRow = row;\r\n this.supplierModal.show();\r\n }\r\n\r\n setSupplierName(supplier: any) {\r\n var supplierDetail = this.getSupplierByID(supplier);\r\n var canSave = false;\r\n //if (this.newRow.boSupplierCode == 'COD001' || this.newRow.boSupplierCode == 'COD002') {\r\n // if (!this.newRow.boLineInfo || this.newRow.boLineInfo.length <= 1) {\r\n // this.alertService.showMessage('Error', \"Please enter a name for the cash supplier. \", MessageSeverity.error);\r\n // }\r\n // else {\r\n // canSave = true;\r\n // }\r\n //}\r\n //else {\r\n // canSave = true;\r\n //}\r\n\r\n if (this.selectedRow && this.selectedRow.stockCode) {\r\n this.selectedRow.boSupplierName = supplierDetail.supplierName;\r\n var updateRow = this.rows.find(x => x.cartLineNumber == this.selectedRow.cartLineNumber);\r\n updateRow.boSupplierCode = supplierDetail.supplier;\r\n updateRow.boSupplierName = supplierDetail.supplierName;\r\n updateRow.boLineInfo = this.newRow.boLineInfo;\r\n var error = \"\";\r\n error = error = validation.supplier(supplierDetail.supplier, supplierDetail.supplierName, this.newRow.boLineInfo, error);\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error + 'For item ' + this.selectedRow.stockCode, MessageSeverity.error);\r\n canSave = false;\r\n }\r\n else {\r\n canSave = true;\r\n }\r\n \r\n }\r\n else {\r\n if (this.newRow) {\r\n this.newRow.boSupplierName = supplierDetail.supplierName;\r\n var error = \"\";\r\n error = validation.supplier(supplierDetail.supplier, supplierDetail.supplierName, this.newRow.boLineInfo, error);\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n canSave = false;\r\n }\r\n else {\r\n canSave = true;\r\n }\r\n }\r\n }\r\n\r\n if (canSave) {\r\n\r\n this.currentSupplier = supplierDetail;\r\n\r\n this.selectedRow = {};\r\n this.currentRow = null;\r\n this.supplierModal.hide();\r\n }\r\n \r\n ////var extra = supplier.supAddr1 ? supplier.supAddr1 : \"\";\r\n //if (this.currentRow == 0) {\r\n // this.newRow.boSupplierCode = supplier;\r\n // this.newRow.boLineInfo = extra;\r\n //}\r\n //else {\r\n\r\n // let row = this.rows.filter(x => x.cartLineNumber == this.currentRow)[0];\r\n // row.boSupplierCode = supplier;\r\n // row.boSupplierName = supplierDetail.supplierName;\r\n // row.boLineInfo = extra;\r\n //}\r\n\r\n }\r\n\r\n private getSupplierByID(name: string) {\r\n return this.suppliersCache.find((r) => r.supplier == name);\r\n }\r\n\r\n\r\n calcOrderQty(row: any, event) {\r\n var val = event.target.value;\r\n row.orderQty = val;\r\n\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = Calculations.precise_round(total, 2);\r\n \r\n }\r\n\r\n calcDisc(row: any, event) {\r\n var val = event.target.value;\r\n row.discountPercentage1 = val;\r\n\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = Calculations.precise_round(total, 2);\r\n }\r\n\r\n\r\n calcTotalNewRow() {\r\n let row = this.newRow;\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n this.newRow.lineTotal = total; \r\n }\r\n\r\n\r\n formatNewRowUnitCost(): any {\r\n let row = this.newRow;\r\n row.unitCost = Calculations.setUnitCostDecimals(row.unitCost);\r\n }\r\n\r\n\r\n calcPrice(row: any, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = Calculations.precise_round(total, 2);\r\n \r\n }\r\n\r\n viewCustomerNotes(row: ArCustomerEdit) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n this.router.navigate(['../../customers'], { fragment: 'notes', queryParams: { customer: row.customer } });\r\n }\r\n\r\n\r\n onSupplierSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.suppliers = this.suppliersCache.filter(r => Utilities.searchArray(value, false, r.supplier, r.supplierName));\r\n }\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{stockCodedetail.topSellerText}}
\\r\\n \\\"{{stockCodedetail.stockCodeImage}}\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Stock Code:{{stockCodedetail.stockCode}}
Brand:{{stockCodedetail.brandName}}
Description:{{stockCodedetail.shortDescription}}
Long Description:{{stockCodedetail.longDescription}}
1\\\" class=\\\"control-detail no-padding border-0\\\">Extra Info:{{stockCodedetail.extraProductInform}}
\\r\\n
\\r\\n
{{stockCodedetail.extraDescription1}}{{stockCodedetail.extraDescription2}}
\\r\\n
\\r\\n
IMPA Code:\\r\\n {{stockCodedetail.impaCodes}}\\r\\n
Qty Per Case:\\r\\n {{stockCodedetail.qtyPerCase}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n.datatable-header-cell {\\n display: flex !important;\\n align-items: center !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.stack-top {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #006699;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8taW52ZW50b3J5LXByZXZpZXcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsK0JBQStCLEVBQUE7O0FBRWpDO0VBQ0Usd0JBQXdCO0VBQ3hCLDhCQUE4QixFQUFBOztBQUVoQztFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLG1CQUFtQixFQUFBOztBQVB2QjtJQVdJLGdCQUFnQjtJQUNoQiwwQkFBMEIsRUFBQTs7QUFaOUI7SUFnQkksMEJBQTBCLEVBQUE7O0FBSTlCO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHckI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0UsMENBQUE7RUFDQSxRQUFJO0VBQ0osVUFBSTtFQUNKLFlBQUk7RUFDSixHQUFBO0VBQ0Esa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixRQUFRO0VBQ1IsaURBQWlEO0VBQUUsbUNBQUE7RUFDbkQsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YsNkJBQTZCO0VBQzdCLG1DQUFtQztFQUNuQywyRkFBd0Y7RUFDeEYsK01BQTBNLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1pbnZlbnRvcnktcHJldmlldy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcclxufVxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcblxyXG4gIC5idG4tbGluay5ncmlkIHtcclxuICAgIGZvbnQtc2l6ZTogMC43MDByZW07XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIGEuaG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udXNlci1yb2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLnN0YWNrLXRvcCB7XHJcbiAgLyogYWRqdXN0IHRoZSBiZWxvdyB0byBjb250cm9sIHRoZSBzaGFwZSAqL1xyXG4gIC0tZDogNXB4O1xyXG4gIC0tdzogMTAwcHg7XHJcbiAgLS1jOiAjMDA2Njk5O1xyXG4gIC8qKi9cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDI5LjI5JSwgLTEwMCUpIHJvdGF0ZSg0NWRlZyk7IC8qIDI5LjI5JSA9IDEwMCUqKDEgLSBjb3MoNDVkZWcpKSAqL1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB3aWR0aDogdmFyKC0tdyk7XHJcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XHJcbiAgcGFkZGluZzogNXB4IDAgY2FsYyh2YXIoLS1kKSArIDVweCk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMC42KSAwIDApIGJvdHRvbS8xMDAlIHZhcigtLWQpIG5vLXJlcGVhdCB2YXIoLS1jKTtcclxuICBjbGlwLXBhdGg6IHBvbHlnb24oMCAxMDAlLDAgY2FsYygxMDAlIC0gdmFyKC0tZCkpLDUwJSBjYWxjKDEwMCUgLSB2YXIoLS1kKSAtIHZhcigtLXcpLzIpLDEwMCUgY2FsYygxMDAlIC0gdmFyKC0tZCkpLDEwMCUgMTAwJSxjYWxjKDEwMCUgLSB2YXIoLS1kKSkgY2FsYygxMDAlIC0gdmFyKC0tZCkpLCB2YXIoLS1kKSBjYWxjKDEwMCUgLSB2YXIoLS1kKSkpXHJcbn1cclxuIl19 */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Pipe, PipeTransform } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-inventory-preview',\r\n templateUrl: './syspro-inventory-preview.component.html',\r\n styleUrls: ['./syspro-inventory-preview.component.scss']\r\n})\r\n\r\n\r\nexport class SysproInventoryPreviewComponent implements OnInit {\r\n rows: Inventory[] = [];\r\n loadingIndicator: boolean;\r\n\r\n\r\n inventoryList: Inventory[];\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n @Input()\r\n stockCode: string;\r\n\r\n stockCodedetail: Inventory;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n hasDataSheet: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n hasImpaCodes: boolean;\r\n hasAddDataSheet: boolean;\r\n buyerResponsible: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n console.log(this.stockCode);\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n console.log(this.stockCode);\r\n this.sysproService.getStockCodeDetail(this.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onStockCodeLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n onStockCodeLoadSuccessful(row: Inventory): void {\r\n\r\n if (row) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail = row[0];\r\n this.hasDataSheet = false;\r\n this.hasSpecials = false;\r\n this.hasImpaCodes = false;\r\n\r\n if (this.stockCodedetail) {\r\n if (this.stockCodedetail.dataSheetImage) {\r\n this.hasDataSheet = true;\r\n this.stockCodedetail.dataSheetImage = encodeURIComponent(this.stockCodedetail.dataSheetImage);\r\n }\r\n if (this.stockCodedetail.addSheetImage) {\r\n this.hasAddDataSheet = true;\r\n this.stockCodedetail.addSheetImage = encodeURIComponent(this.stockCodedetail.addSheetImage);\r\n }\r\n if (this.stockCodedetail.specialsImage) {\r\n this.hasSpecials = true;\r\n this.stockCodedetail.specialsImage = encodeURIComponent(this.stockCodedetail.specialsImage);\r\n }\r\n if (this.stockCodedetail.impaCodes && this.stockCodedetail.impaCodes.trim() != \"\") {\r\n this.hasImpaCodes = true;\r\n }\r\n }\r\n this.stockCodedetail.stockCodeImage = encodeURIComponent(this.stockCodedetail.stockCodeImage);\r\n }\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n\r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return; }\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n //this.alternateKey = row.alternateKey;\r\n this.sysproService.getStockCodeAvailableQuantities(row.alternateKey).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n openSpecials(row: Inventory) {\r\n\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"https://www.maxarcus.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"https://www.fowkes.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n //if (!!row.specialsImage && row.specialsImage != \"\") {\r\n // window.open(row.filePath + \"/SpecialImages/\" + row.specialsImage, \"_blank\");\r\n //}\r\n }\r\n\r\n //openSpecials(specialsImg: string) {\r\n // if (!!specialsImg && specialsImg != \"\") {\r\n // window.open(this.stockCodedetail.filePath + \"/SpecialImages/\" + specialsImg, \"_blank\");\r\n // }\r\n //}\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n        \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{invoiceHeader.customer}} - {{invoiceHeader.customerName }} - (INVOICE: {{invoiceHeader.invoiceNumber}}) - (STATUS: {{invoiceHeader.orderStatus}} - {{invoiceHeader.statusDescription}})\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.customer}} - {{invoiceHeader.customerName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.branch_code}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.telephone}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.salesperson}} - {{invoiceHeader.salesPersonName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.shipDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.customerPoNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.orderDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.operator}} ({{invoiceHeader.originalOperatorName}})
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.email}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.shippingInstrs}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.companyTaxNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.taxExemptNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.soldToAddr1 }}
\\r\\n
{{invoiceHeader.soldToAddr2 }}
\\r\\n
{{invoiceHeader.soldToAddr3 }}
\\r\\n
{{invoiceHeader.soldToAddr4 }}
\\r\\n
{{invoiceHeader.soldToAddr5 }}
\\r\\n
{{invoiceHeader.soldPostalCode }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.shipToAddr1 }}
\\r\\n
{{invoiceHeader.shipToAddr2 }}
\\r\\n
{{invoiceHeader.shipToAddr3 }}
\\r\\n
{{invoiceHeader.shipToAddr4 }}
\\r\\n
{{invoiceHeader.shipToAddr5 }}
\\r\\n
{{invoiceHeader.shipPostalCode }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{originalPrintLine.printerName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{originalPrintLine.reprintDate | date: 'dd MMM yyyy h:mm a'}}
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.shipDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{invoiceHeader.customerPoNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
StockCodeDescriptionOrder
Qty
UOMNett Price
(excl)
Unit Cost
Total
(excl)
\\r\\n \\r\\n \\r\\n \\r\\n {{row.stockCode}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.orderQty | currency:' ':'symbol':'1.0'}}{{row.orderUom}}{{row.nettPrice | currency:' ':'symbol':'1.2'}}{{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.lineTotal | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
Total Items\\r\\n {{TotalItems}} (Lines: {{TotalLines}})\\r\\n
Total excl. V.A.T.R\\r\\n {{TotalExcl | currency:' ':'symbol':'1.2'}}\\r\\n
-DiscountR\\r\\n {{TotalDiscount | currency:' ':'symbol':'1.2'}}\\r\\n\\r\\n
Total excl. V.A.T.R\\r\\n\\r\\n {{TotalExclAfterDiscount | currency:' ':'symbol':'1.2'}}\\r\\n
+ {{invoiceHeader.vatPercentage}}% V.A.T.R\\r\\n\\r\\n {{TotalVat | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n \\r\\n Total\\r\\n incl. V.A.T.\\r\\n \\r\\n R\\r\\n {{TotalIncl | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Authorization Required

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

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

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

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

POD List

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CompanyReferenceFileNumberPrefixUploaded OnFilenameSend
\\r\\n {{row.company}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.fileNumber}}\\r\\n \\r\\n {{row.prefix}}\\r\\n \\r\\n {{row.barcodeDate | date: 'dd MMM yyyy'}}\\r\\n \\r\\n \\r\\n {{row.fileName}}\\r\\n \\r\\n \\r\\n Send Whatsapp \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"input.form-control {\\n height: 18px;\\n font-size: 0.600rem; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.table tr {\\n height: 20px; }\\n\\n.card-body .row {\\n height: 18px; }\\n\\n.card-body .col-form-label {\\n font-size: smaller; }\\n\\n.tbody {\\n height: calc(100vh - 500px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 98%; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.modal-full {\\n min-width: 100%;\\n margin: 0; }\\n\\n.modal-full .modal-content {\\n min-height: 100vh; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.col-form-label {\\n line-height: 1; }\\n\\n[data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\"... see less \\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... see more \\\"; }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-color: #469408;\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #64EE71; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8taW52b2ljZS12aWV3LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1pbnZvaWNlLXZpZXcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsWUFBWSxFQUFBOztBQUdkO0VBQ0UsWUFBWSxFQUFBOztBQUlkO0VBRUksWUFBWSxFQUFBOztBQUZoQjtFQU1JLGtCQUFrQixFQUFBOztBQUt0QjtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixVQUFVLEVBQUE7O0FBR1o7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCLEVBQUE7O0FBRmxCO0lBS0ksZ0JBQWdCLEVBQUE7O0FBSXBCO0VBQ0UsZUFBZTtFQUNmLFNBQVMsRUFBQTs7QUFHWDtFQUNFLGlCQUFpQixFQUFBOztBQUtuQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0UsY0FBYyxFQUFBOztBQ3RCaEI7RUQyQkUsZ0JBQWdCLEVBQUE7O0FDeEJsQjtFRDZCRSxnQkFBZ0IsRUFBQTs7QUMxQmxCO0VEK0JFLHdCQUF3QixFQUFBOztBQzVCMUI7RURpQ0Usd0JBQXdCLEVBQUE7O0FBSzFCO0VBQ0UseUJBQXlCO0VBQ3pCOzs7b0hDaENrSCxFRG1DQzs7QUFHckg7RUFDRSx5QkFBeUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvc3lzcHJvLWludm9pY2Utdmlldy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgaGVpZ2h0OiAxOHB4O1xyXG4gIGZvbnQtc2l6ZTogMC42MDByZW07XHJcbn1cclxuXHJcbi50YWJsZSB0aCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcblxyXG4udGFibGUgdGgsIC50YWJsZSB0ZCB7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4udGFibGUgdHIge1xyXG4gIGhlaWdodDogMjBweDtcclxufVxyXG5cclxuXHJcbi5jYXJkLWJvZHkge1xyXG4gIC5yb3cge1xyXG4gICAgaGVpZ2h0OiAxOHB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4udGJvZHkge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDUwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG4gIHdpZHRoOiA5OCU7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcblxyXG4gIC50b2dnbGUuYnRuLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XHJcbiAgfVxyXG59XHJcblxyXG4ubW9kYWwtZnVsbCB7XHJcbiAgbWluLXdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm1vZGFsLWZ1bGwgLm1vZGFsLWNvbnRlbnQge1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG59XHJcblxyXG5cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5jb2wtZm9ybS1sYWJlbHtcclxuICBsaW5lLWhlaWdodDogMTtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLmZhOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGYxM2FcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBzZWUgbGVzcyBcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIG1vcmUgXCI7XHJcbn1cclxuXHJcblxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY5NDA4O1xyXG4gIC8qYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTsqL1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRFRTcxO1xyXG59XHJcbiIsImlucHV0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMThweDtcbiAgZm9udC1zaXplOiAwLjYwMHJlbTsgfVxuXG4udGFibGUgdGgge1xuICBmb250LXNpemU6IHNtYWxsZXI7IH1cblxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLnRhYmxlIHRyIHtcbiAgaGVpZ2h0OiAyMHB4OyB9XG5cbi5jYXJkLWJvZHkgLnJvdyB7XG4gIGhlaWdodDogMThweDsgfVxuXG4uY2FyZC1ib2R5IC5jb2wtZm9ybS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjsgfVxuXG4udGJvZHkge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1MDBweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgd2lkdGg6IDk4JTsgfVxuXG4uY2hlY2tib3gge1xuICBoZWlnaHQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAzcHg7IH1cbiAgLmNoZWNrYm94IC50b2dnbGUuYnRuLXNtIHtcbiAgICBtaW4taGVpZ2h0OiAyN3B4OyB9XG5cbi5tb2RhbC1mdWxsIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLm1vZGFsLWZ1bGwgLm1vZGFsLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDsgfVxuXG4udXNlci1yb2xlIHtcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuXG4uY29udHJvbC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLnNlYXJjaC1ib3gge1xuICBtYXJnaW46IDA7IH1cblxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xuICBwYWRkaW5nLXRvcDogM3B4O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtaW4td2lkdGg6IDEwMHB4OyB9XG5cbi51c2VyLWRpc2FibGVkIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ubG9ja2VkLW91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcbiAgY29sb3I6IHdoaXRlc21va2U7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtZm9ybS1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOVwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2FcIjsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBsZXNzIFwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiOyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Njk0MDg7XG4gIC8qYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTsqLyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRFRTcxOyB9XG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { PrinterService } from '../../services/printer.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { QuoteHeader } from 'src/app/models/quote-header.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { Role } from 'src/app/models/role.model';\r\nimport { SalesOrderStatus } from 'src/app/models/salesorder-status.model';\r\nimport { SalesOrderCancelReasonCode } from 'src/app/models/salesorder-cancelreasons.model';\r\nimport { InvoiceDetail } from 'src/app/models/invoice-detail.model';\r\nimport { InvoiceHeader } from 'src/app/models/invoice-header.model';\r\nimport { CoreAudit } from '../../models/core-audit.model';\r\nimport { Printers } from '../../models/printers.model';\r\nimport { PrinterUserMappings } from '../../models/printer-user-mappings.model';\r\nimport { WHAvailQTY } from '../../models/inventory-wh.model';\r\nimport { SalesOrderList } from '../../models/salesorder-list.model';\r\nimport { InvoiceReprint } from '../../models/invoice-reprint.model';\r\nimport { InvoiceTrackingStatus } from '../../models/invoice-tracking-status.model';\r\nimport { WebOrder } from '../../models/web-order.model';\r\nimport { BarcodeReference } from '../../models/barcode-reference.model';\r\nimport { OptIns, Outbox } from '../../models/wapp-inbox.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-invoice-view',\r\n templateUrl: './syspro-invoice-view.component.html',\r\n styleUrls: ['./syspro-invoice-view.component.scss']\r\n})\r\nexport class SysproInvoiceViewComponent implements OnInit, AfterViewInit {\r\n\r\n private cart: CartHeader = new CartHeader();\r\n\r\n uniqueId: string = Utilities.uniqueId();\r\n columns: any[] = [];\r\n rows: InvoiceDetail[] = [];\r\n rowsCache: InvoiceDetail[] = [];\r\n //cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('cancelTemplate')\r\n cancelTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n inventoryList: Inventory[];\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n @ViewChild('podModal')\r\n podModal: ModalDirective;\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n @ViewChild('pdfModal')\r\n pdfModal: ModalDirective;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n cartId: string;\r\n id: string;\r\n gridHeight: number = 0;\r\n TotalItems: number = 0;\r\n TotalLines: number = 0;\r\n TotalExcl: number = 0;\r\n TotalDiscount: number = 0;\r\n TotalExclAfterDiscount: number = 0;\r\n TotalVat: number = 0;\r\n TotalIncl: number = 0;\r\n isSaving: boolean;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n cartSaved: boolean;\r\n quoteNumber: any;\r\n quoteId: string;\r\n quote: QuoteHeader;\r\n salesOrderNumber: string;\r\n invoiceNumber: string;\r\n // salesOrder: SalesOrderHeader;\r\n invoiceHeader: InvoiceHeader = new InvoiceHeader();\r\n pdfName: string;\r\n isUpdating: any;\r\n quoteHeader: QuoteHeader = new QuoteHeader();\r\n user: any;\r\n allRoles: any[];\r\n src: string;\r\n OrderStatuses: SalesOrderStatus;\r\n CancelCodes: SalesOrderCancelReasonCode;\r\n CancelReason: string;\r\n\r\n @ViewChild('cancelreasons')\r\n private cancelreasons;\r\n\r\n @ViewChild('cancelreasonsSelector')\r\n private cancelreasonsSelector;\r\n\r\n selectedPrinter: string;\r\n\r\n @ViewChild('printModal')\r\n printModal: ModalDirective;\r\n @ViewChild('printerSelector')\r\n private printerSelector;\r\n Printers: Printers[] = [];\r\n printerMappings: PrinterUserMappings[] = [];\r\n\r\n @ViewChild('authModal')\r\n authModal: ModalDirective;\r\n\r\n authorized: boolean;\r\n stringToCompare: string;\r\n\r\n auditObj = new CoreAudit();\r\n\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n stockCodedetail: Inventory;\r\n hasDataSheet: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n\r\n\r\n hasDataSheets: boolean;\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @Input()\r\n stockCode: string;\r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n checkCreditNotes: boolean;\r\n hasTracking: boolean;\r\n hasAddDataSheet: boolean;\r\n hasAddDataSheets: boolean;\r\n buyerResponsible: string;\r\n invoiceReprintList: InvoiceReprint[] = [];\r\n originalPrintLine: InvoiceReprint;\r\n isWebOrder: boolean;\r\n result: InvoiceTrackingStatus;\r\n ITSObject: InvoiceTrackingStatus = new InvoiceTrackingStatus();\r\n\r\n hasPODs: boolean;\r\n referenceList: BarcodeReference[];\r\n\r\n outboxDetail: Outbox;\r\n WhatsappEnabled: boolean;\r\n WhatsappNumber: string;\r\n\r\n weborderCompleted: boolean;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n selectedInvoice: string;\r\n\r\n @Input()\r\n selectedSalesOrder: string;\r\n\r\n @Input()\r\n isCreditNote: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router, private route: ActivatedRoute, private printerService: PrinterService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n const action = sessionStorage.getItem(localStorageActions.Customer);\r\n const salesOrderNumber = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n const invoiceNumber = sessionStorage.getItem(localStorageActions.InvoiceNumber);\r\n\r\n this.id = (action ? action.trim() : \"\");\r\n\r\n this.auditObj.referenceType = \"INVOICE\";\r\n this.auditObj.referenceNumber = invoiceNumber;\r\n this.auditObj.branch = this.branchCode;\r\n this.auditObj.applicationUser = this.accountService.currentUser.email;\r\n this.auditObj.actionedBy = this.accountService.currentUser.email;\r\n this.auditObj.groupKey = this.accountService.currentUser.id;\r\n this.postAudit();\r\n\r\n this.searchType = \"invoice\";\r\n this.checkCreditNotes = false;\r\n\r\n if (invoiceNumber && invoiceNumber != \"\") {\r\n\r\n this.salesOrderNumber = salesOrderNumber;\r\n this.invoiceNumber = invoiceNumber;\r\n\r\n this.loadData();\r\n\r\n }\r\n else {\r\n if (salesOrderNumber && salesOrderNumber != \"\") {\r\n this.checkCreditNotes = true;\r\n this.searchText = salesOrderNumber;\r\n this.specificSearch();\r\n }\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n\r\n ngOnChanges() {\r\n\r\n this.isViewOnly = this.isViewOnly == true ? this.isViewOnly : false;\r\n\r\n if (this.selectedSalesOrder && this.selectedInvoice) {\r\n\r\n this.salesOrderNumber = this.selectedSalesOrder;\r\n this.invoiceNumber = this.selectedInvoice;\r\n this.checkCreditNotes = this.isCreditNote;\r\n \r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n }\r\n \r\n\r\n loadData() {\r\n\r\n if (this.salesOrderNumber && this.invoiceNumber) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getInvoiceHeader(this.salesOrderNumber, this.invoiceNumber).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchResults = null;\r\n if (this.checkCreditNotes) {\r\n this.sysproService.getCreditNoteSearchByCriteria(this.searchType, this.searchText.trim()).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n else {\r\n this.sysproService.getSalesOrderSearchByCriteria(this.searchType, this.searchText.trim()).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: SalesOrderList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x.filter(i => i.invoiceNumber != '');\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.viewInvoiceSelected();\r\n }\r\n\r\n }\r\n\r\n viewInvoiceSelected() {\r\n if (this.searchResultSelected) {\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.searchResultSelected.customer);\r\n sessionStorage.removeItem(localStorageActions.SalesOrderNumber);\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.searchResultSelected.salesOrderNumber);\r\n sessionStorage.removeItem(localStorageActions.InvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.searchResultSelected.invoiceNumber);\r\n this.id = this.searchResultSelected.customer;\r\n this.salesOrderNumber = this.searchResultSelected.salesOrderNumber;\r\n this.invoiceNumber = this.searchResultSelected.invoiceNumber; \r\n this.loadData();\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice' });\r\n\r\n }\r\n }\r\n\r\n reprint() {\r\n this.authModal.show(); \r\n }\r\n\r\n verifyAuth() {\r\n this.alertService.startLoadingMessage(\"Verfiying...\");\r\n this.loadingIndicator = true;\r\n this.fowkesService.VerifyPassword(this.branchCode, \"REPRINT\", encodeURIComponent(this.stringToCompare)).subscribe(x => this.onVerificationSuccess(), error => this.onVerificationFailed(error));\r\n\r\n }\r\n onVerificationSuccess(): void {\r\n this.authorized = true;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', 'Authorized', MessageSeverity.success);\r\n this.authModal.hide();\r\n //if (!!this.selectedPrinter == false) {\r\n // this.selectedPrinter = \"CTFB Invoice FB Reps Store\";\r\n //}\r\n this.printModal.show(); \r\n }\r\n\r\n onVerificationFailed(error: any): void {\r\n this.authorized = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', 'Authorization Failed ', MessageSeverity.error);\r\n }\r\n\r\n print() {\r\n if (this.selectedPrinter) {\r\n\r\n console.log(this.selectedPrinter);\r\n this.user = this.accountService.currentUser;\r\n this.user.defaultPrinter = this.selectedPrinter;\r\n console.log(\"PRINT\");\r\n this.printerService.PrintInvoice(this.salesOrderNumber, false, this.user).subscribe(x => this.onPrintSuccesful(x), error => this.onDataLoadFailed(error));\r\n this.printModal.hide();\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Error', 'Please select a printer first.', MessageSeverity.error, \"\");\r\n\r\n }\r\n\r\n }\r\n\r\n get defaultPrinter(): string {\r\n return this.configurations.defaultPrinter;\r\n }\r\n\r\n onPrintersLoadSuccesful(x: Printers[]): void {\r\n this.Printers = x;\r\n\r\n setTimeout(() => {\r\n if (this.printerSelector) {\r\n this.printerSelector.refresh();\r\n }\r\n });\r\n if (this.defaultPrinter) {\r\n this.selectedPrinter = this.defaultPrinter;\r\n }\r\n else {\r\n this.printerService.GetUserPrinterMappings(this.accountService.currentUser.id).subscribe(x => this.onUserPrintersLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n console.log(\"Printers\", x);\r\n }\r\n onUserPrintersLoadSuccesful(x: PrinterUserMappings[]): void {\r\n\r\n this.printerMappings = x;\r\n\r\n if (this.printerMappings.length > 0) {\r\n const printerForInvoice = this.printerMappings.filter(p => p.reportName === \"Invoice\");\r\n this.selectedPrinter = (printerForInvoice.length ? printerForInvoice[0].printerName : this.selectedPrinter);\r\n }\r\n\r\n console.log(\"Printer Mappings\", x);\r\n }\r\n\r\n onStatusesLoaded(x: SalesOrderStatus): void {\r\n this.OrderStatuses = x;\r\n console.log(\"STATUSES\", this.OrderStatuses);\r\n }\r\n onCancelCodesLoaded(x: SalesOrderCancelReasonCode): void {\r\n this.CancelCodes = x;\r\n //if (this.CancelCodes == null) {\r\n // setTimeout(() => {\r\n // if (this.cancelreasonsSelector) {\r\n // this.cancelreasonsSelector.refresh();\r\n // }\r\n // });\r\n //}\r\n console.log(\"CANCEL CODES\", this.CancelCodes);\r\n }\r\n\r\n\r\n onPrintSuccesful(x: CoreAudit): void {\r\n\r\n this.alertService.showMessage('Success', `Printed Invoice`, MessageSeverity.success);\r\n this.loadData();\r\n console.log(\"PRINTED\", x);\r\n }\r\n\r\n private onCurrentUserDataLoadSuccessful(user: User, roles: Role[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.user = user;\r\n this.allRoles = roles;\r\n }\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n this.user = new User();\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n \r\n onCartHeaderLoadSuccessful(order: InvoiceHeader) {\r\n let res = order;\r\n\r\n this.invoiceHeader = res[0];\r\n\r\n this.sysproService.getInvoiceDetail(this.salesOrderNumber, this.invoiceNumber).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.hasTracking = (!!this.invoiceHeader.itsInvoice && this.invoiceHeader.itsInvoice.length > 1);\r\n\r\n this.isWebOrder = (this.invoiceHeader.customer && this.invoiceHeader.customer == \"FBWEB\") ? true : false;\r\n this.weborderCompleted = false;\r\n if (this.hasTracking && this.isWebOrder) {\r\n\r\n //Get WebOrder Status\r\n this.sysproService.getWebOrderStatus(this.invoiceHeader.customerPoNumber).\r\n subscribe(x => this.onWebOrderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n this.printerService.GetPrinters().subscribe(x => this.onPrintersLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.getInvoiceReprintDetails(this.invoiceNumber).subscribe(x => this.onPrintingDetailsLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.getPODByInvoice(this.invoiceNumber).subscribe(x => this.onBarcodesLoadSuccesful(x), error => { this.hasPODs = false; });\r\n\r\n //Check for wapp settings\r\n // this.sysproService.getWappOptInDetails(this.accountService.currentUser.userName).subscribe(x => this.onUserWappLoadSuccesful(x), error => this.onOptinLoadFailed(error));\r\n\r\n\r\n this.sysproService.GetUserTel(this.accountService.currentUser.userName).subscribe(x => this.onTelReceived(x), error => this.onOptinLoadFailed(error));\r\n\r\n console.log(this.invoiceHeader);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n onTelReceived(x: string): void {\r\n console.log(x);\r\n this.WhatsappEnabled = true;\r\n this.WhatsappNumber = x;\r\n\r\n }\r\n\r\n onOptinLoadFailed(error: any): void {\r\n this.WhatsappEnabled = false;\r\n }\r\n onUserWappLoadSuccesful(x: OptIns): void {\r\n if (x) {\r\n this.WhatsappEnabled = x.optedIn;\r\n this.WhatsappNumber = x.phoneNumber;\r\n }\r\n }\r\n\r\n\r\n podModalShow() {\r\n if (!this.podModal) {\r\n setTimeout(() => {\r\n if (this.podModal) {\r\n this.podModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.podModal.show();\r\n }\r\n }\r\n\r\n onBarcodesLoadSuccesful(x: any) {\r\n var scannedDocs = x;\r\n if (scannedDocs && scannedDocs[0]) {\r\n this.referenceList = scannedDocs;\r\n this.hasPODs = true;\r\n \r\n }\r\n else {\r\n this.hasPODs = false;\r\n this.referenceList = null;\r\n }\r\n }\r\n\r\n\r\n podModalHide() {\r\n this.referenceList = null;\r\n this.podModal.hide();\r\n }\r\n\r\n\r\n viewPOD(row: BarcodeReference) {\r\n this.sysproService.getFileStream(row.fileName, row.fileNumber).subscribe(x => this.onViewPODSuccessful(x, row.fileName), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n sendWappPOD(row: BarcodeReference) {\r\n if (row && row.fileName != '') {\r\n\r\n this.sysproService.getFileStream(row.fileName, row.fileNumber).subscribe(x => {\r\n this.outboxDetail = new Outbox();\r\n this.outboxDetail.toPhoneNumber = this.WhatsappNumber;\r\n this.outboxDetail.content = \"view_pod\";\r\n this.outboxDetail.headerMediaFileId = row.fileName;\r\n this.outboxDetail.nextGenUser = this.accountService.currentUser.userName;\r\n //this.sysproService.sendwappWithPDF(this.outboxDetail.toPhoneNumber,\r\n // this.outboxDetail.headerMediaFileId, this.outboxDetail.nextGenUser, \"POD\", row.invoice).subscribe(x => this.onMessageSentSuccesful(), error => this.onDataLoadFailed(error));\r\n this.sysproService.sendTemplateWithFile(this.outboxDetail.headerMediaFileId, \"POD\", this.outboxDetail.toPhoneNumber, this.outboxDetail.nextGenUser,\r\n this.outboxDetail.headerMediaFileId).subscribe(x => this.onWhatsappSentSuccesful(x), error => this.WhatsappSentFailed(error));\r\n\r\n }, error => this.onDataLoadFailed(error)); \r\n }\r\n }\r\n onWhatsappSentSuccesful(x: any): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('', `\"${x.message}\"`, MessageSeverity.info);\r\n this.emailModal.hide();\r\n }\r\n\r\n WhatsappSentFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Error', `Something went wrong: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n onMessageSentSuccesful(): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Message sent successfully`, MessageSeverity.success);\r\n this.podModalHide();\r\n }\r\n\r\n onViewPODSuccessful(x: Blob, fileName: string): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n onWebOrderLoadSuccessful(x: WebOrder): void {\r\n\r\n if (x && x[0] && (x[0].internalStatus != 'COMPLETED' && x[0].internalStatus != 'CANCELLED' )) {\r\n\r\n //Get Tracking Status\r\n this.sysproService.getInvoiceTrackingStatus(this.salesOrderNumber, this.invoiceNumber).\r\n subscribe(x => this.onITSSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n onITSSuccessful(result: InvoiceTrackingStatus): void {\r\n if (result[0]) {\r\n this.ITSObject = new InvoiceTrackingStatus();\r\n this.ITSObject = result[0];\r\n\r\n this.weborderCompleted = (this.ITSObject && this.ITSObject.completed == 'A') ? true : false; \r\n\r\n }\r\n\r\n }\r\n\r\n updateWebOrder() {\r\n\r\n this.sysproService.updateWebOrderStatus(this.invoiceNumber, \"COMPLETED\").\r\n subscribe(x => this.onUpdateSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccessful(x: any): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Order Updated`, MessageSeverity.success);\r\n }\r\n\r\n onPrintingDetailsLoadSuccesful(x: InvoiceReprint[]): void {\r\n\r\n this.invoiceReprintList = x;\r\n if (this.invoiceReprintList.length > 0) {\r\n var original = this.invoiceReprintList.filter(x => x.originalDocument == true);\r\n if (original && original.length > 0) {\r\n this.originalPrintLine = original[0];\r\n }\r\n }\r\n }\r\n\r\n\r\n onCartDetailLoadSuccessful(invoiceDetail: InvoiceDetail[]) {\r\n\r\n this.rowsCache = invoiceDetail;\r\n const vat = this.invoiceHeader.vatPercentage;\r\n this.TotalItems = 0;\r\n this.TotalExcl = 0;\r\n this.TotalDiscount = 0;\r\n this.TotalExclAfterDiscount = 0;\r\n this.TotalVat = 0;\r\n this.TotalIncl = 0;\r\n\r\n const updateRows = this.rowsCache;\r\n this.TotalLines = updateRows.filter(x => x.lineType !== \"6\").length;\r\n\r\n for (var product of this.rowsCache) {\r\n var lineTotalExclVat = Calculations.calculateBaseLineTotal(product.orderQty, product.sellingPrice, product.priceConvFac, product.lineTotal);\r\n var lineDiscount = Calculations.calculateLineDiscountTotal(product.orderQty, product.sellingPrice, product.discountPercentage1, product.priceConvFac, 0);\r\n\r\n product.nettPrice = Calculations.getGridNettLinePrice(product.orderQty, product.sellingPrice, product.priceConvFac, product.discountPercentage1, 0);\r\n this.TotalItems += product.orderQty;\r\n this.TotalExcl += lineTotalExclVat;\r\n this.TotalDiscount += lineDiscount;\r\n\r\n var lineVat = 0;\r\n if (vat && product.vatExempt == false) {\r\n lineVat = Calculations.calculateLineVat(lineTotalExclVat, lineDiscount, 0, vat);\r\n }\r\n //var lineVat = Calculations.calculateLineVat(lineTotalExclVat, lineDiscount, 0, vat);\r\n\r\n this.TotalVat += lineVat;\r\n\r\n this.calcTotal(product);\r\n }\r\n\r\n this.TotalExclAfterDiscount = (Calculations.RoundAwayFromZero(this.TotalExcl, 2) - Calculations.RoundAwayFromZero(this.TotalDiscount, 2));\r\n this.TotalIncl = Calculations.RoundAwayFromZero((this.TotalExclAfterDiscount + this.TotalVat), 2);\r\n\r\n this.sysproService.updateInvoiceTotals(this.application, this.salesOrderNumber, this.invoiceNumber, vat, this.TotalIncl, this.TotalExclAfterDiscount, this.TotalDiscount).\r\n subscribe(x => { }, error => this.onDataLoadFailed(error));\r\n\r\n this.rows = this.rowsCache;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n onStockLoadSuccessful(inventory: any[]) {\r\n\r\n this.inventoryList = inventory[0];\r\n }\r\n\r\n stockCodeModalHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n if (row.lineType != \"7\" && row.mapped) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.stockDescription;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n onStockCodeLoadSuccessful(row: Inventory): void {\r\n\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail = row[0];\r\n this.hasDataSheet = false;\r\n this.hasSpecials = false;\r\n\r\n if (this.stockCodedetail.dataSheetImage) {\r\n this.hasDataSheet = true;\r\n }\r\n if (this.stockCodedetail.addSheetImage) {\r\n this.hasAddDataSheet = true;\r\n this.stockCodedetail.addSheetImage = encodeURIComponent(this.stockCodedetail.addSheetImage);\r\n }\r\n if (this.stockCodedetail.specialsImage) {\r\n this.hasSpecials = true;\r\n }\r\n if (!!this.stockCodedetail) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.sysproService.getStockCodeAvailableQuantities(row.alternateKey.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n openSpecials(specialsImg: string) {\r\n if (!!specialsImg && specialsImg != \"\") {\r\n window.open(this.stockCodedetail.filePath + \"/SpecialImages/\" + specialsImg, \"_blank\");\r\n }\r\n }\r\n\r\n showWHDetail(row: any, event) {\r\n if (row) {\r\n if (row.lineType != \"7\") {\r\n this.stockDescription = row.stockCode + \": \" + row.stockDescription;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n\r\n onEmailLoadSuccessful() {\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasSpecials = false;\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\"), this.branchCode, this.application).subscribe(x => this.loadInventoryEmailModal(description, stockCode));\r\n }\r\n\r\n private loadInventoryEmailModal(description: string, stockCode: string) {\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n\r\n this.hasAddDataSheets = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage.length >= 1);\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.onSpecial && this.stockCodedetail.specialsImage.length >= 1);\r\n\r\n this.emailModal.show();\r\n this.emailObject.RecepientName = this.invoiceHeader.contact;\r\n this.emailObject.RecepientEmail = this.invoiceHeader.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim();\r\n }\r\n\r\n if (this.hasAddDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc3 = this.stockCodedetail.addSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n titleCase(str) {\r\n str = str.toLowerCase();\r\n return str.replace(/\\w\\S/g, function (t) { return t.toUpperCase() });\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n viewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.emailObject.AddDoc1 = (this.attachDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var stockCode = this.emailObject.Attachment.replace('/', '_').replace('+', '_');\r\n\r\n this.src = url;\r\n // window.open(this.src).print();\r\n // const blobUrl = window.URL.createObjectURL((test));\r\n //const iframeDoc = document.getElementsByTagName(\"iframe\")[0].contentWindow;\r\n // iframeDoc.src = url;\r\n\r\n\r\n\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = stockCode + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n\r\n private saveSuccessHelper(res?: any) {\r\n\r\n this.cartSaved = true;\r\n\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (res) {\r\n console.log(res);\r\n }\r\n\r\n if (this.isNavigating) {\r\n this.router.navigate(['../orders'], { fragment: 'cart', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n if (this.isUpdating) {\r\n\r\n this.isUpdating = false;\r\n this.alertService.showMessage('Success', this.quoteId + ` Updated successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n\r\n this.isSaving = false;\r\n this.alertService.showMessage('Success', this.cartId + ` Created successfully`, MessageSeverity.success);\r\n }\r\n\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback) {\r\n // this.changesFailedCallback();\r\n //}\r\n }\r\n\r\n private save(location?) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n \r\n for (var product of this.rowsCache) {\r\n }\r\n\r\n\r\n }\r\n\r\n viewInventory() {\r\n\r\n }\r\n\r\n calcOrderQty(row: any, event) {\r\n\r\n if (row.lineType != \"6\") {\r\n var val = event.target.value;\r\n row.orderQty = val;\r\n\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = total;\r\n }\r\n }\r\n\r\n\r\n //calcDisc(row: any, event) {\r\n // var val = event.target.value;\r\n // row.discountPercentage1 = val;\r\n\r\n // let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n // row.lineTotal = Calculations.precise_round(total, 2);\r\n //}\r\n\r\n\r\n //calcPrice(row: any, event) {\r\n // var val = event.target.value;\r\n // row.sellingPrice = val;\r\n\r\n // let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n // row.lineTotal = Calculations.precise_round(total, 2);\r\n //}\r\n\r\n\r\n calcTotal(row: any) {\r\n if (row.lineType != \"6\") {\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = total;\r\n }\r\n }\r\n\r\n setDelete(row: any) {\r\n if (row.selected) {\r\n this.selectedItems.push(row.lineNumber);\r\n }\r\n }\r\n\r\n viewCustomerNotes(row: ArCustomerEdit) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n this.router.navigate(['../../customers'], { fragment: 'notes', queryParams: { customer: row.customer } });\r\n }\r\n\r\n\r\n viewTracking() {\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.invoiceHeader.itsInvoice);\r\n this.router.navigate(['../../reports'], { fragment: 'invoicestatus' });\r\n\r\n }\r\n\r\n viewPODs() {\r\n sessionStorage.removeItem(localStorageActions.PODReference);\r\n sessionStorage.setItem(localStorageActions.PODReference, this.invoiceHeader.invoiceNumber);\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.invoiceHeader.salesOrderNumber);\r\n this.router.navigate(['../pods'], { fragment: 'view', queryParams: { invoice: this.invoiceHeader.salesOrderNumber } });\r\n\r\n }\r\n\r\n\r\n get canViewWebQuotes() {\r\n return this.accountService.userHasPermission(Permission.webQuotesPermission);\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n\r\n get canReprintInvoices() {\r\n return this.accountService.userHasPermission(Permission.reprintInvoicesPermission);\r\n }\r\n\r\n\r\n private postAudit() {\r\n this.sysproService.postCoreAudit(this.auditObj).subscribe(x => console.log(x));\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n View\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95 !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tcHVyY2hhc2VvcmRlci1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUdqQztFQUNFLGlDQUFpQztFQUNqQyw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQVFJLG1CQUFtQjtJQUNuQiwyQ0FBMkMsRUFBQTs7QUFUL0M7SUFjSSxnQkFBZ0I7SUFDaEIsMEJBQTBCLEVBQUE7O0FBZjlCO0lBbUJJLHFDQUFxQyxFQUFBOztBQUl6QztFQUNFLFlBQVk7RUFDWixtQkFBbUIsRUFBQTs7QUFHckI7RUFDRSxZQUFZLEVBQUE7O0FBR2Q7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCLEVBQUE7O0FBRmxCO0lBS0ksZ0JBQWdCLEVBQUE7O0FBTXBCO0VBQ0UsMkJBQTJCO0VBQzNCLGlCQUFpQixFQUFBOztBQUduQjtFQUNJLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLFNBQVMsRUFBQTs7QUFHYjtFQUNJLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7O0FBR3BCO0VBQ0ksV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvc3lzcHJvLXB1cmNoYXNlb3JkZXItbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMnB4IDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuXHJcbiAgLmJ0bi1saW5rLmdyaWQge1xyXG4gICAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODY4ZTk1ICFpbXBvcnRhbnQ7XHJcbiAgICAvL2NvbG9yOiAjRDkyMzBGO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgsIC50YWJsZSB0ZHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcblxyXG4gIC50b2dnbGUuYnRuLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbiJdfQ== */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { SalesOrderList } from 'src/app/models/salesorder-list.model';\r\nimport { PurchaseOrderList } from 'src/app/models/purchaseorder-list.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-purchaseorder-management',\r\n templateUrl: './syspro-purchaseorder-management.component.html',\r\n styleUrls: ['./syspro-purchaseorder-management.component.scss']\r\n})\r\nexport class SysproPurchaseOrderManagementComponent implements OnInit, AfterViewInit {\r\n\r\n private cart: CartHeader = new CartHeader();\r\n\r\n columns: any[] = [];\r\n rows: PurchaseOrderList[] = [];\r\n rowsCache: PurchaseOrderList[] = [];\r\n cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n \r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('customerTemplate')\r\n customerTemplate: TemplateRef;\r\n\r\n @ViewChild('purchaseOrderTemplate')\r\n purchaseOrderTemplate: TemplateRef;\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n \r\n @ViewChild('poTemplate')\r\n poTemplate: TemplateRef;\r\n \r\n @ViewChild('purchaseOrderList')\r\n purchaseOrderList: TemplateRef;\r\n\r\n @ViewChild('purchaseOrderListSelector')\r\n private purchaseOrderListSelector;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n //@ViewChild('customerEditor')\r\n //customerEditor: SysproCustomerViewComponent;\r\n //inventoryList: Inventory[];\r\n\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n cartId: string;\r\n id: string;\r\n gridHeight: number = 0;\r\n TotalItems: number = 0;\r\n TotalLines: number = 0;\r\n TotalExcl: number = 0;\r\n TotalDiscount: number = 0;\r\n TotalExclAfterDiscount: number = 0;\r\n TotalVat: number = 0;\r\n TotalIncl: number = 0;\r\n isSaving: boolean;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n cartSaved: boolean;\r\n quoteNumber: any;\r\n salesOrders: SalesOrderList[];\r\n salesOrderNumber: string;\r\n purchaseOrders: PurchaseOrderList[];\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: PurchaseOrderList[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService, private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() { \r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n // let quoteNumber = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n let salesOrderNumber = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n\r\n // this.quoteNumber = quoteNumber;\r\n this.salesOrderNumber = salesOrderNumber;\r\n this.id = action;\r\n\r\n this.columns = [\r\n { prop: 'purchaseOrder', name: 'Purchase Order', width: 180, cellTemplate: this.purchaseOrderTemplate},\r\n //{ prop: 'descr', name: 'Description', width: 570},\r\n //{ prop: 'supplier', name: 'Supplier', width: 70 },\r\n { prop: 'supplierName', name: 'Supplier Name', width: 400 },\r\n { prop: 'statusDescr', name: 'Status', width: 100 },\r\n { prop: 'customer', name: 'Customer', width: 100 },\r\n { prop: 'salesOrder', name: 'Sales Order', width: 100 }\r\n ];\r\n\r\n //this.columns.push({ name: 'Purchase Orders', width: 200, cellTemplate: this.selectTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.customer, r.salesOrder, r.poNumber,\r\n r.status, r.supplier, r.supplierName, r.descr, r.salesOrder));\r\n }\r\n }\r\n\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getPurchaseOrderSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: PurchaseOrderList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n\r\n }\r\n\r\n onSearchFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n\r\n setLocalCustomer(customer: string, salesOrderNumber: string, invoiceNumber: string, purchaseorder?: string) {\r\n\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != salesOrderNumber) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, salesOrderNumber);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != invoiceNumber) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, invoiceNumber);\r\n }\r\n if (purchaseorder) {\r\n if (sessionStorage.getItem(localStorageActions.PurchaseOrder) != purchaseorder) {\r\n sessionStorage.setItem(localStorageActions.PurchaseOrder, purchaseorder);\r\n }\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.columns = [\r\n { prop: 'purchaseOrder', name: 'Purchase Order', width: 180, cellTemplate: this.purchaseOrderTemplate },\r\n //{ prop: 'descr', name: 'Description', width: 570},\r\n //{ prop: 'supplier', name: 'Supplier', width: 70 },\r\n { prop: 'supplierName', name: 'Supplier Name', width: 400 },\r\n { prop: 'statusDescr', name: 'Status', width: 100 },\r\n { prop: 'customer', name: 'Customer', width: 100 },\r\n { prop: 'salesOrder', name: 'Sales Order', width: 100 }\r\n ];\r\n\r\n }\r\n \r\n\r\n loadData() {\r\n this.searchType = \"purchaseorder\";\r\n\r\n if (this.loadCache) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getPurchaseOrderSearchByCriteria(\"All\", \"TOP\").subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n \r\n }\r\n onSearchSuccesful(x: PurchaseOrderList[]): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.purchaseOrders = x;\r\n x.forEach((salesOrderNumber, index, x) => {\r\n (salesOrderNumber).index = index + 1;\r\n });\r\n \r\n this.rowsCache = [...x];\r\n this.rows = this.rowsCache.slice(0, 50);\r\n }\r\n \r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n \r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n \r\n viewPurchaseOrder(row: PurchaseOrderList) {\r\n console.log(row);\r\n this.setLocalCustomer(row.customer, row.salesOrder, \"\", row.poNumber);\r\n this.router.navigate(['../../purchaseorders'], { fragment: 'purchaseorder', queryParams: { customer: row.customer } });\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Supplier: {{purchaseOrder.supplier}} - {{purchaseOrder.supplierName }} - (PURCHASE ORDER: {{purchaseOrder.purchaseOrder}}) - {{purchaseOrder.orderStatus}} {{purchaseOrder.statusDescr}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{purchaseOrder.supplier}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{purchaseOrder.branchDescr}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{purchaseOrder.supplierName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{purchaseOrder.buyer}} - {{purchaseOrder.buyerName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{purchaseOrder.contact}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{purchaseOrder.customer}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{purchaseOrder.telephone}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{purchaseOrder.statusDescr}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{purchaseOrder.email}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{purchaseOrder.shippingInstrs}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{purchaseOrder.deliveryAddr1 }}
\\r\\n {{purchaseOrder.deliveryAddr2 }}
\\r\\n {{purchaseOrder.deliveryAddr3 }}
\\r\\n {{purchaseOrder.deliveryAddr4 }}
\\r\\n {{purchaseOrder.deliveryAddr5 }}
\\r\\n {{purchaseOrder.postalCode }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{purchaseOrder.orderDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{purchaseOrder.comment}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
StockCodeDescriptionWHOrder
Qty
Order
UOM
Cost
Total
(excl)
\\r\\n \\r\\n \\r\\n {{row.stockCode}}\\r\\n \\r\\n {{row.stockDescription}}\\r\\n {{row.warehouse}}{{row.orderQty | currency:' ':'symbol':'1.0'}}{{row.orderUom}}{{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.lineTotal | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
Total Items\\r\\n {{TotalItems}} (Lines: {{TotalLines}})\\r\\n
Total excl. V.A.T.R\\r\\n {{TotalExcl | currency:' ':'symbol':'1.2'}}\\r\\n
+\\r\\n {{purchaseOrder.vatPercentage}}% V.A.T.\\r\\n R\\r\\n {{ TotalVat | currency:' ':'symbol':'1.2' }}\\r\\n
\\r\\n \\r\\n Total\\r\\n incl. V.A.T.\\r\\n \\r\\n R\\r\\n {{TotalIncl | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Items Received\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
StockCodeDescriptionOrder
Qty
Order
UOM
Qty
Received
Qty
Short
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View Purchase Order :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"input.form-control {\\n height: 18px;\\n font-size: 0.600rem; }\\n\\n.card-body .row {\\n height: 18px; }\\n\\n.card-body .col-form-label {\\n font-size: smaller; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.table tr {\\n height: 20px; }\\n\\n.tbody {\\n height: calc(100vh - 500px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 98%; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.modal-full {\\n min-width: 100%;\\n margin: 0; }\\n\\n.modal-full .modal-content {\\n min-height: 100vh; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.col-form-label {\\n line-height: 1; }\\n\\n[data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\"... see less \\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... see more \\\"; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tcHVyY2hhc2VvcmRlci12aWV3LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1wdXJjaGFzZW9yZGVyLXZpZXcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBSXJCO0VBRUksWUFBWSxFQUFBOztBQUZoQjtFQU1JLGtCQUFrQixFQUFBOztBQUl0QjtFQUNFLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLFlBQVksRUFBQTs7QUFHZDtFQUNFLFlBQVksRUFBQTs7QUFJZDtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixVQUFVLEVBQUE7O0FBR1o7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCLEVBQUE7O0FBRmxCO0lBS0ksZ0JBQWdCLEVBQUE7O0FBSXBCO0VBQ0UsZUFBZTtFQUNmLFNBQVMsRUFBQTs7QUFHWDtFQUNFLGlCQUFpQixFQUFBOztBQUtuQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0UsY0FBYyxFQUFBOztBQ3hCaEI7RUQ4QkUsZ0JBQWdCLEVBQUE7O0FDM0JsQjtFRGdDRSxnQkFBZ0IsRUFBQTs7QUM3QmxCO0VEa0NFLHdCQUF3QixFQUFBOztBQy9CMUI7RURvQ0Usd0JBQXdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1wdXJjaGFzZW9yZGVyLXZpZXcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgaGVpZ2h0OiAxOHB4O1xyXG4gIGZvbnQtc2l6ZTogMC42MDByZW07XHJcbn1cclxuXHJcblxyXG4uY2FyZC1ib2R5IHtcclxuICAucm93IHtcclxuICAgIGhlaWdodDogMThweDtcclxuICB9XHJcblxyXG4gIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUgdGgge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLnRhYmxlIHRyIHtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcblxyXG4udGJvZHkge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDUwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG4gIHdpZHRoOiA5OCU7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcblxyXG4gIC50b2dnbGUuYnRuLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XHJcbiAgfVxyXG59XHJcblxyXG4ubW9kYWwtZnVsbCB7XHJcbiAgbWluLXdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm1vZGFsLWZ1bGwgLm1vZGFsLWNvbnRlbnQge1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG59XHJcblxyXG5cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5jb2wtZm9ybS1sYWJlbHtcclxuICBsaW5lLWhlaWdodDogMTtcclxufVxyXG5cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIGxlc3MgXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiO1xyXG59XHJcbiIsImlucHV0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMThweDtcbiAgZm9udC1zaXplOiAwLjYwMHJlbTsgfVxuXG4uY2FyZC1ib2R5IC5yb3cge1xuICBoZWlnaHQ6IDE4cHg7IH1cblxuLmNhcmQtYm9keSAuY29sLWZvcm0tbGFiZWwge1xuICBmb250LXNpemU6IHNtYWxsZXI7IH1cblxuLnRhYmxlIHRoIHtcbiAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi50YWJsZSB0ciB7XG4gIGhlaWdodDogMjBweDsgfVxuXG4udGJvZHkge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1MDBweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgd2lkdGg6IDk4JTsgfVxuXG4uY2hlY2tib3gge1xuICBoZWlnaHQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAzcHg7IH1cbiAgLmNoZWNrYm94IC50b2dnbGUuYnRuLXNtIHtcbiAgICBtaW4taGVpZ2h0OiAyN3B4OyB9XG5cbi5tb2RhbC1mdWxsIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLm1vZGFsLWZ1bGwgLm1vZGFsLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDsgfVxuXG4udXNlci1yb2xlIHtcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuXG4uY29udHJvbC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLnNlYXJjaC1ib3gge1xuICBtYXJnaW46IDA7IH1cblxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xuICBwYWRkaW5nLXRvcDogM3B4O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtaW4td2lkdGg6IDEwMHB4OyB9XG5cbi51c2VyLWRpc2FibGVkIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ubG9ja2VkLW91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcbiAgY29sb3I6IHdoaXRlc21va2U7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtZm9ybS1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOVwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2FcIjsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBsZXNzIFwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiOyB9XG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { QuoteHeader } from 'src/app/models/quote-header.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { Role } from 'src/app/models/role.model';\r\nimport { SalesOrderStatus } from 'src/app/models/salesorder-status.model';\r\nimport { SalesOrderCancelReasonCode } from 'src/app/models/salesorder-cancelreasons.model';\r\nimport { PurchaseOrderDetail } from 'src/app/models/purchaseorder-detail.model';\r\nimport { PurchaseOrderHeader } from 'src/app/models/purchaseorder-header.model';\r\nimport { POExtended } from '../../models/purchaseorder-extended.model';\r\nimport { SalesOrderList } from '../../models/salesorder-list.model';\r\nimport { PurchaseOrderList } from '../../models/purchaseorder-list.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-purchaseorder-view',\r\n templateUrl: './syspro-purchaseorder-view.component.html',\r\n styleUrls: ['./syspro-purchaseorder-view.component.scss']\r\n})\r\nexport class SysproPurchaseOrderViewComponent implements OnInit, AfterViewInit {\r\n\r\n private cart: CartHeader = new CartHeader();\r\n\r\n uniqueId: string = Utilities.uniqueId();\r\n columns: any[] = [];\r\n rows: PurchaseOrderDetail[] = [];\r\n rowsCache: PurchaseOrderDetail[] = [];\r\n //cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('cancelTemplate')\r\n cancelTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n inventoryList: Inventory[];\r\n\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n @ViewChild('pdfModal')\r\n pdfModal: ModalDirective;\r\n @ViewChild('itemsModal')\r\n itemsModal: ModalDirective;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n\r\n @Input()\r\n selectedPurchaseOrder: string;\r\n\r\n cartId: string;\r\n id: string;\r\n gridHeight: number = 0;\r\n TotalItems: number = 0;\r\n TotalLines: number = 0;\r\n TotalExcl: number = 0;\r\n TotalDiscount: number = 0;\r\n TotalExclAfterDiscount: number = 0;\r\n TotalVat: number = 0;\r\n TotalIncl: number = 0;\r\n isSaving: boolean;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n cartSaved: boolean;\r\n quoteNumber: any;\r\n quoteId: string;\r\n quote: QuoteHeader;\r\n salesOrderNumber: string;\r\n purchaseOrderNumber: string;\r\n // salesOrder: SalesOrderHeader;\r\n purchaseOrder: PurchaseOrderHeader = new PurchaseOrderHeader();\r\n pdfName: string;\r\n isUpdating: any;\r\n quoteHeader: QuoteHeader = new QuoteHeader();\r\n user: any;\r\n allRoles: any[];\r\n src: string;\r\n OrderStatuses: SalesOrderStatus;\r\n CancelCodes: SalesOrderCancelReasonCode;\r\n CancelReason: string;\r\n\r\n @ViewChild('cancelreasons')\r\n private cancelreasons;\r\n\r\n @ViewChild('cancelreasonsSelector')\r\n private cancelreasonsSelector;\r\n PoObject: POExtended = new POExtended();\r\n body: string;\r\n showInternalRef: boolean;\r\n totalsNotUpdated: boolean;\r\n\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @Input()\r\n stockCode: string;\r\n searchResults: PurchaseOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: PurchaseOrderList;\r\n auditObj: any;\r\n updatedCounter: number;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService, private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.isManagement = this.isManagement == true ? this.isManagement : false;\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let salesOrderNumber = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n let purchaseOrderNumber = sessionStorage.getItem(localStorageActions.PurchaseOrder);\r\n\r\n if (purchaseOrderNumber && purchaseOrderNumber != \"\") {\r\n\r\n this.id = (action ? action.trim() : \"\");\r\n this.salesOrderNumber = salesOrderNumber;\r\n this.purchaseOrderNumber = purchaseOrderNumber;\r\n\r\n this.loadData();\r\n this.searchType = \"purchaseorder\";\r\n }\r\n }\r\n\r\n\r\n ngOnChanges() {\r\n\r\n this.isManagement = this.isManagement == true ? this.isManagement : false;\r\n\r\n if (this.selectedPurchaseOrder) {\r\n this.purchaseOrderNumber = this.selectedPurchaseOrder;\r\n this.loadData();\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n \r\n\r\n loadData() {\r\n\r\n this.totalsNotUpdated = true;\r\n this.updatedCounter = 0;\r\n console.log(\"NotUPDATED\", this.totalsNotUpdated);\r\n if (this.purchaseOrderNumber) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n \r\n this.sysproService.getPurchaseOrderHeader(this.purchaseOrderNumber).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n }\r\n\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchResults = null;\r\n this.sysproService.getPurchaseOrderSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: PurchaseOrderList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.searchResults = x;\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.viewPurchaseOrderSelected();\r\n }\r\n\r\n }\r\n\r\n viewPurchaseOrderSelected() {\r\n if (this.searchResultSelected) {\r\n sessionStorage.removeItem(localStorageActions.PurchaseOrder);\r\n sessionStorage.setItem(localStorageActions.PurchaseOrder, this.searchResultSelected.purchaseOrder);\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.searchResultSelected.customer);\r\n sessionStorage.removeItem(localStorageActions.SalesOrderNumber);\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.searchResultSelected.salesOrder);\r\n this.id = this.searchResultSelected.customer;\r\n this.salesOrderNumber = this.searchResultSelected.salesOrder;\r\n this.purchaseOrderNumber = this.searchResultSelected.purchaseOrder;\r\n this.loadData();\r\n this.router.navigate(['../../purchaseorders'], { fragment: 'purchaseorder'});\r\n\r\n }\r\n }\r\n\r\n private onCurrentUserDataLoadSuccessful(user: User, roles: Role[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.user = user;\r\n this.allRoles = roles;\r\n }\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n this.user = new User();\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n \r\n onCartHeaderLoadSuccessful(order:PurchaseOrderHeader) {\r\n let res = order;\r\n this.purchaseOrder = res[0];\r\n\r\n this.sysproService.getPurchaseOrderDetail(this.purchaseOrderNumber).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error)); \r\n\r\n\r\n //else {\r\n // if (!this.purchaseOrder || !this.purchaseOrder.totalIncl || this.purchaseOrder.totalIncl <= 0 || this.purchaseOrder.totalIncl.toFixed(2) != this.TotalIncl.toFixed(2)) {\r\n // //Run the update again\r\n // this.purchaseOrder.totalIncl = +this.TotalIncl.toFixed(2);\r\n // this.purchaseOrder.totalExcl = +this.TotalExclAfterDiscount.toFixed(2);\r\n // this.purchaseOrder.totalDiscount = +this.TotalDiscount.toFixed(2);\r\n // this.purchaseOrder.totalVat = +this.TotalVat.toFixed(2);\r\n\r\n // this.sysproService.UpdatePurchaseOrderTotals(this.purchaseOrder).subscribe(x => this.totalsUpdated(), error => this.onDataLoadFailed(error));\r\n // }\r\n //}\r\n \r\n\r\n //this.alertService.stopLoadingMessage();\r\n //this.loadingIndicator = false;\r\n }\r\n\r\n purchaseOrderStaginInserted(x: PurchaseOrderList): void {\r\n this.sysproService.getPurchaseOrderHeader(this.purchaseOrderNumber).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n onCartDetailLoadSuccessful(purchaseOrderDetail: PurchaseOrderDetail[]) {\r\n\r\n this.rowsCache = [...purchaseOrderDetail];\r\n\r\n const updateRows = this.rowsCache.filter(x => x.orderQty >= 0.1);\r\n this.TotalLines = updateRows.filter(x => x.lineType !== \"6\").length;\r\n\r\n const vat = this.purchaseOrder.vatPercentage;\r\n\r\n this.TotalItems = 0;\r\n this.TotalExcl = 0;\r\n this.TotalDiscount = 0;\r\n this.TotalExclAfterDiscount = 0;\r\n this.TotalVat = 0;\r\n this.TotalIncl = 0;\r\n\r\n for (var product of updateRows) {\r\n var lineTotalExclVat = Calculations.calculateBaseLineTotal(product.orderQty, product.sellingPrice, product.priceConvFac, product.lineTotal);\r\n var lineDiscount = Calculations.calculateLineDiscountTotal(product.orderQty, product.sellingPrice, product.discountPercentage1, product.priceConvFac, 0);\r\n\r\n this.TotalItems += product.orderQty;\r\n this.TotalExcl += lineTotalExclVat;\r\n this.TotalDiscount += lineDiscount;\r\n\r\n var lineVat = Calculations.calculateLineVat(lineTotalExclVat, lineDiscount, 0, vat);\r\n\r\n this.TotalVat += lineVat;\r\n\r\n this.calcTotal(product);\r\n }\r\n\r\n this.TotalExclAfterDiscount = (this.TotalExcl - this.TotalDiscount);\r\n this.TotalIncl = (this.TotalExclAfterDiscount + this.TotalVat); \r\n \r\n\r\n if (!this.purchaseOrder || !this.purchaseOrder.totalIncl || this.purchaseOrder.totalIncl <= 0 || this.purchaseOrder.totalIncl.toFixed(2) != this.TotalIncl.toFixed(2)) {\r\n //Run the update again\r\n this.updatedCounter++;\r\n this.purchaseOrder.totalIncl = +this.TotalIncl.toFixed(2);\r\n this.purchaseOrder.totalExcl = +this.TotalExclAfterDiscount.toFixed(2);\r\n this.purchaseOrder.totalDiscount = +this.TotalDiscount.toFixed(2);\r\n this.purchaseOrder.totalVat = +this.TotalVat.toFixed(2);\r\n\r\n if (this.updatedCounter < 10) {\r\n this.sysproService.UpdatePurchaseOrderTotals(this.purchaseOrder).subscribe(x => this.totalsUpdated(), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Warning', `Totals could not be updated`,\r\n MessageSeverity.warn);\r\n }\r\n }\r\n else {\r\n this.purchaseOrder.totalIncl = +this.TotalIncl.toFixed(2);\r\n this.purchaseOrder.totalExcl = +this.TotalExclAfterDiscount.toFixed(2);\r\n this.purchaseOrder.totalDiscount = +this.TotalDiscount.toFixed(2);\r\n this.purchaseOrder.totalVat = +this.TotalVat.toFixed(2);\r\n\r\n this.totalsNotUpdated = false;\r\n }\r\n\r\n this.rows = purchaseOrderDetail;\r\n\r\n if (this.purchaseOrder.poNumber == \"\" && !this.isSaving) {\r\n this.isSaving = true;\r\n let supplier = this.purchaseOrder.supplier;\r\n let user = this.accountService.currentUser;\r\n user.aspnetApplication = this.application;\r\n const detail = this.rows;\r\n\r\n const postObject = {\r\n \"user\": user, \"header\": this.purchaseOrder, \"detail\": purchaseOrderDetail, \"poResult\": new PurchaseOrderList()\r\n };\r\n //this.auditObj.actionInput = \"SUPPLIER :\" + supplier + \"Values: \" + JSON.stringify(postObject);\r\n this.sysproService.InsertPurchaseOrderStaging(postObject, \"TRANSFER\", supplier).subscribe(x => this.purchaseOrderStaginInserted(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n totalsUpdated(): void {\r\n this.totalsNotUpdated = false;\r\n console.log(\"NotUPDATED\", this.totalsNotUpdated); \r\n\r\n //Reload header\r\n this.sysproService.getPurchaseOrderHeader(this.purchaseOrderNumber).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n console.log(\"Header updated\", this.purchaseOrder);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n \r\n viewCustomer() {\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goAddItems() {\r\n this.router.navigate(['../../quotes'], { fragment: 'inventory', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n \r\n goAddNSItems() {\r\n this.router.navigate(['../../quotes'], { fragment: 'nonstock', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n\r\n shortDelivery() {\r\n this.itemsModal.show();\r\n\r\n }\r\n\r\n itemsReceived() {\r\n this.alertService.startLoadingMessage(\"Loading Email...\");\r\n this.loadingIndicator = true;\r\n this.emailObject.RecepientName = this.purchaseOrder.buyerName;\r\n this.emailObject.RecepientEmail = this.purchaseOrder.buyerEmail;\r\n this.emailObject.CC = \"\"; //this.purchaseOrder.email;\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Items received for PO: \" + this.purchaseOrderNumber.substr(7, 8);\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = this.purchaseOrderNumber;\r\n this.emailObject.EmailType = \"PurchaseOrder\";\r\n\r\n\r\n this.emailObject.Bod = \"Please see purchase Order for Customer: \" + this.purchaseOrder.customer;\r\n\r\n this.PoObject.PoNumber = this.purchaseOrderNumber;\r\n this.PoObject.InternalReference = this.purchaseOrder.comment;\r\n this.PoObject.SalesTotal = this.TotalExclAfterDiscount;\r\n this.PoObject.VatTotal = this.TotalVat;\r\n this.PoObject.ReportTotal = this.TotalIncl;\r\n\r\n this.showInternalRef = true;\r\n this.reportService.getPurchaseOrderPDF(this.purchaseOrderNumber, this.showInternalRef, this.application ).subscribe(x => this.emailPDF(), error => this.onDataLoadFailed(error));\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n \r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n shortDeliveryEmail() {\r\n this.alertService.startLoadingMessage(\"Loading Email...\");\r\n this.loadingIndicator = true;\r\n this.emailObject.RecepientName = this.purchaseOrder.buyerName;\r\n this.emailObject.RecepientEmail = this.purchaseOrder.buyerEmail;\r\n this.emailObject.CC = \"\"; // this.purchaseOrder.email;\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Stock received but short delivered for PO: \" + this.purchaseOrderNumber.substr(7, 8);\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = this.purchaseOrderNumber;\r\n this.emailObject.EmailType = \"PurchaseOrder\";\r\n\r\n this.body = \"\";\r\n this.body += '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '';\r\n\r\n for (var product of this.rows) {\r\n this.body += '';\r\n this.body += '';\r\n this.body += '';\r\n this.body += '';\r\n this.body += '';\r\n this.body += '';\r\n }\r\n this.body += '
StockCodeDescriptionQty OrderedQty ReceivedQty Short
' + product.stockCode + '' + product.stockDescription + '' + product.orderQty + '' + product.qtyReceived + '' + (product.orderQty - product.qtyReceived) + '
';\r\n\r\n this.emailObject.Bod = this.body;\r\n\r\n this.PoObject.PoNumber = this.purchaseOrderNumber;\r\n this.PoObject.InternalReference = this.purchaseOrder.comment;\r\n this.PoObject.SalesTotal = this.TotalExclAfterDiscount;\r\n this.PoObject.VatTotal = this.TotalVat;\r\n this.PoObject.ReportTotal = this.TotalIncl;\r\n\r\n this.showInternalRef = true;\r\n this.reportService.getPurchaseOrderPDF(this.purchaseOrderNumber, this.showInternalRef, this.application).subscribe(x => this.emailPDF(), error => this.onDataLoadFailed(error));\r\n\r\n //this.itemsModal.close();\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.itemsModal.hide();\r\n }\r\n \r\n\r\n onEmailLoadSuccessful() {\r\n\r\n let poNumberShort = (this.purchaseOrderNumber && this.purchaseOrderNumber.length >= 15 ? this.purchaseOrderNumber.substr(7, 8) : this.purchaseOrderNumber);\r\n\r\n this.alertService.startLoadingMessage(\"Loading Email...\");\r\n this.loadingIndicator = true;\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.purchaseOrder.buyerEmail;\r\n this.emailObject.CC = \"\"; //this.purchaseOrder.email;\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Emailing of Purchase Order: \" + poNumberShort;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = this.purchaseOrderNumber;\r\n this.emailObject.EmailType = \"PurchaseOrder\";\r\n this.emailObject.Bod = \"Please view the attached Purchase Order document that can be viewed with any standard PDF reader. \";\r\n\r\n this.PoObject.PoNumber = this.purchaseOrderNumber; \r\n this.PoObject.InternalReference = this.purchaseOrder.comment;\r\n this.PoObject.SalesTotal = this.TotalExclAfterDiscount;\r\n this.PoObject.VatTotal = this.TotalVat;\r\n this.PoObject.ReportTotal = this.TotalIncl;\r\n\r\n this.showInternalRef = false;\r\n this.emailModal.show();\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n titleCase(str) {\r\n str = str.toLowerCase();\r\n return str.replace(/\\w\\S/g, function (t) { return t.toUpperCase() });\r\n}\r\n\r\n viewPDF() {\r\n this.reportService.getPurchaseOrderPDF(this.purchaseOrderNumber, this.showInternalRef, this.application).subscribe(x => this.generateFileStream(), error => this.onDataLoadFailed(error));\r\n\r\n \r\n }\r\n\r\n private generateFileStream(preview?: boolean) {\r\n this.reportService.getFileStreamPurchaseOrder(this.purchaseOrderNumber).subscribe(x => this.onFileSuccessful(x, preview), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n this.reportService.getPurchaseOrderPDF(this.purchaseOrderNumber, this.showInternalRef, this.application).subscribe(x => this.generateFileStream(true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n emailPDF() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.reportService.getPurchaseOrderPDF(this.purchaseOrderNumber, this.showInternalRef, this.application).subscribe(x => this.emailPurchaseOrder(), error => this.onDataLoadFailed(error));\r\n\r\n\r\n }\r\n\r\n private emailPurchaseOrder() {\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n\r\n //Update Printed status\r\n this.sysproService.UpdatePurchaseOrderStatus(this.purchaseOrderNumber, \"4\").subscribe(x => this.onUpdateSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n\r\n this.emailModal.hide();\r\n }\r\n onUpdateSuccessful(x: any): void {\r\n console.log(x);\r\n }\r\n \r\n getPDF(x: Blob, purchaseOrder: string): void {\r\n\r\n this.reportService.getFileStreamPurchaseOrder(purchaseOrder).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = \"PurchaseOrder_\" + this.purchaseOrderNumber + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n\r\n //Update Printed status\r\n this.sysproService.UpdatePurchaseOrderStatus(this.purchaseOrderNumber, \"4\").subscribe(x => this.onUpdateSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback) {\r\n // this.changesFailedCallback();\r\n //}\r\n }\r\n\r\n\r\n viewSalesOrder() {\r\n let row = this.purchaseOrder;\r\n this.setLocalCustomer(row.customer, row.salesOrder);\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: row.customer } });\r\n }\r\n\r\n\r\n setLocalCustomer(customer: string, salesOrderNumber: string) {\r\n\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != salesOrderNumber) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, salesOrderNumber);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n }\r\n }\r\n\r\n viewInventory() {\r\n\r\n }\r\n\r\n\r\n calcReceivedQty(row: any, event) {\r\n var val = event.target.value;\r\n row.qtyReceived = val;\r\n\r\n let short = row.orderQty - row.qtyReceived;\r\n row.qtyShort = short;\r\n }\r\n\r\n calcOrderQty(row: any, event) {\r\n var val = event.target.value;\r\n row.orderQty = val;\r\n\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = Calculations.precise_round(total, 2);\r\n }\r\n\r\n\r\n //calcDisc(row: any, event) {\r\n // var val = event.target.value;\r\n // row.discountPercentage1 = val;\r\n\r\n // let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n // row.lineTotal = Calculations.precise_round(total, 2);\r\n //}\r\n\r\n\r\n calcPrice(row: any, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = Calculations.precise_round(total, 2);\r\n }\r\n\r\n\r\n calcTotal(row: any) {\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = Calculations.precise_round(total, 2);\r\n }\r\n\r\n setDelete(row: any) {\r\n if (row.selected) {\r\n this.selectedItems.push(row.lineNumber);\r\n }\r\n }\r\n\r\n viewCustomerNotes(row: ArCustomerEdit) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n this.router.navigate(['../../customers'], { fragment: 'notes', queryParams: { customer: row.customer } });\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n Preview|\\r\\n Go To Quote\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Quote:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 3px !important;\\n /*white-space: normal !important;*/\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tcXVvdGUtbWFuYWdlbWVudC13ZWIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsK0JBQStCLEVBQUE7O0FBR2pDO0VBQ0UsaUNBQWlDO0VBQ2pDLGtDQUFBO0VBQ0EsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLG1CQUFtQjtJQUNuQixnQ0FBZ0MsRUFBQTs7QUFScEM7SUFhSSxnQkFBZ0I7SUFDaEIsMEJBQTBCLEVBQUE7O0FBZDlCO0lBa0JJLHFDQUFxQyxFQUFBOztBQUl6QztFQUNFLFlBQVk7RUFDWixtQkFBbUIsRUFBQTs7QUFHckI7RUFDRSxZQUFZLEVBQUE7O0FBR2Q7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCLEVBQUE7O0FBRmxCO0lBS0ksZ0JBQWdCLEVBQUE7O0FBTXBCO0VBQ0UsMkJBQTJCO0VBQzNCLGlCQUFpQixFQUFBOztBQUduQjtFQUNJLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLFNBQVMsRUFBQTs7QUFHYjtFQUNJLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7O0FBR3BCO0VBQ0ksV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvc3lzcHJvLXF1b3RlLW1hbmFnZW1lbnQtd2ViLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAycHggNXB4IDAgM3B4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIC8qd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50OyovXHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4NjhlOTU7XHJcbiAgICAvL2NvbG9yOiAjRDkyMzBGO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgsIC50YWJsZSB0ZHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcblxyXG4gIC50b2dnbGUuYnRuLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbiJdfQ== */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { QuoteList } from 'src/app/models/quote-list.model';\r\nimport { ngxCsv } from 'ngx-csv';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-quote-management-web',\r\n templateUrl: './syspro-quote-management-web.component.html',\r\n styleUrls: ['./syspro-quote-management-web.component.scss']\r\n})\r\nexport class SysproQuoteManagementWebComponent implements OnInit, AfterViewInit {\r\n\r\n private cart: CartHeader = new CartHeader();\r\n\r\n columns: any[] = [];\r\n rows: QuoteList[] = [];\r\n rowsCache: QuoteList[] = [];\r\n cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @ViewChild('quotesModal')\r\n quotesModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('previewTemplate')\r\n previewTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n inventoryList: Inventory[];\r\n\r\n @ViewChild('salesOrderTemplate')\r\n salesOrderTemplate: TemplateRef;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n cartId: string;\r\n id: string;\r\n gridHeight: number = 0;\r\n TotalItems: number = 0;\r\n TotalLines: number = 0;\r\n TotalExcl: number = 0;\r\n TotalDiscount: number = 0;\r\n TotalExclAfterDiscount: number = 0;\r\n TotalVat: number = 0;\r\n TotalIncl: number = 0;\r\n isSaving: boolean;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n cartSaved: boolean;\r\n quoteNumber: any;\r\n quotes: QuoteList[];\r\n\r\n check30Days: boolean;\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: QuoteList[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @ViewChild('searchInput')\r\n searchInput: ElementRef;\r\n searchValue: string = \"\";\r\n smartsearch: string = \"\";\r\n selectedCustomer: string;\r\n selectedQuote: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService, private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n //this.searchValue = \"\";\r\n this.check30Days = false;\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let quoteNumber = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n //let searchValue = sessionStorage.getItem(localStorageActions.SearchValue);\r\n\r\n this.quoteNumber = quoteNumber;\r\n this.id = action;\r\n\r\n this.columns = [\r\n { prop: 'quoteNumber', name: 'Quote Number', width: 150, cellTemplate: this.selectTemplate},\r\n { prop: 'quoteHistory', name: 'Description', width: 650},\r\n { prop: 'convertedRef', name: 'Converted SO', width: 100, cellTemplate: this.salesOrderTemplate }\r\n ];\r\n\r\n this.columns.push({ name: '', width: 200, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.searchType = \"customer\";\r\n this.searchText = \"FBWEB\";\r\n this.specificSearch();\r\n\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n\r\n\r\n onSearchChanged(e: any) {\r\n let test = e;\r\n let value = this.smartsearch;\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value,\r\n false, r.customer, r.quoteNumber, r.quoteHistory, r.convertedRef, r.quoteStatus, r.createDate, r.searchItems, r.customerPO));\r\n this.searchValue = value;\r\n\r\n }\r\n else {\r\n this.searchValue = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n viewPDF(row: QuoteList) {\r\n console.log(row);\r\n \r\n this.reportService.getQuotePDF(row.quoteNumber, this.accountService.currentUser.aspnetApplication).subscribe(x => this.getPDF(x, row.quoteNumber), error => this.onDataLoadFailed(error));\r\n }\r\n getPDF(x: Blob, quoteNumber: string): void {\r\n this.reportService.getFileStream(quoteNumber).subscribe(x => this.onFileSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n viewQuote(row: QuoteList) {\r\n this.setLocalCustomer(row.customer, row.quoteNumber);\r\n this.router.navigate(['../../quotes'], { fragment: 'quote', queryParams: { customer: row.customer } });\r\n }\r\n\r\n\r\n previewQuote(row: QuoteList) {\r\n this.setLocalCustomer(row.customer, row.quoteNumber);\r\n\r\n if (!!this.selectedQuote) {\r\n if (!this.quotesModal) {\r\n setTimeout(() => {\r\n if (this.quotesModal) {\r\n this.quotesModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.quotesModal.show();\r\n }\r\n }\r\n }\r\n\r\n quotesModalHide() {\r\n this.selectedQuote = null;\r\n this.quotesModal.hide();\r\n }\r\n\r\n gotToQuote() {\r\n this.router.navigate(['../../quotes'], { fragment: 'quote', queryParams: { customer: this.selectedCustomer } });\r\n }\r\n\r\n viewSalesOrder(row: QuoteList) {\r\n if (sessionStorage.getItem(localStorageActions.Customer) != row.customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != row.convertedRef) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.convertedRef);\r\n }\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: row.customer } });\r\n }\r\n\r\n setLocalCustomer(customer: string, quoteNumber: string) {\r\n\r\n this.selectedCustomer = customer;\r\n this.selectedQuote = quoteNumber;\r\n if (sessionStorage.getItem(localStorageActions.QuoteNumber) != quoteNumber) {\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, quoteNumber);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n }\r\n if (this.searchValue && this.searchValue.length > 1) {\r\n //if (sessionStorage.getItem(localStorageActions.SearchValue) != this.searchValue) {\r\n // sessionStorage.setItem(localStorageActions.SearchValue, this.searchValue);\r\n //}\r\n }\r\n else {\r\n sessionStorage.removeItem(localStorageActions.SearchValue);\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.columns = [\r\n { prop: 'quoteNumber', name: 'Quote Number', width: 150, cellTemplate: this.selectTemplate },\r\n { prop: 'quoteHistory', name: 'Description', width: 650 },\r\n { prop: 'convertedRef', name: 'Converted SO', width: 100, cellTemplate: this.salesOrderTemplate }\r\n ];\r\n\r\n this.columns.push({ name: '', width: 200, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n \r\n\r\n loadData() {\r\n\r\n this.searchType = \"customer\";\r\n if (this.loadCache == true) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getQuoteSearchAll('TODO').subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n }\r\n\r\n load30Days() {\r\n this.check30Days = !this.check30Days;\r\n if (this.check30Days) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getQuoteNumberSearchByCriteria(\"ALL\", \"30Days\").subscribe(\r\n x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n \r\n this.sysproService.getQuoteNumberSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: QuoteList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n\r\n }\r\n onSearchSuccesful(x: QuoteList[]): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.quotes = x;\r\n x.forEach((quoteNumber, index, x) => {\r\n (quoteNumber).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...x];\r\n this.rows = x; //.slice(0, 18);\r\n }\r\n\r\n onFileSuccessful(x: Blob): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = \"Quote.pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n \r\n onCartHeaderLoadSuccessful(cart: CartHeader) {\r\n this.cart = cart;\r\n console.log(this.cart);\r\n \r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n \r\n viewCustomer() {\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goAddItems() {\r\n this.router.navigate(['../../orders'], { fragment: 'inventory', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n \r\n goAddNSItems() {\r\n this.router.navigate(['../../orders'], { fragment: 'nonstock', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goCreateQuote() {\r\n this.isNavigating = true;\r\n //this.save(\"cart\");\r\n //if (this.cartlinenumber > 0 && this.rowsCache.filter(x => x.orderqty > 0).length <= 0) {\r\n // this.router.navigate(['../../orders'], { fragment: 'cart', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n //}\r\n this.sysproService.postCartToQuote(this.cartId).subscribe(_response => this.saveSuccessHelper(_response), error => this.saveFailedHelper(error));\r\n }\r\n\r\n private saveSuccessHelper(quoteNumber?: any) {\r\n\r\n this.cartSaved = true;\r\n\r\n if (quoteNumber) {\r\n console.log(quoteNumber[0].quoteNumber);\r\n this.quoteNumber = quoteNumber[0].quoteNumber;\r\n\r\n this.reportService.getQuotePDF(this.quoteNumber, this.accountService.currentUser.aspnetApplication).subscribe(x => {\r\n // It is necessary to create a new blob object with mime-type explicitly set\r\n // otherwise only Chrome works like it should\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(newBlob);\r\n return;\r\n }\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = \"Je kar.pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n });\r\n // Object.assign(this.cartRows, cart); \r\n }\r\n\r\n if (this.isNavigating) {\r\n this.router.navigate(['../orders'], { fragment: 'cart', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', this.quoteNumber + ` Created successfully`, MessageSeverity.success);\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback) {\r\n // this.changesFailedCallback();\r\n //}\r\n }\r\n\r\n private save(location?) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n \r\n for (var product of this.rowsCache) {\r\n }\r\n\r\n\r\n }\r\n\r\n viewInventory() {\r\n\r\n }\r\n\r\n calcOrderQty(row: any, event) {\r\n var val = event.target.value;\r\n row.orderQty = val;\r\n\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcDisc(row: any, event) {\r\n var val = event.target.value;\r\n row.discountPercentage1 = val;\r\n\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcPrice(row: any, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcTotal(row: any) {\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n setDelete(row: any) {\r\n if (row.selected) {\r\n this.selectedItems.push(row.lineNumber);\r\n }\r\n }\r\n\r\n viewCustomerNotes(row: ArCustomerEdit) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n this.router.navigate(['../../customers'], { fragment: 'notes', queryParams: { customer: row.customer } });\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"QuoteNumber\", \"Customer\", \"PO\", \"Status\", \"Date\", \"Total\", \"SalesOrder\"]\r\n };\r\n\r\n var filename = \"Quotes\";\r\n var selectRows = [...this.rowsCache];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.createDate).toISOString().split('T')[0];\r\n exportRows.push({\r\n QuoteNumber: row.quoteNumber, Customer: row.customer, PO: row.customerPO, Status: row.quoteStatus, Date: date, Total: row.totalIncl, SalesOrder: row.convertedRef\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n       \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n Preview|\\r\\n Go To Quote\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Quote:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 3px !important;\\n /*white-space: normal !important;*/\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tcXVvdGUtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSxpQ0FBaUM7RUFDakMsa0NBQUE7RUFDQSxnQ0FBZ0M7RUFDaEMsMkJBQTJCLEVBQUE7O0FBSjdCO0lBT0ksbUJBQW1CO0lBQ25CLGdDQUFnQyxFQUFBOztBQVJwQztJQWFJLGdCQUFnQjtJQUNoQiwwQkFBMEIsRUFBQTs7QUFkOUI7SUFrQkkscUNBQXFDLEVBQUE7O0FBSXpDO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLFlBQVksRUFBQTs7QUFHZDtFQUNFLFlBQVk7RUFDWixnQkFBZ0IsRUFBQTs7QUFGbEI7SUFLSSxnQkFBZ0IsRUFBQTs7QUFNcEI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksU0FBUyxFQUFBOztBQUdiO0VBQ0ksZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zeXNwcm8tcXVvdGUtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMnB4IDVweCAwIDNweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICAvKndoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDsqL1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcbiAgLmJ0bi1saW5rLmdyaWQge1xyXG4gICAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODY4ZTk1O1xyXG4gICAgLy9jb2xvcjogI0Q5MjMwRjtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgYS5ob3ZlciB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBoZWlnaHQ6IDI2cHg7XHJcbiAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxufVxyXG5cclxuLnRhYmxlIHRoLCAudGFibGUgdGR7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4uY2hlY2tib3gge1xyXG4gIGhlaWdodDogMTBweDtcclxuICBwYWRkaW5nLXRvcDogM3B4O1xyXG5cclxuICAudG9nZ2xlLmJ0bi1zbSB7XHJcbiAgICBtaW4taGVpZ2h0OiAyN3B4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4udXNlci1yb2xlIHtcclxuICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogIzc3NztcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLmxvY2tlZC1vdXQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gICAgY29sb3I6IHdoaXRlc21va2U7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcblxyXG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { QuoteList } from 'src/app/models/quote-list.model';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { WebOrder } from '../../models/web-order.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-quote-management',\r\n templateUrl: './syspro-quote-management.component.html',\r\n styleUrls: ['./syspro-quote-management.component.scss']\r\n})\r\nexport class SysproQuoteManagementComponent implements OnInit, AfterViewInit {\r\n\r\n private cart: CartHeader = new CartHeader();\r\n\r\n columns: any[] = [];\r\n rows: QuoteList[] = [];\r\n rowsCache: QuoteList[] = [];\r\n cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @ViewChild('quotesModal')\r\n quotesModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('previewTemplate')\r\n previewTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n inventoryList: Inventory[];\r\n\r\n @ViewChild('salesOrderTemplate')\r\n salesOrderTemplate: TemplateRef;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n cartId: string;\r\n id: string;\r\n gridHeight: number = 0;\r\n TotalItems: number = 0;\r\n TotalLines: number = 0;\r\n TotalExcl: number = 0;\r\n TotalDiscount: number = 0;\r\n TotalExclAfterDiscount: number = 0;\r\n TotalVat: number = 0;\r\n TotalIncl: number = 0;\r\n isSaving: boolean;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n cartSaved: boolean;\r\n quoteNumber: any;\r\n quotes: QuoteList[];\r\n webOrders: WebOrder[];\r\n webOrderRows: WebOrder[] = [];\r\n webOrderRowsCache: WebOrder[] = [];\r\n\r\n check30Days: boolean;\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: QuoteList[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @ViewChild('searchInput')\r\n searchInput: ElementRef;\r\n searchValue: string = \"\";\r\n smartsearch: string = \"\";\r\n selectedCustomer: string;\r\n selectedQuote: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService, private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.check30Days = false;\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let quoteNumber = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n\r\n this.quoteNumber = quoteNumber;\r\n this.id = action;\r\n\r\n this.columns = [\r\n { prop: 'quoteNumber', name: 'Quote Number', width: 150, cellTemplate: this.selectTemplate },\r\n { prop: 'quoteHistory', name: 'Description', width: 650 },\r\n { prop: 'convertedRef', name: 'Converted SO', width: 100, cellTemplate: this.salesOrderTemplate }\r\n ];\r\n\r\n this.columns.push({ name: '', width: 200, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.loadData();\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n\r\n onSearchChanged(e: any) {\r\n let value = this.smartsearch;\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value,\r\n false, r.customer, r.quoteNumber, r.quoteHistory, r.convertedRef, r.quoteStatus, r.createDate, r.searchItems, r.customerPO));\r\n this.searchValue = value;\r\n\r\n }\r\n else {\r\n this.searchValue = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n viewPDF(row: QuoteList) {\r\n console.log(row);\r\n \r\n this.reportService.getQuotePDF(row.quoteNumber, this.accountService.currentUser.aspnetApplication).subscribe(x => this.getPDF(x, row.quoteNumber), error => this.onDataLoadFailed(error));\r\n }\r\n getPDF(x: Blob, quoteNumber: string): void {\r\n this.reportService.getFileStream(quoteNumber).subscribe(x => this.onFileSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n viewQuote(row: QuoteList) {\r\n this.setLocalCustomer(row.customer, row.quoteNumber);\r\n this.router.navigate(['../../quotes'], { fragment: 'quote', queryParams: { customer: row.customer } });\r\n }\r\n\r\n\r\n previewQuote(row: QuoteList) {\r\n this.setLocalCustomer(row.customer, row.quoteNumber);\r\n\r\n if (!!this.selectedQuote) {\r\n if (!this.quotesModal) {\r\n setTimeout(() => {\r\n if (this.quotesModal) {\r\n this.quotesModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.quotesModal.show();\r\n }\r\n }\r\n }\r\n\r\n quotesModalHide() {\r\n this.selectedQuote = null;\r\n this.quotesModal.hide();\r\n }\r\n\r\n gotToQuote() {\r\n this.router.navigate(['../../quotes'], { fragment: 'quote', queryParams: { customer: this.selectedCustomer } });\r\n }\r\n\r\n viewSalesOrder(row: QuoteList) {\r\n if (sessionStorage.getItem(localStorageActions.Customer) != row.customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != row.convertedRef) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.convertedRef);\r\n }\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: row.customer } });\r\n }\r\n\r\n setLocalCustomer(customer: string, quoteNumber: string) {\r\n\r\n this.selectedCustomer = customer;\r\n this.selectedQuote = quoteNumber;\r\n if (sessionStorage.getItem(localStorageActions.QuoteNumber) != quoteNumber) {\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, quoteNumber);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n }\r\n if (this.searchValue && this.searchValue.length > 1) {\r\n //if (sessionStorage.getItem(localStorageActions.SearchValue) != this.searchValue) {\r\n // sessionStorage.setItem(localStorageActions.SearchValue, this.searchValue);\r\n //}\r\n }\r\n else {\r\n sessionStorage.removeItem(localStorageActions.SearchValue);\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.columns = [\r\n { prop: 'quoteNumber', name: 'Quote Number', width: 150, cellTemplate: this.selectTemplate },\r\n { prop: 'quoteHistory', name: 'Description', width: 650 },\r\n { prop: 'convertedRef', name: 'Converted SO', width: 100, cellTemplate: this.salesOrderTemplate }\r\n ];\r\n\r\n this.columns.push({ name: '', width: 200, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n \r\n\r\n loadData() {\r\n\r\n this.searchType = \"customer\";\r\n if (this.loadCache == true) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getQuoteSearchAll('TODO').subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n //this.sysproService.getAllWebOrders().subscribe(x => this.onWebOrdersLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n load30Days() {\r\n this.check30Days = !this.check30Days;\r\n if (this.check30Days) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getQuoteNumberSearchByCriteria(\"ALL\", \"30Days\").subscribe(\r\n x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n \r\n this.sysproService.getQuoteNumberSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: QuoteList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n\r\n }\r\n onSearchSuccesful(x: QuoteList[]): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n //Include Web Quotes\r\n this.quotes = x.filter(x => x.customer !== \"FBWEB\" || x.webQuote === true);\r\n\r\n this.quotes.forEach((quoteNumber, index, x) => {\r\n (quoteNumber).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...this.quotes];\r\n this.rows = this.quotes; //.slice(0, 18);\r\n }\r\n\r\n\r\n onWebOrdersLoadSuccesful(x: WebOrder[]): void {\r\n\r\n this.webOrders = x;\r\n this.webOrders.forEach((line, index, x) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.webOrderRowsCache = [...this.webOrders];\r\n this.webOrders = this.webOrders; \r\n }\r\n\r\n onFileSuccessful(x: Blob): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = \"Quote.pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n \r\n onCartHeaderLoadSuccessful(cart: CartHeader) {\r\n this.cart = cart;\r\n console.log(this.cart);\r\n \r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n \r\n viewCustomer() {\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goAddItems() {\r\n this.router.navigate(['../../orders'], { fragment: 'inventory', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n \r\n goAddNSItems() {\r\n this.router.navigate(['../../orders'], { fragment: 'nonstock', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goCreateQuote() {\r\n this.isNavigating = true;\r\n //this.save(\"cart\");\r\n //if (this.cartlinenumber > 0 && this.rowsCache.filter(x => x.orderqty > 0).length <= 0) {\r\n // this.router.navigate(['../../orders'], { fragment: 'cart', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n //}\r\n this.sysproService.postCartToQuote(this.cartId).subscribe(_response => this.saveSuccessHelper(_response), error => this.saveFailedHelper(error));\r\n }\r\n\r\n private saveSuccessHelper(quoteNumber?: any) {\r\n\r\n this.cartSaved = true;\r\n\r\n if (quoteNumber) {\r\n console.log(quoteNumber[0].quoteNumber);\r\n this.quoteNumber = quoteNumber[0].quoteNumber;\r\n\r\n this.reportService.getQuotePDF(this.quoteNumber, this.accountService.currentUser.aspnetApplication).subscribe(x => {\r\n // It is necessary to create a new blob object with mime-type explicitly set\r\n // otherwise only Chrome works like it should\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(newBlob);\r\n return;\r\n }\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = \"Je kar.pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n });\r\n // Object.assign(this.cartRows, cart); \r\n }\r\n\r\n if (this.isNavigating) {\r\n this.router.navigate(['../orders'], { fragment: 'cart', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', this.quoteNumber + ` Created successfully`, MessageSeverity.success);\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback) {\r\n // this.changesFailedCallback();\r\n //}\r\n }\r\n\r\n private save(location?) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n \r\n for (var product of this.rowsCache) {\r\n }\r\n\r\n\r\n }\r\n\r\n viewInventory() {\r\n\r\n }\r\n\r\n calcOrderQty(row: any, event) {\r\n var val = event.target.value;\r\n row.orderQty = val;\r\n\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcDisc(row: any, event) {\r\n var val = event.target.value;\r\n row.discountPercentage1 = val;\r\n\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcPrice(row: any, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcTotal(row: any) {\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n setDelete(row: any) {\r\n if (row.selected) {\r\n this.selectedItems.push(row.lineNumber);\r\n }\r\n }\r\n\r\n viewCustomerNotes(row: ArCustomerEdit) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n this.router.navigate(['../../customers'], { fragment: 'notes', queryParams: { customer: row.customer } });\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"QuoteNumber\", \"Customer\", \"PO\", \"Status\", \"Date\", \"Total\", \"SalesOrder\"]\r\n };\r\n\r\n var filename = \"Quotes\";\r\n var selectRows = [...this.rowsCache];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.createDate).toISOString().split('T')[0];\r\n exportRows.push({\r\n QuoteNumber: row.quoteNumber, Customer: row.customer, PO: row.customerPO, Status: row.quoteStatus, Date: date, Total: row.totalIncl, SalesOrder: row.convertedRef\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
= 1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{quoteHeader.customer}} - {{quoteHeader.customerName }} - {{quoteHeader.quoteNumber}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.branch_code}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.quoteStatus}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.telephone}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.salesperson}} - {{quoteHeader.salespersonName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.shipDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.userName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.orderDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.customerPoNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.email}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.shippingInstrs}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.soldToAddr1 }}
\\r\\n
{{quoteHeader.soldToAddr2 }}
\\r\\n
{{quoteHeader.soldToAddr3 }}
\\r\\n
{{quoteHeader.soldToAddr4 }}
\\r\\n
{{quoteHeader.soldToAddr5 }}
\\r\\n
{{quoteHeader.soldPostalCode }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{quoteHeader.shipToAddr1 }}
\\r\\n
{{quoteHeader.shipToAddr2 }}
\\r\\n
{{quoteHeader.shipToAddr3 }}
\\r\\n
{{quoteHeader.shipToAddr4 }}
\\r\\n
{{quoteHeader.shipToAddr5 }}
\\r\\n
{{quoteHeader.shipPostalCode }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
StockCodeDescriptionAvail
Qty
Order
Qty
UOMPrice
excl)
Disc
(%)
Total
(excl)
\\r\\n \\r\\n \\r\\n \\r\\n {{row.stockCode}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
{{row.availQty}}{{row.orderQty | currency:' ':'symbol':'1.0'}}{{row.orderUom}}{{row.sellingPrice | currency:' ':'symbol':'1.2'}}{{row.discountPercentage1 | currency:' ':'symbol':'1.2'}}{{row.lineTotal | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
Total Items\\r\\n {{TotalItems}} (Lines: {{TotalLines}})\\r\\n
Total excl. V.A.T.R\\r\\n {{TotalExcl | currency:' ':'symbol':'1.2'}}\\r\\n
-DiscountR\\r\\n {{TotalDiscount | currency:' ':'symbol':'1.2'}}\\r\\n\\r\\n
Total excl. V.A.T.R\\r\\n\\r\\n {{TotalExclAfterDiscount | currency:' ':'symbol':'1.2'}}\\r\\n
+{{quoteHeader.vatPercentage}}% V.A.T.R\\r\\n\\r\\n {{TotalVat | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n \\r\\n Total\\r\\n incl. V.A.T.\\r\\n \\r\\n R\\r\\n {{TotalIncl | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View :

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

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

Do you want to retain previous pricing from your quote?

\\r\\n \\r\\n
\\r\\n
\\r\\n Note: This quote is {{quoteAge}} days old and prices may have changed.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

Copy Quote to New Customer

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
This will copy your quote to a new Customer Account. Do you want to continue?
\\r\\n Note: This will apply the new customer item pricing and discounts, all current pricing and discounts will be replaced.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Search for Customer

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

Copy Quote From: {{quoteHeader.customer}} - {{quoteHeader.customerName}}
To: {{newCustomer.customer}} - {{newCustomer.customerName}}

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

Customer

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

Line Items

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

This quote was created at a different branch. Do you want to keep original branch for quote?

\\r\\n \\r\\n
\\r\\n
\\r\\n Note: This quote was created at branch {{quoteHeader.branch_code}} , you are currently logged in to {{branchCode}}.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"/*:host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\r\\n white-space: normal !important;\\r\\n word-wrap: break-word !important;\\r\\n overflow: hidden !important;\\r\\n vertical-align: middle !important;\\r\\n padding: 0 5px 0 5px !important; // align the header text\\r\\n}\\r\\n\\r\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\r\\n padding: 0 5px 0 5px !important; // align the header text\\r\\n a {\\r\\n text-align: left;\\r\\n }\\r\\n}*/\\ninput.form-control {\\n height: 18px;\\n font-size: 0.600rem; }\\n.table th {\\n font-size: smaller; }\\n.table th, .table td {\\n padding: 5px; }\\n.table tr {\\n height: 20px; }\\n.card-body .row {\\n height: 18px; }\\n.card-body .col-form-label {\\n font-size: smaller; }\\n.btn-sm {\\n line-height: 1; }\\n.tbody {\\n height: calc(100vh - 500px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 98%; }\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n.modal-full {\\n min-width: 100%;\\n margin: 0; }\\n.modal-full .modal-content {\\n min-height: 100vh; }\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n.control-box {\\n margin-bottom: 5px; }\\n.search-box {\\n margin: 0; }\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n.col-form-label {\\n line-height: 1; }\\n[data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\"... see less \\\"; }\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... see more \\\"; }\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-color: #49107B;\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #49107B; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tcXVvdGUtdmlldy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zeXNwcm8tcXVvdGUtdmlldy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztFQ2FFO0FEQ0Y7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7QUFHckI7RUFDRSxrQkFBa0IsRUFBQTtBQUdwQjtFQUNFLFlBQVksRUFBQTtBQUdkO0VBQ0UsWUFBWSxFQUFBO0FBSWQ7RUFFSSxZQUFZLEVBQUE7QUFGaEI7RUFNSSxrQkFBa0IsRUFBQTtBQUl0QjtFQUNFLGNBQWMsRUFBQTtBQUdoQjtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixVQUFVLEVBQUE7QUFJWjtFQUNFLFlBQVk7RUFDWixnQkFBZ0IsRUFBQTtBQUZsQjtJQUtJLGdCQUFnQixFQUFBO0FBSXBCO0VBQ0UsZUFBZTtFQUNmLFNBQVMsRUFBQTtBQUdYO0VBQ0UsaUJBQWlCLEVBQUE7QUFLbkI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCLEVBQUE7QUFHbkI7RUFDRSxrQkFBa0IsRUFBQTtBQUdwQjtFQUNFLFNBQVMsRUFBQTtBQUdYO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTtBQUdsQjtFQUNFLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTtBQUdwQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixpQkFBaUIsRUFBQTtBQUduQjtFQUNFLGNBQWMsRUFBQTtBQ3ZCaEI7RUQ0QkUsZ0JBQWdCLEVBQUE7QUN6QmxCO0VEOEJFLGdCQUFnQixFQUFBO0FDM0JsQjtFRGdDRSx3QkFBd0IsRUFBQTtBQzdCMUI7RURrQ0Usd0JBQXdCLEVBQUE7QUFLMUI7RUFDRSx5QkFBeUI7RUFFekI7OztvSENsQ2tILEVEcUNDO0FBR3JIO0VBQ0UseUJBQXlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1xdW90ZS12aWV3LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyo6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIGEge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcbn0qL1xyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMThweDtcclxuICBmb250LXNpemU6IDAuNjAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLnRhYmxlIHRyIHtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcblxyXG4uY2FyZC1ib2R5IHtcclxuICAucm93IHtcclxuICAgIGhlaWdodDogMThweDtcclxuICB9XHJcblxyXG4gIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgfVxyXG59XHJcblxyXG4uYnRuLXNtIHtcclxuICBsaW5lLWhlaWdodDogMTtcclxufVxyXG5cclxuLnRib2R5IHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1MDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxuICB3aWR0aDogOTglO1xyXG59XHJcblxyXG5cclxuLmNoZWNrYm94IHtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgcGFkZGluZy10b3A6IDNweDtcclxuXHJcbiAgLnRvZ2dsZS5idG4tc20ge1xyXG4gICAgbWluLWhlaWdodDogMjdweDtcclxuICB9XHJcbn1cclxuXHJcbi5tb2RhbC1mdWxsIHtcclxuICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubW9kYWwtZnVsbCAubW9kYWwtY29udGVudCB7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcblxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgY29sb3I6ICM3Nzc7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmNvbC1mb3JtLWxhYmVsIHtcclxuICBsaW5lLWhlaWdodDogMTtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLmZhOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGYxM2FcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBzZWUgbGVzcyBcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIG1vcmUgXCI7XHJcbn1cclxuXHJcblxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDkxMDdCO1xyXG4gIC8vYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNDkxMDdiLCAjNTIxNDg5LCAjNWIxODk3LCAjNjQxY2E1LCAjNmQyMGIzLCAjN2MyZWJkLCAjOGIzYmM3LCAjOTk0OGQxLCAjYWU2MGRhLCAjYzE3OGUzLCAjZDQ5MGVkLCAjZTVhOGY3KTtcclxuICAvKmJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7Ki9cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ5MTA3QjtcclxufVxyXG4iLCIvKjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxufSovXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMC42MDByZW07IH1cblxuLnRhYmxlIHRoIHtcbiAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi50YWJsZSB0ciB7XG4gIGhlaWdodDogMjBweDsgfVxuXG4uY2FyZC1ib2R5IC5yb3cge1xuICBoZWlnaHQ6IDE4cHg7IH1cblxuLmNhcmQtYm9keSAuY29sLWZvcm0tbGFiZWwge1xuICBmb250LXNpemU6IHNtYWxsZXI7IH1cblxuLmJ0bi1zbSB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi50Ym9keSB7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDUwMHB4KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICB3aWR0aDogOTglOyB9XG5cbi5jaGVja2JveCB7XG4gIGhlaWdodDogMTBweDtcbiAgcGFkZGluZy10b3A6IDNweDsgfVxuICAuY2hlY2tib3ggLnRvZ2dsZS5idG4tc20ge1xuICAgIG1pbi1oZWlnaHQ6IDI3cHg7IH1cblxuLm1vZGFsLWZ1bGwge1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDsgfVxuXG4ubW9kYWwtZnVsbCAubW9kYWwtY29udGVudCB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoOyB9XG5cbi51c2VyLXJvbGUge1xuICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMXB4OyB9XG5cbi5jb250cm9sLWJveCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4uc2VhcmNoLWJveCB7XG4gIG1hcmdpbjogMDsgfVxuXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XG4gIHBhZGRpbmctdG9wOiAzcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIG1pbi13aWR0aDogMTAwcHg7IH1cblxuLnVzZXItZGlzYWJsZWQge1xuICBjb2xvcjogIzc3NztcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5sb2NrZWQtb3V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xuICBjb2xvcjogd2hpdGVzbW9rZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cblxuLmNvbC1mb3JtLWxhYmVsIHtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLmZhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7IH1cblxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzYVwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC50eHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCIuLi4gc2VlIGxlc3MgXCI7IH1cblxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCIuLi4gc2VlIG1vcmUgXCI7IH1cblxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ5MTA3QjtcbiAgLypiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSkgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpOyovIH1cblxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0OTEwN0I7IH1cbiJdfQ== */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ElementRef, OnChanges } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { QuoteHeader } from 'src/app/models/quote-header.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { Role } from 'src/app/models/role.model';\r\nimport { SalesOrderHeader } from '../../models/salesorder-header.model';\r\nimport { ShippingInstr } from '../../models/shipping-instructions.model';\r\nimport * as moment from 'moment';\r\nimport { WHAvailQTY } from '../../models/inventory-wh.model';\r\nimport { QuoteDetail } from '../../models/quote-detail.model';\r\nimport { QuoteList } from '../../models/quote-list.model';\r\nimport { CoreAudit } from '../../models/core-audit.model';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { WAPP } from '../../models/whatsapp.model';\r\nimport { OptIns, Outbox } from '../../models/wapp-inbox.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-quote-view',\r\n templateUrl: './syspro-quote-view.component.html',\r\n styleUrls: ['./syspro-quote-view.component.scss']\r\n})\r\nexport class SysproQuoteViewComponent implements OnInit, AfterViewInit {\r\n\r\n private cart: CartHeader = new CartHeader();\r\n\r\n uniqueId: string = Utilities.uniqueId();\r\n columns: any[] = [];\r\n rows: QuoteDetail[] = [];\r\n rowsCache: QuoteDetail[] = [];\r\n cartRows: CartDetail[] = [];\r\n commentLine: QuoteDetail = new QuoteDetail();\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n\r\n emailObject: Email = new Email();\r\n wappObject: WAPP = new WAPP();\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n \r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n inventoryList: Inventory[];\r\n\r\n @ViewChild('shipDate')\r\n private shipDate;\r\n\r\n @ViewChild('shippingInstr')\r\n private shippingInstr;\r\n\r\n @ViewChild('shippingInstrSelector')\r\n private shippingInstrSelector;\r\n shippingInstructionsList: ShippingInstr;\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n @ViewChild('pdfModal')\r\n pdfModal: ModalDirective;\r\n\r\n\r\n @ViewChild('commentsModal')\r\n commentsModal: ModalDirective;\r\n\r\n @ViewChild('confirmModal')\r\n confirmModal: ModalDirective;\r\n\r\n\r\n @ViewChild('changeCustomerModal')\r\n changeCustomerModal: ModalDirective; \r\n\r\n @ViewChild('customerSearchModal')\r\n customerSearchModal: ModalDirective;\r\n\r\n @ViewChild('confirmNewCustomerModal')\r\n confirmNewCustomerModal: ModalDirective;\r\n\r\n @ViewChild('viewNewCustomerModal')\r\n viewNewCustomerModal: ModalDirective;\r\n\r\n @ViewChild('viewNewCustomerCartModal')\r\n viewNewCustomerCartModal: ModalDirective;\r\n\r\n @ViewChild('changeBranchModal')\r\n changeBranchModal: ModalDirective;\r\n\r\n @ViewChild('commentsSelector')\r\n private commentsSelector;\r\n comments: string[];\r\n newComment: string;\r\n\r\n @ViewChild('printOptionsSelector')\r\n private printOptionsSelector;\r\n\r\n @ViewChild('printOptions')\r\n private printOptions;\r\n\r\n\r\n @Input()\r\n isQuote: boolean;\r\n\r\n @Input()\r\n selectedQuote: string;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n selectedCustomerCode: string;\r\n\r\n @Input()\r\n selectedCartNumber: string;\r\n\r\n\r\n cartId: string;\r\n id: string;\r\n gridHeight: number = 0;\r\n TotalItems: number = 0\r\n TotalLines: number = 0;\r\n TotalExcl: number = 0;\r\n TotalDiscount: number = 0;\r\n TotalExclAfterDiscount: number = 0;\r\n TotalVat: number = 0;\r\n TotalIncl: number = 0;\r\n isSaving: boolean;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n cartSaved: boolean;\r\n quoteNumber: any;\r\n quoteId: string;\r\n quote: QuoteHeader;\r\n pdfName: string;\r\n isUpdating: any;\r\n quoteHeader: QuoteHeader = new QuoteHeader();\r\n user: any;\r\n allRoles: any[];\r\n src: string;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n stockCodedetail: Inventory;\r\n hasDataSheet: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n\r\n startDate = new Date().toISOString().slice(0, 16);\r\n customer: ArCustomer;\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n stockCode: string;\r\n inventoryView: boolean;\r\n fragment: string;\r\n\r\n auditObj = new CoreAudit();\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n searchResults: QuoteList[] = [];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: QuoteList;\r\n\r\n hasDataSheets: boolean;\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n hasAddDataSheets: boolean;\r\n quoteAge: number;\r\n enableInput: any;\r\n buyerResponsible: string;\r\n branchToUse: string;\r\n outboxDetail: Outbox;\r\n WhatsappEnabled: boolean;\r\n WhatsappNumber: string;\r\n changeCustomer: boolean;\r\n newCustomer: ArCustomerEdit = new ArCustomerEdit();\r\n newCartNumber: any;\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService, private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let quoteId = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n\r\n this.id = (action ? action.trim() : \"\");\r\n this.quoteId = quoteId;\r\n\r\n this.auditObj.referenceType = \"QUOTE\";\r\n this.auditObj.referenceNumber = quoteId;\r\n this.auditObj.branch = this.branchCode;\r\n this.auditObj.applicationUser = this.accountService.currentUser.email;\r\n this.auditObj.actionedBy = this.accountService.currentUser.email;\r\n this.auditObj.groupKey = this.accountService.currentUser.id;\r\n this.postAudit(); \r\n\r\n if (this.id != \"\") {\r\n this.searchType = \"customer\";\r\n this.searchText = this.id;\r\n this.specificSearch();\r\n }\r\n\r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: 120, cellTemplate: this.stockCodeTemplate },\r\n { prop: 'stockDescription', name: 'Description', width: 400, cellTemplate: this.descriptionTemplate },\r\n { prop: 'availQty', name: 'Avail Qty', width: 80, cellClass: \"right\" },\r\n { prop: 'orderQty', name: 'Order Qty', width: 100, cellTemplate: this.orderQtyTemplate },\r\n { prop: 'orderUom', name: 'UOM', width: 80, cellClass: \"right\" },\r\n { prop: 'sellingPrice', name: 'Price(excl)', width: 120, cellTemplate: this.priceTemplate, cellClass: \"right\" },\r\n { prop: 'discountPercentage1', name: 'Disc(%)', width: 80, cellTemplate: this.discountTemplate, cellClass: \"center\" },\r\n { prop: 'lineTotal', name: 'Total(excl)', width: 100, cellClass: \"right\" }\r\n ];\r\n\r\n this.loadData();\r\n\r\n // this.accountService.getUser().subscribe(user => this.onCurrentUserDataLoadSuccessful(user, user.roles.map(x => new Role(x))), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n }\r\n ngOnChanges() {\r\n\r\n if (this.selectedQuote) {\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let quoteId = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n\r\n this.id = (action ? action.trim() : \"\");\r\n this.quoteId = quoteId;\r\n\r\n this.searchType = \"customer\";\r\n this.searchText = this.id;\r\n this.specificSearch();\r\n\r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: 120, cellTemplate: this.stockCodeTemplate },\r\n { prop: 'stockDescription', name: 'Description', width: 400, cellTemplate: this.descriptionTemplate },\r\n { prop: 'availQty', name: 'Avail Qty', width: 80, cellClass: \"right\" },\r\n { prop: 'orderQty', name: 'Order Qty', width: 100, cellTemplate: this.orderQtyTemplate },\r\n { prop: 'orderUom', name: 'UOM', width: 80, cellClass: \"right\" },\r\n { prop: 'sellingPrice', name: 'Price(excl)', width: 120, cellTemplate: this.priceTemplate, cellClass: \"right\" },\r\n { prop: 'discountPercentage1', name: 'Disc(%)', width: 80, cellTemplate: this.discountTemplate, cellClass: \"center\" },\r\n { prop: 'lineTotal', name: 'Total(excl)', width: 100, cellClass: \"right\" }\r\n ];\r\n\r\n this.loadData();\r\n }\r\n else {\r\n this.quoteHeader = new QuoteHeader();\r\n this.rows = null;\r\n }\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n //this.confirmInput.nativeElement.focus();\r\n }\r\n \r\n\r\n loadData() {\r\n if (this.quoteId) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n \r\n this.sysproService.getQuoteHeader(this.quoteId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.GetSysproComments().subscribe(x => this.onCommentsLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n //Check for wapp settings\r\n this.sysproService.GetUserTel(this.accountService.currentUser.userName).subscribe(x => this.onTelReceived(x), error => this.onOptinLoadFailed(error));\r\n\r\n //this.sysproService.getWappOptInDetails(this.accountService.currentUser.userName).subscribe(x => this.onUserWappLoadSuccesful(x), error => this.onOptinLoadFailed(error));\r\n }\r\n\r\n }\r\n\r\n onTelReceived(x: string): void {\r\n console.log(x);\r\n this.WhatsappEnabled = true;\r\n this.WhatsappNumber = x;\r\n\r\n }\r\n onOptinLoadFailed(error: any): void {\r\n this.WhatsappEnabled = false;\r\n }\r\n onUserWappLoadSuccesful(x: OptIns): void {\r\n if (x) {\r\n //this.WhatsappEnabled = x.optedIn;\r\n this.WhatsappEnabled = true;\r\n this.WhatsappNumber = x.phoneNumber;\r\n }\r\n }\r\n\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchResults = null;\r\n this.sysproService.getQuoteNumberSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: QuoteList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n\r\n //Filter out web orders but show web quotes\r\n this.searchResults = x; // x.filter(x => x.customer !== \"FBWEB\" || x.webQuote === true);\r\n\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n if (this.searchType.toUpperCase() == \"QUOTENUMBER\") {\r\n\r\n this.viewQuoteSelected();\r\n }\r\n }\r\n\r\n }\r\n viewQuoteSelected() {\r\n if (this.searchResultSelected) {\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.searchResultSelected.customer);\r\n sessionStorage.removeItem(localStorageActions.QuoteNumber);\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, this.searchResultSelected.quoteNumber);\r\n \r\n this.id = this.searchResultSelected.customer;\r\n this.quoteId = this.searchResultSelected.quoteNumber; \r\n this.loadData();\r\n this.router.navigate(['../../quotes'], { fragment: 'quote', queryParams: { customer: this.searchResultSelected.customer } });\r\n\r\n }\r\n }\r\n\r\n viewSalesOrder() {\r\n if (sessionStorage.getItem(localStorageActions.Customer) != this.id) {\r\n sessionStorage.setItem(localStorageActions.Customer, this.id);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.quoteHeader.convertedRef) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.quoteHeader.convertedRef);\r\n }\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: this.id } });\r\n }\r\n\r\n onCommentsLoadSuccessful(x: string[]): void {\r\n this.comments = x;\r\n setTimeout(() => {\r\n if (this.commentsSelector) {\r\n this.commentsSelector.refresh();\r\n }\r\n });\r\n\r\n console.log(\"COMMENTS\", this.comments);\r\n }\r\n\r\n openCommentsModal() {\r\n this.commentsModal.show();\r\n this.commentLine = new QuoteDetail();\r\n this.commentLine.commentType = \"I\";\r\n console.log(\"COMMENT LINE\", this.commentLine);\r\n }\r\n\r\n\r\n addTopComment() {\r\n const lineNumber = 0;\r\n let comment = this.commentLine.comment ? this.commentLine.comment : this.newComment.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\");\r\n this.sysproService.updateQuoteComments(this.quoteId, lineNumber, 0, comment, \"TOP\")\r\n .subscribe(x => this.loadData(), error => this.onDataLoadFailed(error));\r\n this.commentsModal.hide();\r\n }\r\n\r\n addComment() {\r\n const lineNumber = this.rows[this.rows.length - 1].quoteLineNumber + 1;\r\n let comment = this.commentLine.comment ? this.commentLine.comment : this.newComment.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\");\r\n let isPreviousLineAComment = (this.rows[this.rows.length - 1].lineType == \"6\") ? \"Y\" : \"N\";\r\n this.sysproService.updateQuoteComments(this.quoteId, lineNumber, 0, comment, isPreviousLineAComment)\r\n .subscribe(x => this.loadData(), error => this.onDataLoadFailed(error));\r\n this.commentsModal.hide();\r\n }\r\n\r\n private onCurrentUserDataLoadSuccessful(user: User, roles: Role[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.user = user;\r\n this.allRoles = roles;\r\n }\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n this.user = new User();\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n \r\n onCartHeaderLoadSuccessful(quote: QuoteHeader) {\r\n let res = quote;\r\n\r\n this.sysproService.getShippingInstructions().subscribe(x => this.onShippingInstructionsLoadSuccessful(x), error => this.onShippingInstructionsFailed(error));\r\n\r\n this.quoteHeader = res[0];\r\n this.startDate = moment().format('YYYY-MM-DD');\r\n this.quoteHeader.shipdate = new Date(this.startDate);\r\n\r\n this.branchToUse = this.quoteHeader.branch_code;\r\n\r\n console.log(this.quoteHeader);\r\n\r\n this.sysproService.getQuoteDetail(this.quoteId).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onShippingInstructionsFailed(error: any): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n onShippingInstructionsLoadSuccessful(x: ShippingInstr): void {\r\n this.shippingInstructionsList = x;\r\n if (this.quoteHeader.shippingInstrs == \"\") {\r\n this.quoteHeader.shippingInstrs = \"01 - DELIVER VIA FOWKES CT BAKKIE\";\r\n }\r\n setTimeout(() => {\r\n if (this.shippingInstrSelector) {\r\n this.shippingInstrSelector.refresh();\r\n }\r\n });\r\n console.log(\"THIS IS THE SHIPPING INSTRUCTIONS\", this.shippingInstructionsList);\r\n }\r\n\r\n\r\n onCartDetailLoadSuccessful(quoteDetail: any[]) {\r\n\r\n this.rowsCache = [...quoteDetail];\r\n const updateRows = this.rowsCache;\r\n const vat = this.quoteHeader.vatPercentage;\r\n\r\n this.TotalLines = updateRows.filter(x => x.lineType !== \"6\").length;\r\n\r\n this.TotalItems = 0;\r\n this.TotalExcl = 0;\r\n this.TotalDiscount = 0;\r\n this.TotalExclAfterDiscount = 0;\r\n this.TotalVat = 0;\r\n this.TotalIncl = 0;\r\n\r\n for (var product of updateRows) {\r\n var lineTotalExclVat = Calculations.calculateBaseLineTotal(product.orderQty, product.sellingPrice, product.priceConvFac, product.lineTotal);\r\n var lineDiscount = Calculations.calculateLineDiscountTotal(product.orderQty, product.sellingPrice, product.discountPercentage1, product.priceConvFac, 0);\r\n\r\n this.TotalItems += product.orderQty;\r\n this.TotalExcl += lineTotalExclVat;\r\n this.TotalDiscount += lineDiscount;\r\n\r\n var lineVat = 0;\r\n if (vat && product.vatExempt == false) {\r\n lineVat = Calculations.calculateLineVat(lineTotalExclVat, lineDiscount, 0, vat);\r\n }\r\n //var lineVat = Calculations.calculateLineVat(lineTotalExclVat, lineDiscount, 0, vat);\r\n\r\n this.TotalVat += lineVat;\r\n\r\n this.calcTotal(product);\r\n }\r\n\r\n this.TotalExclAfterDiscount = (Calculations.RoundAwayFromZero(this.TotalExcl, 2) - Calculations.RoundAwayFromZero(this.TotalDiscount, 2));\r\n this.TotalIncl = Calculations.RoundAwayFromZero((this.TotalExclAfterDiscount + this.TotalVat), 2);\r\n\r\n this.rows = quoteDetail;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n \r\n viewCustomer() {\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goAddItems() {\r\n\r\n this.isNavigating = true;\r\n this.fragment = 'inventory';\r\n this.CopyQuote();\r\n //this.router.navigate(['../../quotes'], { fragment: 'inventory', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n \r\n \r\n goAddNSItems() {\r\n this.isNavigating = true;\r\n this.fragment = 'nonstock';\r\n this.CopyQuote();\r\n // this.router.navigate(['../../quotes'], { fragment: 'nonstock', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goCreateCart() {\r\n this.isNavigating = true;\r\n this.fragment = 'cart';\r\n if (this.branchCode != this.quoteHeader.branch_code) {\r\n this.changeBranchModal.show();\r\n this.quoteAge = new Date(Date.now() - +(new Date(this.quoteHeader.createDate))).getDate() - 1;\r\n }\r\n else {\r\n this.CopyQuote();\r\n }\r\n }\r\n\r\n newCopyQuoteButton() {\r\n\r\n this.quoteAge = new Date(Date.now() - +(new Date(this.quoteHeader.createDate))).getDate() - 1;\r\n //Check if logged in branch different to quote branch\r\n if (this.branchCode != this.quoteHeader.branch_code) {\r\n this.changeBranchModal.show();\r\n }\r\n else {\r\n this.confirmModal.show();\r\n }\r\n }\r\n\r\n \r\n changeCustomerCopyQuoteButton() {\r\n\r\n this.changeCustomer = true;\r\n this.changeCustomerModal.show();\r\n this.newCustomer = new ArCustomerEdit();\r\n }\r\n\r\n changeCustomerModalHide() {\r\n\r\n this.changeCustomer = false;\r\n this.changeCustomerModal.hide();\r\n this.newCustomer = new ArCustomerEdit();\r\n }\r\n\r\n openSearchForCustomerModal() {\r\n this.changeCustomer = true;\r\n this.changeCustomerModal.hide();\r\n this.newCustomer = new ArCustomerEdit();\r\n\r\n if (!this.customerSearchModal) {\r\n setTimeout(() => {\r\n if (this.customerSearchModal) {\r\n this.customerSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.customerSearchModal.show();\r\n }\r\n }\r\n\r\n onCustomerSelected(customer: any) {\r\n console.log('Selected customer:', customer);\r\n\r\n if (customer) {\r\n this.newCustomer = customer;\r\n\r\n if (!this.confirmNewCustomerModal) {\r\n setTimeout(() => {\r\n if (this.confirmNewCustomerModal) {\r\n this.confirmNewCustomerModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.confirmNewCustomerModal.show();\r\n }\r\n\r\n this.customerSearchModal.hide();\r\n }\r\n }\r\n\r\n confirmNewCustomerForQuote(customerCode: string) {\r\n\r\n this.selectedCustomerCode = customerCode;\r\n //Create Cart//Set id\r\n var uniqueId = this.id + Math.random().toString(36).substring(2) + Date.now().toString(36);\r\n this.cartId = uniqueId;\r\n sessionStorage.removeItem(localStorageActions.CartId);\r\n sessionStorage.setItem(localStorageActions.CartId, this.cartId);\r\n\r\n //Set new customer Id\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, customerCode);\r\n }\r\n\r\n this.sysproService.getCartFromQuote(this.quoteId, this.cartId, this.branchToUse).subscribe(_response => this.newCustomerCartCreatedSuccessHelper(_response), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n private newCustomerCartCreatedSuccessHelper(res?: any) {\r\n\r\n this.cartSaved = true;\r\n this.alertService.stopLoadingMessage();\r\n this.confirmNewCustomerModal.hide();\r\n\r\n //Load Customer View\r\n if (!this.viewNewCustomerModal) {\r\n setTimeout(() => {\r\n if (this.viewNewCustomerModal) {\r\n this.viewNewCustomerModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.viewNewCustomerModal.show();\r\n }\r\n \r\n }\r\n\r\n\r\n onCartNumberSelected(cartNumber: any) {\r\n console.log('Selected cart:', cartNumber);\r\n\r\n if (cartNumber) {\r\n this.newCartNumber = cartNumber;\r\n this.selectedCartNumber = cartNumber;\r\n\r\n if (!this.viewNewCustomerCartModal) {\r\n setTimeout(() => {\r\n if (this.viewNewCustomerCartModal) {\r\n this.viewNewCustomerCartModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.viewNewCustomerCartModal.show();\r\n }\r\n\r\n this.viewNewCustomerModal.hide();\r\n }\r\n }\r\n\r\n viewNewCustomerCartModalHide() {\r\n\r\n this.changeCustomer = false;\r\n this.viewNewCustomerCartModal.hide();\r\n this.newCustomer = new ArCustomerEdit();\r\n this.selectedCartNumber = \"\";\r\n this.newCartNumber = \"\";\r\n\r\n }\r\n customerSearchModalHide() {\r\n this.changeCustomer = false;\r\n this.customerSearchModal.hide();\r\n }\r\n viewNewCustomerModalHide() {\r\n this.changeCustomer = false;\r\n this.viewNewCustomerModal.hide();\r\n this.newCustomer = new ArCustomerEdit();\r\n }\r\n\r\n\r\n changeBranchModalHide() {\r\n this.changeBranchModal.hide();\r\n }\r\n\r\n keepBranchHelper(): any {\r\n this.branchToUse = this.quoteHeader.branch_code;\r\n this.changeBranchModal.hide();\r\n this.confirmModal.show();\r\n }\r\n\r\n\r\n newBranchHelper(): any {\r\n this.changeBranchModal.hide();\r\n //Change Branch\r\n\r\n this.branchToUse = this.branchCode;\r\n this.confirmModal.show();\r\n }\r\n\r\n confirmModalHide() {\r\n this.confirmModal.hide();\r\n }\r\n\r\n\r\n CopyQuote() {\r\n var uniqueId = this.id + Math.random().toString(36).substring(2) + Date.now().toString(36);\r\n this.cartId = uniqueId;\r\n sessionStorage.removeItem(localStorageActions.CartId);\r\n sessionStorage.setItem(localStorageActions.CartId, this.cartId);\r\n this.sysproService.getCartFromQuote(this.quoteId, this.cartId, this.branchToUse).subscribe(_response => this.saveSuccessHelper(_response), error => this.saveFailedHelper(error)); \r\n\r\n }\r\n\r\n reloadPricingHelper(): any {\r\n //Reload Prices \r\n sessionStorage.setItem(localStorageActions.Reset, \"true\");\r\n this.isNavigating = true;\r\n this.fragment = 'cart';\r\n this.CopyQuote();\r\n }\r\n\r\n\r\n keepQuotePricingHelper(): any {\r\n // Dont reload prices\r\n sessionStorage.setItem(localStorageActions.Reset, \"false\");\r\n this.isNavigating = true;\r\n this.fragment = 'cart';\r\n this.CopyQuote();\r\n }\r\n\r\n\r\n private saveSuccessHelper(res?: any) {\r\n\r\n this.cartSaved = true;\r\n\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (res) {\r\n console.log(res);\r\n }\r\n\r\n if (this.isNavigating) {\r\n this.router.navigate(['../orders'], { fragment: this.fragment, queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n if (this.isUpdating) {\r\n\r\n this.isUpdating = false;\r\n this.alertService.showMessage('Success', this.quoteId + ` Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n else {\r\n\r\n this.isSaving = false;\r\n this.alertService.showMessage('Success', this.cartId + ` Created successfully`, MessageSeverity.success);\r\n }\r\n\r\n }\r\n\r\n\r\n //goPlaceOrder() {\r\n // //this.alertService.startLoadingMessage('Loggin into Syspro...');\r\n // ////Check SYSPRO User\r\n // //this.sysproService.GetSysproSessionId(this.accountService.currentUser).subscribe(x => this.onsessionCreatedSuccesful(x), error => this.onSessionFailed(error));\r\n\r\n\r\n //}\r\n\r\n //onsessionCreatedSuccesful(x: User): void {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n // this.alertService.showMessage('Success', `Logged into syspro successfully`, MessageSeverity.success);\r\n\r\n // this.alertService.startLoadingMessage('Creating Sales Order...');\r\n // var user = x;\r\n // var header = this.quoteHeader;\r\n // var detail = this.rows;\r\n // var postObject = {\r\n // \"user\": user, \"header\": header, \"detail\": detail\r\n // };\r\n // this.sysproService.postSalesOrderSyspro(postObject).subscribe(x => this.onSoirtoiPOSTSuccesful(x), error => this.onSoirtoiPOSTFailed(error));\r\n //}\r\n //onSoirtoiPOSTSuccesful(x: any): void {\r\n\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n // var salesOrderHeader = x[0];\r\n // if (salesOrderHeader) {\r\n // this.alertService.showMessage('Success', `Created Sales Order`, MessageSeverity.success);\r\n // this.isNavigating = true;\r\n\r\n // sessionStorage.removeItem(localStorageActions.SalesOrderNumber);\r\n // sessionStorage.setItem(localStorageActions.SalesOrderNumber, salesOrderHeader.salesOrderNumber);\r\n // this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: this.id, salesorder: salesOrderHeader.salesOrderNumber } });\r\n // }\r\n // else {\r\n\r\n // this.alertService.showMessage('Failed', `Creating Sales Order Failed`, MessageSeverity.error);\r\n // }\r\n\r\n //}\r\n goCancelQuote() {\r\n\r\n this.isNavigating = false;\r\n this.isUpdating = true;\r\n this.sysproService.getUpdateQuoteStatus(this.quoteId, \"C\").subscribe(_response => this.saveSuccessHelper(_response), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n\r\n onStockLoadSuccessful(inventory: any[]) {\r\n\r\n this.inventoryList = inventory[0];\r\n }\r\n\r\n stockCodeModalHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n if (row.lineType != \"7\" && row.mapped) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.stockDescription;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.addSheetImage = row.addSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n this.stockCodedetail.onSpecialFowkes = row.onSpecialFowkes;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n onStockCodeLoadSuccessful(row: Inventory): void {\r\n\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail = row[0];\r\n this.hasDataSheet = false;\r\n this.hasSpecials = false;\r\n this.hasAddDataSheets = false;\r\n if (this.stockCodedetail.dataSheetImage) {\r\n this.hasDataSheet = true;\r\n this.stockCodedetail.dataSheetImage = encodeURIComponent(this.stockCodedetail.dataSheetImage);\r\n }\r\n if (this.stockCodedetail.addSheetImage) {\r\n this.hasAddDataSheets = true;\r\n this.stockCodedetail.addSheetImage = encodeURIComponent(this.stockCodedetail.addSheetImage);\r\n }\r\n if (this.stockCodedetail.specialsImage) {\r\n this.hasSpecials = true;\r\n }\r\n if (!!this.stockCodedetail) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.sysproService.getStockCodeAvailableQuantities(row.alternateKey.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n openSpecials(row: Inventory) {\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"https://www.maxarcus.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"https://www.fowkes.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n //if (!!row.specialsImage && row.specialsImage != \"\") {\r\n // window.open(row.filePath + \"/SpecialImages/\" + row.specialsImage, \"_blank\");\r\n //}\r\n }\r\n\r\n showWHDetail(row: any, event) {\r\n if (row) {\r\n if (row.lineType != \"7\") {\r\n this.stockDescription = row.stockCode + \": \" + row.stockDescription;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onEmailLoadSuccessful(type?: string) {\r\n \r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasSpecials = false;\r\n this.hasAddDataSheets = false;\r\n\r\n if (type == \"stockcode\") {\r\n this.inventoryView = true;\r\n this.stockCodeModal.hide();\r\n\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n\r\n this.hasAddDataSheets = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage.length >= 1);\r\n\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.specialsImage.length >= 1 && (this.stockCodedetail.onSpecial || this.stockCodedetail.onSpecialFowkes));\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\"), this.branchCode, this.application).subscribe(x => {\r\n this.emailModal.show(),\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }, error => this.onDataLoadFailed(error));\r\n\r\n this.emailObject.RecepientName = this.quoteHeader.contact;\r\n this.emailObject.RecepientEmail = this.quoteHeader.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = this.accountService.currentUser.email;\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim();\r\n }\r\n\r\n if (this.hasAddDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc3 = this.stockCodedetail.addSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n }\r\n else {\r\n\r\n this.inventoryView = false;\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = \"\";\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = this.accountService.currentUser.email;\r\n this.emailObject.Subject = \"Quote: \" + this.quoteId;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = this.quoteId;\r\n this.emailObject.Bod = \"Thank you for allowing us to submit our quotation. Please find attached PDF that can be viewed with any standard PDF reader. If you decide to accept please reference this quote number.\";\r\n\r\n this.reportService.getQuotePDF(this.quoteId, this.application).subscribe(x => {\r\n this.emailModal.show(),\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }, error => this.onDataLoadFailed(error));\r\n \r\n }\r\n\r\n }\r\n\r\n titleCase(str) {\r\n str = str.toLowerCase();\r\n return str.replace(/\\w\\S/g, function (t) { return t.toUpperCase() });\r\n}\r\n\r\n viewPDF() {\r\n if (this.inventoryView) {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n else {\r\n //this.reportService.getQuotePDF(this.quoteId).subscribe(x => this.getPDF(x, this.quoteId), error => this.onDataLoadFailed(error));\r\n this.reportService.getFileStream(this.quoteId).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n sendWappMessage() {\r\n this.outboxDetail = new Outbox();\r\n\r\n this.outboxDetail.toPhoneNumber = this.WhatsappNumber;\r\n this.outboxDetail.content = \"Template\";\r\n this.outboxDetail.headerMediaFileId = this.quoteId;\r\n this.outboxDetail.nextGenUser = this.accountService.currentUser.userName;\r\n\r\n //this.sysproService.sendwappWithQuote(this.outboxDetail.toPhoneNumber, \r\n // this.outboxDetail.headerMediaFileId, this.outboxDetail.nextGenUser).subscribe(x => this.onMessageSentSuccesful(), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.sendTemplateWithFile(this.outboxDetail.headerMediaFileId, \"QUOTE\", this.outboxDetail.toPhoneNumber, this.outboxDetail.nextGenUser,\r\n this.outboxDetail.headerMediaFileId).subscribe(x => this.onWhatsappSentSuccesful(x), error => this.WhatsappSentFailed(error));\r\n }\r\n\r\n WhatsappSentFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Error', `Something went wrong: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n onWhatsappSentSuccesful(x: any): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('', `\"${x.message}\"`, MessageSeverity.info);\r\n this.emailModal.hide();\r\n }\r\n\r\n onMessageSentSuccesful(): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Message sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n previewPDF() {\r\n if (this.inventoryView) {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n else {\r\n this.reportService.getFileStream(this.quoteId).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n emailPDF() {\r\n\r\n \r\n if (this.emailObject.RecepientEmail && this.emailObject.RecepientEmail.trim().length >= 1) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.emailObject.AddDoc1 = (this.attachDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n\r\n\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Remeber to add email address for recepient`, MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n \r\n getPDF(x: Blob, quoteNumber: string): void {\r\n if (this.inventoryView) {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n else {\r\n this.reportService.getFileStream(quoteNumber).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n if (this.inventoryView) {\r\n link.download = this.emailObject.Attachment.replace('/', '_').replace('+', '_') + \".pdf\";\r\n }\r\n else {\r\n\r\n link.download = this.quoteId + \".pdf\";\r\n }\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n exportCSV() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"QuoteNumber\", \"Line\", \"StockCode\", \"Description\", \"QTY\", \"UOM\", \"Price\", \"Discount\", \"Nett Price\", \"Total Ex Vat\"]\r\n };\r\n\r\n var filename = this.quoteId;\r\n var selectRows = [...this.rowsCache];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n exportRows.push({\r\n QuoteNumber: row.quoteNumber, Line: row.quoteLineNumber, StockCode: row.stockCode.replace(/\\,/g, ' ').replace(/\\;/g, ' '), Description: row.stockDescription.replace(/\\,/g, ' ').replace(/\\;/g, ' '),\r\n QTY: row.orderQty,\r\n UOM: row.orderUom, Price: row.sellingPrice, Discount: row.discountPercentage1, Nett: row.nettPrice, Total: row.lineTotal\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n //onSessionFailed(error: any): void {\r\n // this.alertService.stopLoadingMessage();\r\n // this.alertService.showStickyMessage('Error', 'Could not log you into SYSPRO', MessageSeverity.error, error);\r\n // this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n //}\r\n\r\n //onSoirtoiPOSTFailed(error: any): void {\r\n // this.alertService.stopLoadingMessage();\r\n // this.alertService.showStickyMessage('Error', 'The below errors occured whilst placing Sales Order:', MessageSeverity.error, error);\r\n // this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n //}\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback) {\r\n // this.changesFailedCallback();\r\n //}\r\n }\r\n\r\n private save(location?) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n \r\n for (var product of this.rowsCache) {\r\n }\r\n\r\n\r\n }\r\n\r\n viewInventory() {\r\n\r\n }\r\n\r\n calcOrderQty(row: any, event) {\r\n var val = event.target.value;\r\n row.orderQty = val;\r\n\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcDisc(row: any, event) {\r\n var val = event.target.value;\r\n row.discountPercentage1 = val;\r\n\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcPrice(row: any, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcTotal(row: any) {\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = total;\r\n //Calculations.precise_round(total, 2);\r\n }\r\n\r\n setDelete(row: any) {\r\n if (row.selected) {\r\n this.selectedItems.push(row.lineNumber);\r\n }\r\n }\r\n\r\n viewCustomerNotes(row: ArCustomerEdit) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n this.router.navigate(['../../customers'], { fragment: 'notes', queryParams: { customer: row.customer } });\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n\r\n private postAudit() {\r\n this.sysproService.postCoreAudit(this.auditObj).subscribe(x => console.log(x));\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Hi {{Operator.fullName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{selected.startDate| date: 'EEEE, dd MMM yyyy'}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{Operator.nextGenUser}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{Operator.defaultRole}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{Operator.sysproOperator}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{Operator.sysproRep}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n My Sales As: {{operatorCode}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Quote conversion to order =\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Today
SalesGP%
\\r\\n {{rowOperatorToday.totalNetMerchandise | currency:'R ':'symbol':'1.2'}}\\r\\n \\r\\n {{rowOperatorToday.totalInvoiceGP}} %\\r\\n
\\r\\n No sales for today yet\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
MTD
SalesGP%
\\r\\n {{rowOperatorMonth.totalNetMerchandise | currency:'R ':'symbol':'1.2'}}\\r\\n \\r\\n {{rowOperatorMonth.totalInvoiceGP}} %\\r\\n
\\r\\n No sales for today yet\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Last Month
SalesGP%
\\r\\n {{rowOperatorLastMonth.totalNetMerchandise | currency:'R ':'symbol':'1.2'}}\\r\\n \\r\\n {{rowOperatorLastMonth.totalInvoiceGP}} %\\r\\n
\\r\\n No sales last month\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n My Sales As: {{repCode}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Today
SalesGP%
\\r\\n {{rowsRepToday.totalNetMerchandise | currency:'R ':'symbol':'1.2'}}\\r\\n \\r\\n {{rowsRepToday.totalInvoiceGP}} %\\r\\n
\\r\\n No sales for today yet\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
MTD
SalesGP%
\\r\\n {{rowsRepMonth.totalNetMerchandise | currency:'R ':'symbol':'1.2'}}\\r\\n \\r\\n {{rowsRepMonth.totalInvoiceGP}} %\\r\\n
\\r\\n No sales for this month yet\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Last Month
SalesGP%
\\r\\n {{rowsRepLastMonth.totalNetMerchandise | currency:'R ':'symbol':'1.2'}}\\r\\n \\r\\n {{rowsRepLastMonth.totalInvoiceGP}} %\\r\\n
\\r\\n No sales last month\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".unread {\\n font-weight: bold; }\\n\\n.card-body .row {\\n height: 18px; }\\n\\n.card-body .col-form-label {\\n font-size: smaller; }\\n\\n.btn-sm {\\n line-height: 1; }\\n\\n.col-form-label {\\n line-height: 1; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px;\\n font-weight: bold; }\\n\\n.table tr {\\n height: 20px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tcmVwLXZpZXdlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLGlCQUFpQixFQUFBOztBQUdyQjtFQUVJLFlBQVksRUFBQTs7QUFGaEI7RUFNSSxrQkFBa0IsRUFBQTs7QUFJdEI7RUFDRSxjQUFjLEVBQUE7O0FBR2hCO0VBQ0UsY0FBYyxFQUFBOztBQUloQjtFQUNFLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLFlBQVk7RUFDWixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1yZXAtdmlld2VyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi51bnJlYWQge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5jYXJkLWJvZHkge1xyXG4gIC5yb3cge1xyXG4gICAgaGVpZ2h0OiAxOHB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICB9XHJcbn1cclxuXHJcbi5idG4tc20ge1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG59XHJcblxyXG4uY29sLWZvcm0tbGFiZWwge1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG59XHJcblxyXG5cclxuLnRhYmxlIHRoIHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi50YWJsZSB0ciB7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG5cclxuIl19 */\"","\r\nimport { Component, Input, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { Notification } from '../../models/notification.model';\r\nimport { QuoteSalesReportData } from '../../models/quote-sales-report-data.model';\r\nimport { Role } from '../../models/role.model';\r\nimport { SalesRepSummary } from '../../models/sales-rep-summary.model';\r\nimport { SalesReportData } from '../../models/sales-report.model';\r\nimport { SalesStats } from '../../models/sales-stats.model';\r\nimport { SysproUser } from '../../models/syspro-user.model';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { AppTranslationService } from '../../services/app-translation.service';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Utilities } from '../../services/utilities';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'syspro-rep-viewer',\r\n templateUrl: './syspro-rep-viewer.component.html',\r\n styleUrls: ['./syspro-rep-viewer.component.scss']\r\n})\r\nexport class SysproRepViewerComponent implements OnInit, OnDestroy {\r\n\r\n columnsSales: any[] = [];\r\n rowOperatorToday: SalesRepSummary;\r\n rowOperatorMonth: SalesRepSummary;\r\n rowOperatorLastMonth: SalesRepSummary;\r\n\r\n rowsRepToday: SalesRepSummary;\r\n rowsRepMonth: SalesRepSummary;\r\n rowsRepLastMonth: SalesRepSummary;\r\n\r\n Operator: SysproUser;\r\n operatorCode: string;\r\n repCode: string;\r\n\r\n numberOfSalesOrders: number = 0;\r\n numberOfQuotes: number = 0;\r\n valueOfOrders: number = 0;\r\n valueOfQuotes: number = 0;\r\n convertedQuotes: number = 0;\r\n conversionPercentage: number = 0;\r\n\r\n\r\n CompnumberOfSalesOrders: number = 0;\r\n CompnumberOfQuotes: number = 0;\r\n CompvalueOfOrders: number = 0;\r\n CompvalueOfQuotes: number = 0;\r\n CompconvertedQuotes: number = 0;\r\n CompconversionPercentage: number = 0;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n columns: any[] = [];\r\n rows: Notification[] = [];\r\n\r\n loadingIndicator1: boolean;\r\n loadingIndicator2: boolean;\r\n loadingIndicator3: boolean;\r\n loadingIndicator4: boolean;\r\n loadingIndicator5: boolean;\r\n loadingIndicator6: boolean;\r\n\r\n dataLoadingConsecutiveFailurs = 0;\r\n dataLoadingSubscription: any;\r\n\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n verticalScrollbar = false;\r\n\r\n\r\n @ViewChild('statusHeaderTemplate')\r\n statusHeaderTemplate: TemplateRef;\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('contentHeaderTemplate')\r\n contentHeaderTemplate: TemplateRef;\r\n\r\n @ViewChild('contenBodytTemplate')\r\n contenBodytTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n allRoles: Role[];\r\n loadingIndicatorMyConversion: boolean;\r\n loadingIndicatorCompConversion: boolean;\r\n\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private notificationService: NotificationService,\r\n private sysproService: SysproService, private router: Router, private route: ActivatedRoute, private fowkesOnline: FowkesOnlineService, private configurations: ConfigurationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator1 = true;\r\n this.loadingIndicator2 = true;\r\n this.loadingIndicator3 = true;\r\n this.loadingIndicator4 = true;\r\n this.loadingIndicator5 = true;\r\n this.loadingIndicator6 = true;\r\n\r\n this.sysproService.getSysproUserDetailList().subscribe(x => this.onOperatorsLoadSuccessful(x), error => this.onDataLoadFailed(error)); \r\n }\r\n\r\n onOperatorsLoadSuccessful(x: SysproUser[]): void {\r\n\r\n this.Operator = x.filter(u => u.nextGenId.toUpperCase() == this.accountService.currentUser.id.toUpperCase())[0];\r\n\r\n // this.runFileSyncbackround();\r\n\r\n if (!!this.Operator) {\r\n this.operatorCode = this.Operator.sysproOperator;\r\n this.repCode = this.Operator.sysproRep;\r\n\r\n this.loadDataForConversioncalculation();\r\n // this.loadDataForCompanyConversioncalculation();\r\n\r\n this.LoadTodaysSales();\r\n this.LoadThisMonthSales();\r\n this.LoadLastMonthSales();\r\n }\r\n }\r\n\r\n runFileSyncbackround() {\r\n let currentDate: Date = new Date();\r\n let year = currentDate.getFullYear();\r\n let month = (\"0\" + (currentDate.getMonth() + 1)).slice(-2);\r\n let day = (\"0\" + currentDate.getDate()).slice(-2);\r\n currentDate = new Date(currentDate.setDate(currentDate.getDate() + 1));\r\n this.sysproService.syncFileReferencesByDate(year + '-' + month, day).subscribe(x => this.loadFileReferences(x), error => this.onReferenceLoadFail(error));\r\n }\r\n onReferenceLoadFail(error: any): void {\r\n console.log(error);\r\n }\r\n loadFileReferences(x: any): void {\r\n console.log(x);\r\n }\r\n\r\n loadDataForCompanyConversioncalculation() {\r\n if (!!this.operatorCode) {\r\n\r\n let startD: Date = new Date(moment().startOf('year').toString());\r\n let endD: Date = new Date(moment().endOf('month').toString());\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicatorCompConversion = true;\r\n this.sysproService.getSalesStats(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue).subscribe(x => this.onCompanyStatsLoadedSuccesful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n }\r\n\r\n onCompanyStatsLoadedSuccesful(x: SalesStats, arg1: boolean): void {\r\n\r\n if (x && x[0] && x[0].value) {\r\n this.CompconversionPercentage = x[0].value;\r\n this.loadingIndicatorCompConversion = false;\r\n }\r\n else {\r\n\r\n let startD: Date = new Date(moment().startOf('year').toString());\r\n let endD: Date = new Date(moment().endOf('month').toString());\r\n\r\n this.sysproService.getSalesReportData(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue\r\n ).subscribe(x => this.onSearchForCompanySalesDataSuccesful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n onSearchForCompanySalesDataSuccesful(x: SalesReportData[], arg1: boolean): void {\r\n let startD: Date = new Date(moment().startOf('year').toString());\r\n let endD: Date = new Date(moment().endOf('month').toString());\r\n if (x && x[0]) {\r\n this.CompnumberOfSalesOrders = x.length;\r\n this.CompvalueOfOrders = x.map(a => a.invoiceTotal).reduce(function (a, b) {\r\n return a + b;\r\n });\r\n this.sysproService.getQuoteSalesData(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue).subscribe(x => this.onSearchForCompanyQuoteDataSuccesful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n this.loadingIndicatorCompConversion = false;\r\n }\r\n }\r\n\r\n onSearchForCompanyQuoteDataSuccesful(x: QuoteSalesReportData[], arg1: boolean): void {\r\n //(Total sales (with no quotes) + (converted quotes)) / total quote value\r\n //Orders / (total quotes + sales orders) - converted quotes\r\n if (x && x[0]) {\r\n this.CompnumberOfQuotes = x.length;\r\n this.CompvalueOfQuotes = x.map(a => a.invoiceTotal).reduce(function (a, b) {\r\n return a + b;\r\n });\r\n this.CompconvertedQuotes = x.filter(x => x.quoteStatus == \"S\").length;\r\n this.CompconversionPercentage = (this.CompvalueOfOrders / ((this.CompvalueOfQuotes + this.CompvalueOfOrders)\r\n - this.CompconvertedQuotes)) * 100;\r\n\r\n }\r\n else {\r\n\r\n this.CompconversionPercentage = 100;\r\n }\r\n\r\n //this.sysproService.updateSalesStats(\"ALL\", \"Company\", this.CompconversionPercentage)\r\n // .subscribe(x => this.onStatsUpdateSuccesful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n this.loadingIndicatorCompConversion = false;\r\n\r\n }\r\n\r\n loadDataForConversioncalculation() {\r\n let startD: Date = new Date(moment().startOf('year').toString());\r\n let endD: Date = new Date(moment().endOf('month').toString());\r\n\r\n if (!!this.operatorCode) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicatorMyConversion = true;\r\n this.sysproService.getSalesStats(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.operatorCode).subscribe(x => this.onOperatorStatsLoadedSuccesful(x, true), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n }\r\n onOperatorStatsLoadedSuccesful(x: SalesStats, arg1: boolean): void {\r\n if (x && x[0] && x[0].value) {\r\n this.conversionPercentage = x[0].value;\r\n this.loadingIndicatorMyConversion = false;\r\n }\r\n else {\r\n let startD: Date = new Date(moment().startOf('year').toString());\r\n let endD: Date = new Date(moment().endOf('month').toString());\r\n\r\n this.sysproService.getSalesReportData(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.operatorCode, this.selectUndefinedOptionValue\r\n ).subscribe(x => this.onSearchForOperatorSalesDataSuccesful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n onSearchForOperatorSalesDataSuccesful(x: SalesReportData[], arg1: boolean): void {\r\n let startD: Date = new Date(moment().startOf('year').toString());\r\n let endD: Date = new Date(moment().endOf('month').toString());\r\n if (x && x[0]) {\r\n this.numberOfSalesOrders = x.length;\r\n this.valueOfOrders = x.map(a => a.invoiceTotal).reduce(function (a, b) {\r\n return a + b;\r\n });\r\n\r\n this.sysproService.getQuoteSalesData(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.operatorCode).subscribe(x => this.onSearchForOperatorQuoteDataSuccesful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.loadingIndicatorMyConversion = false;\r\n }\r\n }\r\n\r\n onSearchForOperatorQuoteDataSuccesful(x: QuoteSalesReportData[], arg1: boolean): void {\r\n if (x && x[0]) {\r\n this.numberOfQuotes = x.length;\r\n this.valueOfQuotes = x.map(a => a.invoiceTotal).reduce(function (a, b) {\r\n return a + b;\r\n });\r\n this.convertedQuotes = x.filter(x => x.quoteStatus == \"S\").length;\r\n this.conversionPercentage = (this.valueOfOrders / ((this.valueOfQuotes + this.valueOfOrders)\r\n - this.convertedQuotes)) * 100;\r\n\r\n if (this.conversionPercentage <= 0) {\r\n this.conversionPercentage = 100;\r\n }\r\n }\r\n else {\r\n\r\n this.conversionPercentage = 100;\r\n }\r\n\r\n //this.sysproService.updateSalesStats(this.operatorCode, \"Operator\", this.conversionPercentage)\r\n // .subscribe(x => this.onStatsUpdateSuccesful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n this.loadingIndicatorMyConversion = false;\r\n }\r\n onStatsUpdateSuccesful(x: SalesStats, arg1: boolean): void {\r\n \r\n }\r\n\r\n private LoadTodaysSales() {\r\n this.selected = {\r\n startDate: moment().startOf('day'),\r\n endDate: moment().endOf('day')\r\n };\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n if (!!this.operatorCode) {\r\n this.sysproService.getSalesRepSummary(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.operatorCode, this.selectUndefinedOptionValue,\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue).subscribe(x => this.onSearchForOperatorSuccesful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n if (!!this.repCode) {\r\n this.sysproService.getSalesRepSummary(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue,\r\n this.repCode, this.selectUndefinedOptionValue).subscribe(x => this.onSearchForSalesRepSuccesful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n private LoadThisMonthSales() {\r\n\r\n\r\n let startD: Date = new Date(moment().startOf('month').toString());\r\n let endD: Date = new Date(moment().endOf('month').toString());\r\n\r\n if (!!this.operatorCode) {\r\n this.sysproService.getSalesRepSummary(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.operatorCode, this.selectUndefinedOptionValue,\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue).subscribe(x => this.onSearchForOperatorSuccesful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n if (!!this.repCode) {\r\n this.sysproService.getSalesRepSummary(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue,\r\n this.repCode, this.selectUndefinedOptionValue).subscribe(x => this.onSearchForSalesRepSuccesful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n private LoadLastMonthSales() {\r\n\r\n\r\n let startD: Date = new Date(moment().subtract(1, 'month').startOf('month').toString());\r\n let endD: Date = new Date(moment().subtract(1, 'month').endOf('month').toString());\r\n\r\n\r\n this.sysproService.getSalesRepSummary(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.operatorCode, this.selectUndefinedOptionValue,\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue).subscribe(x => this.onSearchForOperatorSuccesful(x, false, true), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.getSalesRepSummary(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue,\r\n this.repCode, this.selectUndefinedOptionValue).subscribe(x => this.onSearchForSalesRepSuccesful(x, false, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n onSearchForSalesRepSuccesful(x: SalesRepSummary[], today?: boolean, lastMonth?: boolean): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n if (!!today) {\r\n if (x && x[0]) {\r\n this.rowsRepToday = x[0];\r\n }\r\n this.loadingIndicator1 = false;\r\n }\r\n else {\r\n if (!!lastMonth) {\r\n if (x && x[0]) {\r\n this.rowsRepLastMonth = x[0];\r\n }\r\n this.loadingIndicator3 = false;\r\n }\r\n else {\r\n if (x && x[0]) {\r\n this.rowsRepMonth = x[0];\r\n }\r\n this.loadingIndicator2 = false;\r\n }\r\n }\r\n \r\n }\r\n\r\n\r\n onSearchForOperatorSuccesful(x: SalesRepSummary[], today?: boolean, lastMonth?: boolean): void {\r\n\r\n if (!!today) {\r\n if (x && x[0]) {\r\n this.rowOperatorToday = x[0];\r\n }\r\n this.loadingIndicator4 = false;\r\n } else {\r\n if (!!lastMonth) {\r\n if (x && x[0]) {\r\n this.rowOperatorLastMonth = x[0];\r\n }\r\n this.loadingIndicator6 = false;\r\n }\r\n else {\r\n if (x && x[0]) {\r\n this.rowOperatorMonth = x[0];\r\n }\r\n this.loadingIndicator5 = false;\r\n }\r\n }\r\n this.alertService.stopLoadingMessage();\r\n \r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator1 = false;\r\n this.loadingIndicator2 = false;\r\n this.loadingIndicator3 = false;\r\n this.loadingIndicator4 = false;\r\n this.loadingIndicator5 = false;\r\n this.loadingIndicator6 = false;\r\n this.loadingIndicatorMyConversion = false;\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n \r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this.dataLoadingSubscription) {\r\n this.dataLoadingSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n\r\n private processResults(notifications: Notification[]) {\r\n\r\n if (this.isViewOnly) {\r\n notifications.sort((a, b) => {\r\n return b.date.valueOf() - a.date.valueOf();\r\n });\r\n }\r\n\r\n return notifications;\r\n }\r\n\r\n\r\n\r\n getPrintedDate(value: Date) {\r\n if (value) {\r\n return Utilities.printTimeOnly(value) + ' on ' + Utilities.printDateOnly(value);\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageNotifications() {\r\n return true;// this.accountService.userHasPermission(Permission.manageRolesPermission); // Todo: Consider creating separate permission for notifications\r\n }\r\n\r\n sendTestSMS() {\r\n var testMessage = \"Ello! This is a test message :)\";\r\n this.sysproService.sendSMS(testMessage).subscribe(x => this.onsSuccess(x), error => this.onDataLoadFailed(error));\r\n }\r\n onsSuccess(x: any): void {\r\n\r\n var result = x;\r\n\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n        \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n View\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 3px !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95;\\n padding: 0; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tc2FsZXNvcmRlci1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUdqQztFQUNFLGlDQUFpQztFQUVqQyxnQ0FBZ0M7RUFDaEMsMkJBQTJCLEVBQUE7O0FBSjdCO0lBUUksbUJBQW1CO0lBQ25CLGdDQUFnQztJQUNoQyxVQUFVLEVBQUE7O0FBVmQ7SUFlSSxnQkFBZ0I7SUFDaEIsMEJBQTBCLEVBQUE7O0FBaEI5QjtJQW9CSSxxQ0FBcUMsRUFBQTs7QUFJekM7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UsWUFBWSxFQUFBOztBQUdkO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUZsQjtJQUtJLGdCQUFnQixFQUFBOztBQU1wQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1zYWxlc29yZGVyLW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDJweCA1cHggMCAzcHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgLy93aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuXHJcbiAgLmJ0bi1saW5rLmdyaWQge1xyXG4gICAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODY4ZTk1O1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIC8vY29sb3I6ICNEOTIzMEY7XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIGEuaG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgaGVpZ2h0OiAyNnB4O1xyXG4gIGZvbnQtc2l6ZTogMC43MDByZW07XHJcbn1cclxuXHJcbi50YWJsZSB0aCwgLnRhYmxlIHRke1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgcGFkZGluZy10b3A6IDNweDtcclxuXHJcbiAgLnRvZ2dsZS5idG4tc20ge1xyXG4gICAgbWluLWhlaWdodDogMjdweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuIl19 */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { QuoteList } from 'src/app/models/quote-list.model';\r\nimport { SalesOrderList } from 'src/app/models/salesorder-list.model';\r\nimport { PurchaseOrderList } from 'src/app/models/purchaseorder-list.model';\r\nimport { User } from '../../models/user.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-salesorder-management',\r\n templateUrl: './syspro-salesorder-management.component.html',\r\n styleUrls: ['./syspro-salesorder-management.component.scss']\r\n})\r\nexport class SysproSalesOrderManagementComponent implements OnInit, AfterViewInit {\r\n\r\n private cart: CartHeader = new CartHeader();\r\n\r\n columns: any[] = [];\r\n rows: SalesOrderList[] = [];\r\n rowsCache: SalesOrderList[] = [];\r\n cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n \r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('customerTemplate')\r\n customerTemplate: TemplateRef;\r\n\r\n @ViewChild('salesOrderTemplate')\r\n salesOrderTemplate: TemplateRef;\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n \r\n @ViewChild('poTemplate')\r\n poTemplate: TemplateRef;\r\n \r\n @ViewChild('purchaseOrderList')\r\n purchaseOrderList: TemplateRef;\r\n\r\n @ViewChild('purchaseOrderListSelector')\r\n private purchaseOrderListSelector;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: SalesOrderList[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n cartId: string;\r\n id: string;\r\n gridHeight: number = 0;\r\n TotalItems: number = 0;\r\n TotalExcl: number = 0;\r\n TotalDiscount: number = 0;\r\n TotalExclAfterDiscount: number = 0;\r\n TotalVat: number = 0;\r\n TotalIncl: number = 0;\r\n isSaving: boolean;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n cartSaved: boolean;\r\n quoteNumber: any;\r\n salesOrders: SalesOrderList[];\r\n salesOrderNumber: string;\r\n checkCreditNotes: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService, private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() { \r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n sessionStorage.removeItem(localStorageActions.SalesOrderNumber);\r\n sessionStorage.removeItem(localStorageActions.InvoiceNumber);\r\n // let quoteNumber = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n // let salesOrderNumber = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n\r\n // this.quoteNumber = quoteNumber;\r\n // this.salesOrderNumber = salesOrderNumber;\r\n this.id = action;\r\n\r\n this.columns = [\r\n { prop: 'salesOrderNumber', name: 'Sales Order', width: 90, cellTemplate: this.salesOrderTemplate},\r\n { prop: 'orderHistory', name: 'Description', width: 360},\r\n { prop: 'customerPO', name: 'Customer PO', width: 160 },\r\n { prop: 'customer', name: 'Customer', width: 70, cellClass: \"center\" },\r\n { prop: 'invoiceNumber', name: 'Invoice', width: 90, cellTemplate: this.invoiceTemplate },\r\n { prop: 'operator', name: 'Operator', width: 70, cellClass: \"center\" }\r\n ];\r\n\r\n this.columns.push({ name: 'Purchase Orders', width: 150, cellTemplate: this.selectTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.customer, r.salesOrderNumber, r.customerPO,\r\n r.orderStatus, r.createDate, r.invoiceNumber, r.poNumber, r.gRNNumber, r.internalRef, r.operator));\r\n }\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n if (this.checkCreditNotes) {\r\n this.sysproService.getCreditNoteSearchByCriteria(this.searchType, this.searchText.trim()).subscribe(\r\n x => this.onSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n else {\r\n this.sysproService.getSalesOrderSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: SalesOrderList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n\r\n }\r\n\r\n viewPDF(row: QuoteList) {\r\n console.log(row);\r\n\r\n this.reportService.getQuotePDF(row.quoteNumber).subscribe(x => this.getPDF(x, row.quoteNumber), error => this.onDataLoadFailed(error));\r\n }\r\n getPDF(x: Blob, quoteNumber: string): void {\r\n this.reportService.getFileStream(quoteNumber).subscribe(x => this.onFileSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n viewSalesOrder(row: SalesOrderList) {\r\n this.setLocalCustomer(row.customer, row.salesOrderNumber, row.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: row.customer } });\r\n }\r\n\r\n viewSalesOrderSelected() {\r\n\r\n if (this.searchType == \"invoice\") {\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.searchResultSelected) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.searchResultSelected);\r\n }\r\n\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice' });\r\n }\r\n else {\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.searchResultSelected) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.searchResultSelected);\r\n }\r\n\r\n this.router.navigate(['../../salesorders'], { fragment: 'view' });\r\n }\r\n }\r\n\r\n viewInvoice(row: SalesOrderList) {\r\n this.setLocalCustomer(row.customer, row.salesOrderNumber, row.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: row.customer } });\r\n }\r\n\r\n\r\n\r\n setLocalCustomer(customer: string, salesOrderNumber: string, invoiceNumber: string, purchaseorder?: string) {\r\n\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != salesOrderNumber) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, salesOrderNumber);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != invoiceNumber) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, invoiceNumber);\r\n }\r\n if (purchaseorder) {\r\n if (sessionStorage.getItem(localStorageActions.PurchaseOrder) != purchaseorder) {\r\n sessionStorage.setItem(localStorageActions.PurchaseOrder, purchaseorder);\r\n }\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.columns = [\r\n { prop: 'salesOrderNumber', name: 'Sales Order', width: 90, cellTemplate: this.salesOrderTemplate },\r\n { prop: 'orderHistory', name: 'Description', width: 360 },\r\n { prop: 'customerPO', name: 'Customer PO', width: 160 },\r\n { prop: 'customer', name: 'Customer', width: 70, cellClass: \"center\" },\r\n { prop: 'invoiceNumber', name: 'Invoice', width: 90, cellTemplate: this.invoiceTemplate },\r\n { prop: 'operator', name: 'Operator', width: 70, cellClass: \"center\" }\r\n ];\r\n\r\n this.columns.push({ name: 'Purchase Orders', width: 150, cellTemplate: this.selectTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n }\r\n \r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n\r\n loadData() {\r\n this.searchType = \"salesorder\";\r\n this.checkCreditNotes = false;\r\n if (this.loadCache == true) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getSalesOrderSearchAll().subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n onSearchSuccesful(x: SalesOrderList[]): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x.length > 0) {\r\n this.salesOrders = x;\r\n x.forEach((salesOrderNumber, index, x) => {\r\n (salesOrderNumber).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...x];\r\n for (var salesOrder of this.rowsCache) {\r\n if (salesOrder.poNumber != \"\" && salesOrder.poNumber != \"NA\") {\r\n salesOrder.poNumber = \"Please Select\";\r\n this.SetPONumbers(salesOrder);\r\n }\r\n }\r\n\r\n this.rows = this.rowsCache.slice(0, 100);\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n \r\n }\r\n SetPONumbers(salesOrder: SalesOrderList) {\r\n this.sysproService.getPurchaseOrderSearchByCriteria(\"SALESORDER\", salesOrder.salesOrderNumber).\r\n subscribe(x => this.POSearchSuccesful(salesOrder, x), error => this.onPOLoadFailed(error));\r\n }\r\n onPOLoadFailed(error: any): void {\r\n \r\n }\r\n POSearchSuccesful(salesOrder: SalesOrderList, x: PurchaseOrderList[]): void {\r\n let POList = x;\r\n x.forEach((poNumber, index, x) => {\r\n (poNumber).index = index + 1;\r\n });\r\n\r\n salesOrder.poNumbers = x;\r\n }\r\n\r\n onFileSuccessful(x: Blob): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = \"Quote.pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n \r\n onCartHeaderLoadSuccessful(cart: CartHeader) {\r\n this.cart = cart;\r\n console.log(this.cart);\r\n \r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n \r\n viewCustomer() {\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n viewPurchaseOrder(row: SalesOrderList) {\r\n console.log(row);\r\n this.setLocalCustomer(row.customer, row.salesOrderNumber, row.invoiceNumber, row.poNumber);\r\n this.router.navigate(['../../purchaseorders'], { fragment: 'purchaseorder', queryParams: { customer: row.customer } });\r\n }\r\n\r\n goAddItems() {\r\n this.router.navigate(['../../orders'], { fragment: 'inventory', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n \r\n goAddNSItems() {\r\n this.router.navigate(['../../orders'], { fragment: 'nonstock', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goCreateQuote() {\r\n this.isNavigating = true;\r\n //this.save(\"cart\");\r\n //if (this.cartlinenumber > 0 && this.rowsCache.filter(x => x.orderqty > 0).length <= 0) {\r\n // this.router.navigate(['../../orders'], { fragment: 'cart', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n //}\r\n this.sysproService.postCartToQuote(this.cartId).subscribe(_response => this.saveSuccessHelper(_response), error => this.saveFailedHelper(error));\r\n }\r\n\r\n private saveSuccessHelper(quoteNumber?: any) {\r\n\r\n this.cartSaved = true;\r\n\r\n if (quoteNumber) {\r\n console.log(quoteNumber[0].quoteNumber);\r\n this.quoteNumber = quoteNumber[0].quoteNumber;\r\n\r\n this.reportService.getQuotePDF(this.quoteNumber).subscribe(x => {\r\n // It is necessary to create a new blob object with mime-type explicitly set\r\n // otherwise only Chrome works like it should\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(newBlob);\r\n return;\r\n }\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = \"Je kar.pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n });\r\n // Object.assign(this.cartRows, cart); \r\n }\r\n\r\n if (this.isNavigating) {\r\n this.router.navigate(['../orders'], { fragment: 'cart', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', this.quoteNumber + ` Created successfully`, MessageSeverity.success);\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback) {\r\n // this.changesFailedCallback();\r\n //}\r\n }\r\n\r\n //private save(location?) {\r\n // this.isSaving = true;\r\n // this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n \r\n // for (var product of this.rowsCache) {\r\n // }\r\n\r\n\r\n //}\r\n\r\n //viewInventory() {\r\n\r\n //}\r\n\r\n calcOrderQty(row: any, event) {\r\n var val = event.target.value;\r\n row.orderQty = val;\r\n\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcDisc(row: any, event) {\r\n var val = event.target.value;\r\n row.discountPercentage1 = val;\r\n\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcPrice(row: any, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcTotal(row: any) {\r\n let total = (row.orderQty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountPercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n setDelete(row: any) {\r\n if (row.selected) {\r\n this.selectedItems.push(row.lineNumber);\r\n }\r\n }\r\n\r\n viewCustomerNotes(row: ArCustomerEdit) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n this.router.navigate(['../../customers'], { fragment: 'notes', queryParams: { customer: row.customer } });\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{salesOrder.customer}} - {{salesOrder.customerName }} - (SALESORDER: {{salesOrder.salesOrderNumber}}) - (STATUS: {{salesOrder.orderStatus}} - {{salesOrder.statusDescription}})\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.branch_code}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.orderStatus}} - {{salesOrder.statusDescription}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.telephone}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.salesperson}} - {{salesOrder.salesPersonName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.shipDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.customerPoNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.orderDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.operator}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.email}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.shippingInstrs}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.companyTaxNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.taxExemptNumber}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.soldToAddr1 }}
\\r\\n
{{salesOrder.soldToAddr2 }}
\\r\\n
{{salesOrder.soldToAddr3 }}
\\r\\n
{{salesOrder.soldToAddr4 }}
\\r\\n
{{salesOrder.soldToAddr5 }}
\\r\\n
{{salesOrder.soldPostalCode }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{salesOrder.shipToAddr1 }}
\\r\\n
{{salesOrder.shipToAddr2 }}
\\r\\n
{{salesOrder.shipToAddr3 }}
\\r\\n
{{salesOrder.shipToAddr4 }}
\\r\\n
{{salesOrder.shipToAddr5 }}
\\r\\n
{{salesOrder.shipPostalCode }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{salesOrder.orderStatus}} - {{salesOrder.statusDescription}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
StockCodeDescriptionAvail
Qty
Order
Qty
UOMNett Price
(excl)
Unit Cost
Total
(excl)
\\r\\n \\r\\n \\r\\n \\r\\n {{row.stockCode}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.availQty}}{{row.orderQty | currency:' ':'symbol':'1.0'}}{{row.orderUom}}{{row.nettPrice | currency:' ':'symbol':'1.2'}}{{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.lineTotal | currency:' ':'symbol':'1.2'}}\\r\\n {{'users.management.Delete' | translate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
Total Items\\r\\n {{TotalItems}} (Lines: {{TotalLines}})\\r\\n
Total excl. V.A.T.R\\r\\n {{TotalExcl | currency:' ':'symbol':'1.2'}}\\r\\n
-DiscountR\\r\\n {{TotalDiscount | currency:' ':'symbol':'1.2'}}\\r\\n\\r\\n
Total excl. V.A.T.R\\r\\n\\r\\n {{TotalExclAfterDiscount | currency:' ':'symbol':'1.2'}}\\r\\n
+{{salesOrder.vatPercentage}}% V.A.T.R\\r\\n\\r\\n {{TotalVat | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n \\r\\n Total\\r\\n incl. V.A.T.\\r\\n \\r\\n R\\r\\n {{TotalIncl | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Authorization Required

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

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

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

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

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Supervisor Login\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Username is required\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Password is required\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"/*:host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\r\\n white-space: normal !important;\\r\\n word-wrap: break-word !important;\\r\\n overflow: hidden !important;\\r\\n vertical-align: middle !important;\\r\\n padding: 0 5px 0 5px !important; // align the header text\\r\\n}\\r\\n\\r\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\r\\n padding: 0 5px 0 5px !important; // align the header text\\r\\n a {\\r\\n text-align: left;\\r\\n }\\r\\n}*/\\ninput.form-control {\\n height: 18px;\\n font-size: 0.600rem; }\\n.table th {\\n font-size: smaller; }\\n.table th, .table td {\\n padding: 5px; }\\n.table tr {\\n height: 20px; }\\n.card-body .row {\\n height: 18px; }\\n.card-body .col-form-label {\\n font-size: smaller; }\\n.btn-sm {\\n line-height: 1; }\\n.tbody {\\n height: calc(100vh - 500px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 98%; }\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n.modal-full {\\n min-width: 100%;\\n margin: 0; }\\n.modal-full .modal-content {\\n min-height: 100vh; }\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n.control-box {\\n margin-bottom: 5px; }\\n.search-box {\\n margin: 0; }\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n.col-form-label {\\n line-height: 1; }\\n[data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\"... see less \\\"; }\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... see more \\\"; }\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-color: #D9831F;\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #eddfdb; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8tc2FsZXNvcmRlci12aWV3LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3N5c3Byby1zYWxlc29yZGVyLXZpZXcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7RUNhRTtBRENGO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBO0FBR3JCO0VBQ0Usa0JBQWtCLEVBQUE7QUFHcEI7RUFDRSxZQUFZLEVBQUE7QUFHZDtFQUNFLFlBQVksRUFBQTtBQUlkO0VBRUksWUFBWSxFQUFBO0FBRmhCO0VBTUksa0JBQWtCLEVBQUE7QUFJdEI7RUFDSSxjQUFjLEVBQUE7QUFHbEI7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsVUFBVSxFQUFBO0FBSVo7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCLEVBQUE7QUFGbEI7SUFLSSxnQkFBZ0IsRUFBQTtBQUlwQjtFQUNFLGVBQWU7RUFDZixTQUFTLEVBQUE7QUFHWDtFQUNFLGlCQUFpQixFQUFBO0FBS25CO0VBQ0UsMkJBQTJCO0VBQzNCLGlCQUFpQixFQUFBO0FBR25CO0VBQ0ksa0JBQWtCLEVBQUE7QUFHdEI7RUFDSSxTQUFTLEVBQUE7QUFHYjtFQUNJLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7QUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7QUFHckI7RUFDRSxjQUFjLEVBQUE7QUN2QmhCO0VENEJFLGdCQUFnQixFQUFBO0FDekJsQjtFRDhCRSxnQkFBZ0IsRUFBQTtBQzNCbEI7RURnQ0Usd0JBQXdCLEVBQUE7QUM3QjFCO0VEa0NFLHdCQUF3QixFQUFBO0FBSzFCO0VBQ0UseUJBQXlCO0VBQ3pCOzs7b0hDakNrSCxFRG9DQztBQUdySDtFQUNFLHlCQUF5QixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zeXNwcm8tc2FsZXNvcmRlci12aWV3LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyo6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIGEge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcbn0qL1xyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMThweDtcclxuICBmb250LXNpemU6IDAuNjAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxuLnRhYmxlIHRoLCAudGFibGUgdGR7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4udGFibGUgdHIge1xyXG4gIGhlaWdodDogMjBweDtcclxufVxyXG5cclxuXHJcbi5jYXJkLWJvZHkge1xyXG4gIC5yb3cge1xyXG4gICAgaGVpZ2h0OiAxOHB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICB9XHJcbn1cclxuXHJcbi5idG4tc217XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxufVxyXG5cclxuLnRib2R5IHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1MDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxuICB3aWR0aDogOTglO1xyXG59XHJcblxyXG5cclxuLmNoZWNrYm94IHtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgcGFkZGluZy10b3A6IDNweDtcclxuXHJcbiAgLnRvZ2dsZS5idG4tc20ge1xyXG4gICAgbWluLWhlaWdodDogMjdweDtcclxuICB9XHJcbn1cclxuXHJcbi5tb2RhbC1mdWxsIHtcclxuICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubW9kYWwtZnVsbCAubW9kYWwtY29udGVudCB7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcblxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmNvbC1mb3JtLWxhYmVse1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLmZhOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGYxMzlcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzYVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBsZXNzIFwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBzZWUgbW9yZSBcIjtcclxufVxyXG5cclxuXHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNEOTgzMUY7XHJcbiAgLypiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSkgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpOyovXHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGRmZGI7XHJcbn1cclxuIiwiLyo6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIGEge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcbn0qL1xuaW5wdXQuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmb250LXNpemU6IDAuNjAwcmVtOyB9XG5cbi50YWJsZSB0aCB7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjsgfVxuXG4udGFibGUgdGgsIC50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4udGFibGUgdHIge1xuICBoZWlnaHQ6IDIwcHg7IH1cblxuLmNhcmQtYm9keSAucm93IHtcbiAgaGVpZ2h0OiAxOHB4OyB9XG5cbi5jYXJkLWJvZHkgLmNvbC1mb3JtLWxhYmVsIHtcbiAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbi5idG4tc20ge1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4udGJvZHkge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1MDBweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgd2lkdGg6IDk4JTsgfVxuXG4uY2hlY2tib3gge1xuICBoZWlnaHQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAzcHg7IH1cbiAgLmNoZWNrYm94IC50b2dnbGUuYnRuLXNtIHtcbiAgICBtaW4taGVpZ2h0OiAyN3B4OyB9XG5cbi5tb2RhbC1mdWxsIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLm1vZGFsLWZ1bGwgLm1vZGFsLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDsgfVxuXG4udXNlci1yb2xlIHtcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuXG4uY29udHJvbC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLnNlYXJjaC1ib3gge1xuICBtYXJnaW46IDA7IH1cblxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xuICBwYWRkaW5nLXRvcDogM3B4O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtaW4td2lkdGg6IDEwMHB4OyB9XG5cbi51c2VyLWRpc2FibGVkIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ubG9ja2VkLW91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcbiAgY29sb3I6IHdoaXRlc21va2U7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtZm9ybS1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOVwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2FcIjsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBsZXNzIFwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiOyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEOTgzMUY7XG4gIC8qYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTsqLyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRkZmRiOyB9XG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnChanges } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { PrinterService } from '../../services/printer.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { QuoteHeader } from 'src/app/models/quote-header.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { SalesOrderHeader } from 'src/app/models/salesorder-header.model';\r\nimport { SalesOrderDetail } from 'src/app/models/salesorder-detail.model';\r\nimport { SalesOrderStatus } from 'src/app/models/salesorder-status.model';\r\nimport { SalesOrderCancelReasonCode } from 'src/app/models/salesorder-cancelreasons.model';\r\nimport { PurchaseOrderList } from 'src/app/models/purchaseorder-list.model';\r\nimport { validation } from '../../services/validation.service';\r\nimport { InvoiceHeader } from '../../models/invoice-header.model';\r\nimport { PurchaseOrderHeader } from '../../models/purchaseorder-header.model';\r\nimport { UserLogin } from '../../models/user-login.model';\r\nimport { CoreAudit } from '../../models/core-audit.model';\r\nimport { Printers } from '../../models/printers.model';\r\nimport { PrinterUserMappings } from '../../models/printer-user-mappings.model';\r\nimport { WHAvailQTY } from '../../models/inventory-wh.model';\r\nimport { SalesOrderList } from '../../models/salesorder-list.model';\r\nimport { InvoiceTrackingLookup } from '../../models/invoice-tracking-lookup.model';\r\nimport { PurchaseOrderDetail } from '../../models/purchaseorder-detail.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-salesorder-view',\r\n templateUrl: './syspro-salesorder-view.component.html',\r\n styleUrls: ['./syspro-salesorder-view.component.scss']\r\n})\r\nexport class SysproSalesOrderViewComponent implements OnInit, AfterViewInit {\r\n\r\n private cart: CartHeader = new CartHeader();\r\n\r\n userLogin = new UserLogin();\r\n auditObj = new CoreAudit();\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('loginModal')\r\n loginModal: ModalDirective;\r\n\r\n uniqueId: string = Utilities.uniqueId();\r\n\r\n loadingIndicator: boolean;\r\n\r\n rows: SalesOrderDetail[] = [];\r\n rowsCache: SalesOrderDetail[] = [];\r\n Printers: Printers[] = [];\r\n printerMappings: PrinterUserMappings[] = [];\r\n inventoryList: Inventory[];\r\n \r\n\r\n\r\n @ViewChild('statusModal')\r\n statusModal: ModalDirective;\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n @ViewChild('pdfModal')\r\n pdfModal: ModalDirective;\r\n\r\n @ViewChild('printModal')\r\n printModal: ModalDirective;\r\n\r\n @ViewChild('commentsModal')\r\n commentsModal: ModalDirective;\r\n\r\n @ViewChild('commentsSelector')\r\n private commentsSelector;\r\n comments: string[];\r\n newComment: string;\r\n commentLine: SalesOrderDetail = new SalesOrderDetail();\r\n\r\n @ViewChild('authModal')\r\n authModal: ModalDirective;\r\n\r\n authorized: boolean;\r\n stringToCompare: string;\r\n\r\n\r\n @Input()\r\n selectedSalesOrder: string;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n cartId: string;\r\n id: string;\r\n gridHeight: number = 0;\r\n TotalItems: number = 0;\r\n TotalLines: number = 0;\r\n TotalExcl: number = 0;\r\n TotalDiscount: number = 0;\r\n TotalExclAfterDiscount: number = 0;\r\n TotalVat: number = 0;\r\n TotalIncl: number = 0;\r\n isSaving: boolean;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n cartSaved: boolean;\r\n quoteNumber: any;\r\n quoteId: string;\r\n quote: QuoteHeader;\r\n salesOrderNumber: string;\r\n // salesOrder: SalesOrderHeader;\r\n salesOrder: SalesOrderHeader = new SalesOrderHeader();\r\n pdfName: string;\r\n isUpdating: any;\r\n quoteHeader: QuoteHeader = new QuoteHeader();\r\n user: any;\r\n allRoles: any[];\r\n src: string;\r\n OrderStatuses: SalesOrderStatus;\r\n\r\n CancelCodes: SalesOrderCancelReasonCode;\r\n CancelReason: string;\r\n\r\n @ViewChild('cancelreasons')\r\n private cancelreasons;\r\n\r\n @ViewChild('cancelreasonsSelector')\r\n private cancelreasonsSelector;\r\n\r\n @ViewChild('statusCodeSelector')\r\n private statusCodeSelector;\r\n\r\n @ViewChild('printerSelector')\r\n private printerSelector;\r\n\r\n purchaseOrders: PurchaseOrderList[] = [];\r\n purchaseOrderDetails: PurchaseOrderDetail[] = [];\r\n poNumber: any;\r\n OrderStatus: string;\r\n showCancelReasons: boolean;\r\n currentStatus: string;\r\n sessionId: string;\r\n canEdit: any;\r\n hasBuyouts: boolean;\r\n placePurchaseOrder: boolean;\r\n SysproUser: User;\r\n poCount: number;\r\n poPostedCount: any;\r\n supervisor: User;\r\n selectedPrinter: string;\r\n lineToCancel: number;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n stockCodedetail: Inventory;\r\n hasDataSheet: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n\r\n hasDataSheets: boolean;\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @Input()\r\n stockCode: string;\r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n waiting: boolean;\r\n hasAddDataSheet: boolean;\r\n lookup: InvoiceTrackingLookup;\r\n buyerResponsible: string;\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router, private route: ActivatedRoute, private authService: AuthService, private printerService: PrinterService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let salesOrderNumber = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n this.id = (action ? action.trim() : \"\");\r\n\r\n this.searchType = \"salesorder\";\r\n this.SysproUser = new User();\r\n\r\n if (salesOrderNumber && salesOrderNumber != \"\") {\r\n\r\n this.salesOrderNumber = salesOrderNumber;\r\n this.auditObj.referenceType = \"SALES ORDER\";\r\n this.auditObj.referenceNumber = this.salesOrderNumber;\r\n this.auditObj.branch = this.branchCode;\r\n this.auditObj.applicationUser = this.authService.currentUser.email;\r\n this.auditObj.actionedBy = this.authService.currentUser.email;\r\n this.auditObj.groupKey = this.accountService.currentUser.id;\r\n this.postAudit();\r\n this.loadData();\r\n\r\n }\r\n\r\n this.printerService.GetPrinters().subscribe(x => this.onPrintersLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n ngOnChanges() {\r\n\r\n this.isViewOnly = this.isViewOnly == true ? this.isViewOnly : false;\r\n\r\n if (this.selectedSalesOrder) {\r\n\r\n this.salesOrderNumber = this.selectedSalesOrder;\r\n this.auditObj.referenceType = \"SALES ORDER\";\r\n this.auditObj.referenceNumber = this.salesOrderNumber;\r\n this.auditObj.branch = this.branchCode;\r\n this.auditObj.applicationUser = this.authService.currentUser.email;\r\n this.auditObj.actionedBy = this.authService.currentUser.email;\r\n this.auditObj.groupKey = this.accountService.currentUser.id;\r\n this.postAudit();\r\n this.loadData();\r\n\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n \r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getSalesOrderHeader(this.salesOrderNumber).subscribe(x => this.onSalesOrderHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.getSalesOrderCancelReasonCodes().subscribe(x => this.onCancelCodesLoaded(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.getSalesOrderStatuses().subscribe(x => this.onStatusesLoaded(x), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.GetSysproComments().subscribe(x => this.onCommentsLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n //if (this.sessionId == \"\" || !this.sessionId) {\r\n // this.sysproService.GetSysproSessionId(this.accountService.currentUser).subscribe(x => this.onsessionCreatedSuccesful(x), error => this.onSessionFailed(error));\r\n //}\r\n \r\n\r\n }\r\n onCommentsLoadSuccessful(x: string[]): void {\r\n this.comments = x;\r\n setTimeout(() => {\r\n if (this.commentsSelector) {\r\n this.commentsSelector.refresh();\r\n }\r\n });\r\n this.newComment = \"\";\r\n console.log(\"COMMENTS\", this.comments);\r\n }\r\n\r\n openCommentsModal() {\r\n this.commentsModal.show();\r\n this.commentLine = new SalesOrderDetail();\r\n this.commentLine.commentType = \"I\";\r\n console.log(\"COMMENT LINE\", this.commentLine);\r\n }\r\n\r\n addTopComment() {\r\n const lineNumber = 0;\r\n let comment = this.commentLine.comment ? this.commentLine.comment : this.newComment.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\");\r\n this.sysproService.InsertSalesOrderComments(this.salesOrder.salesOrderNumber, lineNumber, comment, 0,\r\n \"TOP\", true)\r\n .subscribe(x => this.loadData(), error => this.onDataLoadFailed(error));\r\n this.commentsModal.hide();\r\n }\r\n\r\n addComment() {\r\n const lineNumber = this.rows.length + 1;\r\n let comment = this.commentLine.comment ? this.commentLine.comment : this.newComment.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\");\r\n let isPreviousLineAComment = (this.rows[this.rows.length - 1].lineType == \"6\")? \"Y\" : \"N\";\r\n this.sysproService.InsertSalesOrderComments(this.salesOrder.salesOrderNumber, lineNumber, comment, 0,\r\n isPreviousLineAComment, true)\r\n .subscribe(x => this.loadData(), error => this.onDataLoadFailed(error));\r\n this.commentsModal.hide();\r\n }\r\n\r\n\r\n get defaultPrinter(): string {\r\n return this.configurations.defaultPrinter;\r\n }\r\n\r\n onPrintersLoadSuccesful(x: Printers[]): void {\r\n this.Printers = x;\r\n\r\n setTimeout(() => {\r\n if (this.printerSelector) {\r\n this.printerSelector.refresh();\r\n }\r\n });\r\n\r\n if (this.defaultPrinter) {\r\n this.selectedPrinter = this.defaultPrinter;\r\n }\r\n else {\r\n this.printerService.GetUserPrinterMappings(this.accountService.currentUser.id).subscribe(x => this.onUserPrintersLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n console.log(\"Printers\", x);\r\n }\r\n onUserPrintersLoadSuccesful(x: PrinterUserMappings[]): void {\r\n \r\n this.printerMappings = x;\r\n\r\n if (this.printerMappings.length > 0) {\r\n const printerForInvoice = this.printerMappings.filter(p => p.reportName === \"Invoice\");\r\n this.selectedPrinter = (printerForInvoice.length ? printerForInvoice[0].printerName : this.selectedPrinter);\r\n }\r\n\r\n console.log(\"Printer Mappings\", x);\r\n }\r\n\r\n onStatusesLoaded(x: SalesOrderStatus): void {\r\n this.OrderStatuses = x;\r\n setTimeout(() => {\r\n if (this.statusCodeSelector) {\r\n this.statusCodeSelector.refresh();\r\n }\r\n });\r\n console.log(\"STATUSES\", this.OrderStatuses);\r\n }\r\n onCancelCodesLoaded(x: SalesOrderCancelReasonCode): void {\r\n this.CancelCodes = x;\r\n setTimeout(() => {\r\n if (this.cancelreasonsSelector) {\r\n this.cancelreasonsSelector.refresh();\r\n }\r\n });\r\n console.log(\"CANCEL CODES\", this.CancelCodes);\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchResults = null;\r\n this.sysproService.getSalesOrderSearchByCriteria(this.searchType, this.searchText.trim()).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: SalesOrderList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.viewSalesOrderSelected();\r\n }\r\n\r\n }\r\n\r\n viewSalesOrderSelected() {\r\n if (this.searchResultSelected) {\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.searchResultSelected.customer);\r\n sessionStorage.removeItem(localStorageActions.SalesOrderNumber);\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.searchResultSelected.salesOrderNumber);\r\n if (this.searchResultSelected.invoiceNumber) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.searchResultSelected.invoiceNumber);\r\n }\r\n this.id = this.searchResultSelected.customer;\r\n this.salesOrderNumber = this.searchResultSelected.salesOrderNumber;\r\n this.auditObj.referenceType = \"SALES ORDER\";\r\n this.auditObj.referenceNumber = this.salesOrderNumber;\r\n this.auditObj.branch = this.branchCode;\r\n this.auditObj.applicationUser = this.authService.currentUser.email;\r\n this.auditObj.actionedBy = this.authService.currentUser.email;\r\n this.loadData();\r\n this.router.navigate(['../../salesorders'], { fragment: 'view' });\r\n\r\n }\r\n }\r\n \r\n onSalesOrderHeaderLoadSuccessful(order: SalesOrderHeader, updateAudit?: boolean) {\r\n \r\n let res = order;\r\n if (res && res[0] && res[0].orderStatus) {\r\n this.salesOrder = res[0];\r\n this.currentStatus = this.salesOrder.orderStatus;\r\n this.canEdit = validation.validateCanEditOrder(this.currentStatus);\r\n\r\n this.sysproService.getSalesOrderDetail(this.salesOrderNumber).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.getPurchaseOrderSearchByCriteria(\"SALESORDER\", this.salesOrder.salesOrderNumber).\r\n subscribe(x => this.POSearchSuccesful(x), error => this.onPOLoadFailed(error));\r\n\r\n if (updateAudit) {\r\n this.postAudit();\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Load Error', `This sales order could not be found`,\r\n MessageSeverity.error);\r\n }\r\n \r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n onPOLoadFailed(error: any): void {\r\n\r\n }\r\n POSearchSuccesful(x: PurchaseOrderList[]): void {\r\n this.purchaseOrders = [];\r\n \r\n if (x.length >= 1) {\r\n \r\n let defaultPO = new PurchaseOrderList();\r\n defaultPO.purchaseOrder = this.selectUndefinedOptionValue;\r\n defaultPO.poNumber = this.selectUndefinedOptionValue;\r\n defaultPO.descr = this.selectUndefinedOptionValue;\r\n this.purchaseOrders.push(defaultPO);\r\n this.purchaseOrders = [...this.purchaseOrders, ...x];\r\n this.hasBuyouts = true;\r\n this.placePurchaseOrder = true;\r\n }\r\n }\r\n\r\n onSalesOrderUpdatedSuccessful(x: any): void {\r\n if (x.message) {\r\n this.alertService.showStickyMessage('Failed', 'Updating Sales Order Failed ', MessageSeverity.error);\r\n this.alertService.showStickyMessage(x.message, null, MessageSeverity.error);\r\n }\r\n else {\r\n this.onCartDetailLoadSuccessful(x);\r\n }\r\n }\r\n\r\n onCartDetailLoadSuccessful(salesOrderDetail: SalesOrderDetail[]) {\r\n\r\n if (salesOrderDetail && salesOrderDetail.length >= 1) {\r\n\r\n this.rowsCache = [...salesOrderDetail];\r\n const updateRows = this.rowsCache;\r\n const vat = this.salesOrder.vatPercentage;\r\n this.TotalLines = updateRows.filter(x => x.lineType !== \"6\").length;\r\n this.TotalItems = 0;\r\n this.TotalExcl = 0;\r\n this.TotalDiscount = 0;\r\n this.TotalExclAfterDiscount = 0;\r\n this.TotalVat = 0;\r\n this.TotalIncl = 0;\r\n\r\n for (var product of this.rowsCache) {\r\n var lineTotalExclVat = Calculations.calculateBaseLineTotal(product.orderQty, product.sellingPrice, product.priceConvFac, product.lineTotal);\r\n var lineDiscount = Calculations.calculateLineDiscountTotal(product.orderQty, product.sellingPrice, product.discountPercentage1, product.priceConvFac, 0);\r\n product.nettPrice = Calculations.getGridNettLinePrice(product.orderQty, product.sellingPrice, product.priceConvFac, product.discountPercentage1, 0);\r\n\r\n this.TotalItems += product.orderQty;\r\n this.TotalExcl += lineTotalExclVat;\r\n this.TotalDiscount += lineDiscount;\r\n\r\n var lineVat = 0;\r\n if (vat && product.vatExempt != true) {\r\n lineVat = Calculations.calculateLineVat(lineTotalExclVat, lineDiscount, 0, vat);\r\n }\r\n //var lineVat = Calculations.calculateLineVat(lineTotalExclVat, lineDiscount, 0, vat);\r\n\r\n this.TotalVat += lineVat;\r\n\r\n this.calcTotal(product);\r\n }\r\n\r\n this.TotalExclAfterDiscount = (Calculations.RoundAwayFromZero(this.TotalExcl, 2) - Calculations.RoundAwayFromZero(this.TotalDiscount, 2));\r\n // this.TotalExclAfterDiscount = (Calculations.RoundAwayFromZero(this.TotalExcl - this.TotalDiscount, 2));\r\n this.TotalIncl = Calculations.RoundAwayFromZero((this.TotalExclAfterDiscount + this.TotalVat), 2);\r\n\r\n this.rows = this.rowsCache;\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n \r\n viewCustomer() {\r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n\r\n viewPurchaseOrder() {\r\n if (this.poNumber != \"\" && this.poNumber != \"-1\" && this.poNumber != this.selectUndefinedOptionValue) {\r\n sessionStorage.removeItem(localStorageActions.PurchaseOrder);\r\n sessionStorage.setItem(localStorageActions.PurchaseOrder, this.poNumber);\r\n this.router.navigate(['../../purchaseorders'], { fragment: 'purchaseorder', queryParams: { customer: this.id } });\r\n }\r\n }\r\n\r\n changeStatus(cancel: boolean) {\r\n\r\n let error = \"\";\r\n this.showCancelReasons = cancel;\r\n\r\n error = validation.validateOrderStatus(this.currentStatus, this.OrderStatus, error);\r\n if (error.length > 1) {\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n }\r\n else {\r\n this.statusModal.show();\r\n\r\n if (this.showCancelReasons) {\r\n this.OrderStatus = \"'\\'\";\r\n\r\n\r\n }\r\n else {\r\n this.OrderStatus = this.salesOrder.orderStatus;\r\n }\r\n }\r\n }\r\n\r\n saveStatus() {\r\n\r\n if (this.OrderStatus === \"9\") {\r\n\r\n this.auditObj.actionType = \"CLOSE ORDER\";\r\n this.auditObj.actionInput = this.salesOrder.orderStatus + \" - \" + this.OrderStatus;\r\n this.alertService.showDialog('You have selected status 9 - Complete. Do you want to close this order? You will not be able to invoice once in status 9.',\r\n DialogType.confirm, () => this.continueUpdate(), this.cancelUpdate(), \"Yes, Close Order\", \"No, Cancel Update\");\r\n }\r\n else {\r\n\r\n this.continueUpdate();\r\n }\r\n }\r\n\r\n private continueUpdate() {\r\n this.alertService.startLoadingMessage('Loggin into Syspro...');\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser).subscribe(x => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Logged into syspro successfully`, MessageSeverity.success);\r\n this.sessionId = x.sysproSessionId;\r\n this.SysproUser = x;\r\n this.auditObj.sysproOperator = this.SysproUser.sysproOperator;\r\n this.alertService.startLoadingMessage('Creating Invoice...');\r\n if (this.OrderStatus === \"'\\'\" && this.CancelReason !== \"\") {\r\n this.auditObj.actionType = \"CANCEL\";\r\n this.auditObj.actionInput = this.salesOrder.orderStatus + \": \" + this.CancelReason;\r\n this.auditObj.actionOutput = \"Cancelled Sales Order\";\r\n //Cancle order\r\n this.sysproService.UpdateSalesOrderStatus(this.salesOrder.salesOrderNumber, this.OrderStatus, this.CancelReason, this.sessionId).subscribe(x => this.onSalesOrderHeaderLoadSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n if (this.canReleaseSalesOrders)\r\n {\r\n if (this.OrderStatus === \"8\") {\r\n\r\n this.auditObj.actionType = \"RELEASE ORDER\";\r\n this.auditObj.actionInput = this.salesOrder.orderStatus + \" - \" + this.OrderStatus;\r\n this.authModal.show();\r\n }\r\n else {\r\n this.auditObj.actionType = \"CHANGE STATUS\";\r\n this.auditObj.actionInput = this.salesOrder.orderStatus + \" - \" + this.OrderStatus;\r\n this.sysproService.UpdateSalesOrderStatus(this.salesOrder.salesOrderNumber, this.OrderStatus, \"none\", this.sessionId).subscribe(x => this.onSalesOrderHeaderLoadSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n else {\r\n this.authorized = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Warning', 'Only Finance and Supervisors are Authorized to release Sales Orders', MessageSeverity.error);\r\n // this.loginModal.show();\r\n }\r\n }\r\n this.statusModal.hide();\r\n }, error => this.onSessionFailed(error));\r\n }\r\n\r\n cancelUpdate(): any {\r\n this.statusModal.hide();\r\n }\r\n \r\n\r\n verifyAuth() {\r\n this.alertService.startLoadingMessage(\"Verfiying...\");\r\n this.loadingIndicator = true;\r\n this.fowkesService.VerifyPassword(this.branchCode, \"RELEASE\", encodeURIComponent(this.stringToCompare)).subscribe(x => this.onVerificationSuccess(), error => this.onVerificationFailed(error));\r\n\r\n }\r\n\r\n onVerificationSuccess(): void {\r\n this.authorized = true;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', 'Authorized', MessageSeverity.success);\r\n this.authModal.hide();\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser).subscribe(x => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Logged into syspro successfully`, MessageSeverity.success);\r\n this.sessionId = x.sysproSessionId;\r\n this.SysproUser = x;\r\n this.sysproService.UpdateSalesOrderStatus(this.salesOrder.salesOrderNumber, this.OrderStatus, \"none\", this.sessionId).subscribe(x => this.onSalesOrderHeaderLoadSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }, error => this.onSessionFailed(error));\r\n }\r\n\r\n onVerificationFailed(error: any): void {\r\n this.authorized = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', 'Authorization Failed ', MessageSeverity.error);\r\n }\r\n\r\n validateCancel(): boolean {\r\n let error = \"\";\r\n\r\n if (error == \"\") {\r\n // error = validation.validateCustomerPO(this.cart.customerPoNumber, error);\r\n\r\n //for (var product of this.rows) {\r\n // if (product.lineType == \"1\") {\r\n // error = validation.validateQtyForOrder(product.stockCode, product.availQty, product.orderQty, error);\r\n // }\r\n //}\r\n }\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n goAddItems() {\r\n this.router.navigate(['../../quotes'], { fragment: 'inventory', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n \r\n goAddNSItems() {\r\n this.router.navigate(['../../quotes'], { fragment: 'nonstock', queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n goInvoice() {\r\n\r\n this.isNavigating = true;\r\n if (this.validatePost()) {\r\n \r\n this.printModal.show(); \r\n }\r\n \r\n }\r\n\r\n\r\n onsessionCreatedSuccesful(x: User): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Logged into syspro successfully`, MessageSeverity.success);\r\n\r\n this.sessionId = x.sysproSessionId;\r\n this.SysproUser = x;\r\n this.auditObj.sysproOperator = this.SysproUser.sysproOperator;\r\n this.waiting = false;\r\n }\r\n\r\n\r\n onSessionFailed(error: any): void {\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Error', 'Could not log you into SYSPRO', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n\r\n print() {\r\n\r\n if (this.selectedPrinter) {\r\n if (!this.isSaving) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Loggin into Syspro...');\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser).subscribe(x => this.onFirstsessionCreatedSuccesful(x), error => this.onSessionFailed(error));\r\n //this.sysproService.GetSysproSessionId(this.accountService.currentUser).subscribe(x => {\r\n\r\n // this.alertService.showMessage('Success', `Logged into syspro successfully`, MessageSeverity.success);\r\n // this.sessionId = x.sysproSessionId;\r\n // this.SysproUser = x;\r\n // //this.SysproUser.defaultPrinter = this.selectedPrinter;\r\n // this.auditObj.sysproOperator = this.SysproUser.sysproOperator;\r\n // this.alertService.startLoadingMessage('Creating Invoice...');\r\n // this.auditObj.actionType = \"INVOICE\";\r\n // this.auditObj.actionInput = this.auditObj.applicationUser + \" - \" + this.salesOrder.salesOrderNumber;\r\n\r\n // this.sysproService.PostInvoiceToSyspro(this.salesOrder.salesOrderNumber, x.sysproSessionId).subscribe(x => this.onSorticPOSTSuccesful(x), error => this.onSorticPOSTFailed(error));\r\n // this.printModal.hide();\r\n //}, error => this.onSessionFailed(error));\r\n }\r\n \r\n }\r\n else {\r\n this.alertService.showStickyMessage('Error', 'Please select a printer first.', MessageSeverity.error, \"\");\r\n \r\n }\r\n \r\n }\r\n\r\n onFirstsessionCreatedSuccesful(x: User): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Logged into syspro successfully`, MessageSeverity.success);\r\n this.sessionId = x.sysproSessionId;\r\n this.SysproUser = x;\r\n //this.SysproUser.defaultPrinter = this.selectedPrinter;\r\n this.auditObj.sysproOperator = this.SysproUser.sysproOperator;\r\n this.alertService.startLoadingMessage('Creating Invoice...');\r\n this.auditObj.actionType = \"INVOICE\";\r\n this.auditObj.actionInput = this.auditObj.applicationUser + \" - \" + this.salesOrder.salesOrderNumber;\r\n if (this.SysproUser.sysproSessionId) {\r\n this.auditObj.actionOutput = this.SysproUser.sysproSessionId;\r\n this.postAudit();\r\n\r\n //Check if ITS needs to be updated\r\n //This has to be removed for the new ITS\r\n //if (this.salesOrder.branch_code == \"CT\") {\r\n this.lookup = new InvoiceTrackingLookup();\r\n this.lookup.salesOrder = this.salesOrder.salesOrderNumber;\r\n this.lookup.invoice = this.salesOrder.salesOrderNumber;\r\n this.lookup.creditNote = \"\";\r\n this.lookup.purchaseOrder = (this.purchaseOrders && this.purchaseOrders.length >= 2 ? this.purchaseOrders[1].poNumber : \"\");\r\n this.lookup.poCount = (this.purchaseOrders && this.purchaseOrders.length >= 2 ? this.purchaseOrders.length - 1 : 0);\r\n this.lookup.pods = false;\r\n this.lookup.operatorCode = x.sysproOperator;\r\n this.lookup.customerCode = this.salesOrder.customer;\r\n this.lookup.customerName = this.salesOrder.customerName;\r\n this.lookup.shippingInstructions = this.salesOrder.shippingInstrs;\r\n this.lookup.company = (this.application == \"MaxArcusOnline\" ? \"Max Arcus\" : \"Fowkes Bros\");\r\n this.lookup.branchCode = this.salesOrder.branch_code;\r\n\r\n this.sysproService.addInvoiceTrackingLookup(this.lookup).subscribe(x => { }, error => { });\r\n //}\r\n\r\n //Check if payment reference comment should be added\r\n if (this.salesOrder.terms == \"04\") {\r\n\r\n //Make sure comment has not already been added\r\n let hasBeenAdded = this.rows.filter(x => x.comment == \"PLEASE USE YOUR INVOICE NUMBER AS REFERENCE\");\r\n if (hasBeenAdded && hasBeenAdded.length >= 1) {\r\n\r\n }\r\n else {\r\n\r\n const lineNumber = this.rows.length + 1;\r\n\r\n let isPreviousLineAComment = (this.rows[this.rows.length - 1].lineType == \"6\") ? \"Y\" : \"N\";\r\n this.sysproService.InsertSalesOrderPaymentComments(this.salesOrder.salesOrderNumber, lineNumber, \"auto\", 0,\r\n isPreviousLineAComment, true)\r\n .subscribe(x => { }, error => { });\r\n } \r\n }\r\n\r\n this.sysproService.PostInvoiceToSyspro(this.salesOrder.salesOrderNumber, x.sysproSessionId).subscribe(x => this.onSorticPOSTSuccesful(x), error => this.onSorticPOSTFailed(error));\r\n this.printModal.hide();\r\n }\r\n }\r\n\r\n validatePost(): boolean {\r\n let error = \"\";\r\n error = validation.validateOrderStatus(this.salesOrder.orderStatus, \"9\", error);\r\n // error = validation.validateCustomerOnHoldOrOverCredit(this.customer.customerOnHold, this.customer.creditLimit, this.customer.currentBalance1, error);\r\n if (error == \"\") {\r\n //error = validation.validateCustomerPO(this.cart.customerPoNumber, error);\r\n //error = validation.validateSalesPerson(this.cart.salesperson, error);\r\n //error = validation.validateShippingInstructions(this.cart.shippingInstrs, error);\r\n if (this.placePurchaseOrder) {\r\n\r\n for (var po of this.purchaseOrders) {\r\n if (po.status != \"*\" && !po.printed && po.poNumber != this.selectUndefinedOptionValue) {\r\n //make sure po has been printed\r\n error = validation.validatePurchaseOrderPrinted(po.purchaseOrder, error);\r\n if (error.length > 1) {\r\n let poError = \"Remember to send Supplier PO for: \" + error;\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', poError, MessageSeverity.error);\r\n return false;\r\n }\r\n\r\n console.log(\"purchaseOrder\", po);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n\r\n onSorticPOSTFailed(error: any): void {\r\n this.isSaving = false;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Error', 'The below errors occured whilst placing Invoice:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //Check if invoice actually created:\r\n\r\n this.sysproService.getInvoiceHeader(this.salesOrderNumber, this.salesOrderNumber).subscribe(x => this.onInvoiceHeaderLoadSuccessful(x), error => this.onInvoiceLoadFailed(error));\r\n\r\n }\r\n onInvoiceLoadFailed(error: any): void {\r\n\r\n \r\n }\r\n\r\n onInvoiceHeaderLoadSuccessful(x: InvoiceHeader): void {\r\n this.alertService.showStickyMessage('Note', 'The invoice has been created in SYSPRO, do not post again the system will try to continue with the process', MessageSeverity.info);\r\n\r\n this.onSorticPOSTSuccesful(x);\r\n }\r\n\r\n onSorticPOSTSuccesful(x: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n let invoiceHeader = x[0];\r\n if (invoiceHeader)\r\n {\r\n this.alertService.showMessage('Success', `Created Invoice`, MessageSeverity.success);\r\n\r\n this.auditObj.actionOutput = \"Created Invoice: \" + invoiceHeader.invoiceNumber;\r\n this.postAudit();\r\n\r\n this.auditObj.referenceType = \"INVOICE\";\r\n this.auditObj.referenceNumber = invoiceHeader.invoiceNumber;\r\n\r\n sessionStorage.removeItem(localStorageActions.InvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, invoiceHeader.invoiceNumber);\r\n let user = this.accountService.currentUser;\r\n user.defaultPrinter = this.selectedPrinter;\r\n console.log(\"PRINT\" + invoiceHeader.invoiceNumber, user);\r\n\r\n\r\n this.printerService.PrintInvoice(invoiceHeader.invoiceNumber, true, user).subscribe(x => this.onPrintSuccesful(x), error => this.onSorticPOSTFailed(error));\r\n\r\n\r\n if (!this.placePurchaseOrder) {\r\n\r\n this.isNavigating = true;\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: this.id, invoice: invoiceHeader.invoiceNumber } });\r\n\r\n }\r\n else {\r\n //For each related purchase order post GRN\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser, true).subscribe(x => {\r\n \r\n this.alertService.showMessage('Success', `Logged into syspro successfully`, MessageSeverity.success);\r\n this.sessionId = x.sysproSessionId;\r\n this.SysproUser = x;\r\n this.poCount = 0;\r\n this.poPostedCount = 0;\r\n this.alertService.startLoadingMessage('Posting GRNs...');\r\n this.auditObj.referenceType = \"GRN\";\r\n this.auditObj.referenceNumber = invoiceHeader.invoiceNumber;\r\n for (const po of this.purchaseOrders.filter(x => x.poNumber != this.selectUndefinedOptionValue)) {\r\n this.auditObj.actionInput = \"PO: \" + po.poNumber + \"Status: \" + po.status;\r\n if (po.status != \"*\" && po.status != \"9\") {\r\n this.poCount++;\r\n console.log(\"PO\", po);\r\n const postObject = {\r\n \"user\": this.SysproUser, \"header\": invoiceHeader, \"poResult\": po\r\n };\r\n\r\n console.log(\"postObject\", postObject);\r\n this.sysproService.PostGRNToSyspro(postObject).subscribe(x => this.onPortorPOSTSuccesful(x), error => this.onSorticPOSTFailed(error));\r\n\r\n this.postAudit();\r\n }\r\n }\r\n }, error => this.onSessionFailed(error));\r\n }\r\n }\r\n else {\r\n console.log(\"POST RESPONSE\", x);\r\n this.isSaving = false;\r\n this.alertService.showStickyMessage('Failed', 'Creating Invoice Failed ', MessageSeverity.error);\r\n this.alertService.showStickyMessage(x.message, null, MessageSeverity.error);\r\n this.loadData();\r\n }\r\n }\r\n\r\n onPrintSuccesful(x: CoreAudit): void {\r\n console.log(\"PRINTED\", x);\r\n\r\n this.isSaving = false;\r\n this.alertService.showMessage('Success', `Printed Invoice`, MessageSeverity.success);\r\n }\r\n\r\n onPortorPOSTSuccesful(x: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.poPostedCount ++;\r\n console.log(\"GRN\", x);\r\n var header = x[0];\r\n if (header) {\r\n if (this.poCount == this.poPostedCount) {\r\n this.alertService.showMessage('Success', `Created GRN`, MessageSeverity.success);\r\n this.isNavigating = true;\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: this.id, invoice: x.salesOrder } });\r\n }\r\n }\r\n else {\r\n\r\n this.isSaving = false;\r\n this.alertService.showStickyMessage('Failed', 'Creating GRN Failed ', MessageSeverity.error);\r\n this.alertService.showStickyMessage(x.message, null, MessageSeverity.error);\r\n }\r\n \r\n }\r\n\r\n onStockLoadSuccessful(inventory: any[]) {\r\n\r\n this.inventoryList = inventory[0];\r\n }\r\n\r\n stockCodeModalHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n if (row.lineType != \"7\" && row.mapped) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.stockDescription;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.addSheetImage = row.addSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n onStockCodeLoadSuccessful(row: Inventory): void {\r\n\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail = row[0];\r\n this.hasDataSheet = false;\r\n this.hasSpecials = false;\r\n\r\n if (this.stockCodedetail.dataSheetImage) {\r\n this.hasDataSheet = true;\r\n }\r\n if (this.stockCodedetail.addSheetImage) {\r\n this.hasAddDataSheet = true;\r\n this.stockCodedetail.addSheetImage = encodeURIComponent(this.stockCodedetail.addSheetImage);\r\n }\r\n if (this.stockCodedetail.specialsImage) {\r\n this.hasSpecials = true;\r\n }\r\n if (!!this.stockCodedetail) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.sysproService.getStockCodeAvailableQuantities(row.alternateKey.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n openSpecials(specialsImg: string) {\r\n if (!!specialsImg && specialsImg != \"\") {\r\n window.open(this.stockCodedetail.filePath + \"/SpecialImages/\" + specialsImg, \"_blank\");\r\n }\r\n }\r\n\r\n showWHDetail(row: any, event) {\r\n if (row) {\r\n if (row.lineType != \"7\") {\r\n this.stockDescription = row.stockCode + \": \" + row.stockDescription;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n\r\n onEmailLoadSuccessful() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasSpecials = false;\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\"), this.branchCode, this.application).subscribe(x => this.loadInventoryEmailModal(description, stockCode));\r\n }\r\n\r\n private loadInventoryEmailModal(description: string, stockCode: string) {\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.onSpecial && this.stockCodedetail.specialsImage.length >= 1);\r\n\r\n this.emailModal.show();\r\n this.emailObject.RecepientName = this.salesOrder.contact;\r\n this.emailObject.RecepientEmail = this.salesOrder.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n viewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n console.log(this.emailObject);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.emailObject.AddDoc1 = (this.attachDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var stockCode = this.emailObject.Attachment.replace('/', '_').replace('+', '_');\r\n\r\n this.src = url;\r\n // window.open(this.src).print();\r\n // const blobUrl = window.URL.createObjectURL((test));\r\n //const iframeDoc = document.getElementsByTagName(\"iframe\")[0].contentWindow;\r\n // iframeDoc.src = url;\r\n\r\n\r\n\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = stockCode + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n //private saveSuccessHelper(res?: any) {\r\n\r\n // this.cartSaved = true;\r\n\r\n // this.alertService.stopLoadingMessage();\r\n\r\n // if (res) {\r\n // console.log(res);\r\n // }\r\n\r\n // if (this.isNavigating) {\r\n // this.router.navigate(['../orders'], { fragment: 'cart', queryParams: { customer: this.id, cartId: this.cartId } });\r\n // }\r\n\r\n // if (this.isUpdating) {\r\n\r\n // this.isUpdating = false;\r\n // this.alertService.showMessage('Success', this.quoteId + ` Updated successfully`, MessageSeverity.success);\r\n // }\r\n // else {\r\n\r\n // this.isSaving = false;\r\n // this.alertService.showMessage('Success', this.cartId + ` Created successfully`, MessageSeverity.success);\r\n // }\r\n\r\n //}\r\n\r\n //private saveFailedHelper(error: any) {\r\n // this.isSaving = false;\r\n // this.alertService.stopLoadingMessage();\r\n // this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n // this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n // //if (this.changesFailedCallback) {\r\n // // this.changesFailedCallback();\r\n // //}\r\n //}\r\n\r\n //private save(location?) {\r\n // this.isSaving = true;\r\n // this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n \r\n // for (var product of this.rowsCache) {\r\n // }\r\n\r\n\r\n //}\r\n\r\n //viewInventory() {\r\n\r\n //}\r\n\r\n calcOrderQty(row: any, event) {\r\n if (row.lineType != \"6\") {\r\n var val = event.target.value;\r\n row.orderQty = val;\r\n\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = total;\r\n }\r\n }\r\n\r\n\r\n calcTotal(row: any) {\r\n if (row.lineType != \"6\") {\r\n let total = Calculations.getGridLineTotal(row.orderQty, row.sellingPrice, row.priceConvFac, row.discountPercentage1, 0);\r\n row.lineTotal = total;\r\n //Calculations.precise_round(total, 2);\r\n }\r\n }\r\n\r\n setDelete(row: SalesOrderDetail) {\r\n\r\n this.CancelReason = \"07\";\r\n this.lineToCancel = row.salesOrderLineNumber;\r\n this.auditObj.actionType = \"DELETE LINE\";\r\n this.auditObj.actionInput = this.CancelReason + \" - \" + this.lineToCancel.toString();\r\n\r\n var headers = null;\r\n\r\n //Check if this is a NS and has a po number attached\r\n if (row.lineType == \"7\") {\r\n //Get current POs\r\n headers = this.purchaseOrders.filter(p => Utilities.searchArray(row.boSupplierInvoice,\r\n false, p.purchaseOrder));\r\n\r\n }\r\n\r\n if (headers && headers.length >= 1 && headers[0].status != \"*\") {\r\n this.alertService.showStickyMessage('Error', \"You cannot delete this item because there is an active purchase order. Please ask the finance team to cancel PO \"\r\n + headers[0].purchaseOrder + \" first in order to remove this item.\", MessageSeverity.error);\r\n }\r\n else {\r\n \r\n let detail = this.rows.find(x => x.salesOrderLineNumber == this.lineToCancel);\r\n detail.boLineInfo = this.CancelReason;\r\n\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser).subscribe(x => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Logged into syspro successfully`, MessageSeverity.success);\r\n this.sessionId = x.sysproSessionId;\r\n this.SysproUser = x;\r\n this.auditObj.actionedBy = x.userName;\r\n this.auditObj.sysproOperator = x.sysproOperator;\r\n const postObject = {\r\n \"user\": this.SysproUser, \"header\": this.salesOrder, \"detail\": detail\r\n };\r\n this.postAudit();\r\n this.sysproService.UpdateSalesOrderSyspro(postObject).subscribe(x => this.onSalesOrderUpdatedSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }, error => this.onSessionFailed(error));\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n viewCustomerNotes(row: ArCustomerEdit) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n this.router.navigate(['../../customers'], { fragment: 'notes', queryParams: { customer: row.customer } });\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n\r\n get canReleaseSalesOrders() {\r\n return this.accountService.userHasPermission(Permission.releaseSalesOrdersPermission);\r\n }\r\n\r\n\r\n login() {\r\n this.loadingIndicator = true;\r\n this.alertService.startLoadingMessage('', 'Attempting Supervisor login...');\r\n\r\n this.auditObj.actionType = \"LOGIN SUPERVISOR\";\r\n this.auditObj.actionInput = this.auditObj.applicationUser + \" - \" + this.userLogin.userName;\r\n this.auditObj.actionOutput = \"LOGGED IN Supervisor\";\r\n\r\n this.authService.loginSupervisor(this.userLogin.userName, this.userLogin.password)\r\n .subscribe(\r\n user => {\r\n setTimeout(() => {\r\n if (user.jobTitle === \"Supervisor\") {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Supervisor Login', `Granted ${user.userName} override`, MessageSeverity.success);\r\n this.loginModal.hide();\r\n this.supervisor = user;\r\n this.auditObj.actionedBy = this.supervisor.userName;\r\n this.auditObj.actionType = \"RELEASE ORDER\";\r\n this.auditObj.actionInput = this.salesOrder.orderStatus + \" - \" + this.OrderStatus;\r\n this.authModal.show();\r\n //this.sysproService.UpdateSalesOrderStatus(this.salesOrder.salesOrderNumber, this.OrderStatus, \"none\", this.sessionId).subscribe(x => this.onSalesOrderHeaderLoadSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n console.log(\"LOGGED IN Supervisor\", user);\r\n }\r\n else {\r\n this.auditObj.actionOutput = \"Error: Supervisor not authenticated\" + Error;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Unable to login', 'Supervisor not authenticated', MessageSeverity.error, Error);\r\n }\r\n }, 500);\r\n },\r\n error => {\r\n\r\n this.auditObj.actionOutput = \"Error: Unable to login\" + Utilities.getResponseBody(error);\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Unable to login', 'An error occured whilst logging in, please try again later.\\nError: ' + Utilities.getResponseBody(error), MessageSeverity.error, error);\r\n\r\n });\r\n\r\n this.postAudit();\r\n }\r\n\r\n private postAudit() {\r\n this.sysproService.postCoreAudit(this.auditObj).subscribe(x => console.log(x));\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{row.user_first_name}} {{row.user_last_name}} ({{row.sequenceNumber}})\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:'R':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n Complete\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{sumtotalExcluding | currency:'R':'symbol':'1.2' }} \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Quote:

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

SALES ORDER:

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

ITS:

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

Order Info:

\\r\\n \\r\\n
\\r\\n
\\r\\n {{webOrder.placed_id}}\\r\\n\\r\\n = 1\\\" class=\\\"table table-striped table-bordered\\\" cellspacing=\\\"0\\\" width=\\\"100%\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
Payment OptionStatusReferenceAmount
{{row.method}}{{row.status}}{{row.gateway_reference}}{{row.amount | currency:'R':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 3px !important;\\n /*white-space: normal !important;*/\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFxzeXNwcm8td2Vib3JkZXJzLW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsK0JBQStCLEVBQUE7O0FBR2pDO0VBQ0UsaUNBQWlDO0VBQ2pDLGtDQUFBO0VBQ0EsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLG1CQUFtQjtJQUNuQixnQ0FBZ0MsRUFBQTs7QUFScEM7SUFhSSxnQkFBZ0I7SUFDaEIsMEJBQTBCLEVBQUE7O0FBZDlCO0lBa0JJLHFDQUFxQyxFQUFBOztBQUl6QztFQUNFLFlBQVk7RUFDWixtQkFBbUIsRUFBQTs7QUFHckI7RUFDRSxZQUFZLEVBQUE7O0FBR2Q7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCLEVBQUE7O0FBRmxCO0lBS0ksZ0JBQWdCLEVBQUE7O0FBTXBCO0VBQ0UsMkJBQTJCO0VBQzNCLGlCQUFpQixFQUFBOztBQUduQjtFQUNJLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLFNBQVMsRUFBQTs7QUFHYjtFQUNJLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7O0FBR3BCO0VBQ0ksV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvc3lzcHJvLXdlYm9yZGVycy1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAycHggNXB4IDAgM3B4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIC8qd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50OyovXHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4NjhlOTU7XHJcbiAgICAvL2NvbG9yOiAjRDkyMzBGO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgsIC50YWJsZSB0ZHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcblxyXG4gIC50b2dnbGUuYnRuLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbiJdfQ== */\"","\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AfterViewInit, Component, ElementRef, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { isBetween } from 'ngx-bootstrap/chronos/utils/date-compare';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { QuoteList } from 'src/app/models/quote-list.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { CoreAudit } from '../../models/core-audit.model';\r\nimport { InvoiceTrackingStatus } from '../../models/invoice-tracking-status.model';\r\nimport { Outbox } from '../../models/wapp-inbox.model';\r\nimport { WebLineItem } from '../../models/web-line-item.model';\r\nimport { WebOrder } from '../../models/web-order.model';\r\nimport { WebPayment } from '../../models/web-payment.model';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { ExternalHTTPService } from '../../services/external-api.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { SysproCustomerViewComponent } from './syspro-customer-view.component';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'syspro-weborders-management',\r\n templateUrl: './syspro-weborders-management.component.html',\r\n styleUrls: ['./syspro-weborders-management.component.scss']\r\n})\r\nexport class SysproWebOrdersManagementComponent implements OnInit, AfterViewInit {\r\n\r\n private cart: CartHeader = new CartHeader();\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n ranges = {\r\n 'All Dates': [moment('2023-01-01').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n columns: any[] = [];\r\n rows: WebOrder[] = [];\r\n rowsCache: WebOrder[] = [];\r\n rowsInclCancelled: WebOrder[] = [];\r\n dateRows: WebOrder[] = [];\r\n loadingIndicator: boolean;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @ViewChild('quotesModal')\r\n quotesModal: ModalDirective;\r\n\r\n @ViewChild('salesOrderModal')\r\n salesOrderModal: ModalDirective;\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n\r\n @ViewChild('weborderDetailModal')\r\n weborderDetailModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('quoteTemplate')\r\n quoteTemplate: TemplateRef;\r\n\r\n @ViewChild('nameTemplate')\r\n nameTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('salesOrderTemplate')\r\n salesOrderTemplate: TemplateRef;\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('previewTemplate')\r\n previewTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('customerEditor')\r\n customerEditor: SysproCustomerViewComponent;\r\n inventoryList: Inventory[];\r\n\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n cartId: string;\r\n id: string;\r\n gridHeight: number = 0;\r\n TotalItems: number = 0;\r\n TotalLines: number = 0;\r\n TotalExcl: number = 0;\r\n TotalDiscount: number = 0;\r\n TotalExclAfterDiscount: number = 0;\r\n TotalVat: number = 0;\r\n TotalIncl: number = 0;\r\n isSaving: boolean;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n cartSaved: boolean;\r\n quoteNumber: any;\r\n quotes: QuoteList[];\r\n\r\n check30Days: boolean;\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: QuoteList[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @ViewChild('statusListSelector')\r\n private statusListSelector;\r\n private allstatuses: string = \"All\";\r\n selectedStatus: string = \"\";\r\n\r\n @ViewChild('searchInput')\r\n searchInput: ElementRef;\r\n searchValue: string = \"\";\r\n smartsearch: string = \"\";\r\n\r\n selectedCustomer: string;\r\n selectedQuote: string;\r\n selectedSalesOrder: string;\r\n selectedInvoice: string;\r\n weborders: WebOrder[];\r\n webOrder: WebOrder;\r\n webOrderLines: WebLineItem[] = [];\r\n webOrderPayment: WebPayment[] = [];\r\n sumtotalExcluding: number;\r\n sumtotalIncluding: number;\r\n sumtotalVat: number;\r\n\r\n chkAll: boolean;\r\n chkQ: boolean;\r\n chkI: boolean;\r\n chkD: boolean;\r\n chkC: boolean;\r\n chkCompleted: boolean;\r\n chkCanceled: boolean;\r\n\r\n currentStatus: string;\r\n invoiceNumber: string;\r\n\r\n\r\n auditObj = new CoreAudit();\r\n outboxDetail: Outbox;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService, private router: Router,\r\n private route: ActivatedRoute, private externalService: ExternalHTTPService, private http: HttpClient) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let quoteNumber = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n\r\n\r\n this.auditObj.referenceType = \"WEBORDER\";\r\n this.auditObj.actionType = \"STATUS\";\r\n this.auditObj.branch = this.branchCode;\r\n this.auditObj.applicationUser = this.accountService.currentUser.email;\r\n this.auditObj.actionedBy = this.accountService.currentUser.email;\r\n this.auditObj.groupKey = this.accountService.currentUser.id;\r\n\r\n this.selected = {\r\n startDate: moment().subtract(0, 'year').startOf('year'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n\r\n\r\n this.quoteNumber = quoteNumber;\r\n this.id = action;\r\n\r\n this.setData();\r\n this.chkCompleted = true;\r\n this.chkCanceled = true;\r\n\r\n this.loadData();\r\n \r\n }\r\n\r\n private setData() {\r\n this.columns = [\r\n { prop: 'id', name: 'Order Id', width: 50 },\r\n { prop: 'created', name: 'Date', width: 100, cellTemplate: this.dateTemplate },\r\n { prop: 'placed_id', name: 'Waybill', width: 100, cellTemplate: this.selectTemplate },\r\n { prop: 'user_first_name', name: 'Customer Name', width: 150, cellTemplate: this.nameTemplate},\r\n { prop: 'grand_total', name: 'Total', width: 90, cellTemplate: this.totalTemplate, cellClass: \"right\" }, \r\n { prop: 'internalStatus', name: 'Status', width: 100 },\r\n { prop: 'quoteNumber', name: 'Quote Number', width: 120, cellTemplate: this.quoteTemplate },\r\n { prop: 'salesOrder', name: 'SalesOrder', width: 100, cellTemplate: this.salesOrderTemplate },\r\n { prop: 'invoice', name: 'ITS', width: 100, cellTemplate: this.invoiceTemplate },\r\n { prop: 'user_email', name: 'Customer Email', width: 150 },\r\n { prop: 'user_contact_number', name: 'Customer Tel', width: 90 }\r\n ];\r\n\r\n\r\n this.columns.push({ name: 'Update Order Status', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n\r\n }\r\n\r\n summaryTotal(cells: number[]): string {\r\n const filteredCells = cells.filter(cell => !!cell);\r\n return filteredCells.reduce((sum, cell) => (sum += cell), 0).toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.setData();\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n\r\n\r\n filterchkAll() {\r\n this.chkAll = !this.chkAll;\r\n this.filterChanged();\r\n }\r\n\r\n // Orders To be Invoiced\r\n filterchkQ() {\r\n this.chkQ = !this.chkQ;\r\n this.filterChanged();\r\n }\r\n\r\n // Orders still in Warehouse\r\n filterchkI() {\r\n this.chkI = !this.chkI;\r\n this.filterChanged();\r\n }\r\n\r\n // Orders Out for Delivery\r\n filterchkD() {\r\n this.chkD = !this.chkD;\r\n this.filterChanged();\r\n }\r\n\r\n // Collected By Customer\r\n filterchkC() {\r\n this.chkC = !this.chkC;\r\n this.filterChanged();\r\n }\r\n\r\n filterCompleted() {\r\n this.chkCompleted = !this.chkCompleted;\r\n this.filterChanged();\r\n }\r\n\r\n filterCancelled() {\r\n this.chkCanceled = !this.chkCanceled;\r\n this.filterChanged();\r\n }\r\n\r\n filterChanged() {\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.dateRows = this.rowsCache.filter(d => d.createDate >= startD && d.createDate <= endD);\r\n \r\n if (this.chkQ || this.chkI || this.chkD || this.chkC ) {\r\n this.rows = this.dateRows.filter(m =>\r\n (this.chkQ ? m.quoteNumber != \"\" && m.salesOrder == \"\" : '') ||\r\n (this.chkI ? (m.invoice != \"\" && m.internalStatus == \"ITS\") : '') ||\r\n (this.chkD ? (m.invoice != \"\" && m.internalStatus == \"COURIER\") : '') ||\r\n (this.chkC ? (m.invoice != \"\" && m.internalStatus == \"COLLECTION\") : ''));\r\n }\r\n else {\r\n this.rows = this.dateRows;\r\n }\r\n\r\n if (this.chkCompleted == true) {\r\n this.rows = this.rows.filter(f => f.internalStatus != \"COMPLETED\");\r\n }\r\n\r\n if (this.chkCanceled == true) {\r\n this.rows = this.rows.filter(f => f.internalStatus != \"CANCELLED\");\r\n }\r\n\r\n if (this.searchValue != \"\") {\r\n\r\n this.rows = this.rows.filter(r => Utilities.searchArray(this.searchValue,\r\n false, r.user_first_name, r.quoteNumber, r.user_last_name, r.salesOrder, r.internalStatus, r.created, r.placed_id, r.user_email));\r\n }\r\n \r\n\r\n var totalExcl = 0;\r\n var totalIncl = 0;\r\n var totalVat = 0;\r\n this.rows.forEach((order, index, x) => {\r\n (order).index = index + 1;\r\n totalExcl += order.sub_total;\r\n totalIncl += order.grand_total;\r\n //totalVat += order.vat;\r\n });\r\n\r\n this.sumtotalExcluding = totalExcl;\r\n this.sumtotalIncluding = totalIncl;\r\n this.sumtotalVat = totalVat;\r\n\r\n this.rows = this.rows.sort((x, y) => x.createDate > y.createDate ? -1 : y.createDate > x.createDate ? 1 : 0);\r\n }\r\n\r\n\r\n filterOrders() {\r\n if (this.selectedStatus == \"All\") {\r\n this.rows = [...this.rowsCache];\r\n }\r\n else {\r\n if (this.selectedStatus == \"Q\") {\r\n this.rows = this.rowsCache.filter(r => r.quoteNumber != \"\" && r.salesOrder == \"\");\r\n }\r\n if (this.selectedStatus == \"I\") {\r\n this.rows = this.rowsCache.filter(r => r.invoice != \"\" && r.internalStatus == \"ITS\");\r\n }\r\n if (this.selectedStatus == \"D\") {\r\n this.rows = this.rowsCache.filter(r => r.invoice != \"\" && r.internalStatus == \"COURIER\");\r\n }\r\n if (this.selectedStatus == \"C\") {\r\n this.rows = this.rowsCache.filter(r => r.invoice != \"\" && r.internalStatus == \"COMPLETE\");\r\n }\r\n }\r\n\r\n var totalExcl = 0;\r\n var totalIncl = 0;\r\n var totalVat = 0;\r\n this.rows.forEach((order, index, x) => {\r\n (order).index = index + 1;\r\n totalExcl += order.sub_total;\r\n totalIncl += order.grand_total;\r\n //totalVat += order.vat;\r\n });\r\n\r\n this.sumtotalExcluding = totalExcl;\r\n this.sumtotalIncluding = totalIncl;\r\n this.sumtotalVat = totalVat;\r\n }\r\n\r\n\r\n reset() {\r\n this.selectedStatus = \"All\";\r\n this.searchValue = \"\";\r\n this.chkQ = false;\r\n this.chkI = false;\r\n this.chkD = false;\r\n this.chkC = false;\r\n this.chkCompleted = true;\r\n this.chkCanceled = true;\r\n this.invoiceNumber = \"\";\r\n this.currentStatus = \"\";\r\n\r\n this.itsModalHide();\r\n this.weborderDetailModalHide();\r\n\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n\r\n this.searchType = \"customer\";\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getAllWebOrders().subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n onSearchChanged(e: any) {\r\n\r\n let value = this.smartsearch;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.dateRows = this.rowsCache.filter(d => d.createDate >= startD && d.createDate <= endD);\r\n\r\n if (value.trim() != \"\") {\r\n if (this.chkQ || this.chkI || this.chkD || this.chkC) {\r\n this.rows = this.dateRows.filter(m =>\r\n (this.chkQ ? m.quoteNumber != \"\" && m.salesOrder == \"\" : '') ||\r\n (this.chkI ? (m.invoice != \"\" && m.internalStatus == \"ITS\") : '') ||\r\n (this.chkD ? (m.invoice != \"\" && m.internalStatus == \"COURIER\") : '') ||\r\n (this.chkC ? (m.invoice != \"\" && m.internalStatus == \"COLLECTION\") : ''));\r\n }\r\n\r\n this.rows = this.rows.filter(r => Utilities.searchArray(value,\r\n false, r.user_first_name, r.quoteNumber, r.user_last_name, r.salesOrder, r.internalStatus, r.created, r.placed_id, r.user_email));\r\n this.searchValue = value;\r\n \r\n\r\n }\r\n else {\r\n this.searchValue = \"\";\r\n if (this.chkQ || this.chkI || this.chkD || this.chkC) {\r\n this.rows = this.dateRows.filter(m =>\r\n (this.chkQ ? m.quoteNumber != \"\" && m.salesOrder == \"\" : '') ||\r\n (this.chkI ? (m.invoice != \"\" && m.internalStatus == \"ITS\") : '') ||\r\n (this.chkD ? (m.invoice != \"\" && m.internalStatus == \"COURIER\") : '') ||\r\n (this.chkC ? (m.invoice != \"\" && m.internalStatus == \"COLLECTION\") : ''));\r\n }\r\n else {\r\n\r\n this.rows = [...this.dateRows];\r\n }\r\n }\r\n\r\n\r\n if (this.chkCompleted == true) {\r\n this.rows = this.rows.filter(f => f.internalStatus != \"COMPLETED\");\r\n }\r\n }\r\n\r\n completeWebOrder(row: WebOrder) {\r\n this.invoiceNumber = row.invoice;\r\n\r\n if (this.invoiceNumber != \"\" && row.internalStatus != \"COMPLETED\") {\r\n this.updateWebOrder(\"COMPLETED\");\r\n\r\n }\r\n else {\r\n\r\n this.alertService.showMessage('Warning', `Order can not be completed`, MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n cancelWebOrder(row: WebOrder) {\r\n this.invoiceNumber = row.invoice;\r\n if (this.invoiceNumber != \"\") {\r\n this.updateWebOrder(\"CANCELLED\");\r\n }\r\n }\r\n\r\n saveWebOrder(row: WebOrder) {\r\n\r\n if (this.selectedStatus) {\r\n row.statusOverride = true;\r\n row.internalStatus = this.selectedStatus;\r\n\r\n this.auditObj.referenceNumber = row.placed_id;\r\n this.auditObj.actionOutput = this.selectedStatus;\r\n\r\n this.sysproService.UpdateWebOrderStatusWithComment(row.id, row).\r\n subscribe(x => this.onUpdateSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n whatsappReminder(row: WebOrder) {\r\n\r\n if (row && row.user_contact_number) {\r\n\r\n this.outboxDetail = new Outbox();\r\n\r\n this.outboxDetail.toPhoneNumber = row.user_contact_number;\r\n this.outboxDetail.content = \"Template\";\r\n this.outboxDetail.headerMediaFileId = row.placed_id;\r\n this.outboxDetail.nextGenUser = this.accountService.currentUser.userName;\r\n\r\n this.sysproService.sendTemplateNoFile(this.outboxDetail.toPhoneNumber, this.outboxDetail.nextGenUser,\r\n this.outboxDetail.headerMediaFileId).subscribe(x => this.onWhatsappSentSuccesful(x, row), error => this.WhatsappSentFailed(error));\r\n }\r\n \r\n\r\n }\r\n\r\n WhatsappSentFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Error', `Something went wrong: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n onWhatsappSentSuccesful(x: any, row: WebOrder): void {\r\n console.log(x);\r\n\r\n const currentDate = new Date(); // Gets the current date and time\r\n // Formats the current date and time as a string, e.g., \"2024-01-25 14:30\"\r\n const dateTimeStr = currentDate.toISOString().replace('T', ' ').substring(0, 16);\r\n // Appends the message and the current date and time to the internal comment\r\n row.internalComment += `Reminder ${x.message} on ${dateTimeStr}`;\r\n\r\n this.sysproService.UpdateWebOrderStatusWithComment(row.id, row).\r\n subscribe(result => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('', `\"${x.message}\"`, MessageSeverity.info);\r\n this.postAudit();\r\n this.reset();\r\n\r\n }, error => this.onDataLoadFailed(error)); \r\n }\r\n\r\n updateWebOrder(status: string) {\r\n\r\n if (status != \"\") {\r\n this.auditObj.referenceNumber = this.invoiceNumber;\r\n this.auditObj.actionOutput = status;\r\n this.sysproService.updateWebOrderStatus(this.invoiceNumber, status).\r\n subscribe(x => this.onUpdateSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n onUpdateSuccessful(x: any): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Order Updated`, MessageSeverity.success);\r\n this.postAudit();\r\n this.reset();\r\n }\r\n\r\n private postAudit() {\r\n this.sysproService.postCoreAudit(this.auditObj).subscribe(x => console.log(x));\r\n }\r\n\r\n viewOrder(row: WebOrder) {\r\n\r\n this.webOrder = new WebOrder();\r\n this.webOrder = row;\r\n\r\n this.currentStatus = row.internalStatus;\r\n this.invoiceNumber = row.invoice;\r\n this.selectedStatus = row.internalStatus;\r\n // this.sysproService.getWebOrderLineInfo(row.id).subscribe(x => this.onLinesSuccesfull(x), error => this.onDataLoadFailed(error));\r\n\r\n this.auditObj.referenceNumber = row.invoice;\r\n this.auditObj.actionInput = this.currentStatus;\r\n\r\n this.sysproService.getWebOrderPaymentInfo(row.id).subscribe(x => this.onPaymentsSuccesfull(x), error => this.onDataLoadFailed(error));\r\n\r\n\r\n\r\n }\r\n onPaymentsSuccesfull(x: WebPayment[]): void {\r\n var test = x[0];\r\n\r\n this.webOrderPayment = x;\r\n\r\n if (!!this.webOrder.id) {\r\n if (!this.weborderDetailModal) {\r\n setTimeout(() => {\r\n if (this.weborderDetailModal) {\r\n this.weborderDetailModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.weborderDetailModal.show();\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n tokenSuccess(x: any): void {\r\n var test = x;\r\n }\r\n\r\n onLinesSuccesfull(x: WebLineItem[]): void {\r\n var test = x;\r\n\r\n\r\n }\r\n\r\n\r\n openDPD(waybill: string) {\r\n if (!!waybill && waybill != \"\") {\r\n window.open('https://www.dpd.com/za/en/receiving-parcels/track-my-parcel/tracking-details/?' + waybill, \"_blank\");\r\n }\r\n }\r\n\r\n weborderDetailModalHide() {\r\n this.webOrder = null;\r\n if (this.weborderDetailModal) {\r\n this.weborderDetailModal.hide();\r\n }\r\n }\r\n\r\n\r\n viewQuote(row: WebOrder) {\r\n this.setLocalCustomer(\"FBWEB\", row.quoteNumber);\r\n this.router.navigate(['../../quotes'], { fragment: 'quote', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n\r\n previewQuote(row: WebOrder) {\r\n this.currentStatus = row.internalStatus;\r\n\r\n this.invoiceNumber = row.invoice;\r\n this.setLocalCustomer(\"FBWEB\", row.quoteNumber);\r\n\r\n if (!!this.selectedQuote) {\r\n if (!this.quotesModal) {\r\n setTimeout(() => {\r\n if (this.quotesModal) {\r\n this.quotesModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.quotesModal.show();\r\n }\r\n }\r\n }\r\n\r\n quotesModalHide() {\r\n this.selectedQuote = null;\r\n this.quotesModal.hide();\r\n }\r\n\r\n gotToQuote() {\r\n this.router.navigate(['../../quotes'], { fragment: 'quote', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n previewSalesOrder(row: WebOrder) {\r\n\r\n this.currentStatus = row.internalStatus;\r\n this.invoiceNumber = row.invoice;\r\n\r\n this.selectedSalesOrder = row.salesOrder;\r\n if (sessionStorage.getItem(localStorageActions.Customer) != \"FBWEB\") {\r\n sessionStorage.setItem(localStorageActions.Customer, \"FBWEB\");\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != row.salesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.salesOrder);\r\n }\r\n\r\n if (!!this.selectedSalesOrder) {\r\n if (!this.salesOrderModal) {\r\n setTimeout(() => {\r\n if (this.salesOrderModal) {\r\n this.salesOrderModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.salesOrderModal.show();\r\n }\r\n }\r\n }\r\n\r\n salesOrderModalHide() {\r\n this.selectedSalesOrder = null;\r\n this.salesOrderModal.hide();\r\n }\r\n\r\n\r\n viewSalesOrder() {\r\n \r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n\r\n previewITS(row: WebOrder) {\r\n\r\n this.selectedInvoice = row.invoice;\r\n this.currentStatus = row.internalStatus;\r\n this.invoiceNumber = row.invoice;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != \"FBWEB\") {\r\n sessionStorage.setItem(localStorageActions.Customer, \"FBWEB\");\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != row.salesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.salesOrder);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != row.invoice) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoice);\r\n }\r\n\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n itsModalHide() {\r\n this.selectedInvoice = null;\r\n if (this.itsModal) {\r\n this.itsModal.hide();\r\n }\r\n }\r\n\r\n\r\n gotToITS() {\r\n\r\n this.router.navigate(['../../reports'], { fragment: 'invoicestatus', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n setLocalCustomer(customer: string, quoteNumber: string) {\r\n\r\n this.selectedCustomer = customer;\r\n this.selectedQuote = quoteNumber;\r\n if (sessionStorage.getItem(localStorageActions.QuoteNumber) != quoteNumber) {\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, quoteNumber);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n }\r\n if (this.searchValue && this.searchValue.length > 1) {\r\n \r\n }\r\n else {\r\n sessionStorage.removeItem(localStorageActions.SearchValue);\r\n }\r\n }\r\n\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n \r\n //this.sysproService.getQuoteNumberSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n // x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: QuoteList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n\r\n }\r\n onSearchSuccesful(x: WebOrder[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.weborders = x;\r\n var totalExcl = 0;\r\n var totalIncl = 0;\r\n var totalVat = 0;\r\n\r\n this.rowsInclCancelled = [...x];\r\n\r\n // Group orders by user and calculate the sequence number for each order per user\r\n const groupedOrders = x.reduce((acc, curr) => {\r\n acc[curr.user_email] = acc[curr.user_email] || [];\r\n acc[curr.user_email].push(curr);\r\n return acc;\r\n }, {});\r\n\r\n // Flatten the grouped orders and set sequence numbers\r\n const flattenedOrders = [];\r\n Object.keys(groupedOrders).forEach(email => {\r\n groupedOrders[email].sort((a, b) => new Date(a.created).getTime() - new Date(b.created).getTime());\r\n groupedOrders[email].forEach((order, index) => {\r\n order.sequenceNumber = index + 1;\r\n flattenedOrders.push(order);\r\n });\r\n });\r\n\r\n x = flattenedOrders;\r\n\r\n x.forEach((order, index, x) => {\r\n (order).index = index + 1;\r\n const date = new Date(order.created);\r\n order.createDate = date;\r\n order.created = moment(order.created).format('YYYY-MM-DD');\r\n totalExcl += order.sub_total;\r\n totalIncl += order.grand_total;\r\n //totalVat += order.vat;\r\n });\r\n\r\n\r\n this.rowsCache = [...x]; \r\n\r\n this.rows = this.dateRows; //.slice(0, 18);\r\n\r\n this.sumtotalExcluding = totalExcl;\r\n this.sumtotalIncluding = totalIncl;\r\n this.sumtotalVat = totalVat;\r\n\r\n this.closeIfPODReceived();\r\n\r\n this.filterChanged();\r\n }\r\n\r\n closeIfPODReceived() {\r\n // Get today's date\r\n const today = new Date();\r\n // Get the first day of the current month\r\n const firstDayOfMonth = new Date(today.getFullYear(), today.getMonth(), 1);\r\n\r\n this.rowsCache.forEach((order, index, x) => {\r\n\r\n if (order.internalStatus == \"COLLECTION\") {\r\n //Check if POD has been received\r\n this.sysproService.getInvoiceTrackingStatus(order.salesOrder, order.invoice).\r\n subscribe(result => {\r\n if (result[0]) {\r\n var its = result[0];\r\n if (its.podReceived == 'A') {\r\n this.invoiceNumber = order.invoice;\r\n order.internalStatus = \"COMPLETED\";\r\n order.displayStatus = \"COMPLETED\";\r\n order.internalComment = order.internalComment + \" - Updated by system : POD Received on \" + new Date().toISOString().slice(0, 10);\r\n this.selectedStatus = order.internalStatus;\r\n this.saveWebOrder(order);\r\n }\r\n else {\r\n //Check if Collection Notification has been sent\r\n if (!order.internalComment.includes(\"Message Sent to\") && order.createDate >= firstDayOfMonth) {\r\n //Send Whatsapp Reminder\r\n this.whatsappReminder(order);\r\n }\r\n }\r\n }\r\n });\r\n \r\n }\r\n });\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n \r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n \r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Id\", \"Date\", \"Waybill / PO\", \"Customer\", \"Invoice\", \"Status\", \"Total\", \"QuoteNumber\", \"SalesOrder\", \"CustomerEmail\", \"Contact Number\"]\r\n };\r\n\r\n var filename = \"WebOrders\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.created).toISOString().split('T')[0];\r\n exportRows.push({\r\n Id: row.id, Date: date, Waybill: row.placed_id, Customer: row.user_first_name + \" \" + row.user_last_name, Invoice: row.invoice, Status: row.internalStatus,\r\n Total: row.grand_total, QuoteNumber: row.quoteNumber, SalesOrder: row.salesOrder, CustomerEmail: row.user_email, CustomerTel: \"Tel: \" + row.user_contact_number.toString()\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'todoDemo.editor.NewTask' | translate}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'todoDemo.editor.TaskNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"input.form-control {\\n border-left-width: 5px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px;\\n font-weight: bold; }\\n\\n.completed {\\n text-decoration: line-through; }\\n\\n.form-check {\\n margin: 0; }\\n\\n.inline-label {\\n width: 100%;\\n min-height: 1rem;\\n display: inline-block; }\\n\\n.inline-editor {\\n width: 100%; }\\n\\n.description-form-group {\\n margin-bottom: 5px; }\\n\\n.actionBtn-form-group {\\n margin: 0; }\\n\\n.edit-last-separator-hr {\\n margin: 10px 0; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFx0b2RvLWRlbW8uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDSSxzQkFBc0IsRUFBQTs7QUFHMUI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixpQkFBaUIsRUFBQTs7QUFJckI7RUFDSSw2QkFBNkIsRUFBQTs7QUFHakM7RUFDSSxTQUFTLEVBQUE7O0FBSWI7RUFDSSxXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLHFCQUFxQixFQUFBOztBQUd6QjtFQUNJLFdBQVcsRUFBQTs7QUFHZjtFQUNJLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLFNBQVMsRUFBQTs7QUFHYjtFQUNJLGNBQWMsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvdG9kby1kZW1vLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG5cclxuLmNvbXBsZXRlZCB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcclxufVxyXG5cclxuLmZvcm0tY2hlY2sge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG5cclxuLmlubGluZS1sYWJlbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDFyZW07XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi5pbmxpbmUtZWRpdG9yIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZGVzY3JpcHRpb24tZm9ybS1ncm91cCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5hY3Rpb25CdG4tZm9ybS1ncm91cCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCAwO1xyXG59Il19 */\"","\r\nimport { Component, OnInit, OnDestroy, Input, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AppTranslationService } from '../../services/app-translation.service';\r\nimport { LocalStoreManager } from '../../services/local-store-manager.service';\r\nimport { Utilities } from '../../services/utilities';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'todo-demo',\r\n templateUrl: './todo-demo.component.html',\r\n styleUrls: ['./todo-demo.component.scss']\r\n})\r\nexport class TodoDemoComponent implements OnInit, OnDestroy {\r\n public static readonly DBKeyTodoDemo = 'todo-demo.todo_list';\r\n\r\n rows = [];\r\n rowsCache = [];\r\n columns = [];\r\n editing = {};\r\n taskEdit = {};\r\n isDataLoaded = false;\r\n loadingIndicator = true;\r\n formResetToggle = true;\r\n _currentUserId: string;\r\n _hideCompletedTasks = false;\r\n\r\n\r\n get currentUserId() {\r\n if (this.authService.currentUser) {\r\n this._currentUserId = this.authService.currentUser.id;\r\n }\r\n\r\n return this._currentUserId;\r\n }\r\n\r\n\r\n set hideCompletedTasks(value: boolean) {\r\n\r\n if (value) {\r\n this.rows = this.rowsCache.filter(r => !r.completed);\r\n } else {\r\n this.rows = [...this.rowsCache];\r\n }\r\n\r\n\r\n this._hideCompletedTasks = value;\r\n }\r\n\r\n get hideCompletedTasks() {\r\n return this._hideCompletedTasks;\r\n }\r\n\r\n\r\n @Input()\r\n verticalScrollbar = false;\r\n\r\n\r\n @ViewChild('statusHeaderTemplate')\r\n statusHeaderTemplate: TemplateRef;\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n @ViewChild('nameTemplate')\r\n nameTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private localStorage: LocalStoreManager, private authService: AuthService) {\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.loadingIndicator = true;\r\n\r\n this.fetch((data) => {\r\n this.refreshDataIndexes(data);\r\n this.rows = data;\r\n this.rowsCache = [...data];\r\n this.isDataLoaded = true;\r\n\r\n setTimeout(() => { this.loadingIndicator = false; }, 1500);\r\n });\r\n\r\n\r\n const gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'completed', name: '', width: 30, headerTemplate: this.statusHeaderTemplate, cellTemplate: this.statusTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'name', name: gT('todoDemo.management.Task'), cellTemplate: this.nameTemplate, width: 200 },\r\n { prop: 'description', name: gT('todoDemo.management.Description'), cellTemplate: this.descriptionTemplate, width: 500 },\r\n { name: '', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnDestroy() {\r\n this.saveToDisk();\r\n }\r\n\r\n\r\n\r\n fetch(cb) {\r\n let data = this.getFromDisk();\r\n\r\n if (data == null) {\r\n setTimeout(() => {\r\n\r\n data = this.getFromDisk();\r\n\r\n if (data == null) {\r\n data = [\r\n { 'completed': true, 'important': true, 'name': 'Create visual studio extension', 'description': 'Create a visual studio VSIX extension package that will add this project as an aspnet-core project template' },\r\n { 'completed': false, 'important': true, 'name': 'Do a quick how-to writeup', 'description': '' },\r\n {\r\n 'completed': false, 'important': false, 'name': 'Create aspnet-core/angular7 tutorials based on this project', 'description': 'Create tutorials (blog/video/youtube) on how to build applications (full stack)' +\r\n ' using aspnet-core/angular7. The tutorial will focus on getting productive with the technology right away rather than the details on how and why they work so audience can get onboard quickly.'\r\n },\r\n ];\r\n }\r\n\r\n cb(data);\r\n }, 1000);\r\n } else {\r\n cb(data);\r\n }\r\n }\r\n\r\n\r\n refreshDataIndexes(data) {\r\n let index = 0;\r\n\r\n for (const i of data) {\r\n i.$$index = index++;\r\n }\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description) || value == 'important' && r.important || value == 'not important' && !r.important);\r\n }\r\n\r\n\r\n showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n addTask() {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n\r\n this.taskEdit = {};\r\n this.editorModal.show();\r\n });\r\n }\r\n\r\n save() {\r\n this.rowsCache.splice(0, 0, this.taskEdit);\r\n this.rows.splice(0, 0, this.taskEdit);\r\n this.refreshDataIndexes(this.rowsCache);\r\n this.rows = [...this.rows];\r\n\r\n this.saveToDisk();\r\n this.editorModal.hide();\r\n }\r\n\r\n\r\n updateValue(event, cell, cellValue, row) {\r\n this.editing[row.$$index + '-' + cell] = false;\r\n this.rows[row.$$index][cell] = event.target.value;\r\n this.rows = [...this.rows];\r\n\r\n this.saveToDisk();\r\n }\r\n\r\n\r\n delete(row) {\r\n this.alertService.showDialog('Are you sure you want to delete the task?', DialogType.confirm, () => this.deleteHelper(row));\r\n }\r\n\r\n\r\n deleteHelper(row) {\r\n this.rowsCache = this.rowsCache.filter(item => item !== row);\r\n this.rows = this.rows.filter(item => item !== row);\r\n\r\n this.saveToDisk();\r\n }\r\n\r\n getFromDisk() {\r\n return this.localStorage.getDataObject(`${TodoDemoComponent.DBKeyTodoDemo}:${this.currentUserId}`);\r\n }\r\n\r\n saveToDisk() {\r\n if (this.isDataLoaded) {\r\n this.localStorage.saveSyncedSessionData(this.rowsCache, `${TodoDemoComponent.DBKeyTodoDemo}:${this.currentUserId}`);\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.jobTitle}}

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

{{user.userName}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.UserNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{'users.editor.PasswordHint' | translate}}\\r\\n \\r\\n \\r\\n {{'users.editor.CurrentPasswordRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.email}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.EmailRequired' | translate}}\\r\\n \\r\\n \\r\\n {{'users.editor.InvalidEmail' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.CurrentPasswordRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.NewPasswordRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.ConfirmationPasswordRequired' | translate}}\\r\\n \\r\\n \\r\\n {{'users.editor.PasswordMismatch' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

\\r\\n \\r\\n {{role}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.RoleRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.fullName}}

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

\\r\\n {{user.branch}}\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.BranchRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.sysproOperator}}

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

{{user.sysproPassword}}

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

{{user.sysproBuyer}}

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

{{user.sysproRep}}

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

\\r\\n {{user.aspnetApplication}}\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.ApplicationRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.phoneNumber}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".row:not(:last-child) {\\n /*border-bottom: 1px solid #ccc;*/ }\\n\\n.separator-hr {\\n margin: 0 5px;\\n border-top-style: dashed; }\\n\\n.edit-separator-hr {\\n margin: 10px 5px;\\n border-top-style: dashed; }\\n\\n.last-separator-hr {\\n margin-top: 5px; }\\n\\n.edit-last-separator-hr {\\n margin-top: 15px; }\\n\\n.password-separator-hr {\\n margin: 5px;\\n border-style: none; }\\n\\n.form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n\\ninput.form-control {\\n border-left-width: 5px; }\\n\\n.invalid-feedback {\\n display: block; }\\n\\n.password-well {\\n padding: 0.5rem; }\\n\\n.hint-sm {\\n display: block; }\\n\\n.form-check.user-enabled {\\n display: inline-block; }\\n\\n.unblock-user {\\n margin-left: 34px; }\\n\\n@media (min-width: 992px) {\\n .user-enabled {\\n margin-left: 40px; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFx1c2VyLWluZm8uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQ0FBQSxFQUFrQzs7QUFHcEM7RUFDRSxhQUFhO0VBQ2Isd0JBQXdCLEVBQUE7O0FBRzFCO0VBQ0UsZ0JBQWdCO0VBQ2hCLHdCQUF3QixFQUFBOztBQUcxQjtFQUNFLGVBQWUsRUFBQTs7QUFHakI7RUFDRSxnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBSXBCO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLHNCQUFzQixFQUFBOztBQUd4QjtFQUNFLGNBQWMsRUFBQTs7QUFHaEI7RUFDRSxlQUFlLEVBQUE7O0FBR2pCO0VBQ0UsY0FBYyxFQUFBOztBQUdoQjtFQUNFLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGlCQUFpQixFQUFBOztBQUluQjtFQUNFO0lBQ0UsaUJBQWlCLEVBQUEsRUFDbEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3VzZXItaW5mby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDAgNXB4O1xyXG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDEwcHggNXB4O1xyXG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG4ucGFzc3dvcmQtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDVweDtcclxuICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcblxyXG4uZm9ybS1ncm91cCB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5pbnZhbGlkLWZlZWRiYWNrIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gIHBhZGRpbmc6IDAuNXJlbTtcclxufVxyXG5cclxuLmhpbnQtc20ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uZm9ybS1jaGVjay51c2VyLWVuYWJsZWQge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLnVuYmxvY2stdXNlciB7XHJcbiAgbWFyZ2luLWxlZnQ6IDM0cHg7XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAudXNlci1lbmFibGVkIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gIH1cclxufVxyXG4iXX0= */\"","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { User } from '../../models/user.model';\r\nimport { UserEdit } from '../../models/user-edit.model';\r\nimport { Role } from '../../models/role.model';\r\nimport { Branch } from '../../models/branch.model';\r\nimport { AspnetApplications } from '../../models/applications.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'user-info',\r\n templateUrl: './user-info.component.html',\r\n styleUrls: ['./user-info.component.scss']\r\n})\r\nexport class UserInfoComponent implements OnInit {\r\n\r\n private isEditMode = false;\r\n private isNewUser = false;\r\n private isSaving = false;\r\n private isChangePassword = false;\r\n private isEditingSelf = false;\r\n private showValidationErrors = false;\r\n private editingUserName: string;\r\n private uniqueId: string = Utilities.uniqueId();\r\n private user: User = new User();\r\n private userEdit: UserEdit;\r\n private allRoles: Role[] = [];\r\n private allBranches: Branch[] = [];\r\n private allApplications: AspnetApplications[] = [];\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isGeneralEditor = false;\r\n\r\n \r\n @ViewChild('f')\r\n private form;\r\n\r\n // ViewChilds Required because ngIf hides template variables from global scope\r\n @ViewChild('userName')\r\n private userName;\r\n\r\n @ViewChild('userPassword')\r\n private userPassword;\r\n\r\n @ViewChild('email')\r\n private email;\r\n\r\n @ViewChild('currentPassword')\r\n private currentPassword;\r\n\r\n @ViewChild('newPassword')\r\n private newPassword;\r\n\r\n @ViewChild('confirmPassword')\r\n private confirmPassword;\r\n\r\n @ViewChild('roles')\r\n private roles;\r\n\r\n @ViewChild('role')\r\n private role;\r\n\r\n @ViewChild('rolesSelector')\r\n private rolesSelector;\r\n \r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchSelector')\r\n private branchSelector;\r\n\r\n @ViewChild('sysproOperator')\r\n private sysproOperator;\r\n\r\n @ViewChild('sysproPassword')\r\n private sysproPassword;\r\n\r\n @ViewChild('sysproBuyer')\r\n private sysproBuyer;\r\n\r\n @ViewChild('sysproRep')\r\n private sysproRep;\r\n\r\n\r\n @ViewChild('isSupervisor')\r\n private isSupervisor;\r\n\r\n\r\n @ViewChild('applications')\r\n private applications;\r\n\r\n @ViewChild('applicationsSelector')\r\n private applicationsSelector;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesOnline: FowkesOnlineService,\r\n private configurations: ConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n console.log('General Editor', this.isGeneralEditor);\r\n console.log('View Only', this.isViewOnly);\r\n console.log('Editing Self', this.isEditingSelf);\r\n if (!this.isGeneralEditor) {\r\n this.loadCurrentUserData();\r\n }\r\n }\r\n\r\n private loadCurrentUserData() {\r\n this.alertService.startLoadingMessage();\r\n\r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n this.fowkesOnline.getApplications().subscribe(x => this.onAppLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n if (this.canViewAllRoles) {\r\n this.accountService.getUserAndRoles().subscribe(results => this.onCurrentUserDataLoadSuccessful(results[0], results[1]), error => this.onCurrentUserDataLoadFailed(error));\r\n } else {\r\n this.accountService.getUser().subscribe(user => this.onCurrentUserDataLoadSuccessful(user, user.roles.map(x => new Role(x))), error => this.onCurrentUserDataLoadFailed(error));\r\n }\r\n }\r\n\r\n private onBranchLoadSuccessful(branches: Branch[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.allBranches = branches;\r\n console.log(\"Branches\", this.allBranches);\r\n }\r\n \r\n private onAppLoadSuccessful(applications: AspnetApplications[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.allApplications = applications;\r\n console.log(\"allApplications\", this.allApplications);\r\n }\r\n\r\n\r\n private onCurrentUserDataLoadSuccessful(user: User, roles: Role[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.user = user;\r\n this.allRoles = roles;\r\n\r\n console.log(\"ROLES\", this.allRoles);\r\n console.log(\"USER\", this.user);\r\n }\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n this.user = new User();\r\n }\r\n\r\n\r\n\r\n private getRoleByName(name: string) {\r\n return this.allRoles.find((r) => r.name == name);\r\n }\r\n\r\n private getBranchByName(name: string) {\r\n return this.allBranches.find((r) => r.branch == name);\r\n }\r\n\r\n\r\n private getApplicationByName(name: string) {\r\n return this.allApplications.find((r) => r.applicationName == name);\r\n }\r\n\r\n \r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n public deletePasswordFromUser(user: UserEdit | User) {\r\n const userEdit = user;\r\n\r\n delete userEdit.currentPassword;\r\n delete userEdit.newPassword;\r\n delete userEdit.confirmPassword;\r\n }\r\n\r\n\r\n private edit() {\r\n if (!this.isGeneralEditor) {\r\n this.isEditingSelf = true;\r\n this.userEdit = new UserEdit();\r\n Object.assign(this.userEdit, this.user);\r\n } else {\r\n if (!this.userEdit) {\r\n this.userEdit = new UserEdit();\r\n }\r\n\r\n this.isEditingSelf = this.accountService.currentUser ? this.userEdit.id == this.accountService.currentUser.id : false;\r\n }\r\n\r\n this.isEditMode = true;\r\n this.showValidationErrors = true;\r\n this.isChangePassword = false;\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n //if (this.isEditingSelf) {\r\n // //Set local branch storage\r\n // this.localStorage.saveSyncedSessionData(this.userEdit.branch, `${TodoDemoComponent.DBKeyTodoDemo}:${this.currentUserId}`);\r\n // }\r\n //}\r\n\r\n if (this.isNewUser) {\r\n this.userEdit.sysproSessionId = \"\"; //Requires SysproSessionId\r\n let configString = '{\"language\":\"en\",\"themeId\":15,\"homeUrl\":\"/\",\"showDashboardStatistics\":false,\"showDashboardNotifications\":false,\"showDashboardTodo\":false,\"showDashboardBanner\":false,';\r\n configString = configString + '\"applicationName\":\"' + this.userEdit.aspnetApplication + '\", \"branchCode\":\"' + this.userEdit.branch + '\", \"loadCache\":' + (this.userEdit.branch == \"CT\" ? 'true' : 'false') + '}';\r\n this.userEdit.configuration = configString;\r\n console.log(\"NEW USER CONFIG\", this.userEdit.configuration);\r\n this.accountService.newUser(this.userEdit).subscribe(user => this.saveSuccessHelper(user), error => this.saveFailedHelper(error));\r\n } else {\r\n console.log(\"EXISITING USER CONFIG\", this.userEdit.configuration);\r\n this.accountService.updateUser(this.userEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(user?: User) {\r\n this.testIsRoleUserCountChanged(this.user, this.userEdit);\r\n\r\n if (user) {\r\n Object.assign(this.userEdit, user);\r\n }\r\n\r\n //Update the user's default preferences:\r\n //this.accountService.getUserPreferences().subscribe(results => {\r\n // this.configurations.import(results);\r\n // this.configurations.branchCode = this.userEdit.branch;\r\n // this.configurations.themeId = 15;\r\n // this.accountService.updateUserPreferences(this.configurations.export())\r\n // .subscribe(response => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.alertService.showMessage('User Preferences', 'USer default preferences updated successfully', MessageSeverity.success);\r\n\r\n // },\r\n // error => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.alertService.showStickyMessage('Save Error', `An error occured whilst saving configuration defaults.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n // MessageSeverity.error, error);\r\n // });\r\n //},\r\n // error => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.alertService.showStickyMessage('Load Error', `Unable to retrieve user preferences from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n // MessageSeverity.error, error);\r\n // });\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.isChangePassword = false;\r\n this.showValidationErrors = false;\r\n\r\n this.deletePasswordFromUser(this.userEdit);\r\n Object.assign(this.user, this.userEdit);\r\n this.userEdit = new UserEdit();\r\n this.resetForm();\r\n\r\n\r\n if (this.isGeneralEditor) {\r\n if (this.isNewUser) {\r\n this.alertService.showMessage('Success', `User \\\"${this.user.userName}\\\" was created successfully`, MessageSeverity.success);\r\n } else if (!this.isEditingSelf) {\r\n this.alertService.showMessage('Success', `Changes to user \\\"${this.user.userName}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n }\r\n\r\n if (this.isEditingSelf) {\r\n this.alertService.showMessage('Success', 'Changes to your User Profile was saved successfully', MessageSeverity.success);\r\n this.refreshLoggedInUser();\r\n }\r\n\r\n this.isEditMode = false;\r\n\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback) {\r\n this.changesFailedCallback();\r\n }\r\n }\r\n\r\n\r\n\r\n private testIsRoleUserCountChanged(currentUser: User, editedUser: User) {\r\n\r\n const rolesAdded = this.isNewUser ? editedUser.roles : editedUser.roles.filter(role => currentUser.roles.indexOf(role) == -1);\r\n const rolesRemoved = this.isNewUser ? [] : currentUser.roles.filter(role => editedUser.roles.indexOf(role) == -1);\r\n\r\n const modifiedRoles = rolesAdded.concat(rolesRemoved);\r\n\r\n if (modifiedRoles.length) {\r\n setTimeout(() => this.accountService.onRolesUserCountChanged(modifiedRoles));\r\n }\r\n }\r\n\r\n\r\n\r\n private cancel() {\r\n if (this.isGeneralEditor) {\r\n this.userEdit = this.user = new UserEdit();\r\n } else {\r\n this.userEdit = new UserEdit();\r\n }\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.showMessage('Cancelled', 'Operation cancelled by user', MessageSeverity.default);\r\n this.alertService.resetStickyMessage();\r\n\r\n if (!this.isGeneralEditor) {\r\n this.isEditMode = false;\r\n }\r\n\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n\r\n private close() {\r\n this.userEdit = this.user = new UserEdit();\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n this.isEditMode = false;\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => {\r\n this.loadCurrentUserData();\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage('Refresh failed', 'An error occured whilst refreshing logged in user information from the server', MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n private changePassword() {\r\n this.isChangePassword = true;\r\n }\r\n\r\n\r\n private unlockUser() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Unblocking user...');\r\n\r\n\r\n this.accountService.unblockUser(this.userEdit.id)\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.userEdit.isLockedOut = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', 'User has been successfully unblocked', MessageSeverity.success);\r\n },\r\n error => {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Unblock Error', 'The below errors occured whilst unblocking the user:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n this.isChangePassword = false;\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n } else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newUser(allRoles: Role[], allBranches: Branch[], allApplications: AspnetApplications[]) {\r\n this.isGeneralEditor = true;\r\n this.isNewUser = true;\r\n\r\n this.allRoles = [...allRoles];\r\n this.allBranches = [...allBranches];\r\n this.allApplications = [...allApplications];\r\n this.editingUserName = null;\r\n this.user = this.userEdit = new UserEdit();\r\n this.userEdit.isEnabled = true;\r\n this.edit();\r\n\r\n console.log(this.userEdit);\r\n return this.userEdit;\r\n }\r\n\r\n editUser(user: User, allRoles: Role[], allBranches: Branch[], allApplications: AspnetApplications[]) {\r\n if (user) {\r\n this.isGeneralEditor = true;\r\n this.isNewUser = false;\r\n\r\n this.setRoles(user, allRoles);\r\n this.setBranch(user, allBranches);\r\n this.setApplication(user, allApplications);\r\n this.editingUserName = user.userName;\r\n this.user = new User();\r\n this.userEdit = new UserEdit();\r\n Object.assign(this.user, user);\r\n Object.assign(this.userEdit, user);\r\n this.edit();\r\n\r\n console.log(this.userEdit);\r\n console.log(this.user);\r\n return this.userEdit;\r\n } else {\r\n return this.newUser(allRoles, allBranches, allApplications);\r\n }\r\n }\r\n\r\n\r\n displayUser(user: User, allRoles?: Role[], allBranches?: Branch[], allApplications?: AspnetApplications[]) {\r\n\r\n this.user = new User();\r\n Object.assign(this.user, user);\r\n this.deletePasswordFromUser(this.user);\r\n this.setRoles(user, allRoles);\r\n this.setBranch(user, allBranches);\r\n this.setApplication(user, allApplications);\r\n\r\n this.isEditMode = false;\r\n }\r\n\r\n\r\n\r\n private setRoles(user: User, allRoles?: Role[]) {\r\n\r\n this.allRoles = allRoles ? [...allRoles] : [];\r\n\r\n if (user.roles) {\r\n for (const ur of user.roles) {\r\n if (!this.allRoles.some(r => r.name == ur)) {\r\n this.allRoles.unshift(new Role(ur));\r\n }\r\n }\r\n }\r\n\r\n if (allRoles == null || this.allRoles.length != allRoles.length) {\r\n setTimeout(() => {\r\n if (this.rolesSelector) {\r\n this.rolesSelector.refresh();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private setBranch(user: User, allBranches?: Branch[]) {\r\n\r\n this.allBranches = allBranches ? [...allBranches] : [];\r\n\r\n if (user.branch) {\r\n if (!this.allBranches.some(r => r.branch == user.branch)) {\r\n this.allBranches.unshift(new Branch(user.branch));\r\n }\r\n }\r\n\r\n if (allBranches == null || this.allBranches.length != allBranches.length) {\r\n setTimeout(() => {\r\n if (this.branchSelector) {\r\n this.branchSelector.refresh();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private setApplication(user: User, allApplications?: AspnetApplications[]) {\r\n\r\n this.allApplications = allApplications ? [...allApplications] : [];\r\n\r\n if (user.aspnetApplication) {\r\n if (!this.allApplications.some(r => r.applicationName == user.aspnetApplication)) {\r\n this.allApplications.unshift(new AspnetApplications(user.aspnetApplication));\r\n }\r\n }\r\n\r\n if (allApplications == null || this.allApplications.length != allApplications.length) {\r\n setTimeout(() => {\r\n if (this.applicationsSelector) {\r\n this.applicationsSelector.refresh();\r\n }\r\n });\r\n }\r\n }\r\n\r\n get canViewAllBranches() {\r\n return true;\r\n }\r\n get canAssignBranches() {\r\n return true;\r\n }\r\n\r\n get canAssignApplications() {\r\n return true;\r\n }\r\n\r\n get canViewAllRoles() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canAssignRoles() {\r\n return this.accountService.userHasPermission(Permission.assignRolesPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Select the branch you are working at

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

Select the the default printer for your invoices

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

Loads All Data First Time, should be turned off for slow connections

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

Have your menus open by default, switch it to off if you have a smaller screen

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

{{'preferences.HomePageHint' | translate}}

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

Opt in to receive whatsapp messages from the system, ensure cell is updated on profile

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

Ensure the number starts with South African country code 27 followed by a 9-digit number with no leading zero. Example 2782555222

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n\\n.subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none; }\\n\\n.last-separator-hr {\\n margin-top: 7px; }\\n\\n.form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n\\n.form-control-plaintext {\\n min-height: 0; }\\n\\n.checkbox {\\n padding-top: 0; }\\n\\n.col-reset-default {\\n padding-right: 0; }\\n\\n.col-set-default {\\n padding-left: 5px; }\\n\\n.col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n\\n.status-indicator {\\n display: flex;\\n align-items: center;\\n margin-top: 5px;\\n padding: 5px;\\n border-radius: 5px; }\\n\\n.status-indicator.opted-in {\\n color: #28a745; }\\n\\n.status-indicator.pending-opt-in {\\n color: #ffc107; }\\n\\n.status-indicator label {\\n margin-right: 10px; }\\n\\n@media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFx1c2VyLXByZWZlcmVuY2VzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsZUFBZTtFQUNmLHdCQUF3QixFQUFBOztBQUcxQjtFQUNFLGVBQWU7RUFDZixzQkFBc0IsRUFBQTs7QUFHeEI7RUFDRSxlQUFlLEVBQUE7O0FBR2pCO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLGFBQWEsRUFBQTs7QUFHZjtFQUNFLGNBQWMsRUFBQTs7QUFHaEI7RUFDRSxnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkI7O0VBRUUsZ0JBQWdCLEVBQUE7O0FBR2xCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsWUFBWTtFQUNaLGtCQUFrQixFQUFBOztBQUdwQjtFQUVFLGNBQWMsRUFBQTs7QUFHaEI7RUFDRSxjQUFjLEVBQUE7O0FBR2hCO0VBQ0Usa0JBQWtCLEVBQUE7O0FBSXBCO0VBQ0U7SUFDRSxnQkFBZ0IsRUFBQSxFQUNqQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvdXNlci1wcmVmZXJlbmNlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDdweCA1cHg7XHJcbiAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uc3Vic2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDdweCA1cHg7XHJcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiA3cHg7XHJcbn1cclxuXHJcbi5mb3JtLWdyb3VwIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcclxuICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4uY2hlY2tib3gge1xyXG4gIHBhZGRpbmctdG9wOiAwO1xyXG59XHJcblxyXG4uY29sLXJlc2V0LWRlZmF1bHQge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDA7XHJcbn1cclxuXHJcbi5jb2wtc2V0LWRlZmF1bHQge1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcblxyXG4uY29sLXJlc2V0LWRlZmF1bHQgLmJ0bixcclxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcclxuICBtaW4td2lkdGg6IDE1MHB4O1xyXG59XHJcblxyXG4uc3RhdHVzLWluZGljYXRvciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi10b3A6IDVweDtcclxuICBwYWRkaW5nOiA1cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG59XHJcblxyXG4uc3RhdHVzLWluZGljYXRvci5vcHRlZC1pbiB7XHJcbiBcclxuICBjb2xvcjogIzI4YTc0NTtcclxufVxyXG5cclxuLnN0YXR1cy1pbmRpY2F0b3IucGVuZGluZy1vcHQtaW4ge1xyXG4gIGNvbG9yOiAjZmZjMTA3O1xyXG59XHJcblxyXG4uc3RhdHVzLWluZGljYXRvciBsYWJlbCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { AppTranslationService } from '../../services/app-translation.service';\r\nimport { BootstrapSelectDirective } from '../../directives/bootstrap-select.directive';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { ThemeManager } from '../../services/theme-manager';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { FowkesOnlineService } from 'src/app/services/fowkes-online.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Branch } from 'src/app/models/branch.model';\r\nimport { Printers } from '../../models/printers.model';\r\nimport { PrinterUserMappings } from '../../models/printer-user-mappings.model';\r\nimport { PrinterService } from '../../services/printer.service';\r\nimport { User } from '../../models/user.model';\r\nimport { OptIns } from '../../models/wapp-inbox.model';\r\n\r\n\r\n@Component({\r\n selector: 'user-preferences',\r\n templateUrl: './user-preferences.component.html',\r\n styleUrls: ['./user-preferences.component.scss']\r\n})\r\nexport class UserPreferencesComponent implements OnInit, OnDestroy {\r\n\r\n themeSelectorToggle = true;\r\n\r\n languageChangedSubscription: any;\r\n\r\n @ViewChild('languageSelector')\r\n languageSelector: BootstrapSelectDirective;\r\n\r\n @ViewChild('homePageSelector')\r\n homePageSelector: BootstrapSelectDirective;\r\n allBranches: Branch[] = [];\r\n\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchSelector')\r\n branchSelector: BootstrapSelectDirective;\r\n\r\n\r\n selectedPrinter: string;\r\n selectedBranchCode: string;\r\n\r\n\r\n @ViewChild('printerSelector')\r\n private printerSelector;\r\n Printers: Printers[] = [];\r\n printerMappings: PrinterUserMappings[] = [];\r\n WhatsappNumber: string;\r\n userOTP: OptIns = new OptIns();\r\n\r\n constructor(\r\n private alertService: AlertService,\r\n private translationService: AppTranslationService,\r\n private accountService: AccountService,\r\n public themeManager: ThemeManager,\r\n public configurations: ConfigurationService, private fowkesOnline: FowkesOnlineService, private sysproService: SysproService, private printerService: PrinterService) {\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n this.printerService.GetPrinters().subscribe(x => this.onPrintersLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n this.reloadFromServer();\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n //this.languageChangedSubscription.unsubscribe();\r\n }\r\n\r\n\r\n private onBranchLoadSuccessful(branches: Branch[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.allBranches = branches;\r\n setTimeout(() => {\r\n if (this.branchSelector) {\r\n this.branchSelector.refresh();\r\n }\r\n });\r\n\r\n\r\n if (this.configurations.branchCode.trim()) {\r\n\r\n this.selectedBranchCode = this.configurations.branchCode.trim();\r\n }\r\n else {\r\n this.selectedBranchCode = this.accountService.currentUser.branch;\r\n }\r\n }\r\n\r\n private onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve printer data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n }\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n }\r\n\r\n\r\n onPrintersLoadSuccesful(x: Printers[]): void {\r\n this.Printers = x;\r\n\r\n setTimeout(() => {\r\n if (this.printerSelector) {\r\n this.printerSelector.refresh();\r\n }\r\n this.homePageSelector.refresh();\r\n });\r\n\r\n this.selectedPrinter = this.configurations.defaultPrinter.trim();\r\n if (this.configurations) {\r\n if (!this.selectedPrinter || this.selectedPrinter.length == 0) {\r\n this.printerService.GetUserPrinterMappings(this.accountService.currentUser.id).subscribe(x => this.onUserPrintersLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n console.log(\"Printers\", this.configurations.defaultPrinter);\r\n }\r\n }\r\n onUserPrintersLoadSuccesful(x: PrinterUserMappings[]): void {\r\n\r\n this.printerMappings = x; \r\n\r\n if (this.printerMappings.length > 0) {\r\n const printerForInvoice = this.printerMappings.filter(p => p.reportName === \"Invoice\");\r\n this.selectedPrinter = (printerForInvoice.length ? printerForInvoice[0].printerName : this.selectedPrinter);\r\n }\r\n\r\n console.log(\"printerMappings\", this.configurations.defaultPrinter);\r\n }\r\n\r\n reloadFromServer() {\r\n this.alertService.startLoadingMessage();\r\n this.accountService.getUserDetails(this.accountService.currentUser.id).subscribe(x => this.onUserLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.accountService.getUserPreferences()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.configurations.import(results);\r\n if (!this.selectedPrinter || this.selectedPrinter.length == 0) {\r\n this.printerService.GetUserPrinterMappings(this.accountService.currentUser.id).subscribe(x => this.onUserPrintersLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n this.alertService.showMessage('Defaults loaded!', '', MessageSeverity.info);\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user preferences from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n //phoneNumberChanged() {\r\n // if (this.userOTP.phoneNumber !== this.WhatsappNumber) {\r\n // this.userOTP.optedIn = false;\r\n // }\r\n //}\r\n\r\n generateOTP(): number {\r\n const min = 100000;\r\n const max = 999999;\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n\r\n //sendWappOTPMessage() {\r\n\r\n // if (this.userOTP) {\r\n // if (this.WhatsappNumber != this.userOTP.phoneNumber) {\r\n // this.alertService.startLoadingMessage('', 'Sending Opt In');\r\n // this.sysproService.addWappOptInDetails(this.userOTP).subscribe(x => this.onOPTInAdded(x), error => this.onOptinLoadFailed(error));\r\n // }\r\n // }\r\n //}\r\n\r\n\r\n //onOPTInAdded(x: OptIns): void {\r\n // //Opt In Message sent\r\n // this.alertService.stopLoadingMessage();\r\n // this.setAsDefaultHelper();\r\n // this.alertService.showMessage('Message Sent', 'Whatsapp Sent, reply to the message from your phone.', MessageSeverity.success);\r\n //}\r\n\r\n //onOptinLoadFailed(error: any): void {\r\n\r\n // //Opt In Message sent\r\n // this.alertService.stopLoadingMessage();\r\n // this.setAsDefaultHelper();\r\n // this.alertService.showMessage('Message Failed', 'Unable to send.', MessageSeverity.success);\r\n //}\r\n\r\n //onUserWappLoadSuccesful(x: any) {\r\n \r\n // if (x) {\r\n // this.userOTP = x;\r\n // this.WhatsappNumber = this.userOTP.phoneNumber;\r\n // }\r\n //}\r\n\r\n onUserLoadSuccesful(x: User): void {\r\n var userDetails = x;\r\n\r\n console.log(userDetails);\r\n\r\n //Check if user has whatsapp number\r\n this.userOTP = new OptIns();\r\n this.userOTP.channel = \"whatsapp\";\r\n this.userOTP.nextGenUser = this.accountService.currentUser.userName;\r\n this.userOTP.phoneNumber = this.accountService.currentUser.phoneNumber;\r\n this.userOTP.optedIn = false;\r\n this.userOTP.otp = this.generateOTP().toString();\r\n this.userOTP.profileName = this.accountService.currentUser.userName;\r\n this.WhatsappNumber = this.accountService.currentUser.phoneNumber;\r\n\r\n\r\n //Get the corresponsing record if any and update the userOTP\r\n // this.sysproService.GetMetaUserDetails(this.userOTP.nextGenUser).subscribe(x => this.onUserWappLoadSuccesful(x), error => this.onOptinLoadFailed(error));\r\n\r\n //Check for wapp settings\r\n this.sysproService.GetUserTel(this.accountService.currentUser.userName).subscribe(x => this.onTelReceived(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onTelReceived(x: string): void {\r\n console.log(x);\r\n this.WhatsappNumber = x;\r\n this.userOTP.optedIn = true;\r\n this.userOTP.phoneNumber = this.WhatsappNumber;\r\n\r\n }\r\n\r\n setAsDefault() {\r\n this.alertService.showDialog('Are you sure you want to set the current configuration as your new defaults?', DialogType.confirm,\r\n () => this.setAsDefaultHelper(),\r\n () => this.alertService.showMessage('Operation Cancelled!', '', MessageSeverity.default));\r\n }\r\n\r\n setAsDefaultHelper() {\r\n this.alertService.startLoadingMessage('', 'Saving new defaults');\r\n\r\n if (this.WhatsappNumber && this.WhatsappNumber.length > 5) {\r\n this.configurations.wappEnabled = true;\r\n this.userOTP.phoneNumber = this.WhatsappNumber;\r\n this.sysproService.addWappOptInDetails(this.userOTP).subscribe(x => { }, error => this.onDataLoadFailed(error));\r\n }\r\n\r\n console.log(\"configurations setAsDefaultHelper\", this.configurations);\r\n this.configurations.themeId = (this.configurations.applicationName == \"MaxArcusOnline\" ? 17 : 15);\r\n this.configurations.branchCode = this.selectedBranchCode;\r\n this.configurations.defaultPrinter = this.selectedPrinter;\r\n this.accountService.updateUserPreferences(this.configurations.export())\r\n .subscribe(response => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('New Defaults', 'Account defaults updated successfully', MessageSeverity.success);\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', `An error occured whilst saving configuration defaults.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n\r\n resetDefault() {\r\n this.alertService.showDialog('Are you sure you want to reset your defaults?', DialogType.confirm,\r\n () => this.resetDefaultHelper(),\r\n () => this.alertService.showMessage('Operation Cancelled!', '', MessageSeverity.default));\r\n }\r\n\r\n resetDefaultHelper() {\r\n this.alertService.startLoadingMessage('', 'Resetting defaults');\r\n\r\n console.log(\"configurations Resetting defaults\", this.configurations);\r\n\r\n this.accountService.updateUserPreferences(null)\r\n .subscribe(response => {\r\n this.alertService.stopLoadingMessage();\r\n this.configurations.import(null);\r\n this.alertService.showMessage('Defaults Reset', 'Account defaults reset completed successfully', MessageSeverity.success);\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', `An error occured whilst resetting configuration defaults.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewCustomersPermission); // eg. viewCustomersPermission\r\n }\r\n\r\n get canViewProducts() {\r\n return this.accountService.userHasPermission(Permission.viewInventoryPermission); // eg. viewProductsPermission\r\n }\r\n\r\n get canViewOrders() {\r\n return this.accountService.userHasPermission(Permission.viewQuotesPermission); // eg. viewProductsPermission\r\n }\r\n\r\n get canViewSalesOrders() {\r\n return this.accountService.userHasPermission(Permission.viewSalesOrdersPermission); // eg. viewProductsPermission\r\n }\r\n\r\n get canViewReports() {\r\n return this.accountService.userHasPermission(Permission.viewReportsPermission); // eg. viewProductsPermission\r\n }\r\n\r\n get canViewPurchaseOrders() {\r\n return this.accountService.userHasPermission(Permission.viewPurchaseOrdersPermission); // eg. viewProductsPermission\r\n }\r\n\r\n get canViewPODs() {\r\n return this.accountService.userHasPermission(Permission.viewPODsPermission); // eg. viewProductsPermission\r\n }\r\n\r\n get canViewRepairs() {\r\n return this.accountService.userHasPermission(Permission.viewRepairsPermission); // eg. viewProductsPermission\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{role}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'users.management.NewUser' | translate}}

\\r\\n

{{'users.management.EditUser' | translate:editingUserName}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n.datatable-header-cell {\\n display: flex !important;\\n align-items: center !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row red {\\n background-color: red; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnRyb2xzXFx1c2Vycy1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUdqQztFQUNFLHdCQUF3QjtFQUN4Qiw4QkFBOEIsRUFBQTs7QUFHaEM7RUFFSSxxQkFBcUIsRUFBQTs7QUFJekI7RUFDRSwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFPSSxtQkFBbUIsRUFBQTs7QUFQdkI7SUFXSSxnQkFBZ0I7SUFDaEIsMEJBQTBCLEVBQUE7O0FBWjlCO0lBZ0JJLDBCQUEwQixFQUFBOztBQUk5QjtFQUNFLFlBQVk7RUFDWixtQkFBbUIsRUFBQTs7QUFFckI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksU0FBUyxFQUFBOztBQUdiO0VBQ0ksZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2Vycy1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IHtcclxuICByZWQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBoZWlnaHQ6IDI2cHg7XHJcbiAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxufVxyXG4udXNlci1yb2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from '../../services/app-translation.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { User } from '../../models/user.model';\r\nimport { Role } from '../../models/role.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { UserEdit } from '../../models/user-edit.model';\r\nimport { UserInfoComponent } from './user-info.component';\r\nimport { Branch } from '../../models/branch.model';\r\nimport { AspnetApplications } from '../../models/applications.model';\r\n\r\n\r\n@Component({\r\n selector: 'users-management',\r\n templateUrl: './users-management.component.html',\r\n styleUrls: ['./users-management.component.scss']\r\n})\r\nexport class UsersManagementComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: User[] = [];\r\n rowsCache: User[] = [];\r\n editedUser: UserEdit;\r\n sourceUser: UserEdit;\r\n editingUserName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n allRoles: Role[] = [];\r\n allBranches: Branch[] = [];\r\n allApplications: AspnetApplications[] = [];\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('userNameTemplate')\r\n userNameTemplate: TemplateRef;\r\n\r\n @ViewChild('rolesTemplate')\r\n rolesTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('userEditor')\r\n userEditor: UserInfoComponent;\r\n\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private fowkesService: FowkesOnlineService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n const gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'fullName', name: gT('users.management.FullName'), width: 120 },\r\n { prop: 'userName', name: gT('users.management.UserName'), width: 120, cellTemplate: this.userNameTemplate },\r\n //{ prop: 'jobTitle', name: gT('users.management.Title'), width: 100 },\r\n { prop: 'roles', name: 'Role', width: 150, cellTemplate: this.rolesTemplate },\r\n { prop: 'branch', name: gT('Branch'), width: 50 },\r\n // { prop: 'email', name: gT('users.management.Email'), width: 140 },\r\n { prop: 'sysproOperator', name: gT('Operator'), width: 60 },\r\n { prop: 'sysproBuyer', name: 'Buyer', width: 60 },\r\n { prop: 'sysproRep', name: 'Rep Code', width: 60 },\r\n // { prop: 'phoneNumber', name: gT('users.management.PhoneNumber'), width: 100 }\r\n ];\r\n\r\n if (this.canManageUsers) {\r\n this.columns.push({ name: '', width: 140, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.userEditor.changesSavedCallback = () => {\r\n this.addNewUserToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.userEditor.changesCancelledCallback = () => {\r\n this.editedUser = null;\r\n this.sourceUser = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewUserToList() {\r\n if (this.sourceUser) {\r\n Object.assign(this.sourceUser, this.editedUser);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceUser, 0);\r\n if (sourceIndex > -1) {\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n }\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceUser, 0);\r\n if (sourceIndex > -1) {\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n }\r\n\r\n this.editedUser = null;\r\n this.sourceUser = null;\r\n } else {\r\n const user = new User();\r\n Object.assign(user, this.editedUser);\r\n this.editedUser = null;\r\n\r\n let maxIndex = 0;\r\n for (const u of this.rowsCache) {\r\n if ((u).index > maxIndex) {\r\n maxIndex = (u).index;\r\n }\r\n }\r\n\r\n (user).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, user);\r\n this.rows.splice(0, 0, user);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n\r\n this.fowkesService.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.fowkesService.getApplications().subscribe(x => this.onAppLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n if (this.canViewRoles) {\r\n this.accountService.getUsersAndRoles().subscribe(results => this.onDataLoadSuccessful(results[0], results[1]), error => this.onDataLoadFailed(error));\r\n } else {\r\n this.accountService.getUsers().subscribe(users => this.onDataLoadSuccessful(users, this.accountService.currentUser.roles.map(x => new Role(x))), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n private onBranchLoadSuccessful(branches: Branch[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.allBranches = branches;\r\n console.log(\"Branches\", this.allBranches);\r\n }\r\n\r\n private onAppLoadSuccessful(applications: AspnetApplications[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.allApplications = applications;\r\n console.log(\"allApplications\", this.allApplications);\r\n }\r\n\r\n\r\n onDataLoadSuccessful(users: User[], roles: Role[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n users.forEach((user, index, users) => {\r\n (user).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...users];\r\n this.rows = users;\r\n\r\n this.allRoles = roles;\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve users from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.userName, r.fullName, r.email, r.phoneNumber, r.sysproBuyer, r.jobTitle, r.roles, r.branch, r.sysproOperator));\r\n }\r\n\r\n onEditorModalHidden() {\r\n this.editingUserName = null;\r\n this.userEditor.resetForm(true);\r\n }\r\n\r\n\r\n newUser() {\r\n this.editingUserName = null;\r\n this.sourceUser = null;\r\n this.editedUser = this.userEditor.newUser(this.allRoles, this.allBranches, this.allApplications);\r\n this.editorModal.show();\r\n }\r\n\r\n\r\n editUser(row: UserEdit) {\r\n this.editingUserName = { name: row.userName };\r\n this.sourceUser = row;\r\n this.editedUser = this.userEditor.editUser(row, this.allRoles, this.allBranches, this.allApplications);\r\n this.editorModal.show();\r\n }\r\n\r\n\r\n deleteUser(row: UserEdit) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.userName + '\\\"?', DialogType.confirm, () => this.deleteUserHelper(row));\r\n }\r\n\r\n\r\n deleteUserHelper(row: UserEdit) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.accountService.deleteUser(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row);\r\n this.rows = this.rows.filter(item => item !== row);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the user.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n\r\n get canAssignRoles() {\r\n return this.accountService.userHasPermission(Permission.assignRolesPermission);\r\n }\r\n\r\n get canViewRoles() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageUsers() {\r\n return this.accountService.userHasPermission(Permission.manageUsersPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n

Welcome {{welcomeMessage}}

\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Please enter OTP to continue\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Unfortunately this OTP is no longer valid\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"card-body p-3\\\" style=\\\"background-color: white\\\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DateInvoiceTypeReferenceAmount (incl VAT)
{{row.filterDate}}\\r\\n \\r\\n {{row.transaction}}{{row.customerPoNumber}}{{row.reference}} R {{row.amount | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n.tbody {\\n height: calc(100vh - 300px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 98%; }\\n\\n.table th {\\n font-size: smaller;\\n background-color: cornflowerblue; }\\n\\n.table th, .table td {\\n padding: 2px 5px 2px 5px; }\\n\\n.table tr {\\n height: 22px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lci1wb3J0YWwvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxjdXN0b21lci1wb3J0YWxcXGN1c3RvbWVyLXBvcnRhbC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFPSSxnQkFBZ0IsRUFBQTs7QUFLcEI7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsVUFBVSxFQUFBOztBQUdaO0VBQ0Usa0JBQWtCO0VBQ2xCLGdDQUFnQyxFQUFBOztBQUdsQztFQUNFLHdCQUF3QixFQUFBOztBQUcxQjtFQUNFLFlBQVksRUFBQTs7QUFHZDtFQUNFLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLFNBQVMsRUFBQTs7QUFHWDtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7O0FBR2xCO0VBQ0UsV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXItcG9ydGFsL2N1c3RvbWVyLXBvcnRhbC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi50Ym9keSB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgd2lkdGg6IDk4JTtcclxufVxyXG5cclxuLnRhYmxlIHRoIHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogY29ybmZsb3dlcmJsdWU7XHJcbn1cclxuXHJcbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcclxuICBwYWRkaW5nOiAycHggNXB4IDJweCA1cHg7XHJcbn1cclxuXHJcbi50YWJsZSB0ciB7XHJcbiAgaGVpZ2h0OiAyMnB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgY29sb3I6ICM3Nzc7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG4iXX0= */\"","\r\n\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { CustomerOTPReference } from '../../models/customerOTPReference.model';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { CustomerPayments } from '../../models/customer-payments.model';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { ArCustomer } from '../../models/arcustomer.model';\r\n\r\n\r\n@Component({\r\n selector: 'customer-portal',\r\n templateUrl: './customer-portal.component.html',\r\n styleUrls: ['./customer-portal.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class CustomerPortalComponent {\r\n\r\n authorized: boolean;\r\n stringToCompare: string;\r\n\r\n loadingIndicator: boolean;\r\n\r\n @Input()\r\n OTP: string;\r\n\r\n @Input()\r\n Reference: string;\r\n showResults: boolean;\r\n\r\n columns: any[] = [];\r\n rows: CustomerPayments[] = [];\r\n rowsCache: CustomerPayments[] = [];\r\n customerPaymentsList: CustomerPayments[];\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n customerId: string;\r\n\r\n src: string;\r\n documentReference: string;\r\n expired: boolean;\r\n applicationId: string;\r\n custDetails: ArCustomer[];\r\n welcomeMessage: string;\r\n\r\n\r\n constructor(public configurations: ConfigurationService, private alertService: AlertService, private reportService: ReportService,\r\n private fowkesService: FowkesOnlineService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.authorized = false;\r\n this.customerId = \"\";\r\n\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const myParam = urlParams.get('OTP');\r\n this.documentReference = myParam;\r\n\r\n //if (this.documentReference) {\r\n // this.downloadPDF(this.documentReference);\r\n //}\r\n }\r\n\r\n\r\n downloadPDF(documentReference: string) {\r\n this.alertService.stopLoadingMessage();\r\n this.reportService.getFileStreamStatement(this.documentReference).subscribe(x => this.onFileSuccessful(x, this.documentReference), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n downloadDocument(row: any) {\r\n var docRef = \"Invoice_\";\r\n\r\n if (row.transaction == \"Invoice\") {\r\n docRef = \"Invoice_\" + row.invoice + \".pdf\";\r\n\r\n\r\n this.reportService.getStatementInvoicePDF(this.customerId, this.applicationId, row.salesOrder, row.invoice, this.OTP).subscribe(x => {\r\n this.reportService.getFileStreamStatement(docRef).subscribe(x => this.onFileSuccessful(x, docRef), error => this.onDataLoadFailed(error))\r\n }, error => this.onDataLoadFailed(error));\r\n\r\n }\r\n if (row.transaction == \"Credit\") {\r\n var docRef = \"InvoiceCredit_\" + row.invoice + \".pdf\";\r\n\r\n\r\n this.reportService.getStatementCreditPDF(this.customerId, this.applicationId, row.salesOrder, row.invoice, this.OTP).subscribe(x => {\r\n this.reportService.getFileStreamStatement(docRef).subscribe(x => this.onFileSuccessful(x, docRef), error => this.onDataLoadFailed(error))\r\n }, error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n verifyAuth() {\r\n this.alertService.startLoadingMessage(\"Verfiying...\");\r\n this.loadingIndicator = true;\r\n this.Reference = this.stringToCompare;\r\n this.OTP = this.Reference;\r\n\r\n this.fowkesService.getOTPDetails(this.OTP).subscribe(x => this.onDataLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n \r\n onDataLoadSuccesful(x: CustomerOTPReference[]): void {\r\n\r\n if (x && x.length >= 1) {\r\n\r\n var statementDetail = x[0];\r\n\r\n if (statementDetail) {\r\n\r\n this.onVerificationSuccess();\r\n this.customerId = statementDetail.customerCode;\r\n this.applicationId = statementDetail.application;\r\n\r\n //Changing to 10 days from 5\r\n var d = new Date();\r\n d.setDate(d.getDate() - 10);\r\n var c = new Date(statementDetail.createDate);\r\n //check date\r\n if (c < d) {\r\n this.expired = true;\r\n this.authorized = false;\r\n }\r\n else {\r\n\r\n var start = new Date(statementDetail.dateFrom.toString());\r\n var end = new Date(statementDetail.dateTo.toString());\r\n\r\n this.fowkesService.getCustomerPayments(start.toJSON(), end.toJSON(), statementDetail.customerCode).subscribe(x => this.onStatementDetailLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n this.fowkesService.getCustomerDetail(this.customerId).subscribe(\r\n x => this.onSpecificSearchSuccesful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n }\r\n }\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n this.custDetails = x;\r\n this.welcomeMessage = this.custDetails[0].customerName;\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Customer could not be found',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n onStatementDetailLoadSuccessful(customers: any[]): void {\r\n\r\n this.customerPaymentsList = customers[0];\r\n\r\n if (this.customerPaymentsList && this.customerPaymentsList.length >= 1) {\r\n\r\n this.customerPaymentsList.forEach((customer, index, customers) => {\r\n (customer).index = index + 1;\r\n (customer).filterDate = customer.date.toString();\r\n });\r\n\r\n //Remove 0 value lines\r\n this.customerPaymentsList = this.customerPaymentsList.filter(x => x.customerPoNumber != 'Unapplied cash')\r\n\r\n this.rowsCache = [...this.customerPaymentsList];\r\n this.rows = [...this.rowsCache]\r\n\r\n }\r\n else {\r\n this.alertService.showMessage('No results', 'No payment details for the search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n viewDocument(row: CustomerOTPReference) {\r\n if (row.documentNumber != \"\") {\r\n\r\n this.reportService.getFileStreamStatement(row.documentNumber).subscribe(x => this.onFileSuccessful(x, row.documentNumber), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n onFileSuccessful(x: Blob, value: string): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n var preview = false;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = value;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n loadCustomerDetails() {\r\n //Get Customer Info?\r\n\r\n }\r\n\r\n onVerificationSuccess(): void {\r\n this.authorized = true;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', 'Authorized', MessageSeverity.success);\r\n \r\n }\r\n\r\n onVerificationFailed(error: any): void {\r\n this.authorized = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', 'Authorization Failed ', MessageSeverity.error);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Customer\", \"Invoice\", \"Date\", \"Transaction\", \"Customer PO\", \"Payment Ref\",\r\n \"Operator\",\r\n \"Total (Incl VAT)\"]\r\n };\r\n\r\n var filename = this.customerId + \"-Payments\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Customer: row.customer, Invoice: row.invoice, Date: (moment(row.filterDate)).format('DD-MMM-YYYY'), Transaction: row.transaction,\r\n CustomerPO: row.customerPoNumber, PaymentRef: row.reference,\r\n Operator: row.operator,\r\n Total: row.amount\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{customerHeading.customer}} - {{customerHeading.customerName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
  {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
  {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lci1wb3J0YWwvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxjdXN0b21lci1wb3J0YWxcXHN5c3Byby1jdXN0b21lcnMtdmlldy1wb3J0YWwuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsK0JBQStCLEVBQUE7O0FBR2pDO0VBQ0UsK0JBQStCO0VBQy9CLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCLEVBQUE7O0FBSjdCO0lBT0ksZ0JBQWdCLEVBQUE7O0FBS3BCO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsU0FBUyxFQUFBOztBQUdYO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lci1wb3J0YWwvc3lzcHJvLWN1c3RvbWVycy12aWV3LXBvcnRhbC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5jb250cm9sLWJveCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgcGFkZGluZy10b3A6IDNweDtcclxuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICBjb2xvcjogIzc3NztcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgY29sb3I6IHdoaXRlc21va2U7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcbiJdfQ== */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { CustomerMovements } from 'src/app/models/customer-movements.model';\r\nimport { CustomerPayments } from 'src/app/models/customer-payments.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { Email } from '../../models/email.model';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { CustomerOTPReference } from '../../models/customerOTPReference.model';\r\n\r\n\r\n@Component({\r\n selector: 'syspro-customers-view-portal',\r\n templateUrl: './syspro-customers-view-portal.component.html',\r\n styleUrls: ['./syspro-customers-view-portal.component.scss']\r\n})\r\nexport class SysproCustomersViewPortalComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: CustomerPayments[] = [];\r\n rowsCache: CustomerPayments[] = [];\r\n customerPaymentsList: CustomerPayments[];\r\n loadingIndicator: boolean;\r\n\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n @ViewChild('pdfModal')\r\n pdfModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n id: string;\r\n\r\n @Input()\r\n OTP: string;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n //moment = _moment;\r\n selected: { startDate: Moment, endDate: Moment };\r\n ranges = {\r\n 'All Dates': [moment().subtract(5, 'year').startOf('month'), moment()],\r\n //'Today': [moment(), moment()],\r\n //'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n //'Last 30 Days': [moment().subtract(29, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 12 Months': [moment().subtract(12, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 2 Years': [moment().subtract(24, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Years': [moment().subtract(36, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n };\r\n locale: LocaleConfig = {\r\n applyLabel: 'Done'\r\n };\r\n start: Date;\r\n end: Date;\r\n inlineDate: any;\r\n inlineDateTime: any;\r\n show: boolean;\r\n chkDb: boolean;\r\n chkCr: boolean;\r\n\r\n\r\n emailObject: Email = new Email();\r\n customerOTP: string;\r\n src: string;\r\n hasresults: boolean;\r\n\r\n constructor(private alertService: AlertService,\r\n private router: Router, private route: ActivatedRoute,\r\n private reportService: ReportService, private fowkesService: FowkesOnlineService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.hasresults = false;\r\n this.columns = [\r\n { prop: 'invoice', name: 'Invoice', width: 100, cellClass: \"left\" },\r\n { prop: 'filterDate', name: 'Date', width: 100, cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'transaction', name: 'Transaction', width: 210, cellClass: \"left\" },\r\n { prop: 'customerPoNumber', name: 'Customer Po Number', width: 210, cellClass: \"left\" },\r\n { prop: 'reference', name: 'Transaction Reference', width: 210, cellClass: \"left\" }, \r\n // { prop: 'operator', name: 'Operator', width: 80, cellClass: \"left\" },\r\n { prop: 'amount', name: 'Total (Incl VAT)', width: 210, cellClass: \"right\" }\r\n ];\r\n\r\n this.selected = {\r\n startDate: moment().subtract(0, 'month').startOf('month'), \r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n\r\n this.getDocumentsForOTP();\r\n\r\n // this.loadData();\r\n }\r\n getDocumentsForOTP() {\r\n\r\n if (this.OTP) {\r\n\r\n this.fowkesService.getOTPDetails(this.OTP).subscribe(x => this.onDataLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n onDataLoadSuccesful(x: CustomerOTPReference[]): void {\r\n this.hasresults = true;\r\n var test = x;\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.columns = [\r\n { prop: 'invoice', name: 'Invoice', width: 100, cellClass: \"left\" },\r\n { prop: 'filterDate', name: 'Date', width: 100, cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'transaction', name: 'Transaction', width: 150, cellClass: \"left\" },\r\n { prop: 'customerPoNumber', name: 'Customer Po Number', width: 210, cellClass: \"left\" },\r\n { prop: 'reference', name: 'Transaction Reference', width: 210, cellClass: \"left\" },\r\n // { prop: 'operator', name: 'Operator', width: 80, cellClass: \"left\" },\r\n { prop: 'amount', name: 'Total (Incl VAT)', width: 210, cellClass: \"right\" }\r\n ];\r\n\r\n }\r\n \r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n dateFilterChanged() {\r\n if (this.currentCustomer) {\r\n var start = new Date(this.selected.startDate.toString());\r\n var end = new Date(this.selected.endDate.toString());\r\n this.rows = this.rowsCache.filter(m => new Date(m.filterDate) >= new Date(start) && new Date(m.filterDate) <= new Date(end));\r\n if (this.rows && this.rows.length >= 1) {\r\n\r\n if (this.chkCr) {\r\n this.rows = this.rowsCache.filter(m => m.transaction == \"Credit\" && new Date(m.filterDate) >= new Date(start) && new Date(m.filterDate) <= new Date(end));\r\n }\r\n else {\r\n if (this.chkDb) {\r\n this.rows = this.rowsCache.filter(m => m.transaction == \"Payment\" && new Date(m.filterDate) >= new Date(start) && new Date(m.filterDate) <= new Date(end));\r\n }\r\n else {\r\n this.rows = this.rowsCache.filter(m => new Date(m.filterDate) >= new Date(start) && new Date(m.filterDate) <= new Date(end));\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n //this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n // MessageSeverity.warn);\r\n }\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadDetails();\r\n // this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadDetails();\r\n //this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n this.loadDetails();\r\n // this.dateFilterChanged();\r\n\r\n this.show = false;\r\n }\r\n\r\n showPaymentsOnly() {\r\n this.chkDb = !this.chkDb;\r\n this.chkCr = false;\r\n this.dateFilterChanged();\r\n }\r\n\r\n showCreditsOnly() {\r\n this.chkDb = false;\r\n this.chkCr = !this.chkCr;\r\n this.dateFilterChanged();\r\n }\r\n\r\n loadData() {\r\n this.searchType = \"customer\";\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n if (action && action.length >= 4) {\r\n this.id = action;\r\n this.currentCustomer = this.id;\r\n this.searchText = this.id;\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n //this.sysproService.getCustomerDetail(this.id).subscribe(\r\n // x => this.onSpecificSearchSuccesful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResults = null;\r\n this.searchResultSelected = null;\r\n\r\n this.customerPaymentsList = null;\r\n this.rowsCache = null;\r\n this.rows = null;\r\n\r\n //this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n // x => this.onSpecificSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n this.searchResults = x;\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.loadCustomer();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Customer could not be found',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n \r\n onDataLoadSuccessful(customers: any[]) {\r\n\r\n this.customerPaymentsList = customers[0];\r\n\r\n if (this.customerPaymentsList && this.customerPaymentsList.length >= 1) {\r\n\r\n this.customerPaymentsList.forEach((customer, index, customers) => {\r\n (customer).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...this.customerPaymentsList];\r\n\r\n this.dateFilterChanged();\r\n\r\n }\r\n else {\r\n this.alertService.showMessage('No results', 'No payment details for the search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n private loadCustomer() {\r\n this.id = this.searchResultSelected.customer;\r\n this.currentCustomer = this.id;\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.currentCustomer); \r\n this.customerHeading = this.searchResultSelected;\r\n this.loadDetails();\r\n this.router.navigate(['../../customers'], { fragment: 'payments', queryParams: { customer: this.currentCustomer } });\r\n }\r\n\r\n loadDetails() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n var start = new Date(this.selected.startDate.toString());\r\n var end = new Date(this.selected.endDate.toString());\r\n\r\n\r\n this.customerPaymentsList = null;\r\n this.rowsCache = null;\r\n this.rows = null;\r\n\r\n /*this.sysproService.getCustomerPayments(start.toJSON(), end.toJSON(),this.id).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));*/\r\n }\r\n\r\n\r\n viewCustomerSelected() {\r\n if (this.searchResultSelected) {\r\n this.loadCustomer();\r\n }\r\n }\r\n\r\n\r\n onCustomerLoadSuccessful(x: ArCustomer[]): void {\r\n this.customerSearch = x;\r\n this.customerHeading = this.customerSearch.find(x => x.customer == this.currentCustomer);\r\n setTimeout(() => {\r\n if (this.customerSelector) {\r\n this.customerSelector.refresh();\r\n }\r\n });\r\n }\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Customer\", \"Invoice\", \"Date\", \"Transaction\", \"Customer PO\", \"Payment Ref\",\r\n \"Operator\",\r\n \"Total (Incl VAT)\"]\r\n };\r\n\r\n var filename = this.id + \"-Payments\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Customer: row.customer, Invoice: row.invoice, Date: (moment(row.filterDate)).format('DD-MMM-YYYY'), Transaction: row.transaction,\r\n CustomerPO: row.customerPoNumber, PaymentRef: row.reference,\r\n Operator: row.operator,\r\n Total: row.amount\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.invoice, r.date, r.customerPoNumber, r.operator, r.transaction, r.reference, r.amount));\r\n }\r\n\r\n else {\r\n this.dateFilterChanged();\r\n }\r\n }\r\n\r\n\r\n\r\n onEmailLoadSuccessful(type?: string) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n var uniqueCode = this.currentCustomer + \"-\" + this.generateOTP();\r\n this.customerOTP = uniqueCode;\r\n\r\n this.emailObject.RecepientName = this.customerHeading.contact;\r\n this.emailObject.RecepientEmail = this.customerHeading.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Customer Account: \" + this.currentCustomer;\r\n //this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n //this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n //this.emailObject.SenderBranch = this.branchCode;\r\n //this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = \"CustomerAccount_\" + uniqueCode + \".pdf\";\r\n this.emailObject.Bod = \"Please use this number when accesing the documents referenced in this document: \" + uniqueCode;\r\n this.emailObject.EmailType = \"Statement\";\r\n\r\n console.log(this.emailObject);\r\n\r\n\r\n var start = new Date(this.selected.startDate.toString());\r\n var end = new Date(this.selected.endDate.toString());\r\n\r\n // this.reportService.getStatementPDF(this.currentCustomer, this.application, start.toJSON(), end.toJSON(), uniqueCode).subscribe(x => this.emailModal.show(), error => this.onDataLoadFailed(error));\r\n //console.log(this.quoteHeader);\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n generateOTP() {\r\n\r\n // Declare a digits variable \r\n // which stores all digits\r\n var digits = '0123456789';\r\n let OTP = '';\r\n for (let i = 0; i < 4; i++) {\r\n OTP += digits[Math.floor(Math.random() * 10)];\r\n }\r\n return OTP;\r\n }\r\n\r\n\r\n viewPDF() {\r\n this.reportService.getFileStreamStatement(this.emailObject.Attachment).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n\r\n this.reportService.getFileStreamStatement(this.emailObject.Attachment).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n\r\n if (this.emailObject.RecepientEmail && this.emailObject.RecepientEmail.trim().length >= 1) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n //this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Remeber to add email address for recepient`, MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n getPDF(x: Blob, quoteNumber: string): void {\r\n\r\n this.reportService.getFileStreamStatement(this.customerOTP).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.emailObject.Attachment;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
  {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n R {{batchTotal | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n R {{totalRejected | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n R {{totalValue | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\" style=\\\"margin-left: 2px\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Records Rejected
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Upload Bank File

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .rowcolor1 {\\n background-color: red;\\n color: white; }\\n .rowcolor2 {\\n background-color: orange; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvYmFuay10b29scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGN1c3RvbWVyc1xcYmFuay10b29sc1xcYmFuay1leHBvcnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXJzL2JhbmstdG9vbHMvYmFuay1leHBvcnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7RUFDWiwwRUFBMEUsRUFBQTtFQVA1RTtJQVVJLDhCQUE4QjtJQUM5QixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLFVBQVU7SUFDVixXQUFXLEVBQUE7RUFJZixVQUFBO0VBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCO0VBQ3ZCLDZDQUEwQyxFQUFBO0VBSTVDO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixVQUFVLEVBQUE7RUFkZDtJQWtCSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0VBcEJwQjtJQXdCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQjtFQUNFLHNCQUFzQjtFQUN0Qiw0REFBaUc7RUFDakcsa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSxxQkFBcUI7RUFDckIsWUFBWSxFQUFBO0VBR2Q7RUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGVBQWU7RUFFZixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsWUFBWSxFQUFBO0VBRGQ7SUFJSSxVQUFVLEVBQUE7RUFJZDtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0Usd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCLEVBQUE7RUFHekI7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDJCQUEyQjtFQUMzQixxQkFBcUIsRUFBQTtFQUx2QjtJQVFJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEI7bUNDMUIrQjtJRDRCL0IsaUJBQWlCO0lBQ2pCLFlBQVksRUFBQTtFQWJoQjtJQWlCSSxrQkFBa0I7SUFDbEIsZ0JBQWdCLEVBQUE7RUFsQnBCO0lBc0JJLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsWUFBWSxFQUFBO0VBSWhCLG1CQUFBO0VBQ0E7RUFDRTtJQUNFLCtGQUFBO0lBQ0EsNkJBQTZCLEVBQUEsRUFDOUI7RUFHSCxrQkFBQTtFQUNBO0VBQ0U7SUFDRSxzRUFBQTtJQUNBLHNCQUFzQixFQUFBLEVBQ3ZCO0VBSUg7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixXQUFXLEVBQUE7RUFHYjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsT0FBTztFQUNQLFdBQVcsRUFBQTtFQUpiO0lBT0ksWUFBWSxFQUFBO0VBSWhCO0VBQ0UsZUFBZTtFQUNmLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsZUFBZTtFQUNmLGlDQUFpQyxFQUFBO0VBR25DO0VBQ0UsZUFBZSxFQUFBO0VBR2pCO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxjQUFjLEVBQUE7RUFHaEI7RUFDRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGlCQUFpQixFQUFBO0VBR25COztFQUVFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0U7SUFDRSxnQkFBZ0IsRUFBQSxFQUNqQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXJzL2JhbmstdG9vbHMvYmFuay1leHBvcnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmFkZHJlc3MtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xyXG4gIHBhZGRpbmc6IDI1cHg7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xyXG5cclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyogTGFyZ2UgKi9cclxuLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xyXG4gIC8vaGVpZ2h0OiAyNXB4O1xyXG59XHJcblxyXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICBmbGV4OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICAgIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLnJvdyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiKDI1NSwgMjU1LCAyNTUpLCByZ2IoMjU1LCAyNTUsIDI1NSkgMTAlLCByZ2IoMjQ3LCAyNDcsIDI0NykpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxufVxyXG5cclxuLnJvd2NvbG9yMSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLnJvd2NvbG9yMiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlO1xyXG59XHJcblxyXG4uY29udHJvbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAycHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7XHJcbn1cclxuXHJcbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICB9XHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogN3B4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5zdWJzZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogN3B4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogN3B4O1xyXG59XHJcblxyXG4uZm9ybS1ncm91cCB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBwYWRkaW5nLXRvcDogMDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG59XHJcblxyXG4uY29sLXNldC1kZWZhdWx0IHtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XHJcbiAgbWluLXdpZHRoOiAxNTBweDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgfVxyXG59XHJcbiIsIi5hZGRyZXNzLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIG1hcmdpbjogMTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLmFkZHJlc3MtY29udGFpbmVyIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4vKiBMYXJnZSAqL1xuLmZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGZsZXg6IG5vbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXgtZ3JvdzogMjtcbiAgICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi5yb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlIDEwJSwgI2Y3ZjdmNyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4ucm93Y29sb3IxIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICBjb2xvcjogd2hpdGU7IH1cblxuLnJvd2NvbG9yMiB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsgfVxuXG4uY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIG1pbi13aWR0aDogMTcwcHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsIHtcbiAgcGFkZGluZzogOHB4OyB9XG4gIC5jb250cm9sLWRldGFpbCAubmF2LWxpbmsge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMnB4OyB9XG5cbi5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4OyB9XG5cbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAxMjBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9IH1cblxuLyogU21hbGwgc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxO1xuICBmbG9hdDogbGVmdDsgfVxuICAuY29sdW1uIGxhYmVsIHtcbiAgICBwYWRkaW5nOiA1cHg7IH1cblxuLnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkOyB9XG5cbi5zdWJzZXBhcmF0b3ItaHIge1xuICBtYXJnaW46IDdweCA1cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xuICBtYXJnaW4tdG9wOiA3cHg7IH1cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcbiAgbWluLWhlaWdodDogMDsgfVxuXG4uY2hlY2tib3gge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5jb2wtc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQgLmJ0bixcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XG4gIG1pbi13aWR0aDogMTUwcHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtZm9ybS1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDVweDsgfSB9XG4iXX0= */\"","import { Component, OnInit, ViewChild, Input, TemplateRef, ElementRef } from '@angular/core';\r\n//import { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { fadeInOut } from '../../../services/animations';\r\n//import { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { PrinterService } from '../../../services/printer.service';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { MySQLDocument } from '../../../models/mysqldocument.model';\r\nimport { SalesOrderList } from '../../../models/salesorder-list.model';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { InvoiceBarcode } from '../../../models/invoice-barcode.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { BarcodeReference } from '../../../models/barcode-reference.model';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { BankImport } from '../../../models/bank-import.model';\r\nimport { User } from '../../../models/user.model';\r\nimport { SalesOrderHeader } from '../../../models/salesorder-header.model';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { BankProcess } from '../../../models/bank-process.model';\r\nimport { SysproBank } from '../../../models/syspro-bank.model';\r\nimport { SysproPaymentHeader } from '../../../models/syspro-payment-header.model';\r\nimport { SysproPaymentDetail } from '../../../models/syspro-payment-detail.model';\r\nimport { CoreAudit } from '../../../models/core-audit.model';\r\nimport { SysproEFTHeader } from '../../../models/syspro-eft-file-header.model';\r\nimport { SysproEFTDetail } from '../../../models/syspro-eft-file-detail.model';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'bank-export',\r\n templateUrl: './bank-export.component.html',\r\n styleUrls: ['./bank-export.component.scss']\r\n})\r\nexport class BankExportComponent implements OnInit {\r\n\r\n\r\n @ViewChild('bank')\r\n private bank;\r\n\r\n @ViewChild('bankList')\r\n private bankList;\r\n\r\n @ViewChild('bankSelector')\r\n private bankSelector;\r\n\r\n sysproBankList: SysproBank[] = [];\r\n\r\n selectedBank: string;\r\n\r\n @ViewChild('batchNumber')\r\n private batchNumber;\r\n\r\n @ViewChild('batchNumberList')\r\n private batchNumberList;\r\n\r\n @ViewChild('batchNumberListSelector')\r\n private batchNumberListSelector;\r\n\r\n selectedBatchNumber: string;\r\n\r\n\r\n @ViewChild('batchDescriptionList')\r\n private batchDescriptionList;\r\n\r\n @ViewChild('batchDescriptionListSelector')\r\n private batchDescriptionListSelector;\r\n\r\n @ViewChild('paymentHeader')\r\n private paymentHeader;\r\n\r\n @ViewChild('paymentHeaderList')\r\n private paymentHeaderList;\r\n\r\n @ViewChild('paymentHeaderSelector')\r\n private paymentHeaderSelector;\r\n\r\n syspropaymentHeaderList: SysproPaymentHeader[] = [];\r\n\r\n syspropaymentDetailList: SysproPaymentDetail[] = [];\r\n syspropaymentDetailListCache: SysproPaymentDetail[] = [];\r\n\r\n sysprorejectedDetailList: SysproPaymentDetail[] = [];\r\n sysprorejectedDetailListCache: SysproPaymentDetail[] = [];\r\n\r\n selectedPaymentNumber: string;\r\n\r\n\r\n fileHeader: SysproEFTHeader;\r\n fileDetails: SysproEFTDetail[] = [];\r\n\r\n batchDescription: string;\r\n totalValue: number;\r\n totalExceedValue: number;\r\n\r\n @ViewChild('fileInput')\r\n fileInput: ElementRef;\r\n\r\n @ViewChild('periodListSelector')\r\n private periodListSelector;\r\n allPeriods: Branch[] = [];\r\n\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n columns: any[] = [];\r\n resultcolumns: any[] = [];\r\n\r\n stagedRows: BankImport[] = [];\r\n stagedRowsCache: BankImport[] = [];\r\n\r\n resultRows: BankImport[] = [];\r\n resultRowsCache: BankImport[] = [];\r\n\r\n successcount: number = 0;\r\n processcount: number = 0;\r\n isPosting: boolean;\r\n SysproUser: User;\r\n\r\n rows: BankImport[] = [];\r\n rowsCache: BankImport[];\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n selectedFileName: string;\r\n selectedCustomer: string;\r\n selectedCompany: string;\r\n selectedDocumentType: string;\r\n\r\n loadingIndicator: boolean = false;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n show: boolean;\r\n\r\n periods: [{ \"Current\": \"Current\", \"Date\": \"June 2021\" },\r\n { \"Previous\": \"Previous\", \"Date\": \"May 2021\" } ];\r\n\r\n ranges = {\r\n //'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n periodRanges = {\r\n 'Current': [moment().startOf('month'), moment().endOf('month')],\r\n 'Previous': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]\r\n };\r\n\r\n selectedPeriod: string;\r\n\r\n newDebtorsFile = new FormData();\r\n\r\n @ViewChild('uploadModal')\r\n uploadModal: ModalDirective;\r\n arrayBuffer: any;\r\n index: any;\r\n complete: boolean;\r\n currentFileName: string;\r\n skipCount: number;\r\n posintgCount: number;\r\n failedCount: number;\r\n gridHeigt: string;\r\n fileName: string;\r\n branchCode: string;\r\n batchTotal: number;\r\n maxLineValue: any;\r\n totalRejected: number;\r\n maxBatchValue: any;\r\n formattedAmount: any;\r\n src: string;\r\n newFileName: string;\r\n \r\n\r\n constructor(private router: Router, private alertService: AlertService, private fowkesService: FowkesOnlineService, private configurations: ConfigurationService,\r\n private sysproService: SysproService, private route: ActivatedRoute, private accountService: AccountService, private printerService: PrinterService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.resetForNextBatch(); \r\n\r\n this.selected = {\r\n startDate: moment().startOf('day'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.gridHeigt = \"height: 300px;\";\r\n\r\n\r\n }\r\n\r\n setDataGrids() {\r\n this.columns = [\r\n { prop: 'supplier', name: 'Supplier', width: 100 },\r\n { prop: 'supplierName', name: 'Name', width: 250 },\r\n { prop: 'supplierBank', name: 'Bank', width: 150 },\r\n { prop: 'supplierBranch', name: 'Branch', width: 80 },\r\n { prop: 'supplierRefNo', name: 'Reference', width: 150 },\r\n { prop: 'supplierPayValue', name: 'Amount', width: 100 },\r\n { prop: 'message', name: 'Message', width: 250 }\r\n ];\r\n\r\n \r\n }\r\n\r\n resetForNextBatch() {\r\n this.newFileName = \"\";\r\n //window.open(\"file:///C:\\DebtorsFiles\", '_blank', '');\r\n this.selectedCompany = (this.application == \"MaxArcusOnline\" ? \"M\" : \"F\");\r\n this.selectedBank = \"ST\";\r\n this.selectedBatchNumber = \"001\";\r\n this.maxBatchValue = (15000000.00).toFixed(2);\r\n this.maxLineValue = (4500000.00).toFixed(2);\r\n this.branchCode = \"051001\";\r\n\r\n this.sysproService.getSysproBankList().subscribe(x => this.onBanksLoadSuccessful(x), error => this.onBanksFailed(error));\r\n this.sysproService.getSysproPaymentRunHeader().subscribe(x => this.onPayRunHeaderLoadSuccessful(x), error => this.onBanksFailed(error));\r\n\r\n\r\n this.selectedPeriod = \"C\";\r\n this.complete = false;\r\n this.stagedRows = [...[]];\r\n this.stagedRowsCache = [...[]];\r\n this.resultRows = [...[]];\r\n this.resultRowsCache = [...[]];\r\n this.currentFileName = \"\";\r\n this.fileName = \"\";\r\n this.newDebtorsFile = new FormData();\r\n this.fileInput.nativeElement.value = \"\";\r\n \r\n\r\n this.setDataGrids();\r\n }\r\n\r\n formatToCurrency = amount => {\r\n return amount.toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, \"$&,\");\r\n };\r\n\r\n currencyPipe(value: any, ...args: any[]) {\r\n let updated = value.toFixed(2);\r\n updated += '';\r\n let x = updated.split('.');\r\n let x1 = x[0];\r\n let x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n //return value.toFixed(2);\r\n }\r\n\r\n onPayRunHeaderLoadSuccessful(x: SysproPaymentHeader[]): void {\r\n this.syspropaymentHeaderList = x;\r\n\r\n setTimeout(() => {\r\n if (this.paymentHeaderSelector) {\r\n this.paymentHeaderSelector.refresh();\r\n }\r\n });\r\n }\r\n\r\n onBanksLoadSuccessful(x: SysproBank[]): void {\r\n this.sysproBankList = x;\r\n\r\n this.selectedBank = \"ST\";\r\n setTimeout(() => {\r\n if (this.bankSelector) {\r\n this.bankSelector.refresh();\r\n }\r\n });\r\n\r\n }\r\n onBanksFailed(error: any): void {\r\n\r\n }\r\n\r\n\r\n viewPaymentDetailsForNumber() {\r\n if (this.selectedPaymentNumber) {\r\n\r\n this.sysproService.getSysproPaymentRunDetails(this.selectedPaymentNumber).subscribe(x => this.onPayRunDetailLoadSuccessful(x), error => this.onBanksFailed(error));\r\n }\r\n \r\n }\r\n onPayRunDetailLoadSuccessful(x: SysproPaymentDetail[]): void {\r\n\r\n this.totalValue = 0;\r\n this.totalRejected = 0;\r\n\r\n this.syspropaymentDetailListCache = x;\r\n this.batchTotal = this.syspropaymentHeaderList.filter(h => h.paymentNumber == this.selectedPaymentNumber)[0].netPayValue;\r\n var successList = [];\r\n var rejectList = [];\r\n for (var row of this.syspropaymentDetailListCache) {\r\n var newRow = new SysproPaymentDetail();\r\n newRow = row;\r\n if (row.supplierBank.trim() == \"\" || row.supplierBranch.trim() == \"\") {\r\n newRow.message = \"Supplier Bank Info Missing\";\r\n rejectList.push(newRow);\r\n this.totalRejected += row.supplierPayValue;\r\n }\r\n else {\r\n if (row.supplierPayValue > parseFloat(this.maxLineValue)) {\r\n newRow.message = \"Payment is more than the maximum line value\";\r\n rejectList.push(newRow);\r\n this.totalRejected += row.supplierPayValue;\r\n }\r\n else {\r\n newRow.message = \"\";\r\n successList.push(newRow);\r\n this.totalValue += row.supplierPayValue;\r\n }\r\n }\r\n }\r\n\r\n this.syspropaymentDetailList = [...successList];\r\n this.sysprorejectedDetailList = [...rejectList];\r\n if (this.totalValue > parseFloat(this.maxBatchValue) ) {\r\n\r\n this.alertService.showMessage('Error', \"Total value exceeds batch limit\" , MessageSeverity.error);\r\n\r\n }\r\n\r\n }\r\n\r\n runEFTExtract() {\r\n\r\n if (this.validated()) {\r\n let currentDate: Date = new Date(this.selected.startDate.toString());\r\n let year = currentDate.getFullYear();\r\n let month = (\"0\" + (currentDate.getMonth() + 1)).slice(-2);\r\n let day = (\"0\" + currentDate.getDate()).slice(-2);\r\n currentDate = new Date(currentDate.setDate(currentDate.getDate() + 1));\r\n this.alertService.startLoadingMessage('Creating Payment File...');\r\n this.fileHeader = new SysproEFTHeader();\r\n this.fileHeader.StrHomeAccount = this.sysproBankList.filter(r => r.bank == this.selectedBank)[0].bankAccount;\r\n this.fileHeader.strGlobRef = \"FOWKES BROTHERS PTY LTD\";\r\n this.fileHeader.strBatchDesc = this.batchDescription;\r\n this.fileHeader.dteActDate = currentDate;\r\n this.fileHeader.decTotal = this.totalValue;\r\n this.fileDetails = [];\r\n let tempTable = this.syspropaymentDetailList.filter(s => s.supplierBank.trim() != '');\r\n for (var row of tempTable) {\r\n let addRow = new SysproEFTDetail();\r\n addRow.strSupplier = row.supplier;\r\n addRow.strSuppName = row.supplierName;\r\n addRow.strSupplierBank = row.supplierBank;\r\n addRow.strSupplierBranch = row.supplierBranch;\r\n addRow.strSupplierRefNo = row.supplierRefNo;\r\n addRow.decSuppPayValue = row.supplierPayValue;\r\n this.fileDetails.push(addRow);\r\n }\r\n\r\n const postObject = {\r\n \"user\": this.accountService.currentUser, \"header\": this.fileHeader, \"detail\": this.fileDetails\r\n };\r\n\r\n this.printerService.postEFTToFile(this.selectedPaymentNumber, postObject).subscribe(x => this.onPrintSuccesful(x), error => this.onFileFailed(error));\r\n }\r\n\r\n\r\n }\r\n\r\n UpdateSyspro() {\r\n\r\n this.printerService.updateSysproPayRun(this.selectedPaymentNumber).subscribe(x => this.onSysproUpdateSuccess(x), error => this.onBanksFailed(error));\r\n }\r\n onSysproUpdateSuccess(x: any): void {\r\n this.isPosting = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', ` Syspro Updated Successfully ` + x.actionOutput, MessageSeverity.success);\r\n }\r\n\r\n validated(): boolean {\r\n let error = \"\";\r\n\r\n error = (this.selectedBank === 'undefined' || this.selectedBank == null || this.selectedBank == \"\") ? \"Please select a Bank\" : \"\";\r\n error += (this.selectedBatchNumber === 'undefined' || this.selectedBatchNumber == null || this.selectedBatchNumber == \"\") ? \"Please select a Batch Number\" : \"\";\r\n error += (this.batchDescription === 'undefined' || this.batchDescription == null || this.batchDescription.trim() == \"\") ? \"Please enter a four digit batch number\" : \"\";\r\n \r\n if (error.length > 1) {\r\n this.isPosting = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n\r\n onFileFailed(error: any): void {\r\n this.isPosting = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('File Error', 'The below errors occured whilst creating your file:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n onPrintSuccesful(x: CoreAudit): void {\r\n this.isPosting = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Success', ` File Created Successfully ` + x.actionOutput, MessageSeverity.success);\r\n var result = x;\r\n this.newFileName = x.actionOutput;\r\n // this.getFile(this.newFileName);\r\n // this.printerService.getFileStream(encodeURIComponent(x.actionOutput)).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n this.complete = true;\r\n }\r\n\r\n getFile(downloadPath) {\r\n console.log(downloadPath);\r\n window.open(\"\\\\\" + downloadPath, '_blank', '');\r\n }\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"text/plain\" });\r\n \r\n this.src = url;\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n\r\n link.download = this.newFileName + \".txt\";\r\n link.click();\r\n // this is necessary as link.click() does not work on the latest firefox\r\n // link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n onHistoryLoadSuccesfull(x: BankImport[]): void {\r\n if (x && x.length >= 1) {\r\n this.resultRowsCache = x;\r\n this.resultRows = [...this.resultRowsCache];\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.setDataGrids();\r\n }\r\n\r\n openUploadModal() {\r\n if (!this.uploadModal) {\r\n setTimeout(() => {\r\n if (this.uploadModal) {\r\n this.uploadModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.uploadModal.show();\r\n }\r\n }\r\n\r\n\r\n uploadModalHide() {\r\n this.uploadModal.hide();\r\n }\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.fileName = file.name.replace(/\\s/g, \"\") + \"-\" + this.selectedCompany + this.getFormattedTime() + this.selectedPeriod;\r\n this.newDebtorsFile.append('file', file);\r\n }\r\n }\r\n\r\n startImport() {\r\n if (this.newDebtorsFile.has('file')) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.uploadModalHide();\r\n this.stagedRows = null;\r\n this.stagedRowsCache = null;\r\n this.successcount = 0;\r\n this.processcount = 0;\r\n \r\n //var newFileName = this.selectedCompany + this.getFormattedTime() + this.selectedPeriod;\r\n this.sysproService.uploadBankFile(this.newDebtorsFile, this.selectedCompany, this.fileName, this.selectedBank, this.selectedPeriod).subscribe(\r\n x => this.onStagingFileSuccess(x, this.fileName), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n getFormattedTime() {\r\n var today = new Date();\r\n var y = today.getFullYear();\r\n var m = today.getMonth() + 1;\r\n var d = today.getDate();\r\n var h = today.getHours();\r\n var mi = today.getMinutes();\r\n var s = today.getSeconds();\r\n return y + \"-\" + m + \"-\" + d + \"T\" + h + mi + s + \"-\";\r\n }\r\n\r\n onStagingFileSuccess(x: any, fileName: string) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.currentFileName = fileName;\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.stagedRowsCache = [...details];\r\n this.stagedRows = this.stagedRowsCache;\r\n this.newDebtorsFile = new FormData();\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.stagedRows = this.stagedRowsCache.filter(r => Utilities.searchArray(value, false, r.status, r.bankReference, r.customer, r.customerName, r.paymentDate, r.paymentValue));\r\n }\r\n else {\r\n this.stagedRows = this.stagedRowsCache;\r\n }\r\n }\r\n\r\n postRecord(row: any) {\r\n\r\n if (!this.isPosting) {\r\n if (this.validatePost(row)) {\r\n this.isPosting = true;\r\n this.index = row.index;\r\n if (!this.SysproUser || this.SysproUser.sysproSessionId) {\r\n this.alertService.startLoadingMessage('Loggin into Syspro...');\r\n //Check SYSPRO User\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser).subscribe(x => this.onSingleSessionCreatedSuccesful(x, row), error => this.onSessionFailed(error));\r\n\r\n }\r\n else {\r\n this.onSingleSessionCreatedSuccesful(this.SysproUser, row);\r\n }\r\n }\r\n }\r\n }\r\n\r\n deleteRecord(row: any) {\r\n //Update local record\r\n row.status = \"SKIPPED\";\r\n row.message = \"\";\r\n this.sysproService.updateBankImportLine(row, row.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n }\r\n\r\n onSingleSessionCreatedSuccesful(x: User, row: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.startLoadingMessage('Posting Payment...');\r\n this.SysproUser = x;\r\n if (this.SysproUser.sysproSessionId) {\r\n let batchId = this.selectedCompany + this.getFormattedTime() + this.selectedPeriod; \r\n row.status = \"PROCESSING\";\r\n row.batchId = batchId;\r\n row.userName = this.SysproUser.sysproOperator;\r\n //Update local record\r\n this.sysproService.updateBankImportLine(row, row.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n\r\n const detail = row;\r\n if (detail) {\r\n const postObject = {\r\n \"user\": this.SysproUser, \"detail\": detail\r\n };\r\n this.sysproService.postSinglePaymentToSyspro(postObject).subscribe(x => this.onSingleArstpyPOSTSuccesful(x), error => this.onSingleArstpyPOSTFailed(row, error));\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `You have not logged into Syspro`, MessageSeverity.warn);\r\n this.isPosting = false;\r\n }\r\n }\r\n\r\n onSingleArstpyPOSTSuccesful(x: BankImport): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Payments posted to syspro successfully`, MessageSeverity.success);\r\n this.loadingIndicator = false;\r\n if (x && x.id >= 1) {\r\n //Update local record\r\n let index = this.resultRows.findIndex(r => r.id === x.id)\r\n let rowToUpdate = this.resultRows[index];\r\n rowToUpdate = x;\r\n this.resultRows = [...this.resultRows]; \r\n this.sysproService.updateBankImportLine(x, x.id).subscribe(x => { }, error => this.onUpdateFailed(error));\r\n }\r\n\r\n this.isPosting = false;\r\n this.complete = true;\r\n }\r\n\r\n onSingleArstpyPOSTFailed(posteRow: BankImport, error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Error', 'The below errors occured whilst posting payments:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //Update local record\r\n this.sysproService.updateBankImportLine(posteRow, posteRow.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n\r\n this.isPosting = false;\r\n this.complete = true;\r\n }\r\n\r\n postAll() {\r\n if (!this.isPosting) {\r\n if (this.validatePost()) {\r\n this.isPosting = true;\r\n //Check SYSPRO User\r\n this.alertService.startLoadingMessage('Loggin into Syspro...');\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser, false, this.selectedCompany).subscribe(x => this.onsessionCreatedSuccesful(x), error => this.onSessionFailed(error));\r\n }\r\n } \r\n }\r\n\r\n\r\n onsessionCreatedSuccesful(x: User): void {\r\n this.alertService.stopLoadingMessage();\r\n this.SysproUser = x;\r\n if (this.SysproUser.sysproSessionId) {\r\n\r\n this.index = 0;\r\n this.skipCount = 0;\r\n this.posintgCount = 0;\r\n this.failedCount = 0;\r\n const rowsToProcess = this.stagedRows.filter(x => x.status != \"ERROR\");\r\n this.processcount = rowsToProcess.length;\r\n let batchId = this.selectedCompany + this.getFormattedTime() + this.selectedPeriod;\r\n\r\n this.alertService.startLoadingMessage('Posting ' + this.processcount + ' Payments...'); \r\n\r\n //Update Local Records\r\n for (var row of rowsToProcess) {\r\n row.status = \"PROCESSING\";\r\n row.batchId = batchId;\r\n row.userName = this.SysproUser.sysproOperator;\r\n //Update local record\r\n this.sysproService.updateBankImportLine(row, row.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n }\r\n\r\n const postObject = {\r\n \"user\": this.SysproUser, \"detail\": rowsToProcess\r\n };\r\n this.sysproService.postPaymentsToSyspro(postObject).subscribe(x => this.onArstpyPOSTAllSuccesful(x), error => { this.onArstpyPOSTAllFailed(error) });\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `You have not logged into Syspro`, MessageSeverity.warn);\r\n this.isPosting = false;\r\n }\r\n\r\n }\r\n\r\n\r\n onUpdateSuccesful(x: BankImport): void {\r\n\r\n this.resultRowsCache.push(x);\r\n this.resultRows = [...this.resultRowsCache];\r\n let index = this.stagedRows.findIndex(r => r.id === x.id)\r\n let temp = [...this.stagedRows];\r\n temp.splice(index, 1);\r\n temp.forEach((line, index, temp) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.stagedRows = [...temp];\r\n }\r\n\r\n onArstpyPOSTAllFailed(error: any) {\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n }\r\n\r\n onArstpyPOSTAllSuccesful(x: BankImport): void {\r\n\r\n console.log(\"RESULT\", x);\r\n //Update Local Records\r\n const rowsToProcess = this.resultRows.filter(r => r.batchId === x.batchId);\r\n for (var row of rowsToProcess) {\r\n row.status = \"SUCCESS\";\r\n row.journal = x.journal;\r\n row.trnYear = x.trnYear;\r\n row.trnMonth = x.trnMonth;\r\n row.message = \"POSTED \" + x.journal;\r\n\r\n //Update all records with success, journal details\r\n this.sysproService.updateBankImportLine(row, row.id).subscribe(x => this.onFinalUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n }\r\n\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n this.isPosting = false;\r\n this.complete = true;\r\n\r\n }\r\n\r\n onFinalUpdateSuccesful(x: BankImport): void {\r\n console.log(\"NEW ROW\", x);\r\n let index = this.resultRows.findIndex(r => r.id === x.id)\r\n let rowToUpdate = this.resultRows[index];\r\n rowToUpdate = x;\r\n this.resultRows = [...this.resultRows]; \r\n }\r\n\r\n //processRow(row: BankImport, count: number) {\r\n // this.posintgCount++;\r\n // let detail = row;\r\n // const postObject = {\r\n // \"user\": this.SysproUser, \"detail\": detail\r\n // };\r\n // setTimeout(() => {\r\n \r\n // this.sysproService.postPaymentsToSyspro(postObject).subscribe(x => this.onArstpyPOSTSuccesful(x, count), error => { this.onArstpyPOSTFailed(row, error, count) });\r\n // }, 3000); //Time before execution\r\n \r\n //}\r\n\r\n\r\n //skipRow(row: BankImport, count: number) {\r\n // this.successcount++;\r\n // this.skipCount++;\r\n // console.log(\"SKIPPED\", count, this.successcount, row);\r\n // let newRow = new BankImport();\r\n // newRow = row;\r\n // this.resultRowsCache.push(newRow);\r\n // this.resultRows = [...this.resultRowsCache];\r\n\r\n\r\n // let index = this.stagedRows.findIndex(x => x.id === x.id)\r\n // let temp = [...this.stagedRows];\r\n // temp.splice(index, 1);\r\n // temp.forEach((line, index, temp) => {\r\n // (line).index = index + 1;\r\n // });\r\n\r\n // this.stagedRows = [...temp];\r\n //}\r\n\r\n\r\n //onNextRow(rowToMove: any): boolean {\r\n // let newRow = new BankImport();\r\n // newRow = rowToMove;\r\n // this.resultRowsCache.push(newRow);\r\n // this.resultRows = [...this.resultRowsCache];\r\n\r\n // let temp = [...this.stagedRowsCache];\r\n // temp.splice(this.index - 1, 1);\r\n // temp.forEach((line, index, temp) => {\r\n // (line).index = index + 1;\r\n // });\r\n\r\n // this.stagedRows = [...temp];\r\n\r\n // return true;\r\n //}\r\n\r\n onArstpyPOSTSuccesful(x: BankImport, count: number): void {\r\n this.successcount++;\r\n console.log(\"SUCCESS\", count, this.successcount, this.processcount, x);\r\n \r\n if (this.successcount <= this.processcount) {\r\n if (x && x.id >= 1) {\r\n let newRow = new BankImport();\r\n newRow = x;\r\n this.resultRowsCache.push(newRow);\r\n this.resultRows = [...this.resultRowsCache];\r\n let index = this.stagedRows.findIndex(x => x.id === x.id)\r\n let temp = [...this.stagedRows];\r\n temp.splice(index, 1);\r\n temp.forEach((line, index, temp) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.stagedRows = [...temp];\r\n\r\n //Update local record\r\n this.sysproService.updateBankImportLine(newRow, newRow.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n\r\n }\r\n else {\r\n console.log(x);\r\n }\r\n }\r\n if (this.successcount == this.processcount) {\r\n this.wrapUp();\r\n }\r\n }\r\n onUpdateFailed(error: any): void {\r\n \r\n }\r\n\r\n validatePost(row?: BankImport) {\r\n return true;\r\n }\r\n\r\n onArstpyPOSTFailed(posteRow: BankImport, error: any, count: number): void {\r\n this.successcount++;\r\n this.failedCount++;\r\n console.log(\"FAILED\", count, this.successcount, posteRow);\r\n let newRow = new BankImport();\r\n newRow = posteRow;\r\n newRow.status = \"FAILED\";\r\n newRow.message = error;\r\n this.resultRowsCache.push(newRow);\r\n this.resultRows = [...this.resultRowsCache];\r\n\r\n let index = this.stagedRows.findIndex(x => x.id === x.id)\r\n let temp = [...this.stagedRows];\r\n temp.splice(index, 1);\r\n temp.splice(count - 1, 1);\r\n temp.forEach((line, index, temp) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.stagedRows = [...temp];\r\n //Update local record\r\n this.sysproService.updateBankImportLine(newRow, newRow.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n\r\n if (this.successcount == this.processcount) {\r\n this.wrapUp();\r\n }\r\n \r\n }\r\n\r\n\r\n private wrapUp() {\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Finished processing : ' + this.successcount + ' records of which ' + this.skipCount + ' were skipped, and ' + this.failedCount + ' failed');\r\n\r\n this.isPosting = false;\r\n this.complete = true;\r\n this.stagedRows = null;\r\n\r\n this.gridHeigt = \"height: 600px;\";\r\n }\r\n\r\n onSessionFailed(error: any): void {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.specificSearch();\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.specificSearch();\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.specificSearch();\r\n }\r\n\r\n RefreshResults() {\r\n\r\n this.sysproService.getBankImportByFileName(this.currentFileName).subscribe(x => this.onHistoryLoadSuccesfull(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n ExportResults() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Supplier\", \"Name\", \"Bank\", \"Branch\", \"Reference\", \"PayValue\", \"Message\", \"PayNumber\"]\r\n };\r\n\r\n var filename = this.selectedPaymentNumber;\r\n var selectRows = [...this.sysprorejectedDetailList];\r\n //var selectedHeader = this.syspropaymentHeaderList;\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n //let date = new Date(selectedHeader.).toISOString().split('T')[0];\r\n exportRows.push({\r\n Supplier: row.supplier, Name: row.supplierName, Bank: row.supplierBank, Reference: row.supplierRefNo, PayValue: row.supplierPayValue, Message: row.message,\r\n BatchNumber: this.selectedPaymentNumber\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{ value | date: 'yyyy/MM/dd HH:mm:ss' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ value | date: 'yyyy/MM/dd ' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n {{value}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{totalCompletedRecords }} \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{totalCompletedPaymentValue | currency:'R':'symbol':'1.2' }} \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Bank Upload Details for {{selectedFileName}}
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .rowcolor1 {\\n background-color: red;\\n color: white; }\\n .rowcolor2 {\\n background-color: orange; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .totals-section {\\n margin-top: 20px;\\n padding: 10px;\\n background-color: #f7f7f7;\\n border: 1px solid #ddd;\\n border-radius: 5px; }\\n .total-records, .total-payment-value {\\n margin-bottom: 10px; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvYmFuay10b29scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGN1c3RvbWVyc1xcYmFuay10b29sc1xcYmFuay1pbXBvcnQtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvYmFuay10b29scy9iYW5rLWltcG9ydC1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGFBQWE7RUFDYixZQUFZO0VBQ1osMEVBQTBFLEVBQUE7RUFQNUU7SUFVSSw4QkFBOEI7SUFDOUIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixVQUFVO0lBQ1YsV0FBVyxFQUFBO0VBSWYsVUFBQTtFQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QjtFQUN2Qiw2Q0FBMEMsRUFBQTtFQUk1QztFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixxQ0FBcUM7SUFDckMsNkJBQTZCO0lBQzdCLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osVUFBVSxFQUFBO0VBZGQ7SUFrQkksa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixnQkFBZ0IsRUFBQTtFQXBCcEI7SUF3Qkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEI7RUFDRSxzQkFBc0I7RUFDdEIsNERBQWlHO0VBQ2pHLGtCQUFrQixFQUFBO0VBR3BCO0VBQ0UscUJBQXFCO0VBQ3JCLFlBQVksRUFBQTtFQUdkO0VBQ0Usd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxlQUFlO0VBRWYsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksVUFBVSxFQUFBO0VBSWQ7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QixFQUFBO0VBR3pCO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCO21DQzFCK0I7SUQ0Qi9CLGlCQUFpQjtJQUNqQixZQUFZLEVBQUE7RUFiaEI7SUFpQkksa0JBQWtCO0lBQ2xCLGdCQUFnQixFQUFBO0VBbEJwQjtJQXNCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQjtFQUNFLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IseUJBQXlCO0VBQ3pCLHNCQUFzQjtFQUN0QixrQkFBa0IsRUFBQTtFQUdwQjtFQUNFLG1CQUFtQixFQUFBO0VBSXJCLG1CQUFBO0VBQ0E7RUFDRTtJQUNFLCtGQUFBO0lBQ0EsNkJBQTZCLEVBQUEsRUFDOUI7RUFHSCxrQkFBQTtFQUNBO0VBQ0U7SUFDRSxzRUFBQTtJQUNBLHNCQUFzQixFQUFBLEVBQ3ZCO0VBSUg7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixXQUFXLEVBQUE7RUFHYjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsT0FBTztFQUNQLFdBQVcsRUFBQTtFQUpiO0lBT0ksWUFBWSxFQUFBO0VBSWhCO0VBQ0UsZUFBZTtFQUNmLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsZUFBZTtFQUNmLGlDQUFpQyxFQUFBO0VBR25DO0VBQ0UsZUFBZSxFQUFBO0VBR2pCO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxjQUFjLEVBQUE7RUFHaEI7RUFDRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGlCQUFpQixFQUFBO0VBR25COztFQUVFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0U7SUFDRSxnQkFBZ0IsRUFBQSxFQUNqQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXJzL2JhbmstdG9vbHMvYmFuay1pbXBvcnQtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uYWRkcmVzcy1jb250YWluZXIge1xyXG4gIG1heC13aWR0aDogNDAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XHJcbiAgcGFkZGluZzogMjVweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7XHJcblxyXG4gIGZpZWxkc2V0IHtcclxuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMCAwIDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBMYXJnZSAqL1xyXG4uZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XHJcbiAgLy9oZWlnaHQ6IDI1cHg7XHJcbn1cclxuXHJcbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIGZsZXg6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gICAgbWluLXdpZHRoOiAyMDBweDtcclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4ucm93IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4ucm93Y29sb3IxIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4ucm93Y29sb3IyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7XHJcbn1cclxuXHJcbi5jb250cm9sLWxhYmVsIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgLy8gZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogM3B4O1xyXG4gIG1hcmdpbi1ib3R0b206IDBweDtcclxuICBtaW4td2lkdGg6IDE3MHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwge1xyXG4gIHBhZGRpbmc6IDhweDtcclxuXHJcbiAgLm5hdi1saW5rIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xyXG4gIHBhZGRpbmc6IDJweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gIHBhZGRpbmc6IDVweCAxMHB4IDAgMTBweDtcclxufVxyXG5cclxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xyXG4gICAgcGFkZGluZzogLjA1cmVtIC4yNXJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdpZHRoOiAxMjBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gIH1cclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleDogMztcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICB9XHJcbn1cclxuXHJcbi50b3RhbHMtc2VjdGlvbiB7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcbi50b3RhbC1yZWNvcmRzLCAudG90YWwtcGF5bWVudC12YWx1ZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuXHJcbi8qIE1lZGl1bSBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICB9XHJcbn1cclxuXHJcbi8qIFNtYWxsIHNjcmVlbnMgKi9cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcclxuICAuZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgICAvKiBPbiBzbWFsbCBzY3JlZW5zLCB3ZSBhcmUgbm8gbG9uZ2VyIHVzaW5nIHJvdyBkaXJlY3Rpb24gYnV0IGNvbHVtbiAqL1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4ucm93IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uY29sdW1uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZmxleDogMTtcclxuICBmbG9hdDogbGVmdDtcclxuXHJcbiAgbGFiZWwge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gIH1cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luOiA3cHggNXB4O1xyXG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLnN1YnNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luOiA3cHggNXB4O1xyXG4gIGJvcmRlci10b3Atc3R5bGU6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiA3cHg7XHJcbn1cclxuXHJcbi5mb3JtLWdyb3VwIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcclxuICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4uY2hlY2tib3gge1xyXG4gIHBhZGRpbmctdG9wOiAwO1xyXG59XHJcblxyXG4uY29sLXJlc2V0LWRlZmF1bHQge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDA7XHJcbn1cclxuXHJcbi5jb2wtc2V0LWRlZmF1bHQge1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcblxyXG4uY29sLXJlc2V0LWRlZmF1bHQgLmJ0bixcclxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcclxuICBtaW4td2lkdGg6IDE1MHB4O1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAuY29sLWZvcm0tbGFiZWwge1xyXG4gICAgcGFkZGluZy10b3A6IDVweDtcclxuICB9XHJcbn1cclxuIiwiLmFkZHJlc3MtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI0Y5RjlGOTtcbiAgcGFkZGluZzogMjVweDtcbiAgbWFyZ2luOiAxMHB4O1xuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI0KTsgfVxuICAuYWRkcmVzcy1jb250YWluZXIgZmllbGRzZXQge1xuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi8qIExhcmdlICovXG4uZmxleC1kaXN0cmlidXRlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLmZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDEwcHg7IH1cblxuLmNvbnRyb2wtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZzogLjEwcmVtIC41MHJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgZmxleDogbm9uZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleC1ncm93OiAyO1xuICAgIG1pbi13aWR0aDogMjAwcHg7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleDogMztcbiAgICBmbGV4LWdyb3c6IDI7IH1cblxuLnJvdyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh3aGl0ZSwgd2hpdGUgMTAlLCAjZjdmN2Y3KTtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbi5yb3djb2xvcjEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4ucm93Y29sb3IyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOyB9XG5cbi5jb250cm9sLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWluLXdpZHRoOiAxNzBweDsgfVxuXG4uY29udHJvbC1kZXRhaWwge1xuICBwYWRkaW5nOiA4cHg7IH1cbiAgLmNvbnRyb2wtZGV0YWlsIC5uYXYtbGluayB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDEyMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi50b3RhbHMtc2VjdGlvbiB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuXG4udG90YWwtcmVjb3JkcywgLnRvdGFsLXBheW1lbnQtdmFsdWUge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBTbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5jb2x1bW4gbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDsgfVxuXG4uc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7IH1cblxuLnN1YnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5sYXN0LXNlcGFyYXRvci1ociB7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBtaW4taGVpZ2h0OiAwOyB9XG5cbi5jaGVja2JveCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmNvbC1zZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcbiAgbWluLXdpZHRoOiAxNTBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1mb3JtLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4OyB9IH1cbiJdfQ== */\"","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { BankImport, BankImportHeader } from '../../../models/bank-import.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n\r\n\r\n@Component({\r\n selector: 'bank-import-management',\r\n templateUrl: './bank-import-management.component.html',\r\n styleUrls: ['./bank-import-management.component.scss']\r\n})\r\nexport class BankImportManagementComponent implements OnInit {\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n columns: any[] = [];\r\n detailcolumns: any[] = [];\r\n\r\n rows: BankImportHeader[] = [];\r\n rowsCache: BankImportHeader[];\r\n\r\n detailRows: BankImport[] = [];\r\n detailRowsCache: BankImport[] = [];\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('shortdateTemplate')\r\n shortdateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('timeTemplate')\r\n timeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('DetailModal')\r\n DetailModal: ModalDirective;\r\n\r\n selectedFileName: string;\r\n selectedCustomer: string;\r\n selectedCompany: string;\r\n selectedDocumentType: string;\r\n selectedPeriod: string;\r\n selectedBank: string;\r\n\r\n loadingIndicator: boolean = false;\r\n\r\n selectedStatuses: string[] = [];\r\n uniqueStatuses: string[] = [];\r\n\r\n totalCompletedRecords: number = 0;\r\n totalCompletedPaymentValue: number = 0;\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n show: boolean;\r\n\r\n\r\n ranges = {\r\n 'Today': [moment().subtract(0, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Term': [moment().subtract(3, 'month').startOf('month'), moment().subtract(0, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()]\r\n };\r\n \r\n\r\n constructor(private router: Router, private alertService: AlertService, private fowkesService: FowkesOnlineService, private configurations: ConfigurationService,\r\n private sysproService: SysproService, private route: ActivatedRoute, private accountService: AccountService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.selected = {\r\n startDate: moment().subtract(0, 'day').startOf('day'),\r\n endDate: moment().subtract(0, 'day').endOf('day')\r\n }\r\n\r\n this.setDataGrids();\r\n\r\n this.sysproService.getBankImportOverview().subscribe(x => this.onOverviewLoadSuccesfull(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onOverviewLoadSuccesfull(x: BankImportHeader[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n this.rows = x.map(row => {\r\n return {\r\n ...row,\r\n timeSinceImport: this.calculateTimeSinceImport(row.importDate, row.responseDate, row.importStatus)\r\n };\r\n });\r\n this.rowsCache = this.rows;\r\n }\r\n\r\n this.uniqueStatuses = [...new Set(this.rows.map(row => row.importStatus))];\r\n this.selectedStatuses = [...this.uniqueStatuses]; // Initially select all statuses\r\n\r\n this.rowsCache = this.rows;\r\n this.applyFilters(); // Apply filters based on the initially selected statuses\r\n\r\n }\r\n\r\n applyFilters() {\r\n this.rows = this.rowsCache.filter(row =>\r\n this.selectedStatuses.includes(row.importStatus) &&\r\n moment(row.importDate).isBetween(this.selected.startDate, this.selected.endDate, undefined, '[]')\r\n );\r\n\r\n // Recalculate totals after filtering\r\n this.totalCompletedRecords = this.rows.reduce((acc, row) => acc + row.responseCount, 0);\r\n this.totalCompletedPaymentValue = this.rows.reduce((acc, row) => acc + row.responseValue, 0);\r\n\r\n }\r\n\r\n onStatusFilterChange(status: string) {\r\n if (this.selectedStatuses.includes(status)) {\r\n this.selectedStatuses = this.selectedStatuses.filter(s => s !== status);\r\n } else {\r\n this.selectedStatuses.push(status);\r\n }\r\n this.applyFilters();\r\n }\r\n\r\n setDataGrids() {\r\n this.columns = [\r\n { prop: 'company', name: 'C', width: 30 },\r\n { prop: 'importDate', name: 'Import Date', width: 150, cellTemplate: this.dateTemplate },\r\n { prop: 'fileReference', name: 'File', width: 180, cellTemplate: this.selectTemplate },\r\n { prop: 'importStatus', name: 'Import Status', width: 120 },\r\n { prop: 'paymentPeriod', name: 'Period', width: 50 },\r\n { prop: 'numberOfRecords', name: 'Records', width: 50 },\r\n { prop: 'responseCount', name: 'Completed', width: 50 },\r\n { prop: 'notes', name: 'Notes', width: 200 },\r\n { prop: 'timeSinceImport', name: 'Time Tracker', width: 200, cellTemplate: this.timeTemplate },\r\n { prop: 'responseDate', name: 'Response Date', width: 150, cellTemplate: this.dateTemplate },\r\n { prop: 'totalPaymentValue', name: 'File Total', width: 100 },\r\n { prop: 'responseValue', name: 'Completed', width: 100 },\r\n { prop: 'fileName', name: 'File Name', width: 150 },\r\n { prop: 'batchId', name: 'Batch ID', width: 100 },\r\n { prop: 'userName', name: 'User Name', width: 100 },\r\n //{ name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n this.detailcolumns = [\r\n { prop: 'company', name: 'C', width: 30 },\r\n { prop: 'customer', name: 'Customer', width: 80 },\r\n { prop: 'customerName', name: 'Customer Ref', width: 250 },\r\n { prop: 'bankReference', name: 'Bank Ref', width: 100 },\r\n { prop: 'paymentDate', name: 'Payment Date', width: 100, cellTemplate: this.shortdateTemplate },\r\n { prop: 'paymentValue', name: 'Amount', width: 100, cellClass: \"right\" },\r\n { prop: 'status', name: 'Status', width: 100, cellClass: \"center\" },\r\n { prop: 'message', name: 'Result', width: 150 },\r\n { prop: 'journal', name: 'Jnl', width: 50 },\r\n //{ prop: 'userName', name: 'Operator', width: 80 },\r\n { prop: 'customerAccTerms', name: 'Acc Terms', width: 80 },\r\n { prop: 'customerApplyAutoPayments', name: 'Auto Payments', width: 80 }\r\n /* { prop: 'fileName', name: 'FileName', width: 500 }*/\r\n ];\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.setDataGrids();\r\n }\r\n\r\n viewdetails(row: BankImportHeader) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.selectedFileName = row.fileName;\r\n\r\n this.sysproService.getBankImportByFileName(this.selectedFileName).subscribe(x => this.onHistoryLoadSuccesfull(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onHistoryLoadSuccesfull(x: BankImport[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n this.detailRowsCache = x;\r\n this.detailRows = [...this.detailRowsCache];\r\n\r\n // Ensure that DetailModal is ready before showing\r\n setTimeout(() => {\r\n if (this.DetailModal) {\r\n this.DetailModal.show();\r\n } else {\r\n // Fallback in case DetailModal is still not ready\r\n setTimeout(() => {\r\n if (this.DetailModal) {\r\n this.DetailModal.show();\r\n }\r\n }, 500); // Adjust the delay as needed\r\n }\r\n });\r\n }\r\n }\r\n\r\n DetailModalHide() {\r\n\r\n this.selectedFileName = null;\r\n this.detailRows = [];\r\n this.detailRowsCache = [];\r\n }\r\n\r\n\r\n calculateTimeSinceImport(importDate: Date, responseDate: Date, status: string): string {\r\n const importMoment = moment(importDate);\r\n let duration: moment.Duration;\r\n\r\n if (status === 'PROCESSING') {\r\n const now = moment();\r\n duration = moment.duration(now.diff(importMoment));\r\n const days = duration.days();\r\n const hours = duration.hours();\r\n const minutes = duration.minutes();\r\n\r\n if (days === 0 && hours === 0 && minutes < 60) {\r\n return `Processing: ${minutes}m (Still in progress)`;\r\n } else if (days === 0 && hours < 24) {\r\n return `Processing: ${hours}h ${minutes}m (Still in progress)`;\r\n } else {\r\n return `Processing: ${days}d ${hours}h (Not completed yet, safe to reload)`;\r\n }\r\n } else if (status === 'STAGED') {\r\n return ''; // Don't show anything for STAGED status\r\n } else {\r\n duration = moment.duration(moment(responseDate).diff(importMoment));\r\n const days = duration.days();\r\n const hours = duration.hours();\r\n const minutes = duration.minutes();\r\n\r\n if (days === 0 && hours === 0 && minutes < 60) {\r\n return 'Completed: in less than an hour';\r\n } else if (days === 0 && hours < 24) {\r\n return `Completed: ${hours}h ${minutes}m`;\r\n } else if (days < 1) {\r\n return `Completed: Within a day`;\r\n } else {\r\n return `Completed: ${days}d ${hours}h ${minutes}m`;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.importStatus,\r\n r.userName,\r\n r.batchId,\r\n r.company,\r\n r.importDate,\r\n r.paymentPeriod,\r\n r.fileName,\r\n r.numberOfRecords,\r\n r.totalPaymentValue,\r\n r.hasWarnings,\r\n r.postedDate,\r\n r.postedStatus,\r\n r.postedCount,\r\n r.postedValue,\r\n r.responseDate,\r\n r.responseStatus,\r\n r.responseCount,\r\n r.responseValue,\r\n r.notes));\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n this.applyFilters(); // Apply the date range filter to the data\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.show = false;\r\n this.applyFilters(); // Apply the date range filter to the data\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n this.applyFilters(); // Apply the date range filter to the data\r\n }\r\n\r\n RefreshResults() {\r\n\r\n this.sysproService.getBankImportOverview().subscribe(x => this.onOverviewLoadSuccesfull(x), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n\r\n ExportDetails() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Company\", \"MasterAcc\", \"Customer\", \"CustomerName\", \"Amount\", \"BankReference\", \"PaymentDate\", \"Status\", \"TrnYear\", \"TrnMonth\", \"Journal\", \"Period\", \"ApplyAutoPayments\", \"Message\", \"Operator\", \"ImportedFile\"]\r\n };\r\n\r\n var filename = \"IMPORTRESULTS\";\r\n var selectRows = [...this.detailRows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.paymentDate).toISOString().split('T')[0];\r\n let localDate = new Date(row.paymentDate);\r\n let formattedDate = `${localDate.getFullYear()}-${(localDate.getMonth() + 1).toString().padStart(2, '0')}-${localDate.getDate().toString().padStart(2, '0')}`;\r\n\r\n exportRows.push({\r\n Company: row.company, MasterAcc: row.customerMaster, Customer: row.customer, CustomerName: row.customerName, Amount: row.paymentValue, BankReference: row.bankReference,\r\n PaymentDate: formattedDate, Status: row.status, TrnYear: row.trnYear, TrnMonth: row.trnMonth, Journal: row.journal,\r\n Period: row.paymentPeriod, ApplyAutoPayments: row.customerApplyAutoPayments, Message: row.message, Operator: row.userName, ImportedFile: row.fileName\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n ExportResults() {\r\n const options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\r\n \"Company\", \"Import Date\", \"Import Status\", \"User Name\", \"Batch ID\", \"Payment Period\",\r\n \"File Name\", \"Number of Records\", \"Total Payment Value\", \r\n \"Response Date\", \"Response Status\", \"Response Count\", \"Response Value\", \"Notes\"\r\n ]\r\n };\r\n\r\n const filename = \"Bank Upload History\";\r\n const selectRows = [...this.rows];\r\n const exportRows = [];\r\n\r\n for (const row of selectRows) {\r\n exportRows.push({\r\n Company: row.company,\r\n \"Import Date\": new Date(row.importDate).toISOString().split('T')[0],\r\n \"Import Status\": row.importStatus,\r\n \"User Name\": row.userName,\r\n \"Batch ID\": row.batchId,\r\n \"Payment Period\": row.paymentPeriod,\r\n \"File Name\": row.fileName,\r\n \"Number of Records\": row.numberOfRecords,\r\n \"Total Payment Value\": row.totalPaymentValue, \r\n \"Response Date\": row.responseDate ? new Date(row.responseDate).toISOString().split('T')[0] : '',\r\n \"Response Status\": row.responseStatus || '',\r\n \"Response Count\": row.responseCount || '',\r\n \"Response Value\": row.responseValue || '',\r\n Notes: row.notes\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
  {{selectedPaymentDate.startDate | date:'dd MMMM yyyy'}}
\\r\\n
  {{selectedPaymentDate.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
  {{selectedFileDate.startDate | date:'dd MMMM yyyy'}}
\\r\\n
  {{selectedFileDate.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\" style=\\\"margin-top: 10px;\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
Records Posted
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Total Posted : R {{successAmount | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvYmFuay10b29scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGN1c3RvbWVyc1xcYmFuay10b29sc1xcYmFuay1pbXBvcnQtcmVwb3J0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUdqQztFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLGdCQUFnQixFQUFBOztBQUtwQjtFQUNFLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLFNBQVMsRUFBQTs7QUFHWDtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7O0FBR2xCO0VBQ0UsV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXJzL2JhbmstdG9vbHMvYmFuay1pbXBvcnQtcmVwb3J0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICBhIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XHJcbiAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gIGNvbG9yOiAjNzc3O1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLmxvY2tlZC1vdXQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuIl19 */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { CustomerMovements } from 'src/app/models/customer-movements.model';\r\nimport { CustomerPayments } from 'src/app/models/customer-payments.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { BankImport } from '../../../models/bank-import.model';\r\n\r\n\r\n@Component({\r\n selector: 'bank-import-report',\r\n templateUrl: './bank-import-report.component.html',\r\n styleUrls: ['./bank-import-report.component.scss']\r\n})\r\nexport class BankImportReportComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n\r\n resultcolumns: any[] = [];\r\n rows: CustomerPayments[] = [];\r\n rowsCache: CustomerPayments[] = [];\r\n customerPaymentsList: CustomerPayments[];\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n \r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n isSearch: boolean; \r\n id: string;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchYear: string = \"\";\r\n searchMonth: string = \"\";\r\n\r\n selectedFileName: string;\r\n selectedCustomer: string;\r\n selectedCompany: string;\r\n selectedDocumentType: string;\r\n selectedYear: string;\r\n selectedMonth: string;\r\n\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @ViewChild(DaterangepickerComponent) pickerPayment: DaterangepickerComponent;\r\n @ViewChild(DaterangepickerComponent) pickerFile: DaterangepickerComponent;\r\n\r\n selectedPaymentDate: { startDate: Moment, endDate: Moment };\r\n selectedFileDate: { startDate: Moment, endDate: Moment };\r\n\r\n\r\n showPaymentDate: boolean;\r\n showFileDate: boolean;\r\n\r\n ranges = { \r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 12 Months': [moment().subtract(12, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 2 Years': [moment().subtract(24, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Years': [moment().subtract(36, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n };\r\n locale: LocaleConfig = {\r\n applyLabel: 'Done'\r\n };\r\n startPaymentDate: Date;\r\n endPaymentDate: Date;\r\n startFileDate: Date;\r\n endFileDate: Date;\r\n\r\n\r\n\r\n resultRows: BankImport[] = [];\r\n resultRowsCache: BankImport[] = [];\r\n\r\n inlineDate: any;\r\n inlineDateTime: any;\r\n\r\n chkDb: boolean;\r\n chkCr: boolean;\r\n selectedReference: string;\r\n selectedFile: string;\r\n selectedBatch: string;\r\n startDate: string;\r\n endDateDate: string;\r\n selectedUserName: string;\r\n\r\n successAmount: number = 0;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.setDataGrids();\r\n\r\n this.selectedCompany = (this.application == \"MaxArcusOnline\" ? \"M\" : \"F\");\r\n\r\n this.searchType = \"fileDate\";\r\n\r\n this.selectedPaymentDate = {\r\n startDate: moment().subtract(0, 'month').startOf('month'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n\r\n this.selectedFileDate = {\r\n startDate: moment(),\r\n endDate: moment()\r\n }\r\n\r\n this.loadData();\r\n\r\n //this.getFileNames();\r\n }\r\n\r\n getFileNames() {\r\n this.sysproService.getBankImportByCompany(this.selectedCompany).subscribe(\r\n x => this.onResultsSuccess(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onResultsSuccess(x: BankImport[]): void {\r\n //Gets a list of all the records for that company\r\n\r\n }\r\n\r\n specificSearch() {\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.successAmount = 0;\r\n //Get lastest file results;\r\n \r\n this.selectedCustomer = (this.searchType == \"customer\" ? this.searchText : \"ALL\");\r\n this.selectedYear = (this.searchType == \"period\" ? this.searchYear : \"ALL\");\r\n this.selectedMonth = (this.searchType == \"period\" ? this.searchMonth : \"ALL\");\r\n this.selectedReference = (this.searchType == \"reference\" ? this.searchText : \"ALL\");\r\n this.selectedFile = (this.searchType == \"fileName\" ? this.searchText : \"ALL\");\r\n this.selectedUserName = (this.searchType == \"userName\" ? this.searchText : \"ALL\");\r\n this.selectedBatch = (this.searchType == \"latestBatch\" ? this.searchText : \"ALL\");\r\n\r\n if (this.searchType == \"fileDate\") {\r\n var start = new Date(this.selectedFileDate.startDate.toString());\r\n var end = new Date(this.selectedFileDate.endDate.toString());\r\n\r\n this.sysproService.getBankImportLatest(this.selectedCompany, this.selectedReference, this.selectedYear, this.selectedMonth,\r\n this.selectedCustomer, start.toJSON(), end.toJSON(), this.searchType, this.selectedFile, this.selectedUserName).subscribe(x => this.onHistoryLoadSuccesfull(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n var start = new Date(this.selectedPaymentDate.startDate.toString());\r\n var end = new Date(this.selectedPaymentDate.endDate.toString());\r\n\r\n this.sysproService.getBankImportLatest(this.selectedCompany, this.selectedReference, this.selectedYear, this.selectedMonth,\r\n this.selectedCustomer, start.toJSON(), end.toJSON(), this.searchType, this.selectedFile, this.selectedUserName).subscribe(x => this.onHistoryLoadSuccesfull(x), error => this.onDataLoadFailed(error));\r\n } \r\n\r\n }\r\n\r\n\r\n onHistoryLoadSuccesfull(x: BankImport[]): void {\r\n\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n this.successAmount += line.paymentValue;\r\n });\r\n\r\n this.resultRowsCache = [...details];\r\n // this.resultRowsCache = x;\r\n this.resultRows = [...this.resultRowsCache];\r\n }\r\n }\r\n\r\n setDataGrids() {\r\n this.resultcolumns = [\r\n { prop: 'company', name: 'C', width: 30 },\r\n { prop: 'customer', name: 'Customer', width: 80 },\r\n { prop: 'customerName', name: 'Customer Ref', width: 200 },\r\n { prop: 'bankReference', name: 'Bank Reference', width: 100},\r\n { prop: 'paymentDate', name: 'Payment Date', width: 100, cellTemplate: this.dateTemplate },\r\n { prop: 'paymentValue', name: 'Amount', width: 100, cellClass: \"right\" },\r\n { prop: 'status', name: 'Status', width: 80, cellClass: \"center\" },\r\n { prop: 'message', name: 'Result', width: 150 },\r\n { prop: 'journal', name: 'Jnl', width: 50 },\r\n { prop: 'userName', name: 'Operator', width: 80 },\r\n { prop: 'customerAccTerms', name: 'Acc Terms', width: 80 },\r\n { prop: 'customerApplyAutoPayments', name: 'Auto Payments', width: 80 },\r\n { prop: 'paymentPeriod', name: 'P', width: 50 },\r\n { prop: 'fileName', name: 'FileName', width: 500 }\r\n ];\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.setDataGrids();\r\n } \r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n dateFilterChanged() {\r\n \r\n }\r\n\r\n togglePayment() {\r\n this.showPaymentDate = true;\r\n }\r\n searchPaymentDates(e) {\r\n\r\n this.selectedPaymentDate = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.showPaymentDate = false;\r\n }\r\n\r\n choosedPaymentDateTime(e) {\r\n\r\n this.selectedPaymentDate = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.showPaymentDate = false;\r\n }\r\n\r\n rangeClickedPayment(e) {\r\n\r\n this.pickerPayment.renderRanges();\r\n this.selectedPaymentDate = {\r\n startDate: this.pickerPayment.startDate,\r\n endDate: this.pickerPayment.endDate\r\n }\r\n this.showPaymentDate = false;\r\n }\r\n\r\n toggleFile() {\r\n this.showFileDate = true;\r\n }\r\n searchFileDates(e) {\r\n\r\n this.selectedFileDate = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.showFileDate = false;\r\n }\r\n\r\n\r\n choosedFileDateTime(e) {\r\n\r\n this.selectedFileDate = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n this.showFileDate = false;\r\n }\r\n\r\n\r\n rangeClickedFile(e) {\r\n\r\n this.pickerFile.renderRanges();\r\n this.selectedFileDate = {\r\n startDate: this.pickerFile.startDate,\r\n endDate: this.pickerFile.endDate\r\n }\r\n this.showFileDate = false;\r\n }\r\n\r\n showPaymentsOnly() {\r\n this.chkDb = !this.chkDb;\r\n this.chkCr = false;\r\n this.dateFilterChanged();\r\n }\r\n\r\n showCreditsOnly() {\r\n this.chkDb = false;\r\n this.chkCr = !this.chkCr;\r\n this.dateFilterChanged();\r\n }\r\n\r\n\r\n\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n this.searchResults = x;\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.loadCustomer();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Customer could not be found',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n \r\n onDataLoadSuccessful(customers: any[]) {\r\n\r\n this.customerPaymentsList = customers[0];\r\n\r\n if (this.customerPaymentsList && this.customerPaymentsList.length >= 1) {\r\n\r\n this.customerPaymentsList.forEach((customer, index, customers) => {\r\n (customer).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...this.customerPaymentsList];\r\n\r\n this.dateFilterChanged();\r\n\r\n }\r\n else {\r\n this.alertService.showMessage('No results', 'No payment details for the search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n private loadCustomer() {\r\n this.id = this.searchResultSelected.customer;\r\n this.currentCustomer = this.id;\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.currentCustomer); \r\n this.customerHeading = this.searchResultSelected;\r\n this.loadDetails();\r\n this.router.navigate(['../../customers'], { fragment: 'payments', queryParams: { customer: this.currentCustomer } });\r\n }\r\n\r\n loadDetails() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n //var start = new Date(this.selected.startDate.toString());\r\n //var end = new Date(this.selected.endDate.toString());\r\n\r\n\r\n //this.customerPaymentsList = null;\r\n //this.rowsCache = null;\r\n //this.rows = null;\r\n\r\n //this.sysproService.getCustomerPayments(start.toJSON(), end.toJSON(),this.id).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n viewCustomerSelected() {\r\n if (this.searchResultSelected) {\r\n this.loadCustomer();\r\n }\r\n }\r\n\r\n\r\n onCustomerLoadSuccessful(x: ArCustomer[]): void {\r\n this.customerSearch = x;\r\n this.customerHeading = this.customerSearch.find(x => x.customer == this.currentCustomer);\r\n setTimeout(() => {\r\n if (this.customerSelector) {\r\n this.customerSelector.refresh();\r\n }\r\n });\r\n }\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Customer\", \"Invoice\", \"Date\", \"Transaction\", \"Customer PO\", \"Payment Ref\",\r\n \"Operator\",\r\n \"Total (Incl VAT)\"]\r\n };\r\n\r\n var filename = this.id + \"-Payments\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Customer: row.customer, Invoice: row.invoice, Date: (moment(row.filterDate)).format('DD-MMM-YYYY'), Transaction: row.transaction,\r\n CustomerPO: row.customerPoNumber, PaymentRef: row.reference,\r\n Operator: row.operator,\r\n Total: row.amount\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.resultRows = this.resultRowsCache.filter(r => Utilities.searchArray(value, false, r.status, r.customer, r.paymentDate, r.paymentValue, r.bankReference,\r\n r.customerName, r.userName, r.fileName));\r\n }\r\n\r\n else {\r\n this.resultRows = this.resultRowsCache;\r\n }\r\n }\r\n\r\n\r\n ExportResults() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Company\", \"MasterAcc\", \"Customer\", \"CustomerName\", \"Amount\", \"BankReference\", \"PaymentDate\", \"Status\", \"TrnYear\", \"TrnMonth\", \"Journal\", \"Period\", \"ApplyAutoPayments\", \"Message\", \"Operator\", \"ImportedFile\"]\r\n };\r\n\r\n var filename = \"IMPORTRESULTS\";\r\n var selectRows = [...this.resultRows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.paymentDate).toISOString().split('T')[0];\r\n let localDate = new Date(row.paymentDate);\r\n let formattedDate = `${localDate.getFullYear()}-${(localDate.getMonth() + 1).toString().padStart(2, '0')}-${localDate.getDate().toString().padStart(2, '0')}`;\r\n\r\n exportRows.push({\r\n Company: row.company, MasterAcc: row.customerMaster, Customer: row.customer, CustomerName: row.customerName, Amount: row.paymentValue, BankReference: row.bankReference,\r\n PaymentDate: formattedDate, Status: row.status, TrnYear: row.trnYear, TrnMonth: row.trnMonth, Journal: row.journal,\r\n Period: row.paymentPeriod, ApplyAutoPayments: row.customerApplyAutoPayments ,Message: row.message, Operator: row.userName, ImportedFile: row.fileName\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{fileName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\" style=\\\"margin-left: 2px\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n {{value}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\">Total To Post : R {{totalAmount | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Records Posted
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Total Processed : R {{successAmount | currency:' ':'symbol':'1.2'}}
  \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Upload Bank File

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .rowcolor1 {\\n background-color: red;\\n color: white; }\\n .rowcolor2 {\\n background-color: orange; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvYmFuay10b29scy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGN1c3RvbWVyc1xcYmFuay10b29sc1xcYmFuay1pbXBvcnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXJzL2JhbmstdG9vbHMvYmFuay1pbXBvcnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7RUFDWiwwRUFBMEUsRUFBQTtFQVA1RTtJQVVJLDhCQUE4QjtJQUM5QixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLFVBQVU7SUFDVixXQUFXLEVBQUE7RUFJZixVQUFBO0VBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCO0VBQ3ZCLDZDQUEwQyxFQUFBO0VBSTVDO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixVQUFVLEVBQUE7RUFkZDtJQWtCSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0VBcEJwQjtJQXdCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQjtFQUNFLHNCQUFzQjtFQUN0Qiw0REFBaUc7RUFDakcsa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSxxQkFBcUI7RUFDckIsWUFBWSxFQUFBO0VBR2Q7RUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGVBQWU7RUFFZixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsWUFBWSxFQUFBO0VBRGQ7SUFJSSxVQUFVLEVBQUE7RUFJZDtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0Usd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCLEVBQUE7RUFHekI7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDJCQUEyQjtFQUMzQixxQkFBcUIsRUFBQTtFQUx2QjtJQVFJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEI7bUNDMUIrQjtJRDRCL0IsaUJBQWlCO0lBQ2pCLFlBQVksRUFBQTtFQWJoQjtJQWlCSSxrQkFBa0I7SUFDbEIsZ0JBQWdCLEVBQUE7RUFsQnBCO0lBc0JJLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsWUFBWSxFQUFBO0VBSWhCLG1CQUFBO0VBQ0E7RUFDRTtJQUNFLCtGQUFBO0lBQ0EsNkJBQTZCLEVBQUEsRUFDOUI7RUFHSCxrQkFBQTtFQUNBO0VBQ0U7SUFDRSxzRUFBQTtJQUNBLHNCQUFzQixFQUFBLEVBQ3ZCO0VBSUg7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixXQUFXLEVBQUE7RUFHYjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsT0FBTztFQUNQLFdBQVcsRUFBQTtFQUpiO0lBT0ksWUFBWSxFQUFBO0VBSWhCO0VBQ0UsZUFBZTtFQUNmLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsZUFBZTtFQUNmLGlDQUFpQyxFQUFBO0VBR25DO0VBQ0UsZUFBZSxFQUFBO0VBR2pCO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxjQUFjLEVBQUE7RUFHaEI7RUFDRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGlCQUFpQixFQUFBO0VBR25COztFQUVFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0U7SUFDRSxnQkFBZ0IsRUFBQSxFQUNqQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXJzL2JhbmstdG9vbHMvYmFuay1pbXBvcnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmFkZHJlc3MtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xyXG4gIHBhZGRpbmc6IDI1cHg7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xyXG5cclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyogTGFyZ2UgKi9cclxuLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xyXG4gIC8vaGVpZ2h0OiAyNXB4O1xyXG59XHJcblxyXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICBmbGV4OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICAgIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLnJvdyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiKDI1NSwgMjU1LCAyNTUpLCByZ2IoMjU1LCAyNTUsIDI1NSkgMTAlLCByZ2IoMjQ3LCAyNDcsIDI0NykpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxufVxyXG5cclxuLnJvd2NvbG9yMSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLnJvd2NvbG9yMiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlO1xyXG59XHJcblxyXG4uY29udHJvbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAycHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7XHJcbn1cclxuXHJcbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICB9XHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogN3B4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5zdWJzZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogN3B4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogN3B4O1xyXG59XHJcblxyXG4uZm9ybS1ncm91cCB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBwYWRkaW5nLXRvcDogMDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG59XHJcblxyXG4uY29sLXNldC1kZWZhdWx0IHtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XHJcbiAgbWluLXdpZHRoOiAxNTBweDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgfVxyXG59XHJcbiIsIi5hZGRyZXNzLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIG1hcmdpbjogMTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLmFkZHJlc3MtY29udGFpbmVyIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4vKiBMYXJnZSAqL1xuLmZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGZsZXg6IG5vbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXgtZ3JvdzogMjtcbiAgICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi5yb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlIDEwJSwgI2Y3ZjdmNyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4ucm93Y29sb3IxIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICBjb2xvcjogd2hpdGU7IH1cblxuLnJvd2NvbG9yMiB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsgfVxuXG4uY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIG1pbi13aWR0aDogMTcwcHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsIHtcbiAgcGFkZGluZzogOHB4OyB9XG4gIC5jb250cm9sLWRldGFpbCAubmF2LWxpbmsge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMnB4OyB9XG5cbi5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4OyB9XG5cbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAxMjBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9IH1cblxuLyogU21hbGwgc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxO1xuICBmbG9hdDogbGVmdDsgfVxuICAuY29sdW1uIGxhYmVsIHtcbiAgICBwYWRkaW5nOiA1cHg7IH1cblxuLnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkOyB9XG5cbi5zdWJzZXBhcmF0b3ItaHIge1xuICBtYXJnaW46IDdweCA1cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xuICBtYXJnaW4tdG9wOiA3cHg7IH1cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcbiAgbWluLWhlaWdodDogMDsgfVxuXG4uY2hlY2tib3gge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5jb2wtc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQgLmJ0bixcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XG4gIG1pbi13aWR0aDogMTUwcHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtZm9ybS1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDVweDsgfSB9XG4iXX0= */\"","import { Component, ElementRef, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\n//import { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { BankImport } from '../../../models/bank-import.model';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { User } from '../../../models/user.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n\r\n\r\n@Component({\r\n selector: 'bank-import',\r\n templateUrl: './bank-import.component.html',\r\n styleUrls: ['./bank-import.component.scss']\r\n})\r\nexport class BankImportComponent implements OnInit {\r\n\r\n\r\n @ViewChild('banks')\r\n private banks;\r\n\r\n @ViewChild('bankListSelector')\r\n private bankListSelector;\r\n allBanks: Branch[] = [];\r\n\r\n @ViewChild('fileInput')\r\n fileInput: ElementRef;\r\n\r\n @ViewChild('periodListSelector')\r\n private periodListSelector;\r\n allPeriods: Branch[] = [];\r\n\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n columns: any[] = [];\r\n resultcolumns: any[] = [];\r\n\r\n stagedRows: BankImport[] = [];\r\n stagedRowsCache: BankImport[] = [];\r\n\r\n resultRows: BankImport[] = [];\r\n resultRowsCache: BankImport[] = [];\r\n\r\n successcount: number = 0;\r\n processcount: number = 0;\r\n\r\n successAmount: number = 0;\r\n skippedAmount: number = 0;\r\n\r\n isPosting: boolean;\r\n SysproUser: User;\r\n\r\n rows: BankImport[] = [];\r\n rowsCache: BankImport[];\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n selectedFileName: string;\r\n selectedCustomer: string;\r\n selectedCompany: string;\r\n selectedDocumentType: string;\r\n\r\n loadingIndicator: boolean = false;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n show: boolean;\r\n\r\n periods: [{ \"Current\": \"Current\", \"Date\": \"June 2021\" },\r\n { \"Previous\": \"Previous\", \"Date\": \"May 2021\" } ];\r\n\r\n ranges = {\r\n //'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n periodRanges = {\r\n 'Current': [moment().startOf('month'), moment().endOf('month')],\r\n 'Previous': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]\r\n };\r\n\r\n selectedPeriod: string;\r\n selectedBank: string;\r\n\r\n newDebtorsFile = new FormData();\r\n\r\n @ViewChild('uploadModal')\r\n uploadModal: ModalDirective;\r\n arrayBuffer: any;\r\n index: any;\r\n complete: boolean;\r\n currentFileName: string;\r\n skipCount: number;\r\n posintgCount: number;\r\n failedCount: number;\r\n gridHeigt: string;\r\n fileName: string;\r\n totalAmount: number;\r\n safecount: number;\r\n totalCount: number;\r\n \r\n\r\n constructor(private router: Router, private alertService: AlertService, private fowkesService: FowkesOnlineService, private configurations: ConfigurationService,\r\n private sysproService: SysproService, private route: ActivatedRoute, private accountService: AccountService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.resetForNextBatch(); \r\n\r\n this.selected = {\r\n startDate: moment().subtract(7, 'day').startOf('day'),\r\n endDate: moment().subtract(0, 'day').endOf('day')\r\n }\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.gridHeigt = \"height: 300px;\";\r\n\r\n\r\n }\r\n\r\n resetForNextBatch() {\r\n\r\n //Adding refresh previous file (if in memory)\r\n if (this.currentFileName && this.currentFileName.length >= 1) {\r\n this.sysproService.getBankImportByFileName(this.currentFileName).subscribe(x => {}, error => {});\r\n }\r\n\r\n\r\n this.selectedCompany = (this.application == \"MaxArcusOnline\" ? \"M\" : \"F\");\r\n this.selectedPeriod = \"C\";\r\n this.selectedBank = \"ST\";\r\n this.complete = false;\r\n this.stagedRows = [...[]];\r\n this.stagedRowsCache = [...[]];\r\n this.resultRows = [...[]];\r\n this.resultRowsCache = [...[]];\r\n this.currentFileName = \"\";\r\n this.fileName = \"\";\r\n this.newDebtorsFile = new FormData();\r\n this.fileInput.nativeElement.value = \"\";\r\n \r\n\r\n this.setDataGrids();\r\n\r\n // this.getFileNames();\r\n }\r\n getFileNames() {\r\n //this.sysproService.getBankImportByCompany(this.selectedCompany).subscribe(\r\n // x => this.onStagingFileSuccess(x, this.fileName), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onHistoryLoadSuccesfull(x: BankImport[]): void {\r\n if (x && x.length >= 1) {\r\n this.resultRowsCache = x;\r\n this.resultRows = [...this.resultRowsCache];\r\n }\r\n }\r\n\r\n\r\n setDataGrids() {\r\n this.columns = [\r\n { prop: 'company', name: 'Company', width: 50 },\r\n { prop: 'customerMaster', name: 'Master Acc', width: 80 },\r\n { prop: 'customer', name: 'Customer', width: 80 },\r\n { prop: 'customerName', name: 'Customer Name', width: 200 },\r\n { prop: 'bankReference', name: 'Bank Reference', width: 100, cellClass: \"center\" },\r\n { prop: 'paymentDate', name: 'Payment Date', width: 100, cellTemplate: this.dateTemplate },\r\n { prop: 'paymentValue', name: 'Amount', width: 100 },\r\n { prop: 'status', name: 'Status', cellTemplate: this.statusTemplate, width: 100 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'message', name: 'Result', width: 200 },\r\n { prop: 'tender', name: 'Tender', width: 100 },\r\n { prop: 'customerAccTerms', name: 'Acc Terms', width: 80 },\r\n { prop: 'customerApplyAutoPayments', name: 'Auto Payments', width: 80 }\r\n ];\r\n\r\n // this.columns.push({ name: '', width: 300, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.resultcolumns = [\r\n { prop: 'company', name: 'Company', width: 50 },\r\n { prop: 'customer', name: 'Customer', width: 100 },\r\n { prop: 'customerName', name: 'Customer Name', width: 200 },\r\n { prop: 'bankReference', name: 'Bank Reference', width: 100, cellClass: \"center\" },\r\n { prop: 'paymentDate', name: 'Payment Date', width: 100, cellTemplate: this.dateTemplate },\r\n { prop: 'tender', name: 'Tender', width: 100 },\r\n { prop: 'paymentValue', name: 'Amount', width: 100 },\r\n { prop: 'status', name: 'Status', width: 100 },\r\n { prop: 'message', name: 'Result', width: 200 }\r\n ];\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.setDataGrids();\r\n }\r\n\r\n openUploadModal() {\r\n if (!this.uploadModal) {\r\n setTimeout(() => {\r\n if (this.uploadModal) {\r\n this.uploadModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.uploadModal.show();\r\n }\r\n }\r\n\r\n\r\n uploadModalHide() {\r\n this.uploadModal.hide();\r\n }\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.fileName = file.name.replace(/\\s/g, \"\") + \"-\" + this.selectedCompany + this.getFormattedTime() + this.selectedPeriod;\r\n this.newDebtorsFile.append('file', file);\r\n }\r\n }\r\n\r\n startImport() {\r\n if (this.newDebtorsFile.has('file')) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.uploadModalHide();\r\n this.stagedRows = null;\r\n this.stagedRowsCache = null;\r\n this.successcount = 0;\r\n this.processcount = 0;\r\n this.successAmount = 0;\r\n this.skippedAmount = 0;\r\n this.safecount = 0;\r\n this.totalCount = 0;\r\n \r\n //var newFileName = this.selectedCompany + this.getFormattedTime() + this.selectedPeriod;\r\n this.sysproService.uploadBankFile(this.newDebtorsFile, this.selectedCompany, this.fileName, this.selectedBank, this.selectedPeriod).subscribe(\r\n x => this.onStagingFileSuccess(x, this.fileName), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n getFormattedTime() {\r\n var today = new Date();\r\n var y = today.getFullYear();\r\n var m = today.getMonth() + 1;\r\n var d = today.getDate();\r\n var h = today.getHours();\r\n var mi = today.getMinutes();\r\n var s = today.getSeconds();\r\n return y + \"-\" + m + \"-\" + d + \"T\" + h + mi + s + \"-\";\r\n }\r\n\r\n onStagingFileSuccess(x: any, fileName: string) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.currentFileName = fileName;\r\n var totalAmount = 0;\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n var extract = line.paymentValue;\r\n totalAmount += (extract*= -1);\r\n });\r\n\r\n this.stagedRowsCache = [...details];\r\n this.stagedRows = this.stagedRowsCache;\r\n this.newDebtorsFile = new FormData();\r\n\r\n this.totalAmount = totalAmount;\r\n\r\n this.totalCount = this.stagedRows.length;\r\n this.safecount = this.stagedRows.filter(x => x.status == \"STAGED\").length;\r\n\r\n // this.headerId = this.stagedRows[0].headerId;\r\n\r\n //Load Header Information\r\n // this.sysproService.getBankFileHeader()\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.stagedRows = this.stagedRowsCache.filter(r => Utilities.searchArray(value, false, r.status, r.bankReference, r.customer, r.customerName, r.paymentDate, r.paymentValue));\r\n }\r\n else {\r\n this.stagedRows = this.stagedRowsCache;\r\n }\r\n }\r\n\r\n postRecord(row: any) {\r\n\r\n if (!this.isPosting) {\r\n if (this.validatePost(row)) {\r\n this.isPosting = true;\r\n this.index = row.index;\r\n if (!this.SysproUser || this.SysproUser.sysproSessionId) {\r\n this.alertService.startLoadingMessage('Loggin into Syspro...');\r\n //Check SYSPRO User\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser).subscribe(x => this.onSingleSessionCreatedSuccesful(x, row), error => this.onSessionFailed(error));\r\n\r\n }\r\n else {\r\n this.onSingleSessionCreatedSuccesful(this.SysproUser, row);\r\n }\r\n }\r\n }\r\n }\r\n\r\n deleteRecord(row: any) {\r\n //Update local record\r\n row.status = \"SKIPPED\";\r\n row.message = \"\";\r\n\r\n this.sysproService.updateBankImportLine(row, row.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n }\r\n\r\n onSingleSessionCreatedSuccesful(x: User, row: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.startLoadingMessage('Posting Payment...');\r\n this.SysproUser = x;\r\n if (this.SysproUser.sysproSessionId) {\r\n let batchId = this.selectedCompany + this.getFormattedTime() + this.selectedPeriod; \r\n row.status = \"PROCESSING\";\r\n row.batchId = batchId;\r\n row.userName = this.SysproUser.sysproOperator;\r\n //Update local record\r\n this.sysproService.updateBankImportLine(row, row.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n\r\n const detail = row;\r\n if (detail) {\r\n const postObject = {\r\n \"user\": this.SysproUser, \"detail\": detail\r\n };\r\n this.sysproService.postSinglePaymentToSyspro(postObject).subscribe(x => this.onSingleArstpyPOSTSuccesful(x), error => this.onSingleArstpyPOSTFailed(row, error));\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `You have not logged into Syspro`, MessageSeverity.warn);\r\n this.isPosting = false;\r\n }\r\n }\r\n\r\n onSingleArstpyPOSTSuccesful(x: BankImport): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Payments posted to syspro successfully`, MessageSeverity.success);\r\n this.loadingIndicator = false;\r\n if (x && x.id >= 1) {\r\n //Update local record\r\n let index = this.resultRows.findIndex(r => r.id === x.id)\r\n let rowToUpdate = this.resultRows[index];\r\n rowToUpdate = x;\r\n this.resultRows = [...this.resultRows]; \r\n this.sysproService.updateBankImportLine(x, x.id).subscribe(x => { }, error => this.onUpdateFailed(error));\r\n }\r\n\r\n this.isPosting = false;\r\n this.complete = true;\r\n }\r\n\r\n onSingleArstpyPOSTFailed(posteRow: BankImport, error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Error', 'The below errors occured whilst posting payments:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //Update local record\r\n this.sysproService.updateBankImportLine(posteRow, posteRow.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n\r\n this.isPosting = false;\r\n this.complete = true;\r\n }\r\n\r\n postAll() {\r\n if (!this.isPosting) {\r\n if (this.validatePost()) {\r\n this.isPosting = true;\r\n //Check SYSPRO User\r\n this.alertService.startLoadingMessage('Loggin into Syspro...');\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser, false, this.selectedCompany)\r\n .pipe(\r\n finalize(() => this.isPosting = false) // This will always run after the observable completes, whether in success or error.\r\n )\r\n .subscribe(\r\n x => {\r\n // Check if the response contains \"ERROR\"\r\n if (x.sysproSessionId.includes(\"ERROR\")) {\r\n this.onSessionFailed(x); // Pass the error message to the failure handler\r\n } else {\r\n this.onsessionCreatedSuccesful(x); // Proceed with success handling\r\n }\r\n },\r\n error => this.onSessionFailed(error) // Handle any unexpected errors\r\n );\r\n }\r\n } \r\n }\r\n\r\n\r\n onsessionCreatedSuccesful(x: User): void {\r\n this.alertService.stopLoadingMessage();\r\n this.SysproUser = x;\r\n if (this.SysproUser.sysproSessionId) {\r\n\r\n this.index = 0;\r\n this.skipCount = 0;\r\n this.posintgCount = 0;\r\n this.failedCount = 0;\r\n const rowsToProcess = this.stagedRows.filter(x => x.status != \"ERROR\");\r\n this.processcount = rowsToProcess.length;\r\n let batchId = this.selectedCompany + this.getFormattedTime() + this.selectedPeriod;\r\n\r\n this.alertService.startLoadingMessage('Posting ' + this.processcount + ' Payments...'); \r\n\r\n //Update Local Records\r\n for (var row of rowsToProcess) {\r\n row.status = \"PROCESSING\";\r\n row.batchId = batchId;\r\n row.userName = this.SysproUser.sysproOperator;\r\n //Update local record\r\n this.sysproService.updateBankImportLine(row, row.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n }\r\n\r\n const postObject = {\r\n \"user\": this.SysproUser, \"detail\": rowsToProcess\r\n };\r\n this.sysproService.postPaymentsToSyspro(postObject).subscribe(x => this.onArstpyPOSTAllSuccesful(x), error => { this.onArstpyPOSTAllFailed(error) });\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `You have not logged into Syspro`, MessageSeverity.warn);\r\n this.isPosting = false;\r\n }\r\n\r\n }\r\n\r\n postUnprocessed() {\r\n if (!this.isPosting) {\r\n if (this.validatePost()) {\r\n this.isPosting = true;\r\n //Check SYSPRO User\r\n this.alertService.startLoadingMessage('Loggin into Syspro...');\r\n this.sysproService.GetSysproSessionId(this.accountService.currentUser, false, this.selectedCompany)\r\n .pipe(\r\n finalize(() => this.isPosting = false) // This will always run after the observable completes, whether in success or error.\r\n )\r\n .subscribe(\r\n x => this.onSafesessionCreatedSuccesful(x),\r\n error => this.onSessionFailed(error)\r\n );\r\n }\r\n }\r\n }\r\n\r\n\r\n onSafesessionCreatedSuccesful(x: User): void {\r\n this.alertService.stopLoadingMessage();\r\n this.SysproUser = x;\r\n if (this.SysproUser.sysproSessionId) {\r\n\r\n this.index = 0;\r\n this.skipCount = 0;\r\n this.posintgCount = 0;\r\n this.failedCount = 0;\r\n const rowsToProcess = this.stagedRows.filter(x => x.status == \"STAGED\");\r\n this.processcount = rowsToProcess.length;\r\n let batchId = this.selectedCompany + this.getFormattedTime() + this.selectedPeriod;\r\n\r\n this.alertService.startLoadingMessage('Posting ' + this.processcount + ' Payments...');\r\n\r\n //Update Local Records\r\n for (var row of rowsToProcess) {\r\n row.status = \"PROCESSING\";\r\n row.batchId = batchId;\r\n row.userName = this.SysproUser.sysproOperator;\r\n //Update local record\r\n this.sysproService.updateBankImportLine(row, row.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n }\r\n\r\n const postObject = {\r\n \"user\": this.SysproUser, \"detail\": rowsToProcess\r\n };\r\n this.sysproService.postPaymentsToSyspro(postObject).subscribe(x => this.onArstpyPOSTAllSuccesful(x), error => { this.onArstpyPOSTAllFailed(error) });\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `You have not logged into Syspro`, MessageSeverity.warn);\r\n this.isPosting = false;\r\n }\r\n\r\n }\r\n\r\n\r\n onUpdateSuccesful(x: BankImport): void {\r\n\r\n this.resultRowsCache.push(x);\r\n this.resultRows = [...this.resultRowsCache];\r\n\r\n const sum = this.resultRows.filter(item => item.status != '')\r\n .reduce((sum, current) => sum + current.paymentValue, 0);\r\n\r\n this.successAmount = sum;\r\n\r\n //const skipped = this.resultRows.filter(item => item.status === 'SKIPPED')\r\n // .reduce((sum, current) => sum + current.paymentValue, 0);\r\n\r\n\r\n //this.skippedAmount = skipped;\r\n\r\n\r\n let index = this.stagedRows.findIndex(r => r.id === x.id)\r\n let temp = [...this.stagedRows];\r\n temp.splice(index, 1);\r\n temp.forEach((line, index, temp) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.stagedRows = [...temp];\r\n }\r\n\r\n onArstpyPOSTAllFailed(error: any) {\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n }\r\n\r\n onArstpyPOSTAllSuccesful(x: BankImport): void {\r\n\r\n console.log(\"RESULT\", x);\r\n //Update Local Records\r\n const rowsToProcess = this.resultRows.filter(r => r.batchId === x.batchId);\r\n for (var row of rowsToProcess) {\r\n\r\n //Check for journal number\r\n if (x.journal && x.journal.length > 1) {\r\n\r\n row.status = \"SUCCESS\";\r\n row.journal = x.journal;\r\n row.trnYear = x.trnYear;\r\n row.trnMonth = x.trnMonth;\r\n row.message = \"POSTED \" + x.journal;\r\n\r\n //Update all records with success, journal details\r\n this.sysproService.updateBankImportLine(row, row.id).subscribe(x => this.onFinalUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n }\r\n }\r\n\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n this.isPosting = false;\r\n this.complete = true;\r\n\r\n }\r\n\r\n onFinalUpdateSuccesful(x: BankImport): void {\r\n console.log(\"NEW ROW\", x);\r\n let index = this.resultRows.findIndex(r => r.id === x.id)\r\n let rowToUpdate = this.resultRows[index];\r\n rowToUpdate = x;\r\n this.resultRows = [...this.resultRows]; \r\n }\r\n\r\n //processRow(row: BankImport, count: number) {\r\n // this.posintgCount++;\r\n // let detail = row;\r\n // const postObject = {\r\n // \"user\": this.SysproUser, \"detail\": detail\r\n // };\r\n // setTimeout(() => {\r\n \r\n // this.sysproService.postPaymentsToSyspro(postObject).subscribe(x => this.onArstpyPOSTSuccesful(x, count), error => { this.onArstpyPOSTFailed(row, error, count) });\r\n // }, 3000); //Time before execution\r\n \r\n //}\r\n\r\n\r\n //skipRow(row: BankImport, count: number) {\r\n // this.successcount++;\r\n // this.skipCount++;\r\n // console.log(\"SKIPPED\", count, this.successcount, row);\r\n // let newRow = new BankImport();\r\n // newRow = row;\r\n // this.resultRowsCache.push(newRow);\r\n // this.resultRows = [...this.resultRowsCache];\r\n\r\n\r\n // let index = this.stagedRows.findIndex(x => x.id === x.id)\r\n // let temp = [...this.stagedRows];\r\n // temp.splice(index, 1);\r\n // temp.forEach((line, index, temp) => {\r\n // (line).index = index + 1;\r\n // });\r\n\r\n // this.stagedRows = [...temp];\r\n //}\r\n\r\n\r\n //onNextRow(rowToMove: any): boolean {\r\n // let newRow = new BankImport();\r\n // newRow = rowToMove;\r\n // this.resultRowsCache.push(newRow);\r\n // this.resultRows = [...this.resultRowsCache];\r\n\r\n // let temp = [...this.stagedRowsCache];\r\n // temp.splice(this.index - 1, 1);\r\n // temp.forEach((line, index, temp) => {\r\n // (line).index = index + 1;\r\n // });\r\n\r\n // this.stagedRows = [...temp];\r\n\r\n // return true;\r\n //}\r\n\r\n onArstpyPOSTSuccesful(x: BankImport, count: number): void {\r\n this.successcount++;\r\n console.log(\"SUCCESS\", count, this.successcount, this.processcount, x);\r\n \r\n if (this.successcount <= this.processcount) {\r\n if (x && x.id >= 1) {\r\n let newRow = new BankImport();\r\n newRow = x;\r\n this.resultRowsCache.push(newRow);\r\n this.resultRows = [...this.resultRowsCache];\r\n this.successAmount += newRow.paymentValue;\r\n\r\n let index = this.stagedRows.findIndex(x => x.id === x.id)\r\n let temp = [...this.stagedRows];\r\n temp.splice(index, 1);\r\n temp.forEach((line, index, temp) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.stagedRows = [...temp];\r\n\r\n //Update local record\r\n this.sysproService.updateBankImportLine(newRow, newRow.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n\r\n }\r\n else {\r\n console.log(x);\r\n }\r\n }\r\n if (this.successcount == this.processcount) {\r\n this.wrapUp();\r\n }\r\n }\r\n onUpdateFailed(error: any): void {\r\n \r\n }\r\n\r\n validatePost(row?: BankImport) {\r\n return true;\r\n }\r\n\r\n onArstpyPOSTFailed(posteRow: BankImport, error: any, count: number): void {\r\n this.successcount++;\r\n this.failedCount++;\r\n console.log(\"FAILED\", count, this.successcount, posteRow);\r\n let newRow = new BankImport();\r\n newRow = posteRow;\r\n newRow.status = \"FAILED\";\r\n newRow.message = error;\r\n this.resultRowsCache.push(newRow);\r\n this.resultRows = [...this.resultRowsCache];\r\n\r\n let index = this.stagedRows.findIndex(x => x.id === x.id)\r\n let temp = [...this.stagedRows];\r\n temp.splice(index, 1);\r\n temp.splice(count - 1, 1);\r\n temp.forEach((line, index, temp) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.stagedRows = [...temp];\r\n //Update local record\r\n this.sysproService.updateBankImportLine(newRow, newRow.id).subscribe(x => this.onUpdateSuccesful(x), error => this.onUpdateFailed(error));\r\n\r\n if (this.successcount == this.processcount) {\r\n this.wrapUp();\r\n }\r\n \r\n }\r\n\r\n\r\n private wrapUp() {\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Finished processing : ' + this.successcount + ' records of which ' + this.skipCount + ' were skipped, and ' + this.failedCount + ' failed');\r\n\r\n this.isPosting = false;\r\n this.complete = true;\r\n this.stagedRows = null;\r\n\r\n this.gridHeigt = \"height: 600px;\";\r\n }\r\n\r\n onSessionFailed(error: any): void {\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n // Extract specific error details or use a default message\r\n const errorMessage = error.message || 'Failed to log into Syspro';\r\n\r\n // Alert the user with the error message\r\n this.alertService.showStickyMessage('Error', errorMessage, MessageSeverity.error);\r\n\r\n // Additional error handling logic can be added here\r\n console.error('SYSPRO session error:', error);\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.specificSearch();\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.specificSearch();\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.specificSearch();\r\n }\r\n\r\n RefreshResults() {\r\n\r\n this.sysproService.getBankImportByFileName(this.currentFileName).subscribe(x => this.onHistoryLoadSuccesfull(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n ExportResults() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Company\", \"MasterAcc\", \"Customer\", \"CustomerName\", \"Amount\", \"BankReference\", \"PaymentDate\", \"Status\", \"TrnYear\", \"TrnMonth\", \"Journal\", \"Message\"]\r\n };\r\n\r\n var filename = this.currentFileName;\r\n var selectRows = [...this.resultRows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.paymentDate).toISOString().split('T')[0];\r\n exportRows.push({\r\n Company: row.company, MasterAcc: row.customerMaster, Customer: row.customer, CustomerName: row.customerName, Amount: row.paymentValue, BankReference: row.bankReference,\r\n PaymentDate: date, Status: row.status, TrnYear: row.trnYear, TrnMonth: row.trnMonth, Journal: row.journal, Message: row.message\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n GoToOverview() {\r\n this.router.navigate(['../../customers'], { fragment: 'debtorsbankoverview' });\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Pricing Customers Overview\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.date-range-picker-container {\\n width: 50%;\\n height: 50px;\\n background: #fff;\\n display: inline-block;\\n border: 1px solid #9da3a6;\\n border-radius: 7px;\\n position: relative; }\\n\\n.input-section {\\n width: calc(100%);\\n height: 48px;\\n display: block;\\n float: left;\\n outline: 0;\\n border: none;\\n padding: 7px 10px;\\n color: #2c2e2f;\\n cursor: pointer;\\n position: relative; }\\n\\n.date-range-picker-icon {\\n margin-left: -25px;\\n z-index: 1; }\\n\\n.search-header-override {\\n padding: .5rem 1rem;\\n margin-bottom: -3px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.search-header-override .no-padding {\\n padding-left: 2px !important;\\n padding-right: 2px !important; }\\n\\n.search-header-override .btn {\\n /*height: 25px !important;*/ }\\n\\n.search-header-override .text-subscript {\\n height: 18px;\\n margin-top: -7px;\\n padding: 0 3px 0 0; }\\n\\n[data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\" ... \\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... \\\"; }\\n\\n/*[data-toggle=\\\"collapse\\\"] .fa:before {\\r\\n content: \\\"\\\\f139\\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\r\\n content: \\\"\\\\f13a\\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\r\\n content: \\\"... see less \\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\r\\n content: \\\"... see more \\\";\\r\\n}*/\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvY29yZS1jdXN0b21lcnMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxjdXN0b21lcnNcXGNvcmUtY3VzdG9tZXJzXFxjb3JlLWN1c3RvbWVyLWFkbWluLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2N1c3RvbWVycy9jb3JlLWN1c3RvbWVycy9jb3JlLWN1c3RvbWVyLWFkbWluLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUdqQztFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLGdCQUFnQixFQUFBOztBQU1wQjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHckI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0UsVUFBVTtFQUNWLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixjQUFjO0VBQ2QsV0FBVztFQUNYLFVBQVU7RUFDVixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxlQUFlO0VBQ2Ysa0JBQWtCLEVBQUE7O0FBR2xCO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVUsRUFBQTs7QUFJZDtFQUNFLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBR3RCLGtEQUErQztFQUMvQyxrQkFBa0IsRUFBQTs7QUFQcEI7SUFVSSw0QkFBNEI7SUFDNUIsNkJBQTZCLEVBQUE7O0FBWGpDO0lBZUksMkJBQUEsRUFBNEI7O0FBZmhDO0lBbUJJLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsa0JBQWtCLEVBQUE7O0FDbkJ0QjtFRHdCRSxnQkFBZ0IsRUFBQTs7QUNyQmxCO0VEMEJFLGdCQUFnQixFQUFBOztBQ3ZCbEI7RUQ0QkUsZ0JBQWdCLEVBQUE7O0FDekJsQjtFRDhCRSxlQUFlLEVBQUE7O0FBR2pCOzs7Ozs7Ozs7Ozs7Ozs7OztFQ2JFIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvY29yZS1jdXN0b21lcnMvY29yZS1jdXN0b21lci1hZG1pbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4udXNlci1yb2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmRhdGUtcmFuZ2UtcGlja2VyLWNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDUwJTtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgIzlkYTNhNjtcclxuICBib3JkZXItcmFkaXVzOiA3cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxufVxyXG4uaW5wdXQtc2VjdGlvbiB7XHJcbiAgd2lkdGg6IGNhbGMoMTAwJSk7XHJcbiAgaGVpZ2h0OiA0OHB4O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIHBhZGRpbmc6IDdweCAxMHB4O1xyXG4gIGNvbG9yOiAjMmMyZTJmO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbiAgLmRhdGUtcmFuZ2UtcGlja2VyLWljb24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xyXG4gICAgei1pbmRleDogMTtcclxuICB9XHJcblxyXG5cclxuLnNlYXJjaC1oZWFkZXItb3ZlcnJpZGUge1xyXG4gIHBhZGRpbmc6IC41cmVtIDFyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogLTNweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgLW1vei1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcblxyXG4gIC5uby1wYWRkaW5nIHtcclxuICAgIHBhZGRpbmctbGVmdDogMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAycHggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5idG4ge1xyXG4gICAgLypoZWlnaHQ6IDI1cHggIWltcG9ydGFudDsqL1xyXG4gIH1cclxuXHJcbiAgLnRleHQtc3Vic2NyaXB0IHtcclxuICAgIGhlaWdodDogMThweDtcclxuICAgIG1hcmdpbi10b3A6IC03cHg7XHJcbiAgICBwYWRkaW5nOiAwIDNweCAwIDA7XHJcbiAgfVxyXG59XHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIgLi4uIFwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBcIjtcclxufVxyXG5cclxuLypbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIGxlc3MgXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiO1xyXG59Ki9cclxuXHJcblxyXG4iLCI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgfVxuXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7IH1cbiAgOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIGEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnVzZXItcm9sZSB7XG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cblxuLmNvbnRyb2wtYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG5cbi5zZWFyY2gtYm94IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcbiAgcGFkZGluZy10b3A6IDNweDtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgbWluLXdpZHRoOiAxMDBweDsgfVxuXG4udXNlci1kaXNhYmxlZCB7XG4gIGNvbG9yOiAjNzc3O1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLmxvY2tlZC1vdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4uZGF0ZS1yYW5nZS1waWNrZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5ZGEzYTY7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5pbnB1dC1zZWN0aW9uIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSk7XG4gIGhlaWdodDogNDhweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBvdXRsaW5lOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDdweCAxMHB4O1xuICBjb2xvcjogIzJjMmUyZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmRhdGUtcmFuZ2UtcGlja2VyLWljb24ge1xuICBtYXJnaW4tbGVmdDogLTI1cHg7XG4gIHotaW5kZXg6IDE7IH1cblxuLnNlYXJjaC1oZWFkZXItb3ZlcnJpZGUge1xuICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAtM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG4gIC5zZWFyY2gtaGVhZGVyLW92ZXJyaWRlIC5uby1wYWRkaW5nIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDJweCAhaW1wb3J0YW50OyB9XG4gIC5zZWFyY2gtaGVhZGVyLW92ZXJyaWRlIC5idG4ge1xuICAgIC8qaGVpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7Ki8gfVxuICAuc2VhcmNoLWhlYWRlci1vdmVycmlkZSAudGV4dC1zdWJzY3JpcHQge1xuICAgIGhlaWdodDogMThweDtcbiAgICBtYXJnaW4tdG9wOiAtN3B4O1xuICAgIHBhZGRpbmc6IDAgM3B4IDAgMDsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzlcIjsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLmZhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7IH1cblxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLnR4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIiAuLi4gXCI7IH1cblxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCIuLi4gXCI7IH1cblxuLypbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIGxlc3MgXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiO1xyXG59Ki9cbiJdfQ== */\"","\r\nimport { AfterViewInit, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { CoreCustomerPrices } from '../../../models/core-customer-prices.model';\r\nimport { CoreCustomerRule } from '../../../models/core-customer-rule.model';\r\nimport { CoreCustomer } from '../../../models/core-customer.model';\r\nimport { Inventory } from '../../../models/inventory.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities'; \r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { TreeviewComponent, TreeviewConfig, TreeviewItem } from 'ngx-treeview';\r\nimport { CMCategories } from '../../../models/cms-category.model';\r\nimport { WHAvailQTY } from '../../../models/inventory-wh.model';\r\nimport { SimpleTree } from '../../../models/simple-tree.model';\r\nimport { Supplier } from '../../../models/supplier.model';\r\nimport { Calculations } from '../../../services/calculations.service';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'core-customer-admin',\r\n templateUrl: './core-customer-admin.component.html',\r\n styleUrls: ['./core-customer-admin.component.scss']\r\n})\r\nexport class CoreCustomerAdminComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n columns: any[] = [];\r\n\r\n customerRows: ArCustomer[] = [];\r\n customerRowsCache: ArCustomer[] = [];\r\n\r\n\r\n loadingIndicator: boolean;\r\n\r\n //Customer Search\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n searchCustomerType: string = \"\";\r\n searchTextCustomer: string = \"\";\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n\r\n @ViewChild('customerActionsTemplate')\r\n customerActionsTemplate: TemplateRef;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n id: string;\r\n\r\n\r\n coreCustomer: CoreCustomer = new CoreCustomer(); \r\n coreCustomers: CoreCustomer[];\r\n \r\n searchOnValue: string;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.searchCustomerType = \"customer\";\r\n\r\n this.setGrid();\r\n\r\n this.loadData();\r\n }\r\n\r\n setGrid() { \r\n this.columns = [\r\n { prop: 'customer', name: 'Customer', width: 90, cellClass: \"center\" },\r\n { prop: 'customerName', name: 'Name', width: 220, cellClass: \"left\" },\r\n { prop: 'termsCode', name: 'Terms Code', width: 110, cellClass: \"left\" },\r\n { prop: 'termsDescription', name: 'Terms Description', width: 110, cellClass: \"left\" },\r\n { prop: 'branch', name: 'Branch', width: 50, cellClass: \"center\" },\r\n { prop: 'salesperson', name: 'Sales Person', width: 50, cellClass: \"left\" },\r\n { prop: 'salespersonName', name: 'Name', width: 150, cellClass: \"left\" },\r\n { prop: 'customerOnHold', name: 'On Hold', width: 50, cellClass: \"center\" },\r\n { prop: 'creditStatus', name: 'Update', cellTemplate: this.actionsTemplate , width: 100, cellClass: \"center\"}\r\n ];\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.setGrid();\r\n }\r\n\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getCustomers(\"NOPRICING\").subscribe(x => this.onAllCustomersLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n specificCustomerSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onAllCustomersLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n allCustomerSearch() {\r\n if (this.searchCustomerType && this.searchTextCustomer != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getCustomers(\"NOPRICING\").subscribe(\r\n x => this.onAllSearchCustomersLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onAllSearchCustomersLoadSuccessful(customers: ArCustomer[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (customers && customers.length >= 1) {\r\n\r\n const details = customers;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.customerRowsCache = [...details];\r\n // this.resultRowsCache = x;\r\n this.customerRows = [...this.customerRowsCache];\r\n }\r\n \r\n\r\n this.customerRows = this.customerRowsCache.filter(r => r.customer.toLowerCase() == this.searchTextCustomer.toLowerCase());\r\n\r\n if (this.searchCustomerType == \"customerName\") {\r\n this.customerRows = this.customerRowsCache.filter(r => Utilities.searchArray(this.searchTextCustomer, false, r.customerName));\r\n }\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.searchOnValue = value;\r\n this.customerRows = this.customerRowsCache.filter(r => Utilities.searchArray(value, false, r.customer, r.customerName));\r\n\r\n }\r\n else {\r\n this.searchOnValue = \"\";\r\n this.customerRows = this.customerRowsCache;\r\n }\r\n }\r\n\r\n onAllCustomersLoadSuccessful(customers: ArCustomer[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n var x = customers.filter(c => c.creditStatus != 'NOT FOUND');\r\n\r\n if (x && x.length >= 1) {\r\n\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.customerRowsCache = [...details];\r\n this.customerRows = [...this.customerRowsCache];\r\n\r\n }\r\n \r\n }\r\n\r\n\r\n clearFilters() {\r\n this.searchOnValue = \"\";\r\n this.customerRows = this.customerRowsCache;\r\n\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n resetAll() {\r\n for(var customer of this.customerRows) {\r\n this.resetPricing(customer);\r\n }\r\n }\r\n\r\n resetPricing(row: ArCustomer) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n //var customerId = Number(row.creditStatus); \r\n this.sysproService.resetCustomerPricing(this.application, row.customer).subscribe(x => this.onUpdateSuccessfull(x), error => this.onDataLoadFailed(error));\r\n //this.sysproService.getPricingCustomer(row.customer, this.application).subscribe(x => this.onCoreCustomerLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n onUpdateSuccessfull(x: CoreCustomer): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n\r\n this.alertService.showStickyMessage('Success', `Updated Customer ` + x.customerCode,\r\n MessageSeverity.success);\r\n }\r\n\r\n onCoreCustomerLoadSuccessful(x: CoreCustomer): void {\r\n\r\n this.coreCustomer = x[0];\r\n this.sysproService.getAllPricingCustomerPrices(this.coreCustomer.id).subscribe(x => this.onPricesLoadSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n //if (x && x.length == 1) {\r\n // if (x[0].customerCode != \"\") {\r\n\r\n \r\n // }\r\n //}\r\n }\r\n onPricesLoadSuccessful(x: CoreCustomerPrices[], arg1: boolean): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n\r\n this.alertService.showStickyMessage('Success', `Updated Customer ` + x[0].customerCode,\r\n MessageSeverity.success);\r\n }\r\n\r\n\r\n onDefaultsPostedFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to update defaults.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n }\r\n\r\n onDefaultsPostedSuccesful(x: CoreCustomer): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n\r\n this.alertService.showStickyMessage('Success', `Added Defaults.`,\r\n MessageSeverity.success);\r\n\r\n\r\n this.sysproService.getCustomers(\"NOPRICING\").subscribe(x => this.onAllCustomersLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n \r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Default Customer Template\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n General Discount \\r\\n   Discount : {{generalPriceRow.specialDiscount | currency:' ':'symbol':'1.1' }} %\\r\\n   Cost Plus : {{generalPriceRow.specialCostAdd | currency:' ':'symbol':'1.1' }} %\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
General Price Rule:
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Selling Price\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Discount\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unit Cost\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Cost\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Supplier Discount \\r\\n   ({{rowCustomerRulesSupplierDiscount.length}})\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Product Category Discount \\r\\n   ({{rowCustomerRulesCategoryDiscount.length}})\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n  \\r\\n  \\r\\n  \\r\\n   \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n\\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Special Price \\r\\n   ({{rowCustomerPrices.length}})\\r\\n     !! Outdated Special Prices , cost has changed !! \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Add defaults to customers\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\"> \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n  \\r\\n  \\r\\n \\r\\n  \\r\\n  \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Notes:

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

Edit Special Price

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
{{specialPriceRow.stockCode}} \\t: {{specialPriceRow.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
Selling Price:
\\r\\n
\\r\\n
\\r\\n R {{specialPriceRow.sellingPrice | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
Special Price:
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Unit Cost\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n R {{specialPriceRow.unitCost | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{specialPriceRow.uom}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Cost\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Special Price: R {{specialPriceRow.specialPrice | currency:' ':'symbol':'1.2'}} - (GP {{specialPriceRow.specialGP | currency:' ':'symbol':'1.2'}} %)
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Add Supplier Discount

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
{{supplierDiscountRow.stockCode}} \\t: {{supplierDiscountRow.description}}
\\r\\n
\\r\\n
\\r\\n    
Supplier Discount Rule:
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Selling Price\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Discount\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unit Cost\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Cost\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Add Category Discount

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
{{newParentName}}
\\r\\n
\\r\\n
\\r\\n    
Category Discount Rule:
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Selling Price\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Discount\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unit Cost\\r\\n
\\r\\n
\\r\\n
\\r\\n Cost\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.date-range-picker-container {\\n width: 50%;\\n height: 50px;\\n background: #fff;\\n display: inline-block;\\n border: 1px solid #9da3a6;\\n border-radius: 7px;\\n position: relative; }\\n\\n.input-section {\\n width: calc(100%);\\n height: 48px;\\n display: block;\\n float: left;\\n outline: 0;\\n border: none;\\n padding: 7px 10px;\\n color: #2c2e2f;\\n cursor: pointer;\\n position: relative; }\\n\\n.date-range-picker-icon {\\n margin-left: -25px;\\n z-index: 1; }\\n\\n.search-header-override {\\n padding: .5rem 1rem;\\n margin-bottom: -3px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.search-header-override .no-padding {\\n padding-left: 2px !important;\\n padding-right: 2px !important; }\\n\\n.search-header-override .btn {\\n /*height: 25px !important;*/ }\\n\\n.search-header-override .text-subscript {\\n height: 18px;\\n margin-top: -7px;\\n padding: 0 3px 0 0; }\\n\\n[data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\" ... \\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... \\\"; }\\n\\n/*[data-toggle=\\\"collapse\\\"] .fa:before {\\r\\n content: \\\"\\\\f139\\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\r\\n content: \\\"\\\\f13a\\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\r\\n content: \\\"... see less \\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\r\\n content: \\\"... see more \\\";\\r\\n}*/\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvY29yZS1jdXN0b21lcnMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxjdXN0b21lcnNcXGNvcmUtY3VzdG9tZXJzXFxjb3JlLWN1c3RvbWVyLW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXJzL2NvcmUtY3VzdG9tZXJzL2NvcmUtY3VzdG9tZXItbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFPSSxnQkFBZ0IsRUFBQTs7QUFNcEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksU0FBUyxFQUFBOztBQUdiO0VBQ0ksZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBOztBQUdyQjtFQUNFLFVBQVU7RUFDVixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLHFCQUFxQjtFQUNyQix5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osY0FBYztFQUNkLFdBQVc7RUFDWCxVQUFVO0VBQ1YsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QsZUFBZTtFQUNmLGtCQUFrQixFQUFBOztBQUdsQjtFQUNFLGtCQUFrQjtFQUNsQixVQUFVLEVBQUE7O0FBSWQ7RUFDRSxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUd0QixrREFBK0M7RUFDL0Msa0JBQWtCLEVBQUE7O0FBUHBCO0lBVUksNEJBQTRCO0lBQzVCLDZCQUE2QixFQUFBOztBQVhqQztJQWVJLDJCQUFBLEVBQTRCOztBQWZoQztJQW1CSSxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLGtCQUFrQixFQUFBOztBQ25CdEI7RUR3QkUsZ0JBQWdCLEVBQUE7O0FDckJsQjtFRDBCRSxnQkFBZ0IsRUFBQTs7QUN2QmxCO0VENEJFLGdCQUFnQixFQUFBOztBQ3pCbEI7RUQ4QkUsZUFBZSxFQUFBOztBQUdqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7RUNiRSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXJzL2NvcmUtY3VzdG9tZXJzL2NvcmUtY3VzdG9tZXItbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4udXNlci1yb2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmRhdGUtcmFuZ2UtcGlja2VyLWNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDUwJTtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgIzlkYTNhNjtcclxuICBib3JkZXItcmFkaXVzOiA3cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxufVxyXG4uaW5wdXQtc2VjdGlvbiB7XHJcbiAgd2lkdGg6IGNhbGMoMTAwJSk7XHJcbiAgaGVpZ2h0OiA0OHB4O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIHBhZGRpbmc6IDdweCAxMHB4O1xyXG4gIGNvbG9yOiAjMmMyZTJmO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbiAgLmRhdGUtcmFuZ2UtcGlja2VyLWljb24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xyXG4gICAgei1pbmRleDogMTtcclxuICB9XHJcblxyXG5cclxuLnNlYXJjaC1oZWFkZXItb3ZlcnJpZGUge1xyXG4gIHBhZGRpbmc6IC41cmVtIDFyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogLTNweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgLW1vei1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcblxyXG4gIC5uby1wYWRkaW5nIHtcclxuICAgIHBhZGRpbmctbGVmdDogMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAycHggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5idG4ge1xyXG4gICAgLypoZWlnaHQ6IDI1cHggIWltcG9ydGFudDsqL1xyXG4gIH1cclxuXHJcbiAgLnRleHQtc3Vic2NyaXB0IHtcclxuICAgIGhlaWdodDogMThweDtcclxuICAgIG1hcmdpbi10b3A6IC03cHg7XHJcbiAgICBwYWRkaW5nOiAwIDNweCAwIDA7XHJcbiAgfVxyXG59XHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIgLi4uIFwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBcIjtcclxufVxyXG5cclxuLypbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIGxlc3MgXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiO1xyXG59Ki9cclxuXHJcblxyXG4iLCI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgfVxuXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7IH1cbiAgOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIGEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnVzZXItcm9sZSB7XG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cblxuLmNvbnRyb2wtYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG5cbi5zZWFyY2gtYm94IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcbiAgcGFkZGluZy10b3A6IDNweDtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgbWluLXdpZHRoOiAxMDBweDsgfVxuXG4udXNlci1kaXNhYmxlZCB7XG4gIGNvbG9yOiAjNzc3O1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLmxvY2tlZC1vdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4uZGF0ZS1yYW5nZS1waWNrZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5ZGEzYTY7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5pbnB1dC1zZWN0aW9uIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSk7XG4gIGhlaWdodDogNDhweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBvdXRsaW5lOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDdweCAxMHB4O1xuICBjb2xvcjogIzJjMmUyZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmRhdGUtcmFuZ2UtcGlja2VyLWljb24ge1xuICBtYXJnaW4tbGVmdDogLTI1cHg7XG4gIHotaW5kZXg6IDE7IH1cblxuLnNlYXJjaC1oZWFkZXItb3ZlcnJpZGUge1xuICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAtM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG4gIC5zZWFyY2gtaGVhZGVyLW92ZXJyaWRlIC5uby1wYWRkaW5nIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDJweCAhaW1wb3J0YW50OyB9XG4gIC5zZWFyY2gtaGVhZGVyLW92ZXJyaWRlIC5idG4ge1xuICAgIC8qaGVpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7Ki8gfVxuICAuc2VhcmNoLWhlYWRlci1vdmVycmlkZSAudGV4dC1zdWJzY3JpcHQge1xuICAgIGhlaWdodDogMThweDtcbiAgICBtYXJnaW4tdG9wOiAtN3B4O1xuICAgIHBhZGRpbmc6IDAgM3B4IDAgMDsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzlcIjsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLmZhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7IH1cblxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLnR4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIiAuLi4gXCI7IH1cblxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCIuLi4gXCI7IH1cblxuLypbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIGxlc3MgXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiO1xyXG59Ki9cbiJdfQ== */\"","\r\nimport { AfterViewInit, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { TreeviewComponent, TreeviewConfig, TreeviewItem } from 'ngx-treeview';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { CMCategories } from '../../../models/cms-category.model';\r\nimport { CoreCustomerPrices } from '../../../models/core-customer-prices.model';\r\nimport { CoreCustomerRule } from '../../../models/core-customer-rule.model';\r\nimport { CoreCustomer } from '../../../models/core-customer.model';\r\nimport { WHAvailQTY } from '../../../models/inventory-wh.model';\r\nimport { Inventory } from '../../../models/inventory.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { SimpleTree } from '../../../models/simple-tree.model';\r\nimport { Supplier } from '../../../models/supplier.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { Calculations } from '../../../services/calculations.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'core-customer-management',\r\n templateUrl: './core-customer-management.component.html',\r\n styleUrls: ['./core-customer-management.component.scss']\r\n})\r\nexport class CoreCustomerManagementComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n columns: any[] = [];\r\n priceColumns: any[] = [];\r\n\r\n customerColumns: any[] = [];\r\n\r\n customerRowsCache: ArCustomer[];\r\n customerRows: ArCustomer[];\r\n\r\n loadingIndicator: boolean;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n //Customer Search\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n\r\n searchCustomerType: string = \"\";\r\n searchTextCustomer: string = \"\";\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n\r\n //Stock Code Search\r\n searchOption: string = \"\";\r\n searchValue: string = \"\";\r\n searchResultsStock: Inventory[] = [];\r\n searchResultSelectedStock: Inventory;\r\n\r\n\r\n @ViewChild('searchResultStockSelector')\r\n private searchResultStockSelector;\r\n\r\n @ViewChild('customerTypeListSelector')\r\n private customerTypeListSelector;\r\n selectedCustomerType: string = \"\";\r\n @ViewChild('customerTypeList')\r\n private customerTypeList;\r\n\r\n whDetail: WHAvailQTY[] = [];\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n @ViewChild('ruleSupplierModal')\r\n ruleSupplierModal: ModalDirective;\r\n @ViewChild('currentSupplier')\r\n currentSupplier: Supplier;\r\n @ViewChild('suppliers')\r\n private suppliers;\r\n @ViewChild('supplierSelector')\r\n private supplierSelector;\r\n suppliersCache: Supplier[] = [];\r\n selectedSupplier: string = \"\";\r\n\r\n @ViewChild('operatorSelector')\r\n private operatorSelector;\r\n salesPersonList: string[];\r\n @ViewChild('operators')\r\n private operators;\r\n\r\n selectedOperator: string;\r\n\r\n\r\n @ViewChild('ruleCategoryModal')\r\n ruleCategoryModal: ModalDirective;\r\n\r\n items: TreeviewItem[];\r\n treeItems: TreeviewItem[] = [];\r\n treeItem: any;\r\n treerows: string[];\r\n item: any;\r\n data: CMCategories;\r\n categoryData: CMCategories[];\r\n\r\n breadcrumbs: SimpleTree[] = [];\r\n\r\n seletedItem: TreeviewItem;\r\n\r\n expandIndex: Number = -1;\r\n\r\n config: TreeviewConfig = {\r\n hasAllCheckBox: false,\r\n hasFilter: false,\r\n hasCollapseExpand: true,\r\n decoupleChildFromParent: false,\r\n maxHeight: 1000,\r\n hasDivider: false\r\n };\r\n\r\n @ViewChild(TreeviewComponent) treeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild(TreeviewComponent)\r\n categoryTreeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('treeModal')\r\n treeModal: ModalDirective;\r\n\r\n @ViewChild('treeItemTemplate')\r\n\r\n @ViewChild('ruleStockCodeModal')\r\n ruleStockCodeModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n\r\n @ViewChild('customerActionsTemplate')\r\n customerActionsTemplate: TemplateRef;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('warehouseTemplate')\r\n warehouseTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('sellpriceTemplate')\r\n sellpriceTemplate: TemplateRef;\r\n\r\n @ViewChild('unitCostTemplate')\r\n unitCostTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('specialTemplate')\r\n specialTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isSearch: boolean;\r\n id: string;\r\n\r\n\r\n newParentName: string;\r\n specialPriceRow: Inventory;\r\n supplierDiscountRow: Inventory;\r\n categoryDiscountRow: Inventory;\r\n generalPriceRow: Inventory;\r\n\r\n\r\n coreCustomer: CoreCustomer = new CoreCustomer();\r\n rowCustomerRules: CoreCustomerRule[] = [];\r\n rowCustomerRulesSpecialPrice: CoreCustomerRule[] = [];\r\n rowCustomerRulesSupplierDiscount: CoreCustomerRule[] = [];\r\n rowCustomerRulesCategoryDiscount: CoreCustomerRule[] = [];\r\n rowCustomerRulesCache: CoreCustomerRule[] = [];\r\n rowCustomerPrices: CoreCustomerPrices[] = [];\r\n rowCustomerPricesCache: CoreCustomerPrices[] = [];\r\n coreCustomers: CoreCustomer[];\r\n customerRule: CoreCustomerRule;\r\n stockCodedetail: Inventory;\r\n stockDescription: any;\r\n stockCode: string;\r\n rowsCache: Inventory[];\r\n currentDiscountId: number;\r\n priceRows: CoreCustomerPrices[];\r\n priceRowsCache: CoreCustomerPrices[];\r\n validated: boolean;\r\n recordsToProcess: number;\r\n recordsProcessed: number;\r\n buyerResponsible: string;\r\n originalPriceRow: CoreCustomerPrices;\r\n bulkLoad: boolean;\r\n coreDefaultCustomer: string = \"DEFAULT\";\r\n searchOnValue: string;\r\n chkEnabled: boolean;\r\n hasWarnings: boolean;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.searchOption = \"stockcode\";\r\n this.searchType = \"customer\";\r\n this.newParentName = \"\";\r\n\r\n this.chkEnabled = false;\r\n this.setGrid();\r\n\r\n this.loadData();\r\n\r\n this.setGeneralDiscount();\r\n }\r\n setGrid() {\r\n this.columns = [\r\n\r\n { prop: 'code', name: 'Reference', width: 200, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n /* { prop: 'ruleName', name: 'Category', width: 150, cellClass: \"left\" },*/\r\n { prop: 'addText', name: 'Description', width: 300, cellClass: \"left\" },\r\n { prop: 'value', name: 'Less Discount %', width: 100, cellTemplate: this.discountTemplate, cellClass: \"right\" },\r\n { prop: 'addValue', name: 'Cost Plus %', width: 100, cellTemplate: this.priceTemplate, cellClass: \"right\" }\r\n ];\r\n\r\n this.columns.push({ name: 'Actions', width: 200, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.priceColumns = [\r\n\r\n { prop: 'stockCode', name: 'Stock Code', width: 120, cellTemplate: this.warehouseTemplate, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 280, cellClass: \"left\" }, \r\n { prop: 'sellingPrice', name: 'Selling Price', width: 80, cellTemplate: this.priceTemplate, cellClass: \"right\" },\r\n { prop: 'costPrice', name: 'Unit Cost', cellTemplate: this.priceTemplate, width: 80, cellClass: \"right\" },\r\n { prop: 'addValue', name: 'Plus %', cellTemplate: this.priceTemplate, width: 80, cellClass: \"right\" },\r\n { prop: 'newPrice', name: 'Special Price', width: 80, cellTemplate: this.priceTemplate, cellClass: \"right\" },\r\n { prop: 'lastCostChange', name: 'Date Last Cost Change', cellTemplate: this.dateTemplate, width: 90, cellClass: \"right\" }\r\n ];\r\n\r\n this.priceColumns.push({ name: 'Actions', width: 180, cellTemplate: this.specialTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.customerColumns = [\r\n { prop: 'customer', name: 'Customer', width: 90, cellClass: \"center\" },\r\n { prop: 'customerName', name: 'Name', width: 220, cellClass: \"left\"},\r\n { prop: 'termsCode', name: 'Terms Code', width: 110, cellClass: \"left\" },\r\n { prop: 'termsDescription', name: 'Terms Description', width: 110, cellClass: \"left\" },\r\n { prop: 'branch', name: 'Branch', width: 50, cellClass: \"center\" },\r\n // { prop: 'customerClass', name: 'Class', width: 110, cellClass: \"left\"},\r\n { prop: 'salesperson', name: 'Sales Person', width: 50, cellClass: \"left\"},\r\n { prop: 'salespersonName', name: 'Name', width: 150, cellClass: \"left\" },\r\n { prop: 'customerOnHold', name: 'On Hold', width: 50, cellClass: \"center\" }\r\n ];\r\n\r\n this.customerColumns.push({ name: 'CustomerActions', cellClass: \"center\", cellTemplate: this.customerActionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n }\r\n\r\n setGeneralDiscount() {\r\n\r\n this.generalPriceRow = new Inventory();\r\n this.generalPriceRow.specialName = \"General Discount\";\r\n this.generalPriceRow.specialCostAdd = 0.00;\r\n this.generalPriceRow.specialDiscount = 0.00;\r\n this.generalPriceRow.specialPriority = 4;\r\n this.generalPriceRow.categoryId = 0;\r\n this.generalPriceRow.stockCode = \"General\";\r\n this.generalPriceRow.description = \"\";\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.setGrid();\r\n }\r\n\r\n resetPricing() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n //var customerId = Number(row.creditStatus); \r\n this.sysproService.resetCustomerPricing(this.application, this.coreDefaultCustomer).subscribe(x => this.loadData(), error => this.onDataLoadFailed(error));\r\n //this.sysproService.getPricingCustomer(row.customer, this.application).subscribe(x => this.onCoreCustomerLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n loadData() {\r\n\r\n this.currentCustomer = this.coreDefaultCustomer;\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.hasWarnings = false;\r\n this.loadDefaultCustomer();\r\n this.sysproService.getSuppliersForCustomerPricing().subscribe(x => this.onSupplierLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.getAllCMCatergoriesTree(this.expandIndex).subscribe(x => this.onCategoriesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n this.sysproService.getCustomers(\"NOPRICING\").subscribe(x => this.onAllCustomersLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n specificCustomerSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onAllCustomersLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n allCustomerSearch() {\r\n if (this.searchCustomerType && this.searchTextCustomer != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getCustomers(\"NOPRICING\").subscribe(\r\n x => this.onAllSearchCustomersLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onAllSearchCustomersLoadSuccessful(customers: ArCustomer[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.customerRowsCache = [...customers];\r\n this.customerRows = this.customerRowsCache;\r\n\r\n this.customerRows = this.customerRowsCache.filter(r => r.customer.toLowerCase() == this.searchTextCustomer.toLowerCase());\r\n\r\n if (this.searchCustomerType == \"customerName\") {\r\n this.customerRows = this.customerRowsCache.filter(r => Utilities.searchArray(this.searchTextCustomer, false, r.customerName));\r\n }\r\n\r\n \r\n\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.searchOnValue = value;\r\n this.customerRows = this.customerRowsCache.filter(r => Utilities.searchArray(value, false, r.customer, r.customerName));\r\n\r\n }\r\n else {\r\n this.searchOnValue = \"\";\r\n this.customerRows = this.customerRowsCache;\r\n }\r\n }\r\n onAllCustomersLoadSuccessful(customers: ArCustomer[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.customerRowsCache = [...customers];\r\n this.customerRows = this.customerRowsCache;\r\n\r\n //this.salesPersonList = [...new Set(this.customerRowsCache.map(item => item.salespersonName))];\r\n //setTimeout(() => {\r\n // this.operatorSelector.refresh();\r\n //});\r\n \r\n }\r\n\r\n searchForCustomers() {\r\n if (this.selectedCustomerType != \"ALL\") {\r\n this.customerRows = this.customerRows.filter(r => Utilities.searchArray(this.selectedCustomerType, false, r.termsDescription));\r\n }\r\n if (this.selectedOperator != \"ALL\") {\r\n this.customerRows = this.customerRows.filter(r => r.termsCode == this.selectedOperator);\r\n }\r\n }\r\n clearFilters() {\r\n this.searchOnValue = \"\";\r\n this.customerRows = this.customerRowsCache;\r\n this.selectedOperator = \"ALL\";\r\n this.selectedCustomerType = \"ALL\";\r\n\r\n }\r\n filterTerms() {\r\n this.customerRows = this.customerRows.filter(r => r.termsCode == this.selectedCustomerType);\r\n }\r\n\r\n filterOperator() {\r\n this.customerRows = this.customerRows.filter(o => o.salespersonName == this.selectedOperator); \r\n }\r\n\r\n applyPricingDefaults(row: ArCustomer) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n const user = this.accountService.currentUser.email;\r\n const application = this.application;\r\n const customers = row;\r\n const postObject = {\r\n \"customers\": [customers]\r\n };\r\n\r\n let enabled = this.chkEnabled;\r\n this.sysproService.applyDefaultPricesToCustomerList(postObject, application, user, enabled).subscribe(x => this.onDefaultsPostedSuccesful(x), error => this.onDefaultsPostedFailed(error));\r\n\r\n let index = this.customerRows.findIndex(x => x.customer === row.customer);\r\n this.customerRows.splice(index, 1);\r\n\r\n let indexCache = this.customerRowsCache.findIndex(x => x.customer === row.customer);\r\n this.customerRowsCache.splice(indexCache, 1);\r\n\r\n }\r\n applyPricingDefaultsBulk() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n const user = this.accountService.currentUser.email;\r\n const application = this.application;\r\n const customers = this.customerRows;\r\n const postObject = {\r\n \"customers\": customers\r\n };\r\n var enabled = this.chkEnabled;\r\n this.sysproService.applyDefaultPricesToCustomerList(postObject, application, user, enabled).subscribe(x => this.onDefaultsPostedSuccesful(x), error => this.onDefaultsPostedFailed(error));\r\n\r\n }\r\n\r\n onDefaultsPostedFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to update defaults.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n }\r\n\r\n onDefaultsPostedSuccesful(x: CoreCustomer): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n\r\n this.alertService.showStickyMessage('Success', `Added Defaults.`,\r\n MessageSeverity.success);\r\n\r\n\r\n this.sysproService.getCustomers(\"NOPRICING\").subscribe(x => this.onAllCustomersLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n clearScreen() {\r\n this.rowCustomerRulesCache = null;\r\n this.rowCustomerRules = this.rowCustomerRulesCache;\r\n this.rowCustomerRulesSpecialPrice = null;\r\n this.rowCustomerRulesSupplierDiscount = null;\r\n this.rowCustomerRulesCategoryDiscount = null;\r\n\r\n this.currentDiscountId = 0;\r\n this.generalPriceRow.specialCostAdd = 0.00;\r\n this.generalPriceRow.specialDiscount = 0.00;\r\n\r\n }\r\n\r\n private loadDefaultCustomer() {\r\n \r\n this.loadDetails();\r\n }\r\n\r\n\r\n loadDetails() {\r\n this.coreCustomer = new CoreCustomer();\r\n this.sysproService.getPricingCustomer(this.coreDefaultCustomer, this.application).subscribe(x => this.onCoreCustomerLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onCoreCustomerLoadSuccessful(x: CoreCustomer[]): void {\r\n if (x && x.length == 1) {\r\n if (x[0].customerCode != \"\") {\r\n\r\n this.coreCustomer = x[0];\r\n this.sysproService.getAllPricingCustomerRules(this.coreCustomer.id).subscribe(x => this.onPricingRulesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n this.sysproService.getAllPricingCustomerPricesForCustomerCode(this.coreDefaultCustomer, this.application).subscribe(x => this.onPricesForCustomerLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n if (!this.coreCustomer.id || this.coreCustomer.id <= 0) {\r\n this.coreCustomer.customerCode = this.coreDefaultCustomer;\r\n this.coreCustomer.company = this.application;\r\n this.coreCustomer.enabled = false;\r\n this.coreCustomer.createdBy = this.accountService.currentUser.email;\r\n this.coreCustomer.staffAccount = false;\r\n this.sysproService.addNewPricingCustomer(this.coreCustomer).subscribe(x => this.onCoreCustomerCreatedSuccessful(x), error => this.onNewCustomerAddedFailed(error));\r\n }\r\n }\r\n\r\n onCoreCustomerCreatedSuccessful(x: CoreCustomer): void {\r\n this.coreCustomer = x;\r\n }\r\n\r\n onNewCustomerAddedFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to update customer.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n onPricingRulesLoadSuccessful(x: CoreCustomerRule[][]): void {\r\n this.currentDiscountId = 0;\r\n if (x && x.length >= 1) {\r\n var ruleList = x[0];\r\n\r\n this.rowCustomerRulesCache = [...ruleList];\r\n this.rowCustomerRules = this.rowCustomerRulesCache;\r\n this.rowCustomerRulesSpecialPrice = this.rowCustomerRulesCache.filter(x => x.priority == 1);\r\n this.rowCustomerRulesSupplierDiscount = this.rowCustomerRulesCache.filter(x => x.priority == 2);\r\n this.rowCustomerRulesCategoryDiscount = this.rowCustomerRulesCache.filter(x => x.priority == 3);\r\n\r\n var generalDiscount = this.rowCustomerRules.find(result => result.priority == 4);\r\n if (generalDiscount) {\r\n this.currentDiscountId = generalDiscount.id;\r\n this.generalPriceRow.specialCostAdd = generalDiscount.addValue;\r\n this.generalPriceRow.specialDiscount = generalDiscount.value;\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n }\r\n\r\n\r\n onPricesForCustomerLoadSuccessful(x: CoreCustomerPrices[]): void {\r\n if (x && x.length >= 1) {\r\n this.rowCustomerPricesCache = x;\r\n this.rowCustomerPrices = this.rowCustomerPricesCache.filter(r => r.priority == 1);\r\n this.rowCustomerPrices.forEach((price, index, inventory) => {\r\n if (new Date(price.lastCostChange).toISOString().split(\"T\")[0] >= new Date(price.modifiedOn).toISOString().split(\"T\")[0]) {\r\n price.warning = true;\r\n this.hasWarnings = true;\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n \r\n\r\n viewCustomerSelected() {\r\n if (this.searchResultSelected) {\r\n this.loadDefaultCustomer();\r\n }\r\n }\r\n\r\n\r\n\r\n //Stock Codes\r\n specificSearchStockCode() {\r\n if (this.searchOption && this.searchValue != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResultsStock = null;\r\n this.searchResultSelectedStock = null;\r\n\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchOption, this.searchValue.trim().replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => this.onStockLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onStockLoadSuccessful(x: any[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n var inventoryList = x[0];\r\n this.searchResultsStock = [...inventoryList]\r\n\r\n if (this.searchResultsStock.length === 1) {\r\n this.searchResultSelectedStock = this.searchResultsStock[0];\r\n\r\n this.viewStockCodeSelected();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Stock Code could not be found',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n\r\n if (row.ruleName == \"Special Price\") {\r\n\r\n this.stockCode = row.code;\r\n\r\n if (!!this.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n stockCodeModalHide() {\r\n this.stockCode = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n\r\n viewStockCodeSelected() {\r\n if (this.rowCustomerRulesSpecialPrice && this.rowCustomerRulesSpecialPrice.length >= 1 && this.rowCustomerRulesSpecialPrice.find(x => x.code == this.searchResultSelectedStock.stockCode)) {\r\n this.alertService.showMessage('Duplicate', this.searchResultSelectedStock.stockCode + ' - This stock code has already been added',\r\n MessageSeverity.warn);\r\n }\r\n else {\r\n this.validated = false;\r\n this.specialPriceRow = new Inventory();\r\n this.specialPriceRow = this.searchResultSelectedStock;\r\n\r\n this.specialPriceRow.specialName = \"Special Price\";\r\n this.specialPriceRow.specialCostAdd = 0;\r\n this.specialPriceRow.specialDiscount = 0;\r\n this.specialPriceRow.specialPriority = 1;\r\n this.specialPriceRow.specialPrice = 0.00;\r\n }\r\n }\r\n\r\n\r\n viewSpecialPriceSelected(row: CoreCustomerPrices) {\r\n\r\n this.validated = false;\r\n this.specialPriceRow = new Inventory();\r\n this.specialPriceRow.stockCode = row.stockCode;\r\n this.specialPriceRow.description = row.description;\r\n this.specialPriceRow.unitCost = row.costPrice;\r\n this.specialPriceRow.sellingPrice = row.sellingPrice;\r\n this.specialPriceRow.priceConvFac = row.conversionFactor;\r\n this.specialPriceRow.uom = row.uom;\r\n\r\n this.specialPriceRow.specialName = \"Special Price\";\r\n this.specialPriceRow.specialCostAdd = row.addValue;\r\n this.specialPriceRow.specialDiscount = row.value;\r\n this.specialPriceRow.specialPriority = 1;\r\n this.specialPriceRow.specialPrice = row.newPrice;\r\n\r\n this.originalPriceRow = row;\r\n\r\n if (!!row.stockCode) {\r\n if (!this.ruleStockCodeModal) {\r\n setTimeout(() => {\r\n if (this.ruleStockCodeModal) {\r\n this.ruleStockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.ruleStockCodeModal.show();\r\n }\r\n }\r\n }\r\n\r\n ruleStockCodeModalHide() {\r\n this.specialPriceRow = null;\r\n this.originalPriceRow = null;\r\n this.ruleStockCodeModal.hide();\r\n\r\n }\r\n\r\n calcSpecialPrice(row: Inventory): any {\r\n let total = 0;\r\n if (row.specialPrice > 0) {\r\n row.specialCostAdd = Calculations.getSpecialPriceCostPlus(row.unitCost, row.specialPrice, row.priceConvFac, 0);\r\n row.specialDiscount = 0;\r\n var specialUnitPrice = (row.specialPrice / row.priceConvFac);\r\n row.specialGP = Calculations.calculateGPLineTotal(row.unitCost, specialUnitPrice, row.priceConvFac, row.specialGP);\r\n\r\n this.saveStockCodeRule(row);\r\n\r\n }\r\n else {\r\n this.alertService.showDialog('Please enter a special price. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n\r\n }\r\n\r\n editSpecialPrice(row: Inventory): any {\r\n let total = 0;\r\n if (row.specialPrice > 0) {\r\n row.specialCostAdd = Calculations.getSpecialPriceCostPlus(row.unitCost, row.specialPrice, row.priceConvFac, 0);\r\n row.specialDiscount = 0;\r\n var specialUnitPrice = (row.specialPrice / row.priceConvFac);\r\n row.specialGP = Calculations.calculateGPLineTotal(row.unitCost, specialUnitPrice, row.priceConvFac, row.specialGP);\r\n\r\n \r\n // this.saveStockCodeRule(row);\r\n\r\n }\r\n else {\r\n this.alertService.showDialog('Please enter a special price. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n\r\n }\r\n editSpecialCost(row: Inventory): any {\r\n let total = 0;\r\n if (row.specialCostAdd > 0) {\r\n\r\n total = Calculations.getSpecialPriceTotal(row.unitCost, 0, row.specialCostAdd, 0, row.priceConvFac, 0);\r\n row.specialPrice = total;\r\n row.specialDiscount = 0;\r\n var specialUnitPrice = (row.specialPrice / row.priceConvFac);\r\n row.specialGP = Calculations.calculateGPLineTotal(row.unitCost, specialUnitPrice, row.priceConvFac, row.specialGP);\r\n\r\n\r\n // this.saveStockCodeRule(row);\r\n\r\n }\r\n else {\r\n this.alertService.showDialog('Please enter a special price. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n\r\n }\r\n\r\n saveNewSpecialPrice(row: Inventory): any {\r\n let total = 0;\r\n if (row.specialPrice > 0) {\r\n\r\n // this.sysproService.deletePricingCustomerRule(this.originalPriceRow.ruleId).subscribe(results => {\r\n this.saveStockCodeRule(row);\r\n \r\n //},\r\n // error => {\r\n // this.saveStockCodeRule(row);\r\n // }); \r\n\r\n }\r\n else {\r\n this.alertService.showDialog('Please enter a special price. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n\r\n }\r\n\r\n applyPriceHelper(reccommendedPrice: number, row: Inventory): any {\r\n this.specialPriceRow.specialCostAdd = 25;\r\n this.specialPriceRow.specialPrice = reccommendedPrice;\r\n this.specialPriceRow.specialGP = Calculations.calculateGPLineTotal(row.unitCost, row.specialPrice, row.priceConvFac, row.specialGP);\r\n\r\n\r\n this.saveStockCodeRule(row);\r\n }\r\n\r\n clearRowHelper(row: Inventory): any {\r\n if (row.specialName == \"General Discount\") {\r\n this.generalPriceRow.specialDiscount = 0;\r\n this.generalPriceRow.specialCostAdd = 0;\r\n this.generalPriceRow.specialPrice = 0;\r\n }\r\n if (row.specialName == \"Category\") {\r\n this.categoryDiscountRow.specialDiscount = 0;\r\n this.categoryDiscountRow.specialCostAdd = 0;\r\n this.categoryDiscountRow.specialPrice = 0;\r\n }\r\n if (row.specialName == \"Supplier\") {\r\n this.supplierDiscountRow.specialDiscount = 0;\r\n this.supplierDiscountRow.specialCostAdd = 0;\r\n this.supplierDiscountRow.specialPrice = 0;\r\n }\r\n }\r\n\r\n saveStockCodeRule(row: Inventory) {\r\n var GPValid = (row.specialGP < 20) ? false : true;\r\n if (!GPValid && !this.validated) {\r\n this.validated = true;\r\n var reccommendedPrice = (Calculations.getSpecialPriceTotal(row.unitCost, 0, 25, row.specialDiscount, row.priceConvFac, 0) * row.priceConvFac);\r\n this.alertService.showDialog('The GP% is less than the minimum recommended 20%, do you want to apply the automatic price of \\\"R' + reccommendedPrice.toFixed(2) + '\\\"?',\r\n DialogType.confirm, () => this.overridePriceHelper(row), () => this.applyPriceHelper(reccommendedPrice, row), \"Apply Special Price\", \"Use Recommended Price\");\r\n }\r\n else {\r\n if (this.currentCustomer && this.currentCustomer != \"\") {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n if (this.coreCustomer && this.coreCustomer.id > 0) {\r\n //Edit\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info)\r\n }, error => this.onNewCustomerAddedFailed(error));\r\n }\r\n\r\n let customerRule = this.setNewRule(row);\r\n if (this.originalPriceRow && this.originalPriceRow.ruleId && this.originalPriceRow.ruleId > 1) {\r\n //let id = this.originalPriceRow.ruleId;\r\n let ruleToEdit = this.rowCustomerRulesCache.find(r => r.id == this.originalPriceRow.ruleId);\r\n ruleToEdit.addText = customerRule.addText;\r\n ruleToEdit.addValue = customerRule.addValue;\r\n ruleToEdit.ruleDescription = customerRule.ruleDescription;\r\n ruleToEdit.ruleName = customerRule.ruleName;\r\n ruleToEdit.value = customerRule.value;\r\n\r\n this.sysproService.updatePricingCustomerRule(ruleToEdit, ruleToEdit.id, this.application, this.branchCode).subscribe(x =>\r\n this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n\r\n }\r\n else {\r\n\r\n this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n\r\n }\r\n this.specialPriceRow = null;\r\n //this.ruleStockCodeModalHide();\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Warning', 'Please remember to first search for a customer',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n saveSupplierRule(row: Inventory) {\r\n\r\n if (this.currentCustomer && this.currentCustomer != \"\") {\r\n if (row.specialCostAdd > 0 && row.specialDiscount > 0) {\r\n this.alertService.showDialog('Please enter either a discount percentage or cost plus value. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n else {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n if (this.coreCustomer && this.coreCustomer.id > 0) {\r\n //Edit\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info)\r\n }, error => this.onNewCustomerAddedFailed(error));\r\n }\r\n\r\n let customerRule = this.setNewRule(row);\r\n\r\n if (row.id >= 1) {\r\n this.sysproService.deletePricingCustomerRule(row.id).subscribe(x => { this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error)); }, error => this.onNewRuleAddedFailed(error));\r\n }\r\n else {\r\n\r\n this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n }\r\n\r\n this.ruleSupplierModalHide();\r\n }\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Warning', 'Please remember to first search for a customer',\r\n MessageSeverity.warn);\r\n }\r\n\r\n\r\n }\r\n\r\n async recalculateCategories() {\r\n\r\n if (this.rowCustomerRulesCategoryDiscount && this.rowCustomerRulesCategoryDiscount.length >= 1) { \r\n this.bulkLoad = true;\r\n for (var rule of this.rowCustomerRulesCategoryDiscount) {\r\n let id = rule.id;\r\n \r\n if (id >= 1) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.alertService.showMessage('Updating', `Recalculating ` + rule.code, MessageSeverity.info);\r\n\r\n await this.sysproService.updatePricingCustomerRule(rule, id, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, null), error => this.onNewRuleAddedFailed(error));\r\n\r\n }\r\n }\r\n //this.alertService.showMessage('Success', `Updated All ` + this.rowCustomerRulesCategoryDiscount.length, MessageSeverity.success);\r\n //this.bulkLoad = false;\r\n //this.loadData();\r\n\r\n }\r\n }\r\n\r\n\r\n onAutoCustomerRuleAdded(customerRule: CoreCustomerRule): void {\r\n console.log(customerRule);\r\n //Get all stock codes for category tree and apply rule to each stock code\r\n this.sysproService.getStockCodePriceDetailForCategory(customerRule.categoryId)\r\n .subscribe(x => this.stockCodesSelected(x, customerRule), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n saveCategoryRule(row: Inventory) {\r\n if (this.currentCustomer && this.currentCustomer != \"\") {\r\n if (row.specialCostAdd > 0 && row.specialDiscount > 0) {\r\n this.alertService.showDialog('Please enter either a discount percentage or cost plus value. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n else {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n if (this.coreCustomer && this.coreCustomer.id > 0) {\r\n //Edit\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info)\r\n }, error => this.onNewCustomerAddedFailed(error));\r\n }\r\n\r\n let customerRule = this.setNewRule(row);\r\n if (row.id >= 1) {\r\n this.sysproService.deletePricingCustomerRule(row.id).subscribe(x => { this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error)); }, error => this.onNewRuleAddedFailed(error));\r\n }\r\n else {\r\n\r\n this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n }\r\n\r\n this.ruleCategoryModalHide();\r\n }\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Warning', 'Please remember to first search for a customer',\r\n MessageSeverity.warn);\r\n }\r\n\r\n\r\n }\r\n\r\n saveGeneralRule(row: Inventory) {\r\n if (this.currentCustomer && this.currentCustomer != \"\") {\r\n if (row.specialCostAdd > 0 && row.specialDiscount > 0) {\r\n this.alertService.showDialog('Please enter either a discount percentage or cost plus value. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n else {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n if (this.coreCustomer && this.coreCustomer.id > 0) {\r\n //Edit\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info)\r\n }, error => this.onNewCustomerAddedFailed(error));\r\n }\r\n\r\n var customerRule = this.setNewRule(row);\r\n if (this.currentDiscountId && this.currentDiscountId > 0) {\r\n customerRule.id = this.currentDiscountId;\r\n customerRule.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomerRule(customerRule, this.currentDiscountId, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n }\r\n else {\r\n\r\n this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n }\r\n }\r\n\r\n\r\n // this.generalPriceRow = null;\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Warning', 'Please remember to first search for a customer',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n deleteGeneralRule(row: CoreCustomerRule) {\r\n\r\n if (this.currentDiscountId && this.currentDiscountId > 0) {\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n row.id = this.currentDiscountId;\r\n this.sysproService.deletePricingCustomerRule(row.id).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n }\r\n\r\n onNewCustomerRuleAdded(x: CoreCustomerRule, row: Inventory): void {\r\n\r\n let customerRule = x;\r\n if (customerRule && customerRule.id) {\r\n this.alertService.showStickyMessage('Success', 'Pricing Rule Updated',\r\n MessageSeverity.info);\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.originalPriceRow = null;\r\n this.loadData();\r\n //Apply Rule\r\n //this.handleRuleApplication(customerRule, row);\r\n }\r\n }\r\n\r\n updateRule(row: CoreCustomerRule) {\r\n\r\n //Find and remove any existing prices for that rule\r\n this.sysproService.deleteAllPricingCustomerPricesForRule(row.id).subscribe(x => this.onRuleCleared(row), error => this.onRuleClearedFailed(error));\r\n\r\n }\r\n\r\n onRuleClearedFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to update pricing rule.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n onRuleCleared(row: CoreCustomerRule): void {\r\n\r\n // Get data to work with\r\n if (row.priority == 1) {\r\n //Save single stock code with rule\r\n var baseItem = this.setNewPriceItem();\r\n baseItem.ruleId = row.id;\r\n baseItem.priority = row.priority;\r\n\r\n baseItem.value = row.value;\r\n baseItem.addValue = row.addValue;\r\n baseItem.addText = row.addText;\r\n baseItem.ruleName = row.ruleName;\r\n baseItem.ruleDescription = row.ruleDescription;\r\n\r\n this.sysproService.getStockCodePriceDetail(row.code.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"))\r\n .subscribe(x => {\r\n var total = 0;\r\n var stockCode = new Inventory();\r\n stockCode = x[0];\r\n baseItem.stockCode = stockCode.stockCode;\r\n baseItem.costPrice = stockCode.unitCost;\r\n baseItem.sellingPrice = stockCode.sellingPrice;\r\n baseItem.uom = stockCode.uom;\r\n baseItem.description = stockCode.description;\r\n baseItem.conversionFactor = stockCode.priceConvFac;\r\n\r\n if (row.addValue > 0) {\r\n total = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, row.addValue, row.value, stockCode.priceConvFac, 0);\r\n }\r\n else {\r\n total = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, row.value, stockCode.priceConvFac, 0);\r\n }\r\n baseItem.newPrice = total;\r\n baseItem.gpValue = Calculations.calculateGPLineTotal(stockCode.unitCost, total, stockCode.priceConvFac, 0);\r\n\r\n this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(baseItem), error => this.onNewRuleAddedFailed(error));\r\n\r\n }, error => this.onDataLoadFailed(error));\r\n\r\n\r\n\r\n }\r\n }\r\n\r\n handleRuleApplication(customerRule: CoreCustomerRule, row: Inventory) {\r\n this.alertService.startLoadingMessage(\"Starting Price Updates\");\r\n this.loadingIndicator = true;\r\n\r\n var baseItem = this.setNewPriceItem();\r\n baseItem.ruleId = customerRule.id;\r\n baseItem.priority = customerRule.priority;\r\n baseItem.value = customerRule.value;\r\n baseItem.addValue = customerRule.addValue;\r\n baseItem.addText = customerRule.addText;\r\n baseItem.ruleName = customerRule.ruleName;\r\n baseItem.ruleDescription = customerRule.ruleDescription;\r\n\r\n if (customerRule.priority == 1) {\r\n //Save single stock code with rule\r\n baseItem.stockCode = row.stockCode;\r\n baseItem.costPrice = row.unitCost;\r\n baseItem.sellingPrice = row.sellingPrice;\r\n\r\n baseItem.newPrice = (row.specialPrice / row.priceConvFac);\r\n baseItem.gpValue = row.specialGP;\r\n baseItem.uom = row.uom;\r\n baseItem.description = row.description;\r\n baseItem.conversionFactor = row.priceConvFac;\r\n\r\n this.recordsToProcess = 1;\r\n this.recordsProcessed = 0;\r\n this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(baseItem), error => this.onNewRuleAddedFailed(error));\r\n\r\n }\r\n if (customerRule.priority == 2) {\r\n //Get all stock codes for supplier and apply rule to each stock code\r\n this.sysproService.getStockCodePriceDetailForSupplier(customerRule.code.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"))\r\n .subscribe(x => this.stockCodesSelected(x, customerRule), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n if (customerRule.priority == 3) {\r\n //Get all stock codes for category tree and apply rule to each stock code\r\n this.sysproService.getStockCodePriceDetailForCategory(customerRule.categoryId)\r\n .subscribe(x => this.stockCodesSelected(x, customerRule), error => this.onDataLoadFailed(error));\r\n }\r\n if (customerRule.priority == 4) {\r\n this.alertService.showMessage('Success', ` Successfully updated`, MessageSeverity.success);\r\n this.loadDetails();\r\n\r\n }\r\n\r\n }\r\n\r\n stockCodesSelected(x: Inventory[], customerRule: CoreCustomerRule): void {\r\n\r\n this.recordsToProcess = 0;\r\n\r\n if (x && x[0]) {\r\n this.rowsCache = x;\r\n this.recordsToProcess = this.rowsCache.length;\r\n this.recordsProcessed = 0;\r\n var baseItem = this.setNewPriceItem();\r\n\r\n baseItem.ruleId = customerRule.id;\r\n baseItem.priority = customerRule.priority;\r\n baseItem.value = customerRule.value;\r\n baseItem.addValue = customerRule.addValue;\r\n baseItem.addText = customerRule.addText;\r\n baseItem.ruleName = customerRule.ruleName;\r\n baseItem.ruleDescription = customerRule.ruleDescription;\r\n\r\n this.processBulk(customerRule, baseItem);\r\n \r\n }\r\n else {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n //No Stock Codes Found\r\n\r\n this.alertService.showMessage('No results', 'No Stock Codes found for this selection',\r\n MessageSeverity.warn);\r\n\r\n //Remove Rule\r\n this.deleteRowHelper(customerRule);\r\n\r\n }\r\n\r\n }\r\n\r\n sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n\r\n async processAsync(customerRule: CoreCustomerRule, baseItem: CoreCustomerPrices) {\r\n\r\n let index = 0;\r\n\r\n //Split Batches\r\n if (this.recordsToProcess > 1000) {\r\n\r\n var batch1 = this.rowsCache.slice(0, 1000);\r\n index = await this.newMethod(batch1, index, baseItem, customerRule);\r\n \r\n await this.sleep(2000);\r\n\r\n if (this.recordsToProcess > 2000) {\r\n\r\n var batch2 = this.rowsCache.slice(1000, 2000);\r\n index = await this.newMethod(batch2, index, baseItem, customerRule);\r\n\r\n await this.sleep(2000);\r\n\r\n var batch3 = this.rowsCache.slice(2000, this.recordsToProcess);\r\n index = await this.newMethod(batch3, index, baseItem, customerRule);\r\n }\r\n else {\r\n\r\n var batch2 = this.rowsCache.slice(1000, this.recordsToProcess);\r\n index = await this.newMethod(batch2, index, baseItem, customerRule);\r\n }\r\n }\r\n else {\r\n index = await this.newMethod(this.rowsCache, index, baseItem, customerRule);\r\n }\r\n\r\n console.log(index);\r\n \r\n }\r\n\r\n private async processBulk(customerRule: CoreCustomerRule, baseItem: CoreCustomerPrices) {\r\n\r\n // const stockCodes = this.rowsCache;\r\n\r\n for (const [idx, stockCode] of this.rowsCache.entries()) {\r\n /* await Promise.all(stockCodes.map(async (stockCode) => {*/\r\n var total = 0;\r\n baseItem.stockCode = stockCode.stockCode;\r\n baseItem.costPrice = stockCode.unitCost;\r\n baseItem.sellingPrice = stockCode.sellingPrice;\r\n baseItem.uom = stockCode.uom;\r\n baseItem.description = stockCode.description;\r\n baseItem.conversionFactor = stockCode.priceConvFac;\r\n\r\n if (customerRule.addValue > 0) {\r\n total = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, customerRule.addValue, customerRule.value, stockCode.priceConvFac, 0);\r\n }\r\n else {\r\n total = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, customerRule.value, stockCode.priceConvFac, 0);\r\n }\r\n baseItem.newPrice = total;\r\n\r\n baseItem.gpValue = Calculations.calculateGPLineTotal(stockCode.unitCost, total, stockCode.priceConvFac, 0);\r\n\r\n //console.log(index, stockCode);\r\n\r\n if (idx % 100 == 0 && idx != 0) {\r\n //DoStuff\r\n\r\n //console.log(`SLEEPTING ${idx + 1}:`, stockCode);\r\n await this.sleep(2000);\r\n //console.log(`Received Todo ${idx + 1}:`, stockCode);\r\n await this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n error => this.onSpecialPriceAddedFailed(error, baseItem.stockCode));\r\n }\r\n else {\r\n\r\n //console.log(`Received Todo ${idx + 1}:`, stockCode);\r\n await this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n error => this.onNewPriceAddedFailed(error, baseItem));\r\n }\r\n\r\n };\r\n\r\n console.log('Finished!');\r\n //batch1.forEach(async (stockCode) => {\r\n // //Save single stock code with rule\r\n // index++;\r\n\r\n // var total = 0;\r\n // baseItem.stockCode = stockCode.stockCode;\r\n // baseItem.costPrice = stockCode.unitCost;\r\n // baseItem.sellingPrice = stockCode.sellingPrice;\r\n // baseItem.uom = stockCode.uom;\r\n // baseItem.description = stockCode.description;\r\n // baseItem.conversionFactor = stockCode.priceConvFac;\r\n\r\n // if (customerRule.addValue > 0) {\r\n // total = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, customerRule.addValue, customerRule.value, stockCode.priceConvFac, 0);\r\n // }\r\n // else {\r\n // total = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, customerRule.value, stockCode.priceConvFac, 0);\r\n // }\r\n // baseItem.newPrice = total;\r\n\r\n // baseItem.gpValue = Calculations.calculateGPLineTotal(stockCode.unitCost, total, stockCode.priceConvFac, 0);\r\n\r\n // console.log(index, stockCode);\r\n\r\n // await this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n // error => this.onSpecialPriceAddedFailed(error, baseItem.stockCode));\r\n\r\n //});\r\n //return index;\r\n }\r\n onNewPriceAddedFailed(error: any, baseItem: CoreCustomerPrices): void {\r\n console.log(`Received ERROR`, error);\r\n //if (this.accountService.currentUser) {\r\n // this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n // error => this.onNewPriceAddedFailed(error, baseItem));\r\n //}\r\n }\r\n\r\n private async newMethod(batch1: Inventory[], index: number, baseItem: CoreCustomerPrices, customerRule: CoreCustomerRule) {\r\n batch1.forEach(async (stockCode) => {\r\n //Save single stock code with rule\r\n index++;\r\n\r\n var total = 0;\r\n baseItem.stockCode = stockCode.stockCode;\r\n baseItem.costPrice = stockCode.unitCost;\r\n baseItem.sellingPrice = stockCode.sellingPrice;\r\n baseItem.uom = stockCode.uom;\r\n baseItem.description = stockCode.description;\r\n baseItem.conversionFactor = stockCode.priceConvFac;\r\n\r\n if (customerRule.addValue > 0) {\r\n total = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, customerRule.addValue, customerRule.value, stockCode.priceConvFac, 0);\r\n }\r\n else {\r\n total = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, customerRule.value, stockCode.priceConvFac, 0);\r\n }\r\n baseItem.newPrice = total;\r\n\r\n baseItem.gpValue = Calculations.calculateGPLineTotal(stockCode.unitCost, total, stockCode.priceConvFac, 0);\r\n\r\n console.log(index, stockCode);\r\n\r\n await this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n error => this.onSpecialPriceAddedFailed(error, baseItem.stockCode));\r\n\r\n });\r\n return index;\r\n }\r\n\r\n process(customerRule: CoreCustomerRule, baseItem: CoreCustomerPrices) {\r\n\r\n let index = 0;\r\n\r\n console.log(this.recordsToProcess);\r\n\r\n\r\n this.rowsCache.forEach(async stockCode => {\r\n //Save single stock code with rule\r\n index++;\r\n var total = 0;\r\n baseItem.stockCode = stockCode.stockCode;\r\n baseItem.costPrice = stockCode.unitCost;\r\n baseItem.sellingPrice = stockCode.sellingPrice;\r\n baseItem.uom = stockCode.uom;\r\n baseItem.description = stockCode.description;\r\n baseItem.conversionFactor = stockCode.priceConvFac;\r\n\r\n if (customerRule.addValue > 0) {\r\n total = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, customerRule.addValue, customerRule.value, stockCode.priceConvFac, 0);\r\n }\r\n else {\r\n total = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, customerRule.value, stockCode.priceConvFac, 0);\r\n }\r\n baseItem.newPrice = total;\r\n\r\n baseItem.gpValue = Calculations.calculateGPLineTotal(stockCode.unitCost, total, stockCode.priceConvFac, 0);\r\n\r\n this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n error => this.onSpecialPriceAddedFailed(error, baseItem.stockCode));\r\n\r\n })\r\n }\r\n\r\n onSpecialPriceAddedFailed(error: any, stockCode: string ): void { \r\n this.recordsProcessed++;\r\n //this.alertService.showStickyMessage('Something', stockCode + ' (Line ' + this.recordsProcessed + `) Unable to update pricing rule.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n // MessageSeverity.error, error);\r\n\r\n }\r\n\r\n onNewSpecialPriceAdded(row: CoreCustomerPrices): void {\r\n this.recordsProcessed++;\r\n\r\n if (this.recordsToProcess == this.recordsProcessed) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showMessage('Success', this.recordsToProcess + ` Stock Codes Successfully added`, MessageSeverity.success);\r\n if (!this.bulkLoad) {\r\n\r\n this.loadData();\r\n }\r\n }\r\n }\r\n\r\n setNewRule(row: Inventory): CoreCustomerRule {\r\n var rule = new CoreCustomerRule();\r\n\r\n rule.ruleName = row.specialName;\r\n\r\n rule.customerId = this.coreCustomer.id;\r\n rule.customerCode = this.coreCustomer.customerCode;\r\n\r\n rule.addText = row.description;\r\n rule.ruleDescription = (row.specialDiscount > 0) ? \"Less Discount\" : \"Cost Plus\";\r\n if (row.specialDiscount == 0 && row.specialCostAdd == 0 && row.specialPriority != 1) {\r\n rule.ruleDescription = \"Less Discount\";\r\n }\r\n rule.code = row.stockCode;\r\n rule.addValue = row.specialCostAdd;\r\n rule.value = row.specialDiscount;\r\n\r\n rule.addCheck = true;\r\n rule.addFlag = \"Y\";\r\n rule.priority = row.specialPriority;\r\n rule.categoryId = row.categoryId;\r\n rule.createdBy = this.accountService.currentUser.email;\r\n\r\n return rule;\r\n }\r\n\r\n setNewPriceItem(): CoreCustomerPrices {\r\n var newPrice = new CoreCustomerPrices();\r\n newPrice.company = this.coreCustomer.company;\r\n newPrice.createdBy = this.accountService.currentUser.email;\r\n newPrice.customerCode = this.coreCustomer.customerCode;\r\n newPrice.customerId = this.coreCustomer.id;\r\n newPrice.supplierCode = \"\";\r\n newPrice.category = \"\";\r\n newPrice.categoryId = 0;\r\n newPrice.enabled = true;\r\n return newPrice;\r\n }\r\n\r\n \r\n\r\n onNewRuleAddedFailed(error: any, item?: string): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Something', item + ` Unable to update pricing rule.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n // this.loadData();\r\n \r\n }\r\n\r\n \r\n\r\n deleteRule(row: CoreCustomerRule) {\r\n \r\n this.alertService.showDialog('Are you sure you want to delete this rule\\\"\\\"?', DialogType.confirm, () => this.deleteRowHelper(row));\r\n }\r\n\r\n deleteRowHelper(row: CoreCustomerRule) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.deletePricingCustomerRule(row.id).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.ruleName + ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n deleteSpecialRule(row: CoreCustomerPrices) {\r\n \r\n this.alertService.showDialog('Are you sure you want to delete this rule?', DialogType.confirm, () => this.deleteSpecialRowHelper(row));\r\n }\r\n\r\n deleteSpecialRowHelper(row: CoreCustomerPrices): any {\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.deletePricingCustomerRule(row.ruleId).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.ruleName + ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n overridePriceHelper(row: Inventory): any {\r\n this.validated = true;\r\n //if (row.specialGP < 15) {\r\n // this.alertService.showDialog('GP% can\\'t be below 15%.', DialogType.confirm, () => this.clearRowHelper(row));\r\n //}\r\n //AddRule\r\n\r\n\r\n this.saveStockCodeRule(row);\r\n\r\n }\r\n\r\n\r\n onSupplierLoadSuccessful(suppliers: Supplier[]) {\r\n this.currentSupplier = new Supplier();\r\n\r\n this.suppliersCache = suppliers;\r\n this.setSupplier(suppliers);\r\n }\r\n\r\n setSupplier(suppliers: Supplier[]) {\r\n\r\n\r\n if (suppliers == null || this.suppliers.length != suppliers.length) {\r\n setTimeout(() => {\r\n if (this.supplierSelector) {\r\n this.supplierSelector.refresh();\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n\r\n viewSupplierSelected() {\r\n\r\n if (this.rowCustomerRulesSupplierDiscount && this.rowCustomerRulesSupplierDiscount.length >= 1 && this.rowCustomerRulesSupplierDiscount.find(x => x.code == this.selectedSupplier)) {\r\n this.alertService.showMessage('Duplicate', this.selectedSupplier + ' This supplier has already been added',\r\n MessageSeverity.warn);\r\n }\r\n else {\r\n var supplierDetail = this.getSupplierByID(this.selectedSupplier);\r\n this.supplierDiscountRow = new Inventory();\r\n this.supplierDiscountRow.specialName = \"Supplier\";\r\n this.supplierDiscountRow.stockCode = supplierDetail.supplier;\r\n this.supplierDiscountRow.description = supplierDetail.supplierName;\r\n this.supplierDiscountRow.specialCostAdd = 0;\r\n this.supplierDiscountRow.specialDiscount = 0;\r\n this.supplierDiscountRow.specialPriority = 2;\r\n\r\n if (!this.ruleSupplierModal) {\r\n setTimeout(() => {\r\n if (this.ruleSupplierModal) {\r\n this.ruleSupplierModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.ruleSupplierModal.show();\r\n }\r\n } \r\n \r\n }\r\n\r\n\r\n private getSupplierByID(name: string) {\r\n return this.suppliersCache.find((r) => r.supplier == name);\r\n }\r\n\r\n\r\n ruleSupplierModalHide() {\r\n\r\n this.supplierDiscountRow = null;\r\n this.ruleSupplierModal.hide();\r\n }\r\n\r\n selectTreeItem(row: TreeviewItem) {\r\n\r\n if (this.rowCustomerRulesCategoryDiscount && this.rowCustomerRulesCategoryDiscount.length >= 1 && this.rowCustomerRulesCategoryDiscount.find(x => x.code == row.text)) {\r\n this.alertService.showMessage('Duplicate', row.text + ' - This category has already been added',\r\n MessageSeverity.warn);\r\n }\r\n else {\r\n this.newParentName = row.text;\r\n\r\n this.treeModal.hide();\r\n this.categoryDiscountRow = new Inventory();\r\n this.categoryDiscountRow.specialName = \"Category\";\r\n this.categoryDiscountRow.specialCostAdd = 0;\r\n this.categoryDiscountRow.specialDiscount = 0;\r\n this.categoryDiscountRow.specialPriority = 3;\r\n this.categoryDiscountRow.categoryId = row.value.category.Id;\r\n this.categoryDiscountRow.stockCode = row.text;\r\n this.categoryDiscountRow.description = \"\";\r\n\r\n if (!this.ruleCategoryModal) {\r\n setTimeout(() => {\r\n if (this.ruleCategoryModal) {\r\n this.ruleCategoryModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.ruleCategoryModal.show();\r\n }\r\n }\r\n }\r\n\r\n ruleCategoryModalHide() {\r\n\r\n this.categoryDiscountRow = null;\r\n this.ruleCategoryModal.hide();\r\n }\r\n\r\n onCategoriesLoadSuccessful(treeview: any[]) {\r\n if (treeview[0]) {\r\n let treeviewItems = new TreeviewItem(JSON.parse(treeview[0]));\r\n\r\n this.items = this.getItems([treeviewItems]);\r\n this.treeItems = this.getItems([treeviewItems]);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n getItems(parentChildObj) {\r\n let itemsArray = [];\r\n parentChildObj.forEach(set => {\r\n itemsArray.push(new TreeviewItem(set))\r\n });\r\n return itemsArray;\r\n }\r\n\r\n list_to_tree(list) {\r\n var map = {}, node, roots = [], i;\r\n\r\n for (i = 0; i < list.length; i += 1) {\r\n map[list[i].id] = i; // initialize the map\r\n list[i].children = []; // initialize the children\r\n }\r\n\r\n for (i = 0; i < list.length; i += 1) {\r\n node = list[i];\r\n if (node.parentCategory !== \"Root\") {\r\n // if you have dangling branches check that map[node.parentId] exists\r\n list[map[node.parentCategory]].children.push(node);\r\n } else {\r\n roots.push(node);\r\n }\r\n }\r\n return roots;\r\n }\r\n\r\n\r\n loadCategoryModal() {\r\n if (!this.treeModal) {\r\n setTimeout(() => {\r\n if (this.treeModal) {\r\n this.treeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.treeModal.show();\r\n }\r\n }\r\n\r\n\r\n\r\n loadModalEdit(row: CoreCustomerRule) {\r\n\r\n if (row.ruleName == \"Category\") {\r\n this.newParentName = row.code;\r\n this.categoryDiscountRow = new Inventory();\r\n this.categoryDiscountRow.specialName = \"Category\";\r\n this.categoryDiscountRow.specialCostAdd = row.addValue;\r\n this.categoryDiscountRow.specialDiscount = row.value;\r\n this.categoryDiscountRow.specialPriority = 3;\r\n this.categoryDiscountRow.categoryId = row.categoryId;\r\n this.categoryDiscountRow.stockCode = row.code;\r\n this.categoryDiscountRow.description = row.addText;\r\n this.categoryDiscountRow.id = row.id;\r\n\r\n if (!this.ruleCategoryModal) {\r\n setTimeout(() => {\r\n if (this.ruleCategoryModal) {\r\n this.ruleCategoryModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.ruleCategoryModal.show();\r\n }\r\n }\r\n\r\n if (row.ruleName == \"Supplier\") {\r\n \r\n this.supplierDiscountRow = new Inventory();\r\n this.supplierDiscountRow.specialName = \"Supplier\";\r\n this.supplierDiscountRow.specialCostAdd = row.addValue;\r\n this.supplierDiscountRow.specialDiscount = row.value;\r\n this.supplierDiscountRow.specialPriority = 2;\r\n this.supplierDiscountRow.categoryId = row.categoryId;\r\n this.supplierDiscountRow.stockCode = row.code;\r\n this.supplierDiscountRow.description = row.addText;\r\n this.supplierDiscountRow.id = row.id;\r\n\r\n if (!this.ruleSupplierModal) {\r\n setTimeout(() => {\r\n if (this.ruleSupplierModal) {\r\n this.ruleSupplierModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.ruleSupplierModal.show();\r\n }\r\n }\r\n \r\n }\r\n\r\n treeItemBeforeExpand(row: TreeviewItem) {\r\n console.log(row);\r\n if (row) {\r\n if (row.collapsed) {\r\n\r\n }\r\n else {\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n \r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n\r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n\r\n\r\n downloadCustomerPriceList() {\r\n this.alertService.startLoadingMessage('Loading Details...');\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getAllPricingCustomerPrices(this.coreCustomer.id).subscribe(x => this.onPricesLoadSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n downloadInternalList() {\r\n this.alertService.startLoadingMessage('Loading Details...');\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getAllPricingCustomerPrices(this.coreCustomer.id).subscribe(x => this.onPricesLoadSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onPricesLoadSuccessful(prices: CoreCustomerPrices[], internal: boolean): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (prices && prices.length > 0) {\r\n this.priceRows = prices;\r\n this.priceRowsCache = [...this.priceRows.filter(r => r.status != \"D\")];\r\n\r\n if (internal) {\r\n\r\n this.metaList();\r\n }\r\n else {\r\n this.customerList();\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n metaList() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"Unit Cost\", \"Cost Plus\", \"Selling Price\", \"Discount\", \"Nett Price\", \"ConversionFactor\", \"GP\", \"Last Cost Changed\",\r\n \"Price Updated On\", \"Supplier\", \"BrandName\", \"Status\"]\r\n };\r\n\r\n var filename = \"InternalPriceList\";\r\n var selectRows = [...this.priceRowsCache.filter(r => r.status != \"D\")];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date1 = new Date(row.lastCostChange).toISOString().split('T')[0];\r\n let date2 = new Date((row.modifiedOn ? row.modifiedOn : row.createdOn)).toISOString().split('T')[0];\r\n exportRows.push({\r\n StockCode: row.stockCode.replace(/\\,/g, ' ').replace(/\\;/g, ' '), Description: row.description.replace(/\\,/g, ' ').replace(/\\;/g, ' '), \r\n UnitCost: row.costPrice, CostPlus: row.addValue,\r\n SellingPrice: row.sellingPrice, DiscountPerc: row.value,\r\n SpecialPrice: row.newPrice,\r\n ConversionFactor: row.conversionFactor, GP: row.gpValue, CostChanged: date1, PriceUpdated: date2,\r\n Supplier: row.supplierCode, BrandName: row.brandName, Status: row.status\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n customerList() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"Nett Price\"]\r\n };\r\n\r\n var filename = \"PriceList\";\r\n var selectRows = [...this.priceRowsCache];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode.replace(/\\,/g, ' ').replace(/\\;/g, ' '), Description: row.description.replace(/\\,/g, ' ').replace(/\\;/g, ' '), \r\n SpecialPrice: row.newPrice\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{customerHeading.customer}} - {{customerHeading.customerName}}\\r\\n \\r\\n (Enabled)\\r\\n (Disabled)\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customerHeading.salesperson}} : {{customerHeading.salespersonName}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n General Discount \\r\\n   Discount : {{generalPriceRow.specialDiscount | currency:' ':'symbol':'1.1' }} %\\r\\n   Cost Plus : {{generalPriceRow.specialCostAdd | currency:' ':'symbol':'1.1' }} %\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
General Price Rule:
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Selling Price\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Discount\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unit Cost\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Cost\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Supplier Discount \\r\\n   ({{rowCustomerRulesSupplierDiscount.length}})\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Product Category Discount \\r\\n   ({{rowCustomerRulesCategoryDiscount.length}})\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n  \\r\\n  \\r\\n  \\r\\n   \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n\\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Special Price \\r\\n   ({{rowCustomerPrices.length}})\\r\\n     !! Outdated Special Prices , cost has changed !! \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Notes:

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

Edit Special Price

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
{{specialPriceRow.stockCode}} \\t: {{specialPriceRow.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
Selling Price:
\\r\\n
\\r\\n
\\r\\n R {{specialPriceRow.sellingPrice | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
Special Price:
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unit Cost\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n R {{specialPriceRow.unitCost | currency:' ':'symbol':'1.2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{specialPriceRow.uom}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Cost\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Special Price: R {{specialPriceRow.specialPrice | currency:' ':'symbol':'1.2'}} - (GP {{specialPriceRow.specialGP | currency:' ':'symbol':'1.2'}} %)
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Add Supplier Discount

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
{{supplierDiscountRow.stockCode}} \\t: {{supplierDiscountRow.description}}
\\r\\n
\\r\\n
\\r\\n    
Supplier Discount Rule:
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Selling Price\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Discount\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unit Cost\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Cost\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Add Category Discount

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n    
{{newParentName}}
\\r\\n
\\r\\n
\\r\\n    
Category Discount Rule:
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Selling Price\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Discount\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unit Cost\\r\\n
\\r\\n
\\r\\n
\\r\\n Cost\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n (%)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.date-range-picker-container {\\n width: 50%;\\n height: 50px;\\n background: #fff;\\n display: inline-block;\\n border: 1px solid #9da3a6;\\n border-radius: 7px;\\n position: relative; }\\n\\n.input-section {\\n width: calc(100%);\\n height: 48px;\\n display: block;\\n float: left;\\n outline: 0;\\n border: none;\\n padding: 7px 10px;\\n color: #2c2e2f;\\n cursor: pointer;\\n position: relative; }\\n\\n.date-range-picker-icon {\\n margin-left: -25px;\\n z-index: 1; }\\n\\n.search-header-override {\\n padding: .5rem 1rem;\\n margin-bottom: -3px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.search-header-override .no-padding {\\n padding-left: 2px !important;\\n padding-right: 2px !important; }\\n\\n.search-header-override .btn {\\n /*height: 25px !important;*/ }\\n\\n.search-header-override .text-subscript {\\n height: 18px;\\n margin-top: -7px;\\n padding: 0 3px 0 0; }\\n\\n[data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\" ... \\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... \\\"; }\\n\\n/*[data-toggle=\\\"collapse\\\"] .fa:before {\\r\\n content: \\\"\\\\f139\\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\r\\n content: \\\"\\\\f13a\\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\r\\n content: \\\"... see less \\\";\\r\\n}\\r\\n\\r\\n\\r\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\r\\n content: \\\"... see more \\\";\\r\\n}*/\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvY29yZS1jdXN0b21lcnMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxjdXN0b21lcnNcXGNvcmUtY3VzdG9tZXJzXFxjb3JlLWN1c3RvbWVyLXNldHRpbmdzLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2N1c3RvbWVycy9jb3JlLWN1c3RvbWVycy9jb3JlLWN1c3RvbWVyLXNldHRpbmdzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUdqQztFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLGdCQUFnQixFQUFBOztBQU1wQjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHckI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0UsVUFBVTtFQUNWLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixjQUFjO0VBQ2QsV0FBVztFQUNYLFVBQVU7RUFDVixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxlQUFlO0VBQ2Ysa0JBQWtCLEVBQUE7O0FBR2xCO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVUsRUFBQTs7QUFJZDtFQUNFLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBR3RCLGtEQUErQztFQUMvQyxrQkFBa0IsRUFBQTs7QUFQcEI7SUFVSSw0QkFBNEI7SUFDNUIsNkJBQTZCLEVBQUE7O0FBWGpDO0lBZUksMkJBQUEsRUFBNEI7O0FBZmhDO0lBbUJJLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsa0JBQWtCLEVBQUE7O0FDbkJ0QjtFRHdCRSxnQkFBZ0IsRUFBQTs7QUNyQmxCO0VEMEJFLGdCQUFnQixFQUFBOztBQ3ZCbEI7RUQ0QkUsZ0JBQWdCLEVBQUE7O0FDekJsQjtFRDhCRSxlQUFlLEVBQUE7O0FBR2pCOzs7Ozs7Ozs7Ozs7Ozs7OztFQ2JFIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvY29yZS1jdXN0b21lcnMvY29yZS1jdXN0b21lci1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4udXNlci1yb2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmRhdGUtcmFuZ2UtcGlja2VyLWNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDUwJTtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgIzlkYTNhNjtcclxuICBib3JkZXItcmFkaXVzOiA3cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxufVxyXG4uaW5wdXQtc2VjdGlvbiB7XHJcbiAgd2lkdGg6IGNhbGMoMTAwJSk7XHJcbiAgaGVpZ2h0OiA0OHB4O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIHBhZGRpbmc6IDdweCAxMHB4O1xyXG4gIGNvbG9yOiAjMmMyZTJmO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbiAgLmRhdGUtcmFuZ2UtcGlja2VyLWljb24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xyXG4gICAgei1pbmRleDogMTtcclxuICB9XHJcblxyXG5cclxuLnNlYXJjaC1oZWFkZXItb3ZlcnJpZGUge1xyXG4gIHBhZGRpbmc6IC41cmVtIDFyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogLTNweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgLW1vei1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcblxyXG4gIC5uby1wYWRkaW5nIHtcclxuICAgIHBhZGRpbmctbGVmdDogMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAycHggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5idG4ge1xyXG4gICAgLypoZWlnaHQ6IDI1cHggIWltcG9ydGFudDsqL1xyXG4gIH1cclxuXHJcbiAgLnRleHQtc3Vic2NyaXB0IHtcclxuICAgIGhlaWdodDogMThweDtcclxuICAgIG1hcmdpbi10b3A6IC03cHg7XHJcbiAgICBwYWRkaW5nOiAwIDNweCAwIDA7XHJcbiAgfVxyXG59XHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIgLi4uIFwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBcIjtcclxufVxyXG5cclxuLypbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIGxlc3MgXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiO1xyXG59Ki9cclxuXHJcblxyXG4iLCI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgfVxuXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7IH1cbiAgOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIGEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnVzZXItcm9sZSB7XG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cblxuLmNvbnRyb2wtYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG5cbi5zZWFyY2gtYm94IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcbiAgcGFkZGluZy10b3A6IDNweDtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgbWluLXdpZHRoOiAxMDBweDsgfVxuXG4udXNlci1kaXNhYmxlZCB7XG4gIGNvbG9yOiAjNzc3O1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLmxvY2tlZC1vdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4uZGF0ZS1yYW5nZS1waWNrZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5ZGEzYTY7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5pbnB1dC1zZWN0aW9uIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSk7XG4gIGhlaWdodDogNDhweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBvdXRsaW5lOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDdweCAxMHB4O1xuICBjb2xvcjogIzJjMmUyZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmRhdGUtcmFuZ2UtcGlja2VyLWljb24ge1xuICBtYXJnaW4tbGVmdDogLTI1cHg7XG4gIHotaW5kZXg6IDE7IH1cblxuLnNlYXJjaC1oZWFkZXItb3ZlcnJpZGUge1xuICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAtM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG4gIC5zZWFyY2gtaGVhZGVyLW92ZXJyaWRlIC5uby1wYWRkaW5nIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDJweCAhaW1wb3J0YW50OyB9XG4gIC5zZWFyY2gtaGVhZGVyLW92ZXJyaWRlIC5idG4ge1xuICAgIC8qaGVpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7Ki8gfVxuICAuc2VhcmNoLWhlYWRlci1vdmVycmlkZSAudGV4dC1zdWJzY3JpcHQge1xuICAgIGhlaWdodDogMThweDtcbiAgICBtYXJnaW4tdG9wOiAtN3B4O1xuICAgIHBhZGRpbmc6IDAgM3B4IDAgMDsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzlcIjsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLmZhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7IH1cblxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0gLnR4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIiAuLi4gXCI7IH1cblxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC50eHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCIuLi4gXCI7IH1cblxuLypbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAuZmE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZjEzOVwiO1xyXG59XHJcblxyXG5cclxuW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0uY29sbGFwc2VkIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIGxlc3MgXCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLnR4dDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiO1xyXG59Ki9cbiJdfQ== */\"","\r\nimport { AfterViewInit, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { TreeviewComponent, TreeviewConfig, TreeviewItem } from 'ngx-treeview';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { CustomerMovements } from 'src/app/models/customer-movements.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { CMCategories } from '../../../models/cms-category.model';\r\nimport { CoreCustomerPrices } from '../../../models/core-customer-prices.model';\r\nimport { CoreCustomerRule } from '../../../models/core-customer-rule.model';\r\nimport { CoreCustomer } from '../../../models/core-customer.model';\r\nimport { Customer } from '../../../models/customer.model';\r\nimport { WHAvailQTY } from '../../../models/inventory-wh.model';\r\nimport { Inventory } from '../../../models/inventory.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { SimpleTree } from '../../../models/simple-tree.model';\r\nimport { Supplier } from '../../../models/supplier.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { Calculations } from '../../../services/calculations.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'core-customer-settings',\r\n templateUrl: './core-customer-settings.component.html',\r\n styleUrls: ['./core-customer-settings.component.scss']\r\n})\r\nexport class CoreCustomerSettingsComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n columns: any[] = [];\r\n priceColumns: any[] = [];\r\n\r\n loadingIndicator: boolean;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n //Customer Search\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n\r\n //Stock Code Search\r\n searchOption: string = \"\";\r\n searchValue: string = \"\";\r\n searchResultsStock: Inventory[] = [];\r\n searchResultSelectedStock: Inventory;\r\n\r\n @ViewChild('searchResultStockSelector')\r\n private searchResultStockSelector;\r\n\r\n whDetail: WHAvailQTY[] = [];\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n @ViewChild('ruleSupplierModal')\r\n ruleSupplierModal: ModalDirective;\r\n @ViewChild('currentSupplier')\r\n currentSupplier: Supplier;\r\n @ViewChild('suppliers')\r\n private suppliers;\r\n @ViewChild('supplierSelector')\r\n private supplierSelector;\r\n suppliersCache: Supplier[] = [];\r\n selectedSupplier: string = \"\";\r\n\r\n\r\n @ViewChild('ruleCategoryModal')\r\n ruleCategoryModal: ModalDirective;\r\n\r\n items: TreeviewItem[];\r\n treeItems: TreeviewItem[] = [];\r\n treeItem: any;\r\n treerows: string[];\r\n item: any;\r\n data: CMCategories;\r\n categoryData: CMCategories[];\r\n\r\n breadcrumbs: SimpleTree[] = [];\r\n\r\n seletedItem: TreeviewItem;\r\n\r\n expandIndex: Number = -1;\r\n\r\n config: TreeviewConfig = {\r\n hasAllCheckBox: false,\r\n hasFilter: false,\r\n hasCollapseExpand: true,\r\n decoupleChildFromParent: false,\r\n maxHeight: 1000,\r\n hasDivider: false\r\n };\r\n\r\n @ViewChild(TreeviewComponent) treeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild(TreeviewComponent)\r\n categoryTreeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('treeModal')\r\n treeModal: ModalDirective;\r\n\r\n @ViewChild('treeItemTemplate')\r\n\r\n @ViewChild('ruleStockCodeModal')\r\n ruleStockCodeModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('warehouseTemplate')\r\n warehouseTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('sellpriceTemplate')\r\n sellpriceTemplate: TemplateRef;\r\n\r\n @ViewChild('unitCostTemplate')\r\n unitCostTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('specialTemplate')\r\n specialTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isSearch: boolean;\r\n id: string;\r\n\r\n\r\n newParentName: string;\r\n specialPriceRow: Inventory;\r\n supplierDiscountRow: Inventory;\r\n categoryDiscountRow: Inventory;\r\n generalPriceRow: Inventory;\r\n\r\n\r\n coreCustomer: CoreCustomer = new CoreCustomer();\r\n rowCustomerRules: CoreCustomerRule[] = [];\r\n rowCustomerRulesSpecialPrice: CoreCustomerRule[] = [];\r\n rowCustomerRulesSupplierDiscount: CoreCustomerRule[] = [];\r\n rowCustomerRulesCategoryDiscount: CoreCustomerRule[] = [];\r\n rowCustomerRulesCache: CoreCustomerRule[] = [];\r\n rowCustomerPrices: CoreCustomerPrices[] = [];\r\n rowCustomerPricesCache: CoreCustomerPrices[] = [];\r\n coreCustomers: CoreCustomer[];\r\n customerRule: CoreCustomerRule;\r\n stockCodedetail: Inventory;\r\n stockDescription: any;\r\n stockCode: string;\r\n rowsCache: Inventory[];\r\n currentDiscountId: number;\r\n priceRows: CoreCustomerPrices[];\r\n priceRowsCache: CoreCustomerPrices[];\r\n validated: boolean;\r\n recordsToProcess: number;\r\n recordsProcessed: number;\r\n buyerResponsible: string;\r\n originalPriceRow: CoreCustomerPrices;\r\n bulkLoad: boolean;\r\n inventoryList: Inventory[] = [];\r\n hasWarnings: boolean;\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.searchOption = \"stockcode\";\r\n this.searchType = \"customer\";\r\n this.newParentName = \"\";\r\n\r\n this.setGrid();\r\n\r\n this.loadData();\r\n\r\n this.setGeneralDiscount();\r\n }\r\n setGrid() {\r\n this.columns = [\r\n\r\n { prop: 'code', name: 'Reference', width: 200, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n /* { prop: 'ruleName', name: 'Category', width: 150, cellClass: \"left\" },*/\r\n { prop: 'addText', name: 'Description', width: 300, cellClass: \"left\" },\r\n { prop: 'value', name: 'Less Discount %', width: 100, cellTemplate: this.discountTemplate, cellClass: \"right\" }\r\n , { prop: 'addValue', name: 'Cost Plus %', width: 100, cellTemplate: this.priceTemplate, cellClass: \"right\" }\r\n ];\r\n\r\n this.columns.push({ name: 'Actions', width: 200, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.priceColumns = [\r\n\r\n { prop: 'stockCode', name: 'Stock Code', width: 120, cellTemplate: this.warehouseTemplate, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 280, cellClass: \"left\" }, \r\n { prop: 'sellingPrice', name: 'Selling Price', width: 80, cellTemplate: this.priceTemplate, cellClass: \"right\" },\r\n { prop: 'costPrice', name: 'Unit Cost', cellTemplate: this.priceTemplate, width: 80, cellClass: \"right\" },\r\n { prop: 'addValue', name: 'Plus %', cellTemplate: this.priceTemplate, width: 80, cellClass: \"right\" },\r\n { prop: 'newPrice', name: 'Special Price', width: 80, cellTemplate: this.priceTemplate, cellClass: \"right\" },\r\n { prop: 'lastCostChange', name: 'Date Last Cost Change', cellTemplate: this.dateTemplate, width: 90, cellClass: \"right\" }\r\n ];\r\n\r\n this.priceColumns.push({ name: 'Actions', width: 180, cellTemplate: this.specialTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n\r\n setGeneralDiscount() {\r\n\r\n this.generalPriceRow = new Inventory();\r\n this.generalPriceRow.specialName = \"General Discount\";\r\n this.generalPriceRow.specialCostAdd = 0.00;\r\n this.generalPriceRow.specialDiscount = 0.00;\r\n this.generalPriceRow.specialPriority = 4;\r\n this.generalPriceRow.categoryId = 0;\r\n this.generalPriceRow.stockCode = \"General\";\r\n this.generalPriceRow.description = \"\";\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.setGrid();\r\n }\r\n\r\n\r\n loadData() {\r\n\r\n this.hasWarnings = false;\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n this.searchType = \"customer\";\r\n\r\n if (action && action.length >= 4) {\r\n this.id = action;\r\n this.currentCustomer = this.id;\r\n this.searchText = this.id;\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getCustomerDetail(this.id).subscribe(\r\n x => this.onSpecificSearchSuccesful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n this.sysproService.getSuppliersForCustomerPricing().subscribe(x => this.onSupplierLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.getAllCMCatergoriesTree(this.expandIndex).subscribe(x => this.onCategoriesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onAllStockLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n \r\n\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n this.clearScreen();\r\n this.searchResults = x;\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.loadCustomer();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Customer could not be found',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n clearScreen() {\r\n this.rowCustomerRulesCache = null;\r\n this.rowCustomerRules = this.rowCustomerRulesCache;\r\n this.rowCustomerRulesSpecialPrice = null;\r\n this.rowCustomerRulesSupplierDiscount = null;\r\n this.rowCustomerRulesCategoryDiscount = null;\r\n this.rowCustomerPrices = null;\r\n this.rowCustomerPricesCache = null;\r\n\r\n this.currentDiscountId = 0;\r\n this.generalPriceRow.specialCostAdd = 0.00;\r\n this.generalPriceRow.specialDiscount = 0.00;\r\n this.hasWarnings = false;\r\n\r\n this.searchResultsStock = null;\r\n this.searchResultSelectedStock = null;\r\n\r\n }\r\n\r\n private loadCustomer() {\r\n this.id = this.searchResultSelected.customer;\r\n this.currentCustomer = this.id;\r\n\r\n this.clearScreen();\r\n\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.currentCustomer);\r\n\r\n this.sysproService.getCustomerDetail(this.id).subscribe(\r\n x => { this.customerHeading = x;}, error => this.onDataLoadFailed(error));\r\n \r\n\r\n this.loadDetails();\r\n this.router.navigate(['../../customers'], { fragment: 'settings', queryParams: { customer: this.currentCustomer } });\r\n }\r\n\r\n\r\n loadDetails() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.coreCustomer = new CoreCustomer();\r\n this.sysproService.getPricingCustomer(this.id, this.application).subscribe(x => this.onCoreCustomerLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onCoreCustomerLoadSuccessful(x: CoreCustomer[]): void {\r\n if (x && x.length == 1) {\r\n if (x[0].customerCode != \"\") {\r\n\r\n this.coreCustomer = x[0];\r\n this.sysproService.getAllPricingCustomerRules(this.coreCustomer.id).subscribe(x => this.onPricingRulesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n this.sysproService.getAllPricingCustomerPricesForCustomerCode(this.id, this.application).subscribe(x => this.onPricesForCustomerLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n if (!this.coreCustomer.id || this.coreCustomer.id <= 0) {\r\n this.coreCustomer.customerCode = this.id;\r\n this.coreCustomer.company = this.application;\r\n this.coreCustomer.enabled = true;\r\n this.coreCustomer.createdBy = this.accountService.currentUser.email;\r\n this.coreCustomer.staffAccount = false;\r\n this.sysproService.addNewPricingCustomer(this.coreCustomer).subscribe(x => this.onCoreCustomerCreatedSuccessful(x), error => this.onNewCustomerAddedFailed(error));\r\n }\r\n }\r\n\r\n onCoreCustomerCreatedSuccessful(x: CoreCustomer): void {\r\n this.coreCustomer = x;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n onNewCustomerAddedFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to update customer.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n onPricingRulesLoadSuccessful(x: CoreCustomerRule[][]): void {\r\n this.currentDiscountId = 0;\r\n if (x && x.length >= 1) {\r\n var ruleList = x[0];\r\n\r\n this.rowCustomerRulesCache = [...ruleList];\r\n this.rowCustomerRules = this.rowCustomerRulesCache;\r\n this.rowCustomerRulesSpecialPrice = this.rowCustomerRulesCache.filter(x => x.priority == 1).filter(s => s.ruleName == \"Special Price\");\r\n this.rowCustomerRulesSupplierDiscount = this.rowCustomerRulesCache.filter(x => x.priority == 2);\r\n this.rowCustomerRulesCategoryDiscount = this.rowCustomerRulesCache.filter(x => x.priority == 3);\r\n\r\n var generalDiscount = this.rowCustomerRules.find(result => result.priority == 4);\r\n if (generalDiscount) {\r\n this.currentDiscountId = generalDiscount.id;\r\n this.generalPriceRow.specialCostAdd = generalDiscount.addValue;\r\n this.generalPriceRow.specialDiscount = generalDiscount.value;\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n onPricesForCustomerLoadSuccessful(x: CoreCustomerPrices[]): void {\r\n if (x && x.length >= 1) {\r\n this.rowCustomerPricesCache = x;\r\n this.rowCustomerPrices = this.rowCustomerPricesCache.filter(r => r.priority == 1).filter(s => s.ruleName == \"Special Price\");\r\n this.rowCustomerPrices.forEach((price, index, inventory) => {\r\n if (new Date(price.lastCostChange).toISOString().split(\"T\")[0] >= new Date(price.modifiedOn).toISOString().split(\"T\")[0]) {\r\n price.warning = true;\r\n this.hasWarnings = true;\r\n }\r\n });\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResults = null;\r\n this.searchResultSelected = null;\r\n\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n viewCustomerSelected() {\r\n if (this.searchResultSelected) {\r\n this.loadCustomer();\r\n }\r\n }\r\n\r\n\r\n\r\n //Stock Codes\r\n specificSearchStockCode() {\r\n if (this.searchOption && this.searchValue != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResultsStock = null;\r\n this.searchResultSelectedStock = null;\r\n\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchOption, this.searchValue.trim().replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => this.onStockLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onStockLoadSuccessful(x: any[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n var inventoryList = x[0];\r\n this.searchResultsStock = [...inventoryList]\r\n\r\n if (this.searchResultsStock.length === 1) {\r\n this.searchResultSelectedStock = this.searchResultsStock[0];\r\n\r\n this.viewStockCodeSelected();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Stock Code could not be found',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n\r\n if (row.ruleName == \"Special Price\") {\r\n\r\n this.stockCode = row.code;\r\n\r\n if (!!this.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n stockCodeModalHide() {\r\n this.stockCode = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n\r\n viewStockCodeSelected() {\r\n if (this.rowCustomerRulesSpecialPrice && this.rowCustomerRulesSpecialPrice.length >= 1 && this.rowCustomerRulesSpecialPrice.find(x => x.code == this.searchResultSelectedStock.stockCode)) {\r\n this.alertService.showMessage('Duplicate', this.searchResultSelectedStock.stockCode + ' - This stock code has already been added',\r\n MessageSeverity.warn);\r\n }\r\n else {\r\n this.validated = false;\r\n this.specialPriceRow = new Inventory();\r\n this.specialPriceRow = this.searchResultSelectedStock;\r\n\r\n this.specialPriceRow.specialName = \"Special Price\";\r\n this.specialPriceRow.specialCostAdd = 0;\r\n this.specialPriceRow.specialDiscount = 0;\r\n this.specialPriceRow.specialPriority = 1;\r\n this.specialPriceRow.specialPrice = 0.00;\r\n }\r\n }\r\n\r\n\r\n viewSpecialPriceSelected(row: CoreCustomerPrices) {\r\n\r\n this.validated = false;\r\n this.specialPriceRow = new Inventory();\r\n this.specialPriceRow.stockCode = row.stockCode;\r\n this.specialPriceRow.description = row.description;\r\n this.specialPriceRow.unitCost = row.costPrice;\r\n this.specialPriceRow.sellingPrice = row.sellingPrice;\r\n this.specialPriceRow.priceConvFac = row.conversionFactor;\r\n this.specialPriceRow.uom = row.uom;\r\n\r\n this.specialPriceRow.specialName = \"Special Price\";\r\n this.specialPriceRow.specialCostAdd = row.addValue;\r\n this.specialPriceRow.specialDiscount = row.value;\r\n this.specialPriceRow.specialPriority = 1;\r\n this.specialPriceRow.specialPrice = row.newPrice;\r\n\r\n this.originalPriceRow = row;\r\n\r\n if (!!row.stockCode) {\r\n if (!this.ruleStockCodeModal) {\r\n setTimeout(() => {\r\n if (this.ruleStockCodeModal) {\r\n this.ruleStockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.ruleStockCodeModal.show();\r\n }\r\n }\r\n }\r\n\r\n ruleStockCodeModalHide() {\r\n this.specialPriceRow = null;\r\n this.originalPriceRow = null;\r\n this.ruleStockCodeModal.hide();\r\n\r\n }\r\n\r\n calcSpecialPrice(row: Inventory): any {\r\n let total = 0;\r\n if (row.specialPrice > 0) {\r\n row.specialCostAdd = Calculations.getSpecialPriceCostPlus(row.unitCost, row.specialPrice, row.priceConvFac, 0);\r\n row.specialDiscount = 0;\r\n var specialUnitPrice = (row.specialPrice / row.priceConvFac);\r\n row.specialGP = Calculations.calculateGPLineTotal(row.unitCost, specialUnitPrice, row.priceConvFac, row.specialGP);\r\n\r\n this.saveStockCodeRule(row);\r\n\r\n }\r\n else {\r\n this.alertService.showDialog('Please enter a special price. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n\r\n }\r\n\r\n editSpecialPrice(row: Inventory): any {\r\n let total = 0;\r\n if (row.specialPrice > 0) {\r\n row.specialCostAdd = Calculations.getSpecialPriceCostPlus(row.unitCost, row.specialPrice, row.priceConvFac, 0);\r\n row.specialDiscount = 0;\r\n var specialUnitPrice = (row.specialPrice / row.priceConvFac);\r\n row.specialGP = Calculations.calculateGPLineTotal(row.unitCost, specialUnitPrice, row.priceConvFac, row.specialGP);\r\n\r\n \r\n // this.saveStockCodeRule(row);\r\n\r\n }\r\n else {\r\n this.alertService.showDialog('Please enter a special price. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n\r\n }\r\n editSpecialCost(row: Inventory): any {\r\n let total = 0;\r\n if (row.specialCostAdd > 0) {\r\n\r\n total = Calculations.getSpecialPriceTotal(row.unitCost, 0, row.specialCostAdd, 0, row.priceConvFac, 0);\r\n row.specialPrice = total;\r\n row.specialDiscount = 0;\r\n var specialUnitPrice = (row.specialPrice / row.priceConvFac);\r\n row.specialGP = Calculations.calculateGPLineTotal(row.unitCost, specialUnitPrice, row.priceConvFac, row.specialGP);\r\n\r\n\r\n // this.saveStockCodeRule(row);\r\n\r\n }\r\n else {\r\n this.alertService.showDialog('Please enter a special price. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n\r\n }\r\n\r\n saveNewSpecialPrice(row: Inventory): any {\r\n \r\n if (row.specialPrice > 0) {\r\n this.saveStockCodeRule(row);\r\n // this.sysproService.updatePricingCustomerRule()\r\n //this.sysproService.deletePricingCustomerRule(this.originalPriceRow.ruleId).subscribe(results => this.saveStockCodeRule(row)\r\n // , error => this.onNewRuleAddedFailed(error)); \r\n\r\n }\r\n else {\r\n this.alertService.showDialog('Please enter a special price. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n\r\n }\r\n\r\n applyPriceHelper(reccommendedPrice: number, row: Inventory): any {\r\n this.specialPriceRow.specialCostAdd = 25;\r\n this.specialPriceRow.specialPrice = reccommendedPrice;\r\n this.specialPriceRow.specialGP = Calculations.calculateGPLineTotal(row.unitCost, row.specialPrice, row.priceConvFac, row.specialGP);\r\n\r\n\r\n this.saveStockCodeRule(row);\r\n }\r\n\r\n clearRowHelper(row: Inventory): any {\r\n if (row.specialName == \"General Discount\") {\r\n this.generalPriceRow.specialDiscount = 0;\r\n this.generalPriceRow.specialCostAdd = 0;\r\n this.generalPriceRow.specialPrice = 0;\r\n }\r\n if (row.specialName == \"Category\") {\r\n this.categoryDiscountRow.specialDiscount = 0;\r\n this.categoryDiscountRow.specialCostAdd = 0;\r\n this.categoryDiscountRow.specialPrice = 0;\r\n }\r\n if (row.specialName == \"Supplier\") {\r\n this.supplierDiscountRow.specialDiscount = 0;\r\n this.supplierDiscountRow.specialCostAdd = 0;\r\n this.supplierDiscountRow.specialPrice = 0;\r\n }\r\n }\r\n\r\n saveStockCodeRule(row: Inventory) {\r\n var GPValid = (row.specialGP < 20) ? false : true;\r\n if (!GPValid && !this.validated) {\r\n this.validated = true;\r\n var reccommendedPrice = (Calculations.getSpecialPriceTotal(row.unitCost, 0, 25, row.specialDiscount, row.priceConvFac, 0) * row.priceConvFac);\r\n this.alertService.showDialog('The GP% is less than the minimum recommended 20%, do you want to apply the automatic price of \\\"R' + reccommendedPrice.toFixed(2) + '\\\"?',\r\n DialogType.confirm, () => this.overridePriceHelper(row), () => this.applyPriceHelper(reccommendedPrice, row), \"Apply Special Price\", \"Use Recommended Price\");\r\n }\r\n else {\r\n if (this.currentCustomer && this.currentCustomer != \"\") {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n if (this.coreCustomer && this.coreCustomer.id > 0) {\r\n //Edit\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info)\r\n }, error => this.onNewCustomerAddedFailed(error));\r\n }\r\n\r\n let customerRule = this.setNewRule(row);\r\n if (this.originalPriceRow && this.originalPriceRow.ruleId && this.originalPriceRow.ruleId > 1) {\r\n //let id = this.originalPriceRow.ruleId;\r\n let ruleToEdit = this.rowCustomerRulesCache.find(r => r.id == this.originalPriceRow.ruleId);\r\n ruleToEdit.addText = customerRule.addText;\r\n ruleToEdit.addValue = customerRule.addValue;\r\n ruleToEdit.ruleDescription = customerRule.ruleDescription;\r\n ruleToEdit.ruleName = customerRule.ruleName;\r\n ruleToEdit.value = customerRule.value;\r\n\r\n this.sysproService.updatePricingCustomerRule(ruleToEdit, ruleToEdit.id, this.application, this.branchCode).subscribe(x =>\r\n this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n\r\n }\r\n else {\r\n\r\n this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n\r\n }\r\n this.specialPriceRow = null;\r\n //this.ruleStockCodeModalHide();\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Warning', 'Please remember to first search for a customer',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n saveSupplierRule(row: Inventory) {\r\n\r\n if (this.currentCustomer && this.currentCustomer != \"\") {\r\n if (row.specialCostAdd > 0 && row.specialDiscount > 0) {\r\n this.alertService.showDialog('Please enter either a discount percentage or cost plus value. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n else {\r\n\r\n //Check supplier hasnt already been added\r\n\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n if (this.coreCustomer && this.coreCustomer.id > 0) {\r\n //Edit\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info)\r\n }, error => this.onNewCustomerAddedFailed(error));\r\n }\r\n\r\n let customerRule = this.setNewRule(row);\r\n\r\n if (row.id >= 1) {\r\n this.sysproService.deletePricingCustomerRule(row.id).subscribe(x => { this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error)); }, error => this.onNewRuleAddedFailed(error));\r\n }\r\n else {\r\n\r\n this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n }\r\n\r\n this.ruleSupplierModalHide();\r\n }\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Warning', 'Please remember to first search for a customer',\r\n MessageSeverity.warn);\r\n }\r\n\r\n\r\n }\r\n\r\n //async recalculateCategories() {\r\n\r\n // if (this.rowCustomerRulesCategoryDiscount && this.rowCustomerRulesCategoryDiscount.length >= 1) { \r\n // this.bulkLoad = true;\r\n // for (var rule of this.rowCustomerRulesCategoryDiscount) {\r\n // let id = rule.id;\r\n \r\n // if (id >= 1) {\r\n // this.alertService.startLoadingMessage();\r\n // this.loadingIndicator = true;\r\n // this.alertService.showMessage('Updating', `Recalculating ` + rule.code, MessageSeverity.info);\r\n\r\n // await this.sysproService.updatePricingCustomerRule(rule, id).subscribe(x => {\r\n\r\n // console.log(id);\r\n // this.sysproService.deleteAllPricingCustomerPricesForRule(id).subscribe(x => {\r\n \r\n // this.onAutoCustomerRuleAdded(rule);\r\n // }, error => this.onNewRuleAddedFailed(error));\r\n\r\n // }, error => this.onNewRuleAddedFailed(error));\r\n\r\n // }\r\n // }\r\n // //this.alertService.showMessage('Success', `Updated All ` + this.rowCustomerRulesCategoryDiscount.length, MessageSeverity.success);\r\n // //this.bulkLoad = false;\r\n // //this.loadData();\r\n\r\n // }\r\n //}\r\n\r\n\r\n //onAutoCustomerRuleAdded(customerRule: CoreCustomerRule): void {\r\n // console.log(customerRule);\r\n // //Get all stock codes for category tree and apply rule to each stock code\r\n // this.sysproService.getStockCodePriceDetailForCategory(customerRule.categoryId)\r\n // .subscribe(x => this.stockCodesSelected(x, customerRule), error => this.onDataLoadFailed(error));\r\n // }\r\n\r\n saveCategoryRule(row: Inventory) {\r\n if (this.currentCustomer && this.currentCustomer != \"\") {\r\n if (row.specialCostAdd > 0 && row.specialDiscount > 0) {\r\n this.alertService.showDialog('Please enter either a discount percentage or cost plus value. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n else {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n if (this.coreCustomer && this.coreCustomer.id > 0) {\r\n //Edit\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info)\r\n }, error => this.onNewCustomerAddedFailed(error));\r\n }\r\n\r\n let customerRule = this.setNewRule(row);\r\n if (row.id >= 1) {\r\n this.sysproService.deletePricingCustomerRule(row.id).subscribe(x => { this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error)); }, error => this.onNewRuleAddedFailed(error));\r\n }\r\n else {\r\n\r\n this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n }\r\n\r\n this.ruleCategoryModalHide();\r\n }\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Warning', 'Please remember to first search for a customer',\r\n MessageSeverity.warn);\r\n }\r\n\r\n\r\n }\r\n\r\n saveGeneralRule(row: Inventory) {\r\n if (this.currentCustomer && this.currentCustomer != \"\") {\r\n if (row.specialCostAdd > 0 && row.specialDiscount > 0) {\r\n this.alertService.showDialog('Please enter either a discount percentage or cost plus value. ', DialogType.confirm, () => this.clearRowHelper(row));\r\n }\r\n else {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n if (this.coreCustomer && this.coreCustomer.id > 0) {\r\n //Edit\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info)\r\n }, error => this.onNewCustomerAddedFailed(error));\r\n }\r\n\r\n var customerRule = this.setNewRule(row);\r\n if (this.currentDiscountId && this.currentDiscountId > 0) {\r\n customerRule.id = this.currentDiscountId;\r\n customerRule.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomerRule(customerRule, this.currentDiscountId, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n }\r\n else {\r\n\r\n this.sysproService.addNewPricingCustomerRule(customerRule, this.application, this.branchCode).subscribe(x => this.onNewCustomerRuleAdded(x, row), error => this.onNewRuleAddedFailed(error));\r\n }\r\n }\r\n\r\n\r\n // this.generalPriceRow = null;\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Warning', 'Please remember to first search for a customer',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n deleteGeneralRule(row: CoreCustomerRule) {\r\n\r\n if (this.currentDiscountId && this.currentDiscountId > 0) {\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n row.id = this.currentDiscountId;\r\n this.sysproService.deletePricingCustomerRule(row.id).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n }\r\n\r\n onNewCustomerRuleAdded(x: CoreCustomerRule, row: Inventory): void {\r\n\r\n let customerRule = x;\r\n if (customerRule && customerRule.id) {\r\n this.alertService.showStickyMessage('Success', 'Pricing Rule Updated',\r\n MessageSeverity.info);\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.originalPriceRow = null;\r\n this.loadData();\r\n //Apply Rule\r\n // this.handleRuleApplication(customerRule, row);\r\n }\r\n }\r\n\r\n //updateRule(row: CoreCustomerRule) {\r\n\r\n // //Find and remove any existing prices for that rule\r\n // this.sysproService.deleteAllPricingCustomerPricesForRule(row.id).subscribe(x => this.onRuleCleared(row), error => this.onRuleClearedFailed(error));\r\n\r\n //}\r\n\r\n //onRuleClearedFailed(error: any): void {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // this.alertService.showStickyMessage('Load Error', `Unable to update pricing rule.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n // MessageSeverity.error, error);\r\n //}\r\n\r\n //onRuleCleared(row: CoreCustomerRule): void {\r\n\r\n // // Get data to work with\r\n // if (row.priority == 1) {\r\n // //Save single stock code with rule\r\n // var baseItem = this.setNewPriceItem();\r\n // baseItem.ruleId = row.id;\r\n // baseItem.priority = row.priority;\r\n\r\n // baseItem.value = row.value;\r\n // baseItem.addValue = row.addValue;\r\n // baseItem.addText = row.addText;\r\n // baseItem.ruleName = row.ruleName;\r\n // baseItem.ruleDescription = row.ruleDescription;\r\n\r\n // this.sysproService.getStockCodePriceDetail(row.code.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"))\r\n // .subscribe(x => {\r\n // var total = 0;\r\n // var stockCode = new Inventory();\r\n // stockCode = x[0];\r\n // baseItem.stockCode = stockCode.stockCode;\r\n // baseItem.costPrice = stockCode.unitCost;\r\n // baseItem.sellingPrice = stockCode.sellingPrice;\r\n // baseItem.uom = stockCode.uom;\r\n // baseItem.description = stockCode.description;\r\n // baseItem.conversionFactor = stockCode.priceConvFac;\r\n\r\n // if (row.addValue > 0) {\r\n // total = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, row.addValue, row.value, stockCode.priceConvFac, 0);\r\n // }\r\n // else {\r\n // total = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, row.value, stockCode.priceConvFac, 0);\r\n // }\r\n // baseItem.newPrice = total;\r\n // baseItem.gpValue = Calculations.calculateGPLineTotal(stockCode.unitCost, total, stockCode.priceConvFac, 0);\r\n\r\n // this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(baseItem), error => this.onNewRuleAddedFailed(error));\r\n\r\n // }, error => this.onDataLoadFailed(error));\r\n\r\n\r\n\r\n // }\r\n //}\r\n\r\n //handleRuleApplication(customerRule: CoreCustomerRule, row: Inventory) {\r\n // this.alertService.startLoadingMessage(\"Starting Price Updates\");\r\n // this.loadingIndicator = true;\r\n\r\n // var baseItem = this.setNewPriceItem();\r\n // baseItem.ruleId = customerRule.id;\r\n // baseItem.priority = customerRule.priority;\r\n // baseItem.value = customerRule.value;\r\n // baseItem.addValue = customerRule.addValue;\r\n // baseItem.addText = customerRule.addText;\r\n // baseItem.ruleName = customerRule.ruleName;\r\n // baseItem.ruleDescription = customerRule.ruleDescription;\r\n\r\n // if (customerRule.priority == 1) {\r\n // //Save single stock code with rule\r\n // baseItem.stockCode = row.stockCode;\r\n // baseItem.costPrice = row.unitCost;\r\n // baseItem.sellingPrice = row.sellingPrice;\r\n\r\n // baseItem.newPrice = (row.specialPrice / row.priceConvFac);\r\n // baseItem.gpValue = row.specialGP;\r\n // baseItem.uom = row.uom;\r\n // baseItem.description = row.description;\r\n // baseItem.conversionFactor = row.priceConvFac;\r\n // baseItem.priority = row.specialPriority;\r\n\r\n // this.recordsToProcess = 1;\r\n // this.recordsProcessed = 0;\r\n // this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(baseItem), error => this.onNewRuleAddedFailed(error));\r\n\r\n // }\r\n // if (customerRule.priority == 2) {\r\n // //Get all stock codes for supplier and apply rule to each stock code\r\n // this.sysproService.getStockCodePriceDetailForSupplier(customerRule.code.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"))\r\n // .subscribe(x => this.stockCodesSelected(x, customerRule), error => this.onDataLoadFailed(error));\r\n\r\n // }\r\n // if (customerRule.priority == 3) {\r\n // //Get all stock codes for category tree and apply rule to each stock code\r\n // this.sysproService.getStockCodePriceDetailForCategory(customerRule.categoryId)\r\n // .subscribe(x => this.stockCodesSelected(x, customerRule), error => this.onDataLoadFailed(error));\r\n // }\r\n // if (customerRule.priority == 4) {\r\n // this.alertService.showMessage('Success', ` Successfully updated`, MessageSeverity.success);\r\n // this.loadDetails();\r\n\r\n // }\r\n\r\n //}\r\n\r\n //stockCodesSelected(x: Inventory[], customerRule: CoreCustomerRule): void {\r\n\r\n // this.recordsToProcess = 0;\r\n\r\n // if (x && x[0]) {\r\n // this.rowsCache = x;\r\n // this.recordsToProcess = this.rowsCache.length;\r\n // this.recordsProcessed = 0;\r\n // var baseItem = this.setNewPriceItem();\r\n\r\n // baseItem.ruleId = customerRule.id;\r\n // baseItem.priority = customerRule.priority;\r\n // baseItem.value = customerRule.value;\r\n // baseItem.addValue = customerRule.addValue;\r\n // baseItem.addText = customerRule.addText;\r\n // baseItem.ruleName = customerRule.ruleName;\r\n // baseItem.ruleDescription = customerRule.ruleDescription;\r\n\r\n // this.processBulk(customerRule, baseItem);\r\n \r\n // }\r\n // else {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n // //No Stock Codes Found\r\n\r\n // this.alertService.showMessage('No results', 'No Stock Codes found for this selection',\r\n // MessageSeverity.warn);\r\n\r\n // //Remove Rule\r\n // this.deleteRowHelper(customerRule);\r\n\r\n // }\r\n\r\n //}\r\n\r\n //sleep(ms) {\r\n // return new Promise(resolve => setTimeout(resolve, ms));\r\n //}\r\n\r\n\r\n //async processAsync(customerRule: CoreCustomerRule, baseItem: CoreCustomerPrices) {\r\n\r\n // let index = 0;\r\n\r\n // //Split Batches\r\n // if (this.recordsToProcess > 1000) {\r\n\r\n // var batch1 = this.rowsCache.slice(0, 1000);\r\n // index = await this.newMethod(batch1, index, baseItem, customerRule);\r\n \r\n // await this.sleep(2000);\r\n\r\n // if (this.recordsToProcess > 2000) {\r\n\r\n // var batch2 = this.rowsCache.slice(1000, 2000);\r\n // index = await this.newMethod(batch2, index, baseItem, customerRule);\r\n\r\n // await this.sleep(2000);\r\n\r\n // var batch3 = this.rowsCache.slice(2000, this.recordsToProcess);\r\n // index = await this.newMethod(batch3, index, baseItem, customerRule);\r\n // }\r\n // else {\r\n\r\n // var batch2 = this.rowsCache.slice(1000, this.recordsToProcess);\r\n // index = await this.newMethod(batch2, index, baseItem, customerRule);\r\n // }\r\n // }\r\n // else {\r\n // index = await this.newMethod(this.rowsCache, index, baseItem, customerRule);\r\n // }\r\n\r\n // console.log(index);\r\n \r\n //}\r\n\r\n //private async processBulk(customerRule: CoreCustomerRule, baseItem: CoreCustomerPrices) {\r\n\r\n // // const stockCodes = this.rowsCache;\r\n\r\n // for (const [idx, stockCode] of this.rowsCache.entries()) {\r\n // /* await Promise.all(stockCodes.map(async (stockCode) => {*/\r\n // var total = 0;\r\n // baseItem.stockCode = stockCode.stockCode;\r\n // baseItem.costPrice = stockCode.unitCost;\r\n // baseItem.sellingPrice = stockCode.sellingPrice;\r\n // baseItem.uom = stockCode.uom;\r\n // baseItem.description = stockCode.description;\r\n // baseItem.conversionFactor = stockCode.priceConvFac;\r\n\r\n // if (customerRule.addValue > 0) {\r\n // total = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, customerRule.addValue, customerRule.value, stockCode.priceConvFac, 0);\r\n // }\r\n // else {\r\n // total = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, customerRule.value, stockCode.priceConvFac, 0);\r\n // }\r\n // baseItem.newPrice = total;\r\n\r\n // baseItem.gpValue = Calculations.calculateGPLineTotal(stockCode.unitCost, total, stockCode.priceConvFac, 0);\r\n\r\n // //console.log(index, stockCode);\r\n\r\n // if (idx % 100 == 0 && idx != 0) {\r\n // //DoStuff\r\n\r\n // //console.log(`SLEEPTING ${idx + 1}:`, stockCode);\r\n // await this.sleep(2000);\r\n // //console.log(`Received Todo ${idx + 1}:`, stockCode);\r\n // await this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n // error => this.onSpecialPriceAddedFailed(error, baseItem.stockCode));\r\n // }\r\n // else {\r\n\r\n // //console.log(`Received Todo ${idx + 1}:`, stockCode);\r\n // await this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n // error => this.onNewPriceAddedFailed(error, baseItem));\r\n // }\r\n\r\n // };\r\n\r\n // console.log('Finished!');\r\n // //batch1.forEach(async (stockCode) => {\r\n // // //Save single stock code with rule\r\n // // index++;\r\n\r\n // // var total = 0;\r\n // // baseItem.stockCode = stockCode.stockCode;\r\n // // baseItem.costPrice = stockCode.unitCost;\r\n // // baseItem.sellingPrice = stockCode.sellingPrice;\r\n // // baseItem.uom = stockCode.uom;\r\n // // baseItem.description = stockCode.description;\r\n // // baseItem.conversionFactor = stockCode.priceConvFac;\r\n\r\n // // if (customerRule.addValue > 0) {\r\n // // total = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, customerRule.addValue, customerRule.value, stockCode.priceConvFac, 0);\r\n // // }\r\n // // else {\r\n // // total = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, customerRule.value, stockCode.priceConvFac, 0);\r\n // // }\r\n // // baseItem.newPrice = total;\r\n\r\n // // baseItem.gpValue = Calculations.calculateGPLineTotal(stockCode.unitCost, total, stockCode.priceConvFac, 0);\r\n\r\n // // console.log(index, stockCode);\r\n\r\n // // await this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n // // error => this.onSpecialPriceAddedFailed(error, baseItem.stockCode));\r\n\r\n // //});\r\n // //return index;\r\n //}\r\n //onNewPriceAddedFailed(error: any, baseItem: CoreCustomerPrices): void {\r\n // console.log(`Received ERROR`, error);\r\n // //if (this.accountService.currentUser) {\r\n // // this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n // // error => this.onNewPriceAddedFailed(error, baseItem));\r\n // //}\r\n //}\r\n\r\n //private async newMethod(batch1: Inventory[], index: number, baseItem: CoreCustomerPrices, customerRule: CoreCustomerRule) {\r\n // batch1.forEach(async (stockCode) => {\r\n // //Save single stock code with rule\r\n // index++;\r\n\r\n // var total = 0;\r\n // baseItem.stockCode = stockCode.stockCode;\r\n // baseItem.costPrice = stockCode.unitCost;\r\n // baseItem.sellingPrice = stockCode.sellingPrice;\r\n // baseItem.uom = stockCode.uom;\r\n // baseItem.description = stockCode.description;\r\n // baseItem.conversionFactor = stockCode.priceConvFac;\r\n\r\n // if (customerRule.addValue > 0) {\r\n // total = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, customerRule.addValue, customerRule.value, stockCode.priceConvFac, 0);\r\n // }\r\n // else {\r\n // total = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, customerRule.value, stockCode.priceConvFac, 0);\r\n // }\r\n // baseItem.newPrice = total;\r\n\r\n // baseItem.gpValue = Calculations.calculateGPLineTotal(stockCode.unitCost, total, stockCode.priceConvFac, 0);\r\n\r\n // console.log(index, stockCode);\r\n\r\n // await this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n // error => this.onSpecialPriceAddedFailed(error, baseItem.stockCode));\r\n\r\n // });\r\n // return index;\r\n //}\r\n\r\n //process(customerRule: CoreCustomerRule, baseItem: CoreCustomerPrices) {\r\n\r\n // let index = 0;\r\n\r\n // console.log(this.recordsToProcess);\r\n\r\n\r\n // this.rowsCache.forEach(async stockCode => {\r\n // //Save single stock code with rule\r\n // index++;\r\n // var total = 0;\r\n // baseItem.stockCode = stockCode.stockCode;\r\n // baseItem.costPrice = stockCode.unitCost;\r\n // baseItem.sellingPrice = stockCode.sellingPrice;\r\n // baseItem.uom = stockCode.uom;\r\n // baseItem.description = stockCode.description;\r\n // baseItem.conversionFactor = stockCode.priceConvFac;\r\n\r\n // if (customerRule.addValue > 0) {\r\n // total = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, customerRule.addValue, customerRule.value, stockCode.priceConvFac, 0);\r\n // }\r\n // else {\r\n // total = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, customerRule.value, stockCode.priceConvFac, 0);\r\n // }\r\n // baseItem.newPrice = total;\r\n\r\n // baseItem.gpValue = Calculations.calculateGPLineTotal(stockCode.unitCost, total, stockCode.priceConvFac, 0);\r\n\r\n // this.sysproService.addNewPricingCustomerPrice(baseItem).subscribe(x => this.onNewSpecialPriceAdded(x),\r\n // error => this.onSpecialPriceAddedFailed(error, baseItem.stockCode));\r\n\r\n // })\r\n //}\r\n\r\n //onSpecialPriceAddedFailed(error: any, stockCode: string ): void { \r\n // this.recordsProcessed++;\r\n // //this.alertService.showStickyMessage('Something', stockCode + ' (Line ' + this.recordsProcessed + `) Unable to update pricing rule.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n // // MessageSeverity.error, error);\r\n\r\n // }\r\n\r\n //onNewSpecialPriceAdded(row: CoreCustomerPrices): void {\r\n // this.recordsProcessed++;\r\n\r\n // if (this.recordsToProcess == this.recordsProcessed) {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // this.alertService.showMessage('Success', this.recordsToProcess + ` Stock Codes Successfully added`, MessageSeverity.success);\r\n // if (!this.bulkLoad) {\r\n\r\n // this.loadData();\r\n // }\r\n // }\r\n //}\r\n\r\n setNewRule(row: Inventory): CoreCustomerRule {\r\n var rule = new CoreCustomerRule();\r\n\r\n rule.ruleName = row.specialName;\r\n\r\n rule.customerId = this.coreCustomer.id;\r\n rule.customerCode = this.coreCustomer.customerCode;\r\n\r\n rule.addText = row.description;\r\n rule.ruleDescription = (row.specialDiscount > 0) ? \"Less Discount\" : \"Cost Plus\";\r\n if (row.specialDiscount == 0 && row.specialCostAdd == 0 && row.specialPriority != 1) {\r\n rule.ruleDescription = \"Less Discount\";\r\n }\r\n\r\n rule.code = row.stockCode;\r\n rule.addValue = row.specialCostAdd;\r\n rule.value = row.specialDiscount;\r\n\r\n rule.addCheck = true;\r\n rule.addFlag = \"Y\";\r\n rule.priority = row.specialPriority;\r\n rule.categoryId = row.categoryId;\r\n rule.createdBy = this.accountService.currentUser.email;\r\n\r\n return rule;\r\n }\r\n\r\n //setNewPriceItem(): CoreCustomerPrices {\r\n // var newPrice = new CoreCustomerPrices();\r\n // newPrice.company = this.coreCustomer.company;\r\n // newPrice.createdBy = this.accountService.currentUser.email;\r\n // newPrice.customerCode = this.coreCustomer.customerCode;\r\n // newPrice.customerId = this.coreCustomer.id;\r\n // newPrice.supplierCode = \"\";\r\n // newPrice.category = \"\";\r\n // newPrice.categoryId = 0;\r\n // newPrice.enabled = true;\r\n // return newPrice;\r\n //}\r\n\r\n \r\n\r\n onNewRuleAddedFailed(error: any, item?: string): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Something', item + ` Unable to update pricing rule.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n // this.loadData();\r\n \r\n }\r\n\r\n \r\n\r\n deleteRule(row: CoreCustomerRule) {\r\n \r\n this.alertService.showDialog('Are you sure you want to delete this rule\\\"\\\"?', DialogType.confirm, () => this.deleteRowHelper(row));\r\n }\r\n\r\n deleteRowHelper(row: CoreCustomerRule) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.deletePricingCustomerRule(row.id).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.ruleName + ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n deleteSpecialRule(row: CoreCustomerPrices) {\r\n \r\n this.alertService.showDialog('Are you sure you want to delete this rule?', DialogType.confirm, () => this.deleteSpecialRowHelper(row));\r\n }\r\n\r\n deleteSpecialRowHelper(row: CoreCustomerPrices): any {\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.deletePricingCustomerRule(row.ruleId).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.ruleName + ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n overridePriceHelper(row: Inventory): any {\r\n this.validated = true;\r\n\r\n this.saveStockCodeRule(row);\r\n //if (row.specialGP < 15) {\r\n // this.alertService.showDialog('GP% can\\'t be below 15%.', DialogType.confirm, () => this.clearRowHelper(row));\r\n //}\r\n //AddRule\r\n\r\n }\r\n\r\n\r\n onSupplierLoadSuccessful(suppliers: Supplier[]) {\r\n this.currentSupplier = new Supplier();\r\n\r\n this.suppliersCache = suppliers;\r\n this.setSupplier(suppliers);\r\n\r\n //filter out suppliers that has already been added\r\n\r\n }\r\n\r\n setSupplier(suppliers: Supplier[]) {\r\n\r\n\r\n if (suppliers == null || this.suppliers.length != suppliers.length) {\r\n setTimeout(() => {\r\n if (this.supplierSelector) {\r\n this.supplierSelector.refresh();\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n\r\n viewSupplierSelected() {\r\n\r\n if (this.rowCustomerRulesSupplierDiscount && this.rowCustomerRulesSupplierDiscount.length >= 1 && this.rowCustomerRulesSupplierDiscount.find(x => x.code == this.selectedSupplier)) {\r\n this.alertService.showStickyMessage('Duplicate', this.selectedSupplier + ' This supplier has already been added',\r\n MessageSeverity.error);\r\n }\r\n else {\r\n var supplierDetail = this.getSupplierByID(this.selectedSupplier);\r\n this.supplierDiscountRow = new Inventory();\r\n this.supplierDiscountRow.specialName = \"Supplier\";\r\n this.supplierDiscountRow.stockCode = supplierDetail.supplier;\r\n this.supplierDiscountRow.description = supplierDetail.supplierName;\r\n this.supplierDiscountRow.specialCostAdd = 0;\r\n this.supplierDiscountRow.specialDiscount = 0;\r\n this.supplierDiscountRow.specialPriority = 2;\r\n\r\n if (!this.ruleSupplierModal) {\r\n setTimeout(() => {\r\n if (this.ruleSupplierModal) {\r\n this.ruleSupplierModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.ruleSupplierModal.show();\r\n }\r\n } \r\n \r\n }\r\n\r\n\r\n private getSupplierByID(name: string) {\r\n return this.suppliersCache.find((r) => r.supplier == name);\r\n }\r\n\r\n\r\n ruleSupplierModalHide() {\r\n\r\n this.supplierDiscountRow = null;\r\n this.ruleSupplierModal.hide();\r\n }\r\n\r\n selectTreeItem(row: TreeviewItem) {\r\n\r\n if (this.rowCustomerRulesCategoryDiscount && this.rowCustomerRulesCategoryDiscount.length >= 1 && this.rowCustomerRulesCategoryDiscount.find(x => x.code == row.text)) {\r\n this.alertService.showMessage('Duplicate', row.text + ' - This category has already been added',\r\n MessageSeverity.warn);\r\n }\r\n else {\r\n this.newParentName = row.text;\r\n\r\n this.treeModal.hide();\r\n this.categoryDiscountRow = new Inventory();\r\n this.categoryDiscountRow.specialName = \"Category\";\r\n this.categoryDiscountRow.specialCostAdd = 0;\r\n this.categoryDiscountRow.specialDiscount = 0;\r\n this.categoryDiscountRow.specialPriority = 3;\r\n this.categoryDiscountRow.categoryId = row.value.category.Id;\r\n this.categoryDiscountRow.stockCode = row.text;\r\n this.categoryDiscountRow.description = \"\";\r\n\r\n if (!this.ruleCategoryModal) {\r\n setTimeout(() => {\r\n if (this.ruleCategoryModal) {\r\n this.ruleCategoryModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.ruleCategoryModal.show();\r\n }\r\n }\r\n }\r\n\r\n ruleCategoryModalHide() {\r\n\r\n this.categoryDiscountRow = null;\r\n this.ruleCategoryModal.hide();\r\n }\r\n\r\n onCategoriesLoadSuccessful(treeview: any[]) {\r\n if (treeview[0]) {\r\n let treeviewItems = new TreeviewItem(JSON.parse(treeview[0]));\r\n\r\n this.items = this.getItems([treeviewItems]);\r\n this.treeItems = this.getItems([treeviewItems]);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n getItems(parentChildObj) {\r\n let itemsArray = [];\r\n parentChildObj.forEach(set => {\r\n itemsArray.push(new TreeviewItem(set))\r\n });\r\n return itemsArray;\r\n }\r\n\r\n list_to_tree(list) {\r\n var map = {}, node, roots = [], i;\r\n\r\n for (i = 0; i < list.length; i += 1) {\r\n map[list[i].id] = i; // initialize the map\r\n list[i].children = []; // initialize the children\r\n }\r\n\r\n for (i = 0; i < list.length; i += 1) {\r\n node = list[i];\r\n if (node.parentCategory !== \"Root\") {\r\n // if you have dangling branches check that map[node.parentId] exists\r\n list[map[node.parentCategory]].children.push(node);\r\n } else {\r\n roots.push(node);\r\n }\r\n }\r\n return roots;\r\n }\r\n\r\n\r\n loadCategoryModal() {\r\n if (!this.treeModal) {\r\n setTimeout(() => {\r\n if (this.treeModal) {\r\n this.treeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.treeModal.show();\r\n }\r\n }\r\n\r\n\r\n\r\n loadModalEdit(row: CoreCustomerRule) {\r\n\r\n if (row.ruleName == \"Category\") {\r\n this.newParentName = row.code;\r\n this.categoryDiscountRow = new Inventory();\r\n this.categoryDiscountRow.specialName = \"Category\";\r\n this.categoryDiscountRow.specialCostAdd = row.addValue;\r\n this.categoryDiscountRow.specialDiscount = row.value;\r\n this.categoryDiscountRow.specialPriority = 3;\r\n this.categoryDiscountRow.categoryId = row.categoryId;\r\n this.categoryDiscountRow.stockCode = row.code;\r\n this.categoryDiscountRow.description = row.addText;\r\n this.categoryDiscountRow.id = row.id;\r\n\r\n if (!this.ruleCategoryModal) {\r\n setTimeout(() => {\r\n if (this.ruleCategoryModal) {\r\n this.ruleCategoryModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.ruleCategoryModal.show();\r\n }\r\n }\r\n\r\n if (row.ruleName == \"Supplier\") {\r\n \r\n this.supplierDiscountRow = new Inventory();\r\n this.supplierDiscountRow.specialName = \"Supplier\";\r\n this.supplierDiscountRow.specialCostAdd = row.addValue;\r\n this.supplierDiscountRow.specialDiscount = row.value;\r\n this.supplierDiscountRow.specialPriority = 2;\r\n this.supplierDiscountRow.categoryId = row.categoryId;\r\n this.supplierDiscountRow.stockCode = row.code;\r\n this.supplierDiscountRow.description = row.addText;\r\n this.supplierDiscountRow.id = row.id;\r\n\r\n if (!this.ruleSupplierModal) {\r\n setTimeout(() => {\r\n if (this.ruleSupplierModal) {\r\n this.ruleSupplierModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.ruleSupplierModal.show();\r\n }\r\n }\r\n \r\n }\r\n\r\n treeItemBeforeExpand(row: TreeviewItem) {\r\n console.log(row);\r\n if (row) {\r\n if (row.collapsed) {\r\n\r\n }\r\n else {\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n \r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n\r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n //downloadPriceList() {\r\n\r\n // this.alertService.startLoadingMessage('Loading Details...');\r\n // this.loadingIndicator = true;\r\n\r\n // this.sysproService.getAllPricingCustomerPrices(this.coreCustomer.id).subscribe(x => this.onPricesLoadSuccessful(x), error => this.onDataLoadFailed(error)); \r\n\r\n //}\r\n\r\n downloadCustomerPriceList() {\r\n this.alertService.startLoadingMessage('Loading Details...');\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getAllPricingCustomerPrices(this.coreCustomer.id).subscribe(x => this.onPricesLoadSuccessful(x, false), error => this.onDataLoadFailed(error)); \r\n\r\n }\r\n\r\n\r\n downloadInternalList() {\r\n this.alertService.startLoadingMessage('Loading Details...');\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getAllPricingCustomerPrices(this.coreCustomer.id).subscribe(x => this.onPricesLoadSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n disableCustomerPricing() {\r\n\r\n if (this.coreCustomer.enabled) {\r\n this.coreCustomer.enabled = false;\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info);\r\n\r\n this.loadingIndicator = false;\r\n }, error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Note', 'Customer Discounts Already Disabled',\r\n MessageSeverity.info);\r\n }\r\n\r\n }\r\n\r\n enableCustomerPricing() {\r\n\r\n if (!this.coreCustomer.enabled) {\r\n this.coreCustomer.enabled = true;\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info);\r\n this.loadingIndicator = false;\r\n\r\n }, error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Note', 'Customer Discounts Already Enabled',\r\n MessageSeverity.info);\r\n }\r\n\r\n }\r\n\r\n\r\n onAllStockLoadSuccessful(inventory: any[]): void {\r\n this.inventoryList = inventory[0];\r\n\r\n }\r\n\r\n onPricesLoadSuccessful(prices: CoreCustomerPrices[], internal: boolean): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (prices && prices.length > 0) {\r\n this.priceRows = prices;\r\n this.priceRowsCache = [...this.priceRows];\r\n \r\n if (internal) {\r\n\r\n this.metaList();\r\n }\r\n else {\r\n this.customerList();\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n metaList() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"Unit Cost\", \"Cost Plus\", \"Selling Price\", \"Discount\", \"Nett Price\", \"ConversionFactor\", \"GP\", \"Last Cost Changed\",\r\n \"Price Updated On\", \"Supplier\", \"BrandName\", \"Status\"]\r\n };\r\n\r\n var filename = this.currentCustomer + \"_InternalPriceList\";\r\n var selectRows = [...this.priceRowsCache.filter(r => r.status != \"D\")];\r\n\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date1 = new Date(row.lastCostChange).toISOString().split('T')[0];\r\n let date2 = new Date((row.modifiedOn ? row.modifiedOn : row.createdOn)).toISOString().split('T')[0];\r\n exportRows.push({\r\n StockCode: row.stockCode.replace(/\\,/g, ' ').replace(/\\;/g, ' '), Description: row.description.replace(/\\,/g, ' ').replace(/\\;/g, ' '), \r\n UnitCost: row.costPrice, CostPlus: row.addValue,\r\n SellingPrice: row.sellingPrice, DiscountPerc: row.value,\r\n SpecialPrice: row.newPrice,\r\n ConversionFactor: row.conversionFactor, GP: row.gpValue, CostChanged: date1, PriceUpdated: date2,\r\n Supplier: row.supplierCode, BrandName: row.brandName, Status: row.status\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n customerList() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"Nett Price\"]\r\n };\r\n\r\n var filename = this.currentCustomer + \" PriceList\";\r\n var selectRows = [...this.priceRowsCache.filter(r => r.status != \"D\")];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n \r\n exportRows.push({\r\n StockCode: row.stockCode.replace(/\\,/g, ' ').replace(/\\;/g, ' '), Description: row.description.replace(/\\,/g, ' ').replace(/\\;/g, ' '), \r\n SpecialPrice: row.newPrice\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n get canMaintainPrices() {\r\n return this.accountService.userHasPermission(Permission.maintainCustomerPricingPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"/* The sidebar menu */\\n.sidebar {\\n height: 100%;\\n /* 100% Full-height */\\n width: 0;\\n /* 0 width - change this with JavaScript */\\n position: fixed;\\n /* Stay in place */\\n z-index: 1;\\n /* Stay on top */\\n top: 0;\\n left: 0;\\n background-color: whitesmoke;\\n overflow-x: hidden;\\n /* Disable horizontal scroll */\\n padding-top: 60px;\\n /* Place content 60px from the top */\\n transition: 0.5s;\\n /* 0.5 second transition effect to slide in the sidebar */ }\\n/* The sidebar links */\\n.sidebar a {\\n padding: 8px 8px 8px 32px;\\n text-decoration: none;\\n /* font-size: 25px;\\r\\n color: #818181;*/\\n display: block;\\n transition: 0.3s; }\\n/* When you mouse over the navigation links, change their color */\\n.sidebar a:hover {\\n /*color: #f1f1f1;*/ }\\n/* Position and style the close button (top right corner) */\\n.sidebar .closebtn {\\n position: absolute;\\n top: 0;\\n right: 25px;\\n font-size: 36px;\\n margin-left: 50px; }\\n/* The button used to open the sidebar */\\n.openbtn {\\n font-size: 20px;\\n cursor: pointer;\\n background-color: #111;\\n color: white;\\n padding: 10px 15px;\\n border: none; }\\n.openbtn:hover {\\n background-color: #444; }\\n/* Style page content - use this if you want to push the page content to the right when you open the side navigation */\\n#main {\\n transition: margin-left .5s;\\n /* If you want a transition effect */\\n padding: 20px; }\\n/* On smaller screens, where height is less than 450px, change the style of the sidenav (less padding and a smaller font size) */\\n@media screen and (max-height: 450px) {\\n .sidebar {\\n padding-top: 15px; }\\n /* .sidebar a {\\r\\n font-size: 18px;\\r\\n }*/ }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxjdXN0b21lcnNcXGN1c3RvbWVycy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvY3VzdG9tZXJzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFCQUFBO0FBQ0E7RUFDRSxZQUFZO0VBQUUscUJBQUE7RUFDZCxRQUFRO0VBQUUsMENBQUE7RUFDVixlQUFlO0VBQUUsa0JBQUE7RUFDakIsVUFBVTtFQUFFLGdCQUFBO0VBQ1osTUFBTTtFQUNOLE9BQU87RUFDUCw0QkFBNEI7RUFDNUIsa0JBQWtCO0VBQUUsOEJBQUE7RUFDcEIsaUJBQWlCO0VBQUUsb0NBQUE7RUFDbkIsZ0JBQWdCO0VBQUUseURBQUEsRUFBMEQ7QUFHOUUsc0JBQUE7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QixxQkFBcUI7RUFDdEI7a0JDT2lCO0VETGhCLGNBQWM7RUFDZCxnQkFBZ0IsRUFBQTtBQUdsQixpRUFBQTtBQUNBO0VBQ0Usa0JBQUEsRUFBbUI7QUFHckIsMkRBQUE7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sV0FBVztFQUNYLGVBQWU7RUFDZixpQkFBaUIsRUFBQTtBQUduQix3Q0FBQTtBQUNBO0VBQ0UsZUFBZTtFQUNmLGVBQWU7RUFDZixzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixZQUFZLEVBQUE7QUFHZDtFQUNFLHNCQUFzQixFQUFBO0FBR3hCLHNIQUFBO0FBQ0E7RUFDRSwyQkFBMkI7RUFBRSxvQ0FBQTtFQUM3QixhQUFhLEVBQUE7QUFHZixnSUFBQTtBQUNBO0VBQ0U7SUFDRSxpQkFBaUIsRUFBQTtFQUdwQjs7SUNDRyxFRENDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvY3VzdG9tZXJzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogVGhlIHNpZGViYXIgbWVudSAqL1xyXG4uc2lkZWJhciB7XHJcbiAgaGVpZ2h0OiAxMDAlOyAvKiAxMDAlIEZ1bGwtaGVpZ2h0ICovXHJcbiAgd2lkdGg6IDA7IC8qIDAgd2lkdGggLSBjaGFuZ2UgdGhpcyB3aXRoIEphdmFTY3JpcHQgKi9cclxuICBwb3NpdGlvbjogZml4ZWQ7IC8qIFN0YXkgaW4gcGxhY2UgKi9cclxuICB6LWluZGV4OiAxOyAvKiBTdGF5IG9uIHRvcCAqL1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlc21va2U7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyAvKiBEaXNhYmxlIGhvcml6b250YWwgc2Nyb2xsICovXHJcbiAgcGFkZGluZy10b3A6IDYwcHg7IC8qIFBsYWNlIGNvbnRlbnQgNjBweCBmcm9tIHRoZSB0b3AgKi9cclxuICB0cmFuc2l0aW9uOiAwLjVzOyAvKiAwLjUgc2Vjb25kIHRyYW5zaXRpb24gZWZmZWN0IHRvIHNsaWRlIGluIHRoZSBzaWRlYmFyICovXHJcbn1cclxuXHJcbi8qIFRoZSBzaWRlYmFyIGxpbmtzICovXHJcbi5zaWRlYmFyIGEge1xyXG4gIHBhZGRpbmc6IDhweCA4cHggOHB4IDMycHg7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gLyogZm9udC1zaXplOiAyNXB4O1xyXG4gIGNvbG9yOiAjODE4MTgxOyovXHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgdHJhbnNpdGlvbjogMC4zcztcclxufVxyXG5cclxuLyogV2hlbiB5b3UgbW91c2Ugb3ZlciB0aGUgbmF2aWdhdGlvbiBsaW5rcywgY2hhbmdlIHRoZWlyIGNvbG9yICovXHJcbi5zaWRlYmFyIGE6aG92ZXIge1xyXG4gIC8qY29sb3I6ICNmMWYxZjE7Ki9cclxufVxyXG5cclxuLyogUG9zaXRpb24gYW5kIHN0eWxlIHRoZSBjbG9zZSBidXR0b24gKHRvcCByaWdodCBjb3JuZXIpICovXHJcbi5zaWRlYmFyIC5jbG9zZWJ0biB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMjVweDtcclxuICBmb250LXNpemU6IDM2cHg7XHJcbiAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi8qIFRoZSBidXR0b24gdXNlZCB0byBvcGVuIHRoZSBzaWRlYmFyICovXHJcbi5vcGVuYnRuIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxMTE7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbi5vcGVuYnRuOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0O1xyXG59XHJcblxyXG4vKiBTdHlsZSBwYWdlIGNvbnRlbnQgLSB1c2UgdGhpcyBpZiB5b3Ugd2FudCB0byBwdXNoIHRoZSBwYWdlIGNvbnRlbnQgdG8gdGhlIHJpZ2h0IHdoZW4geW91IG9wZW4gdGhlIHNpZGUgbmF2aWdhdGlvbiAqL1xyXG4jbWFpbiB7XHJcbiAgdHJhbnNpdGlvbjogbWFyZ2luLWxlZnQgLjVzOyAvKiBJZiB5b3Ugd2FudCBhIHRyYW5zaXRpb24gZWZmZWN0ICovXHJcbiAgcGFkZGluZzogMjBweDtcclxufVxyXG5cclxuLyogT24gc21hbGxlciBzY3JlZW5zLCB3aGVyZSBoZWlnaHQgaXMgbGVzcyB0aGFuIDQ1MHB4LCBjaGFuZ2UgdGhlIHN0eWxlIG9mIHRoZSBzaWRlbmF2IChsZXNzIHBhZGRpbmcgYW5kIGEgc21hbGxlciBmb250IHNpemUpICovXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA0NTBweCkge1xyXG4gIC5zaWRlYmFyIHtcclxuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xyXG4gIH1cclxuXHJcbiAvKiAuc2lkZWJhciBhIHtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICB9Ki9cclxufVxyXG4iLCIvKiBUaGUgc2lkZWJhciBtZW51ICovXG4uc2lkZWJhciB7XG4gIGhlaWdodDogMTAwJTtcbiAgLyogMTAwJSBGdWxsLWhlaWdodCAqL1xuICB3aWR0aDogMDtcbiAgLyogMCB3aWR0aCAtIGNoYW5nZSB0aGlzIHdpdGggSmF2YVNjcmlwdCAqL1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIC8qIFN0YXkgaW4gcGxhY2UgKi9cbiAgei1pbmRleDogMTtcbiAgLyogU3RheSBvbiB0b3AgKi9cbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZXNtb2tlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC8qIERpc2FibGUgaG9yaXpvbnRhbCBzY3JvbGwgKi9cbiAgcGFkZGluZy10b3A6IDYwcHg7XG4gIC8qIFBsYWNlIGNvbnRlbnQgNjBweCBmcm9tIHRoZSB0b3AgKi9cbiAgdHJhbnNpdGlvbjogMC41cztcbiAgLyogMC41IHNlY29uZCB0cmFuc2l0aW9uIGVmZmVjdCB0byBzbGlkZSBpbiB0aGUgc2lkZWJhciAqLyB9XG5cbi8qIFRoZSBzaWRlYmFyIGxpbmtzICovXG4uc2lkZWJhciBhIHtcbiAgcGFkZGluZzogOHB4IDhweCA4cHggMzJweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAvKiBmb250LXNpemU6IDI1cHg7XHJcbiAgY29sb3I6ICM4MTgxODE7Ki9cbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zaXRpb246IDAuM3M7IH1cblxuLyogV2hlbiB5b3UgbW91c2Ugb3ZlciB0aGUgbmF2aWdhdGlvbiBsaW5rcywgY2hhbmdlIHRoZWlyIGNvbG9yICovXG4uc2lkZWJhciBhOmhvdmVyIHtcbiAgLypjb2xvcjogI2YxZjFmMTsqLyB9XG5cbi8qIFBvc2l0aW9uIGFuZCBzdHlsZSB0aGUgY2xvc2UgYnV0dG9uICh0b3AgcmlnaHQgY29ybmVyKSAqL1xuLnNpZGViYXIgLmNsb3NlYnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAyNXB4O1xuICBmb250LXNpemU6IDM2cHg7XG4gIG1hcmdpbi1sZWZ0OiA1MHB4OyB9XG5cbi8qIFRoZSBidXR0b24gdXNlZCB0byBvcGVuIHRoZSBzaWRlYmFyICovXG4ub3BlbmJ0biB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5vcGVuYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsgfVxuXG4vKiBTdHlsZSBwYWdlIGNvbnRlbnQgLSB1c2UgdGhpcyBpZiB5b3Ugd2FudCB0byBwdXNoIHRoZSBwYWdlIGNvbnRlbnQgdG8gdGhlIHJpZ2h0IHdoZW4geW91IG9wZW4gdGhlIHNpZGUgbmF2aWdhdGlvbiAqL1xuI21haW4ge1xuICB0cmFuc2l0aW9uOiBtYXJnaW4tbGVmdCAuNXM7XG4gIC8qIElmIHlvdSB3YW50IGEgdHJhbnNpdGlvbiBlZmZlY3QgKi9cbiAgcGFkZGluZzogMjBweDsgfVxuXG4vKiBPbiBzbWFsbGVyIHNjcmVlbnMsIHdoZXJlIGhlaWdodCBpcyBsZXNzIHRoYW4gNDUwcHgsIGNoYW5nZSB0aGUgc3R5bGUgb2YgdGhlIHNpZGVuYXYgKGxlc3MgcGFkZGluZyBhbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSkgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA0NTBweCkge1xuICAuc2lkZWJhciB7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7IH1cbiAgLyogLnNpZGViYXIgYSB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgfSovIH1cbiJdfQ== */\"","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { MatSidenav } from '@angular/material';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'customers',\r\n templateUrl: './customers.component.html',\r\n styleUrls: ['./customers.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class CustomersComponent {\r\n\r\n isSettingsActivated = false;\r\n isNotesActivated = false;\r\n isMovementsActivated = true;\r\n isInvoicesActivated = false;\r\n isCollapsed = false;\r\n isBankImportActivated = false;\r\n isBankImportReportActivated = false;\r\n isManagementActivated = false;\r\n isAdminActivated = false;\r\n isStatementsActivated = false;\r\n isBankOverviewReportActivated = false;\r\n isToolrepairsActivated = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly customerSettingsTab = 'settings';\r\n readonly customerNotesTab = 'notes';\r\n readonly customerMovementsTab = 'movements';\r\n readonly customerPaymentsTab = 'payments';\r\n readonly debtorsBankImportTab = 'bankimport';\r\n readonly debtorsBankImportReportTab = 'bankimportreport';\r\n readonly debtorsBankOverviewReportTab = 'debtorsbankoverview';\r\n readonly customerManagementTab = 'management';\r\n readonly customerAdminTab = 'admin';\r\n readonly customerStatementsTab = 'statements';\r\n readonly customerToolrepairsTab = 'toolrepairs';\r\n\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n \r\n @Input()\r\n isSearch: boolean;\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n @ViewChild('sidenav')\r\n sidenav: MatSidenav;\r\n\r\n @ViewChild('searchModal')\r\n searchModal: ModalDirective;\r\n\r\n id: any = \"\";\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private accountService: AccountService, private configurations: ConfigurationService\r\n) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n\r\n this.isCollapsed = !this.menuExpanded;\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n if (action) {\r\n this.id = action;\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor, this.id));\r\n } else {\r\n\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n }\r\n\r\n\r\n }\r\n \r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n //this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n showContent(anchor: string, test?: any) {\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n if (action) {\r\n this.id = action;\r\n } \r\n\r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.customerMovementsTab}Tab`);\r\n \r\n }\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isNotesActivated = activeTab == this.customerNotesTab;\r\n this.isMovementsActivated = activeTab == this.customerMovementsTab;\r\n this.isInvoicesActivated = activeTab == this.customerPaymentsTab;\r\n this.isBankImportActivated = activeTab == this.debtorsBankImportTab;\r\n this.isBankImportReportActivated = activeTab == this.debtorsBankImportReportTab;\r\n this.isBankOverviewReportActivated = activeTab == this.debtorsBankOverviewReportTab;\r\n this.isSettingsActivated = activeTab == this.customerSettingsTab;\r\n this.isManagementActivated = activeTab == this.customerManagementTab;\r\n this.isAdminActivated = activeTab == this.customerAdminTab;\r\n this.isStatementsActivated = activeTab == this.customerStatementsTab;\r\n this.isToolrepairsActivated = activeTab == this.customerToolrepairsTab;\r\n\r\n\r\n this.router.navigate([], { fragment: activeTab, queryParams: { customer: this.id } });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isNotesActivated = activeTab == this.customerNotesTab;\r\n this.isMovementsActivated = activeTab == this.customerMovementsTab;\r\n this.isInvoicesActivated = activeTab == this.customerPaymentsTab;\r\n this.isBankImportActivated = activeTab == this.debtorsBankImportTab;\r\n this.isBankImportReportActivated = activeTab == this.debtorsBankImportReportTab;\r\n this.isBankOverviewReportActivated = activeTab == this.debtorsBankOverviewReportTab;\r\n this.isSettingsActivated = activeTab == this.customerSettingsTab;\r\n this.isManagementActivated = activeTab == this.customerManagementTab;\r\n this.isAdminActivated = activeTab == this.customerAdminTab;\r\n this.isStatementsActivated = activeTab == this.customerStatementsTab;\r\n this.isToolrepairsActivated = activeTab == this.customerToolrepairsTab;\r\n\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n \r\n\r\n get canViewCustomers() {\r\n return true;\r\n }\r\n\r\n get canViewMovements() {\r\n return true;//TODO: this.accountService.userHasPermission(Permission.viewCustomerMovementsPermission);\r\n }\r\n\r\n get canViewPayments() {\r\n return true;//TODO: this.accountService.userHasPermission(Permission.viewCustomerPaymentsPermission);\r\n }\r\n\r\n\r\n get canViewBankImport() {\r\n return this.accountService.userHasPermission(Permission.bankImportPermission);\r\n }\r\n\r\n get canMaintainPrices() {\r\n return this.accountService.userHasPermission(Permission.maintainCustomerPricingPermission);\r\n }\r\n\r\n get canMaintainPricesAdmin() {\r\n return this.accountService.userHasPermission(Permission.customerPricingAdminPermission);\r\n }\r\n\r\n\r\n get canCreateStatementsCustomers() {\r\n return this.accountService.userHasPermission(Permission.customerStatementsPermission);\r\n }\r\n\r\n\r\n get canViewToolrepairs() {\r\n return this.accountService.userHasPermission(Permission.viewRepairsPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Customer Online Statement Details \\r\\n
\\r\\n Debtors Controller: {{currentDebtor}} \\r\\n Selected Debtor: {{currentDebtor}} \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Last 90 days selected: {{startDate}} - {{endDate}}\\r\\n \\r\\n
\\r\\n
\\r\\n
= 1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n Email\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
To view your Tax Invoices and Credit Notes online, click here for the Online Portal
\\r\\n Please be sure to enter your unique OTP: valid for 5 days only.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

INVOICE:

\\r\\n

CREDIT NOTE:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.invalid-email {\\n color: red; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvc3RhdGVtZW50cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGN1c3RvbWVyc1xcc3RhdGVtZW50c1xcY3VzdG9tZXItc3RhdGVtZW50cy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFPSSxnQkFBZ0IsRUFBQTs7QUFLcEI7RUFDRSxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxTQUFTLEVBQUE7O0FBR1g7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsVUFBVSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvc3RhdGVtZW50cy9jdXN0b21lci1zdGF0ZW1lbnRzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICBhIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XHJcbiAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gIGNvbG9yOiAjNzc3O1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLmxvY2tlZC1vdXQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5pbnZhbGlkLWVtYWlsIHtcclxuICBjb2xvcjogcmVkO1xyXG59XHJcbiJdfQ== */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { CustomerMovements } from 'src/app/models/customer-movements.model';\r\nimport { CustomerPayments } from 'src/app/models/customer-payments.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { Email } from '../../../models/email.model';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { CustomerOTPReference } from '../../../models/customerOTPReference.model';\r\nimport { CustomerOTPHeader } from '../../../models/customerOTPHeader.model';\r\n\r\n\r\n@Component({\r\n selector: 'customer-statements',\r\n templateUrl: './customer-statements.component.html',\r\n styleUrls: ['./customer-statements.component.scss']\r\n})\r\nexport class SysproCustomerStatementsComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: CustomerPayments[] = [];\r\n rowsCache: CustomerPayments[] = [];\r\n customerPaymentsList: CustomerPayments[];\r\n\r\n\r\n rowsStatements: CustomerOTPReference[] = [];\r\n rowsStatementsCache: CustomerOTPReference[] = [];\r\n rowsStatementsList: CustomerOTPReference[];\r\n\r\n\r\n rowsHeader: CustomerOTPHeader[] = [];\r\n rowsHeaderCache: CustomerOTPHeader[] = [];\r\n rowsHeaderList: CustomerOTPHeader[];\r\n\r\n loadingIndicator: boolean;\r\n\r\n currentMonth: string;\r\n startDate: string;\r\n endDate: string;\r\n\r\n\r\n @ViewChild('paymentsModal')\r\n paymentsModal: ModalDirective;\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n @ViewChild('pdfModal')\r\n pdfModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n @ViewChild('removeTemplate')\r\n removeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('paymentsTemplate')\r\n paymentsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n selectedCustomer: string;\r\n \r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n isSearch: boolean; \r\n id: string;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n @ViewChild('debtorSelector')\r\n private debtorSelector;\r\n\r\n debtorsList: string[] = [];\r\n debtorSelected: string;\r\n private selectAllOptionValue: string = \"All Debtors\";\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @ViewChild('salesOrderModal')\r\n salesOrderModal: ModalDirective;\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n //moment = _moment;\r\n selected: { startDate: Moment, endDate: Moment };\r\n ranges = {\r\n 'All Dates': [moment().subtract(5, 'year').startOf('month'), moment()],\r\n //'Today': [moment(), moment()],\r\n //'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n //'Last 30 Days': [moment().subtract(29, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 12 Months': [moment().subtract(12, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 2 Years': [moment().subtract(24, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Years': [moment().subtract(36, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n };\r\n locale: LocaleConfig = {\r\n applyLabel: 'Done'\r\n };\r\n start: Date;\r\n end: Date;\r\n inlineDate: any;\r\n inlineDateTime: any;\r\n show: boolean;\r\n chkDb: boolean;\r\n chkCr: boolean;\r\n emailObject: Email = new Email();\r\n\r\n\r\n chkInvalid: boolean;\r\n chkSent: boolean;\r\n\r\n customerOTP: string;\r\n src: string;\r\n selectedInvoice: string;\r\n selectedSalesOrder: string;\r\n isCreditNote: boolean;\r\n url: string;\r\n showCustomerDiv: boolean;\r\n headerToSend: CustomerOTPHeader;\r\n smartsearch: any;\r\n sendingCount: number;\r\n sentCount: number;\r\n chkNoRecords: boolean;\r\n currentDebtor: string;\r\n isAdministrator: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private reportService: ReportService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.searchType = \"customer\";\r\n\r\n this.loadFresh();\r\n\r\n //Add search\r\n //Add export\r\n\r\n //Update status to sending / sent\r\n //Have results list after email sent\r\n //Disable page while sending\r\n //Test bulk sending\r\n //Clear statement list\r\n //Regenerate statement list\r\n //Flag invalid email addresses\r\n\r\n //Payments preview when clicking on customer??\r\n\r\n //Add and load for specific debtors\r\n\r\n\r\n }\r\n\r\n private loadFresh() {\r\n\r\n\r\n this.selected = {\r\n startDate: moment().subtract(3, 'month').startOf('month'),\r\n endDate: moment().subtract(1, 'month').endOf('month')\r\n };\r\n\r\n var start = new Date(this.selected.startDate.toString());\r\n var end = new Date(this.selected.endDate.toString());\r\n\r\n let currentDate = new Date();\r\n this.currentMonth = currentDate.toLocaleString('default', { month: 'long' });\r\n this.startDate = start.toLocaleDateString('en-GB', { day: '2-digit', month: 'short', year: '2-digit' });\r\n this.endDate = end.toLocaleDateString('en-GB', { day: '2-digit', month: 'short', year: '2-digit' });\r\n\r\n\r\n this.debtorsList = [];\r\n this.debtorSelected = this.selectAllOptionValue;\r\n this.currentDebtor = ''; \r\n\r\n this.loadCollumns();\r\n\r\n this.sysproService.getCustomersLoadedForStatements(this.application, start.toJSON(), end.toJSON()).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n refresh() {\r\n this.loadFresh();\r\n }\r\n\r\n toggleNewCustomer() {\r\n this.showCustomerDiv = !this.showCustomerDiv;\r\n }\r\n\r\n onDataLoadSuccessful(customers: any[]) {\r\n if (customers && customers.length >= 1 && customers[0].length >= 1) {\r\n\r\n this.currentDebtor = this.accountService.currentUser.email;\r\n\r\n //Get user role\r\n var currentRole = this.accountService.currentUser.roles[0];\r\n if (currentRole == \"Debtors\") {\r\n\r\n this.rowsHeader = customers[0];\r\n this.rowsHeader = this.rowsHeader.filter(c => c.createdBy == this.currentDebtor);\r\n this.rowsHeaderCache = [...this.rowsHeader];\r\n this.isAdministrator = false;\r\n }\r\n else {\r\n if (currentRole.includes(\"Admin\")) {\r\n\r\n this.rowsHeader = customers[0];\r\n this.rowsHeaderCache = [...this.rowsHeader];\r\n this.isAdministrator = true;\r\n this.currentDebtor = this.selectAllOptionValue;\r\n\r\n //Load list of debtors\r\n const createdByList = Array.from(new Set(this.rowsHeader.map((c: any) => c.createdBy)));\r\n this.debtorsList.push(this.currentDebtor);\r\n this.debtorsList = [...this.debtorsList, ...createdByList];\r\n setTimeout(() => {\r\n this.debtorSelector.refresh();\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('No results', 'No customer statements loaded for the selected dated range',\r\n MessageSeverity.warn);\r\n }\r\n\r\n this.onSearchChanged('');\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n private loadCollumns() {\r\n this.columns = [\r\n { prop: 'customerCode', name: 'Customer', width: 80, cellClass: \"left\", cellTemplate: this.paymentsTemplate },\r\n { name: 'Delete', width: 50, cellClass: \"left\", cellTemplate: this.removeTemplate },\r\n { prop: 'statement', name: 'Statement', width: 200, cellClass: \"left\", cellTemplate: this.selectTemplate },\r\n { prop: 'otpHeaderReference', name: 'Reference', width: 100, cellClass: \"left\" },\r\n { prop: 'dateFrom', name: 'From', width: 80, cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'dateTo', name: 'To', width: 80, cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'updatedStatus', name: 'Records', width: 100, cellClass: \"left\" },\r\n { prop: 'updatedCustomerStatus', name: 'Status', width: 100, cellClass: \"left\", cellTemplate: this.statusTemplate },\r\n { prop: 'sentTo', name: 'Email', width: 230, cellClass: \"left\" },\r\n ];\r\n\r\n this.columns.push({ name: 'Send Email', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.loadCollumns();\r\n }\r\n\r\n filterByDebtorSelected() {\r\n if (this.debtorSelected) {\r\n this.currentDebtor = this.debtorSelected;\r\n if (this.debtorSelected != this.selectAllOptionValue) {\r\n this.rowsHeader = this.rowsHeaderCache.filter(c => c.createdBy == this.debtorSelected);\r\n }\r\n else {\r\n\r\n this.rowsHeader = this.rowsHeaderCache;\r\n }\r\n }\r\n }\r\n\r\n filterSent() {\r\n this.chkSent = !this.chkSent;\r\n\r\n if (this.chkSent == true) {\r\n this.rowsHeader = this.rowsHeader.filter(f => f.updatedCustomerStatus != \"Email Sent\");\r\n }\r\n else {\r\n this.rowsHeader = this.rowsHeaderCache;\r\n }\r\n }\r\n\r\n filterInvalid() {\r\n this.chkInvalid = !this.chkInvalid;\r\n this.onSearchChanged('');\r\n }\r\n\r\n filterNoRecords() {\r\n this.chkNoRecords = !this.chkNoRecords;\r\n this.onSearchChanged('');\r\n }\r\n\r\n\r\n //previewCustomerPayment(row: CustomerOTPHeader) {\r\n // this.selectedCustomer = row.customerCode;\r\n\r\n // if (!!this.selectedCustomer) {\r\n // if (!this.paymentsModal) {\r\n // setTimeout(() => {\r\n // if (this.paymentsModal) {\r\n // this.paymentsModal.show();\r\n // }\r\n // });\r\n // }\r\n // else {\r\n // this.paymentsModal.show();\r\n // }\r\n // }\r\n //}\r\n\r\n //paymentsModalHide() {\r\n // this.selectedCustomer = null;\r\n // this.paymentsModal.hide();\r\n //}\r\n\r\n //goToCustomerPayment() {\r\n // if (sessionStorage.getItem(localStorageActions.Customer) != this.selectedCustomer ) {\r\n // sessionStorage.setItem(localStorageActions.Customer, this.selectedCustomer );\r\n // }\r\n\r\n // this.router.navigate(['../../customers'], { fragment: 'payments', queryParams: { customer: this.selectedCustomer } });\r\n //}\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rowsHeader = this.rowsHeaderCache.filter(r => Utilities.searchArray(value, false, r.customerCode, r.updatedStatus, r.updatedCustomerStatus, r.customerName, r.otpHeaderReference, r.sentTo));\r\n }\r\n\r\n else {\r\n this.rowsHeader = this.rowsHeaderCache;\r\n }\r\n //if (this.chkInvalid == true) {\r\n // this.rowsHeader = this.rowsHeader.filter(f => f.updatedStatus != \"Invalid Email\");\r\n //}\r\n\r\n //if (this.chkSent == true) {\r\n // this.rowsHeader = this.rowsHeader.filter(f => f.updatedStatus != \"Email Sent\");\r\n //}\r\n\r\n //if (this.chkNoRecords == true) {\r\n // this.rowsHeader = this.rowsHeader.filter(f => f.updatedStatus != \"No Records\");\r\n //}\r\n }\r\n\r\n getStatement(otp: CustomerOTPHeader): void {\r\n\r\n this.reportService.getFileStreamStatement(otp.statement).subscribe(x => this.onStatementSuccessful(x, false, otp.statement), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onStatementSuccessful(x: Blob, preview: boolean, statement: string): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = statement;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n removeCustomer(header?: CustomerOTPHeader) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.RemoveOTPCustomer(header).subscribe(x => {\r\n this.alertService.showStickyMessage('', 'Customer Removed',\r\n MessageSeverity.success);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.loadFresh();\r\n }, error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.loadFresh();});\r\n\r\n\r\n }\r\n //onHeaderRemovedSuccess(x: any): void {\r\n // this.alertService.showStickyMessage('', 'Customer Removed',\r\n // MessageSeverity.success);\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n // this.loadFresh();\r\n //}\r\n\r\n async sendAllStatements() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n var sendingList = this.rowsHeader.filter(l => l.updatedCustomerStatus != 'Email Sent' && l.statement != \"\");\r\n\r\n this.sendingCount = sendingList.length;\r\n var sentCount = 0;\r\n\r\n for (var header of sendingList) {\r\n sentCount++;\r\n if (header.updatedStatus != 'No Records' && header.updatedStatus != \"\") {\r\n var emailObject = new Email();\r\n var customerOTP = header.otpHeaderReference;\r\n emailObject.RecepientEmail = header.sentTo;\r\n\r\n if (this.isValidEmail(emailObject.RecepientEmail)) {\r\n // send email\r\n //For Testing!!\r\n // emailObject.RecepientEmail = \"lara@wyldeweb.co.za; lara.vanniekerk@startupservices.co.za\";\r\n\r\n emailObject.CC = \"\";\r\n emailObject.BCC = this.accountService.currentUser.email;\r\n emailObject.Subject = \"Customer Account: \" + header.customerCode;\r\n emailObject.SenderName = this.accountService.currentUser.fullName;\r\n emailObject.SenderEmail = this.accountService.currentUser.email;\r\n emailObject.SenderBranch = this.branchCode;\r\n emailObject.SenderCompany = this.application;\r\n emailObject.Attachment = header.statement;\r\n\r\n this.url = (this.application == \"FowkesOnline\" ? \"https://nextgen.fowkes.co.za/viewportal\" : \"https://nextgen.maxarcus.co.za/viewportal\");\r\n\r\n emailObject.Bod = header.otpHeaderReference;\r\n emailObject.EmailType = \"Statement\";\r\n\r\n if (emailObject.RecepientEmail && emailObject.RecepientEmail.trim().length >= 1) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n header.updatedCustomerStatus = \"...Sending\";\r\n\r\n // this.sysproService.sendEmail(emailObject).subscribe(x => this.onBatchSentSuccessful(x, header, sentCount), error => this.onBatchSendFailed(error, header, sentCount));\r\n const emailPromise = new Promise((resolve, reject) => {\r\n this.sysproService.sendEmail(emailObject).subscribe(x => {\r\n this.onBatchSentSuccessful(x, header, sentCount);\r\n resolve();\r\n }, error => {\r\n this.onBatchSendFailed(error, header, sentCount);\r\n reject();\r\n });\r\n });\r\n\r\n await emailPromise; // pause loop until emailPromise is resolved\r\n }\r\n \r\n else {\r\n //this.alertService.showMessage('Warning', `Remeber to add email address for recepient`, MessageSeverity.warn);\r\n }\r\n } else {\r\n header.updatedCustomerStatus = \"Invalid Email\";\r\n this.alertService.showStickyMessage('Error', `Invalid email address: ${header.customerCode}`, MessageSeverity.error);\r\n this.fowkesService.UpdateOTPCustomer(header).subscribe(x => this.onHeaderUpdatedSuccess(x, sentCount), error => this.onDataLoadFailed(error));\r\n }\r\n \r\n }\r\n else {\r\n\r\n }\r\n }\r\n \r\n }\r\n\r\n isValidEmail(emails: string): boolean {\r\n const emailArray = emails.split(/[;,]/); // Splitting the input string by either semicolons or commas\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/; // Regular expression for validating email addresses\r\n\r\n for (const email of emailArray) {\r\n const trimmedEmail = email.trim().replace(/['><]/g, ''); // Remove leading/trailing whitespace from each email address\r\n\r\n if (!emailRegex.test(trimmedEmail)) {\r\n return false; // Return false if any email address is invalid\r\n }\r\n }\r\n\r\n return true; // All email addresses are valid\r\n}\r\n\r\n onBatchSendFailed(error: any, header: CustomerOTPHeader, count: number): void {\r\n //Update Header Status\r\n header.updatedCustomerStatus = \"Email Failed\";\r\n this.fowkesService.UpdateOTPCustomer(header).subscribe(x => this.onHeaderUpdatedSuccess(x, count), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onBatchSentSuccessful(x: Email, header: CustomerOTPHeader, count: number): void {\r\n //Update Header Status\r\n header.updatedCustomerStatus = \"Email Sent\";\r\n this.fowkesService.UpdateOTPCustomer(header).subscribe(x => this.onHeaderUpdatedSuccess(x, count), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onHeaderUpdatedSuccess(x: any, count: number): void {\r\n\r\n console.log(count);\r\n console.log(x);\r\n if (count === this.sendingCount) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', count + ` Emails sent successfully`, MessageSeverity.success);\r\n\r\n this.loadFresh();\r\n }\r\n else {\r\n console.log(count);\r\n }\r\n }\r\n\r\n sendEmail(header?: CustomerOTPHeader) {\r\n\r\n this.headerToSend = new CustomerOTPHeader();\r\n\r\n if (header.customerCode) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true; \r\n this.customerOTP = header.otpHeaderReference;\r\n\r\n //this.emailObject.RecepientName = header.;\r\n this.emailObject.RecepientEmail = header.sentTo;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = this.accountService.currentUser.email;\r\n this.emailObject.Subject = \"Customer Account: \" + header.customerCode;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = header.statement;\r\n\r\n this.url = (this.application == \"FowkesOnline\" ? \"https://nextgen.fowkes.co.za/viewportal\" : \"https://nextgen.maxarcus.co.za/viewportal\");\r\n\r\n // this.emailObject.Bod = \"These documents can be viewed online at \" + this.url + \", please be sure to enter your unique OTP: \" + this.customerOTP + \" valid for 5 days only.\";\r\n this.emailObject.Bod = header.otpHeaderReference;\r\n this.emailObject.EmailType = \"Statement\";\r\n\r\n this.emailModal.show();\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.headerToSend = header;\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResults = null;\r\n this.searchResultSelected = null; \r\n\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n this.searchResults = x;\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.loadCustomer();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Customer could not be found',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n \r\n private loadCustomer() {\r\n this.id = this.searchResultSelected.customer;\r\n this.currentCustomer = this.id;\r\n\r\n //Check if customer is already in the list?\r\n var chk = this.rowsHeaderCache.filter(c => c.customerCode == this.currentCustomer);\r\n if (chk && chk.length >= 1) {\r\n this.alertService.showStickyMessage('', 'Customer already in the list',\r\n MessageSeverity.warn);\r\n }\r\n else {\r\n this.alertService.startLoadingMessage(\"Creating customer records...\");\r\n this.loadingIndicator = true;\r\n\r\n this.customerHeading = this.searchResultSelected;\r\n\r\n var uniqueCode = this.currentCustomer + \"-\" + this.generateOTP();\r\n var code = uniqueCode;\r\n\r\n var filename = \"CustomerAccount_\" + code + \".pdf\";\r\n\r\n //Create New Customer Header OTP Record\r\n var OTPHeader = new CustomerOTPHeader();\r\n OTPHeader.application = this.application;\r\n OTPHeader.dateFrom = new Date(this.selected.startDate.toString());\r\n OTPHeader.dateTo = new Date(this.selected.endDate.toString());\r\n OTPHeader.customerCode = this.customerHeading.customer;\r\n OTPHeader.customerName = this.customerHeading.customerName;\r\n OTPHeader.statement = filename;\r\n OTPHeader.otpHeaderReference = code;\r\n OTPHeader.createdBy = this.accountService.currentUser.email;\r\n OTPHeader.sentTo = this.customerHeading.email;\r\n OTPHeader.status = this.currentMonth + \"Statements\";\r\n\r\n //UpdateRecord\r\n this.fowkesService.newOTPHeader(OTPHeader).subscribe(x => this.onHeaderSuccess(x), error => this.onDataLoadFailed(error)); \r\n }\r\n }\r\n\r\n onHeaderSuccess(OTPHeader: CustomerOTPHeader): void {\r\n\r\n if (OTPHeader && OTPHeader.otpHeaderReference) {\r\n this.alertService.showStickyMessage('', 'Customer record created',\r\n MessageSeverity.success);\r\n\r\n this.alertService.startLoadingMessage(\"Creating customer statement...\");\r\n this.loadingIndicator = true;\r\n\r\n this.reportService.getStatementPDF(OTPHeader.customerCode, this.application, OTPHeader.dateFrom.toString(), OTPHeader.dateTo.toString(), OTPHeader.otpHeaderReference).subscribe(x => {\r\n\r\n this.getPaymentsAndGenerateDocuments(OTPHeader);\r\n\r\n }, error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n \r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.loadFresh();\r\n }\r\n }\r\n\r\n getPaymentsAndGenerateDocuments(OTPHeader: CustomerOTPHeader) {\r\n if (OTPHeader && OTPHeader.otpHeaderReference) {\r\n this.alertService.showStickyMessage('', 'Customer statement created',\r\n MessageSeverity.success);\r\n\r\n this.alertService.startLoadingMessage(\"Creating related documents...\");\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getCustomerPayments(OTPHeader.dateFrom.toString(), OTPHeader.dateTo.toString(), OTPHeader.customerCode).subscribe(x => this.onPaymentsLoadSuccessful([x], OTPHeader.otpHeaderReference), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n \r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.loadFresh();\r\n }\r\n }\r\n onPaymentsLoadSuccessful(customers: any[], code?: string): void {\r\n\r\n this.customerPaymentsList = customers[0];\r\n\r\n if (this.customerPaymentsList && this.customerPaymentsList.length >= 1) {\r\n\r\n this.customerPaymentsList.forEach((customer, index, customers) => {\r\n (customer).index = index + 1;\r\n });\r\n\r\n for (var row of this.customerPaymentsList) {\r\n\r\n if (row.invoice != \"\" && row.transaction == \"Invoice\") {\r\n\r\n var OTPDetails = new CustomerOTPReference();\r\n OTPDetails.application = this.application;\r\n OTPDetails.dateFrom = new Date(this.selected.startDate.toString());\r\n OTPDetails.dateTo = new Date(this.selected.endDate.toString());\r\n OTPDetails.customerCode = this.currentCustomer;\r\n OTPDetails.documentNumber = \"Invoice_\" + row.invoice + \".pdf\";\r\n OTPDetails.otpReference = code;\r\n OTPDetails.createdBy = this.accountService.currentUser.email;\r\n OTPDetails.sentTo = this.customerHeading.email;\r\n OTPDetails.status = this.currentMonth + \"Statements\";\r\n\r\n //UpdateRecord\r\n this.fowkesService.newOTPDetail(OTPDetails).subscribe(x => this.onReferenceSuccess(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n if (row.invoice != \"\" && row.transaction == \"Credit\") {\r\n\r\n var OTPDetails = new CustomerOTPReference();\r\n OTPDetails.application = this.application;\r\n OTPDetails.dateFrom = new Date(this.selected.startDate.toString());\r\n OTPDetails.dateTo = new Date(this.selected.endDate.toString());\r\n OTPDetails.customerCode = this.currentCustomer;\r\n OTPDetails.documentNumber = \"InvoiceCredit_\" + row.invoice + \".pdf\";\r\n OTPDetails.otpReference = code;\r\n OTPDetails.createdBy = this.accountService.currentUser.email;\r\n OTPDetails.sentTo = this.customerHeading.email;\r\n OTPDetails.status = this.currentMonth + \"Statements\";\r\n\r\n //UpdateRecord\r\n this.fowkesService.newOTPDetail(OTPDetails).subscribe(x => this.onReferenceSuccess(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.loadFresh();\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No payment details for the search criteria',\r\n MessageSeverity.warn);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.loadFresh();\r\n }\r\n }\r\n\r\n\r\n \r\n\r\n onStatementsLoadSuccessful(statements: any[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsStatementsList = statements[0];\r\n\r\n this.rowsStatementsCache = [...this.rowsStatementsList];\r\n this.rowsStatements = this.rowsStatementsCache;\r\n\r\n }\r\n\r\n\r\n viewCustomerSelected() {\r\n if (this.searchResultSelected) {\r\n this.loadCustomer();\r\n }\r\n }\r\n\r\n\r\n onCustomerLoadSuccessful(x: ArCustomer[]): void {\r\n this.customerSearch = x;\r\n this.customerHeading = this.customerSearch.find(x => x.customer == this.currentCustomer);\r\n setTimeout(() => {\r\n if (this.customerSelector) {\r\n this.customerSelector.refresh();\r\n }\r\n });\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n \r\n onReferenceSuccess(x: CustomerOTPReference, arg1: boolean): void {\r\n\r\n \r\n\r\n }\r\n\r\n generateOTP() {\r\n\r\n // Declare a digits variable \r\n // which stores all digits\r\n var digits = '0123456789';\r\n let OTP = '';\r\n for (let i = 0; i < 4; i++) {\r\n OTP += digits[Math.floor(Math.random() * 10)];\r\n }\r\n return OTP;\r\n }\r\n\r\n\r\n viewPDF() {\r\n this.reportService.getFileStreamStatement(this.emailObject.Attachment).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n\r\n this.reportService.getFileStreamStatement(this.emailObject.Attachment).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n\r\n if (this.emailObject.RecepientEmail && this.emailObject.RecepientEmail.trim().length >= 1) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sendingCount = 1;\r\n\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Remeber to add email address for recepient`, MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n\r\n //Update Header Status\r\n this.headerToSend.updatedCustomerStatus = \"Email Sent\";\r\n this.fowkesService.UpdateOTPCustomer(this.headerToSend).subscribe(x => this.onHeaderUpdatedSuccess(x, 1), error => this.onDataLoadFailed(error));\r\n\r\n \r\n\r\n }\r\n\r\n //getPDF(x: Blob, code: string): void {\r\n\r\n // this.reportService.getFileStreamStatement(code).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n //}\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.emailObject.Attachment;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n //previewSalesOrder(row: CustomerPayments) {\r\n\r\n // this.selectedInvoice = row.invoice;\r\n // this.selectedSalesOrder = row.salesOrder;\r\n // this.isCreditNote = (row.transaction == \"Credit\" ? true : false);\r\n\r\n // if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != row.salesOrder) {\r\n // sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.salesOrder);\r\n // }\r\n\r\n // if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != row.invoice) {\r\n // sessionStorage.setItem(localStorageActions.InvoiceNumber, row.invoice);\r\n // }\r\n\r\n // if (!!this.selectedSalesOrder) {\r\n // if (!this.salesOrderModal) {\r\n // setTimeout(() => {\r\n // if (this.salesOrderModal) {\r\n // this.salesOrderModal.show();\r\n // }\r\n // });\r\n // }\r\n // else {\r\n // this.salesOrderModal.show();\r\n // }\r\n // }\r\n //}\r\n\r\n //salesOrderModalHide() {\r\n // this.selectedSalesOrder = null;\r\n // this.selectedInvoice = null;\r\n // this.isCreditNote = false;\r\n\r\n // this.salesOrderModal.hide();\r\n //}\r\n\r\n\r\n //viewSalesOrder() {\r\n\r\n // this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: \"FBWEB\" } });\r\n //}\r\n\r\n\r\n exportList() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Customer\", \"Name\", \"Debtor\", \"Statement\", \"Records\", \"Status\", \"Reference\", \"CreateDate\", \"DateFrom\", \"DateTo\", \"CustomerEmail\", \"ViewOnline\"]\r\n };\r\n\r\n var url = (this.application == \"FowkesOnline\" ? \"https://nextgen.fowkes.co.za/viewportal\" : \"https://nextgen.maxarcus.co.za/viewportal\");\r\n var filename = this.currentMonth + \"Statements\";\r\n var selectRows = [...this.rowsHeader];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.createDate).toISOString().split('T')[0];\r\n let dateFrom = new Date(row.dateFrom).toISOString().split('T')[0];\r\n let dateTo = new Date(row.dateTo).toISOString().split('T')[0];\r\n exportRows.push({\r\n Customer: row.customerCode, Name: row.customerName, Debtor: row.createdBy, Statement: row.statement, Records: row.updatedStatus, Status: row.updatedCustomerStatus, Reference: row.otpHeaderReference,\r\n CreateDate: date,\r\n DateFrom: dateFrom, DateTo: dateTo, CustomerEmail: row.sentTo.replace(/;/g, \"|\").replace(/,/g, \"|\"), ViewOnline: url });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n get canCreateStatementsCustomers() {\r\n return this.accountService.userHasPermission(Permission.customerStatementsPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
Power Tool Repairs: {{customerHeading.customer}} - {{customerHeading.customerName}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.customerCode}} : {{row.customerName}}\\r\\n \\r\\n \\r\\n \\r\\n {{value | currency:'R':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{row.statusName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd'}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n ({{ jobCardDetail.jobCardNumber }}) - {{ jobCardDetail.machineDescription }} - {{jobCardDetail.statusName}}\\r\\n

\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
0\\\" class=\\\"section\\\">\\r\\n
\\r\\n Job Status History\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DateStatus
{{ history.changeDate | date: 'yyyy-MM-dd HH:mm' }}{{ history.newStatus }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Associated Documents
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View Job Card Customer Slip : {{jobCardDetail.jobCardNumber}}

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

Search Quote for :   {{jobCardDetail.company}}/{{jobCardDetail.customerCode}}/{{jobCardDetail.jobCardNumber}}

\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
= 1\\\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Search Invoice for :   {{jobCardDetail.customerCode}}/{{jobCardDetail.jobCardNumber}}

\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
= 1\\\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

ITS:

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

View Purchase Order for :   {{jobCardDetail.customerCode}}/{{jobCardDetail.jobCardNumber}}

\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.invalid-email {\\n color: red; }\\n\\n.customer-search {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: 20px;\\n /* Spacing above the section */\\n background-color: #f9f9f9;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 15px; }\\n\\n.customer-search .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.compact-line-height p {\\n line-height: 1.2;\\n margin-bottom: 0.6rem; }\\n\\n.customer-heading {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: 20px;\\n /* Spacing above the section */\\n background-color: #f0f8ff;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.customer-heading .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.supplier-search {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: 20px;\\n /* Spacing above the section */\\n background-color: #dee2e6;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 20px; }\\n\\n.supplier-search .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.supplier-section {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n background-color: white;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.supplier-section .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.job-card {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: -5px;\\n background-color: white;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.job-card .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n#invoiceDetail {\\n margin-bottom: 0; }\\n\\n#invoiceDetail td, #invoiceDetail th {\\n padding-top: 5px;\\n padding-bottom: 5px; }\\n\\n#invoiceDetail tbody tr {\\n height: 30px;\\n /* Set the height of rows */ }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jdXN0b21lcnMvdG9vbC1yZXBhaXJzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcY3VzdG9tZXJzXFx0b29sLXJlcGFpcnNcXGN1c3RvbWVyLXRvb2wtcmVwYWlycy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFPSSxnQkFBZ0IsRUFBQTs7QUFLcEI7RUFDRSxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxTQUFTLEVBQUE7O0FBR1g7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsVUFBVSxFQUFBOztBQUlaO0VBQ0Usc0JBQXNCO0VBQUUsc0JBQUE7RUFDeEIsYUFBYTtFQUFFLHFDQUFBO0VBQ2YsZ0JBQWdCO0VBQUUsOEJBQUE7RUFDbEIseUJBQXlCO0VBQUUseUNBQUE7RUFDM0Isa0JBQWtCO0VBQUUsZ0NBQUE7RUFDcEIsb0JBQW9CLEVBQUE7O0FBTnRCO0lBU0ksbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixTQUFTLEVBQUE7O0FBSWI7RUFDRSxnQkFBZ0I7RUFDaEIscUJBQXFCLEVBQUE7O0FBR3ZCO0VBQ0Usc0JBQXNCO0VBQUUsc0JBQUE7RUFDeEIsYUFBYTtFQUFFLHFDQUFBO0VBQ2YsZ0JBQWdCO0VBQUUsOEJBQUE7RUFDbEIseUJBQXlCO0VBQUUseUNBQUE7RUFDM0Isa0JBQWtCO0VBQUUsZ0NBQUE7RUFDcEIsbUJBQW1CLEVBQUE7O0FBTnJCO0lBU0ksbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixTQUFTLEVBQUE7O0FBS2I7RUFDRSxzQkFBc0I7RUFBRSxzQkFBQTtFQUN4QixhQUFhO0VBQUUscUNBQUE7RUFDZixnQkFBZ0I7RUFBRSw4QkFBQTtFQUNsQix5QkFBeUI7RUFBRSx5Q0FBQTtFQUMzQixrQkFBa0I7RUFBRSxnQ0FBQTtFQUNwQixvQkFBb0IsRUFBQTs7QUFOdEI7SUFTSSxtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFNBQVMsRUFBQTs7QUFJYjtFQUNFLHNCQUFzQjtFQUFFLHNCQUFBO0VBQ3hCLGFBQWE7RUFBRSxxQ0FBQTtFQUVmLHVCQUF1QjtFQUFFLHlDQUFBO0VBQ3pCLGtCQUFrQjtFQUFFLGdDQUFBO0VBQ3BCLG1CQUFtQixFQUFBOztBQU5yQjtJQVNJLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osU0FBUyxFQUFBOztBQUliO0VBQ0Usc0JBQXNCO0VBQUUsc0JBQUE7RUFDeEIsYUFBYTtFQUFFLHFDQUFBO0VBQ2YsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtFQUFFLHlDQUFBO0VBQ3pCLGtCQUFrQjtFQUFFLGdDQUFBO0VBQ3BCLG1CQUFtQixFQUFBOztBQU5yQjtJQVNJLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osU0FBUyxFQUFBOztBQUliO0VBQ0UsZ0JBQWdCLEVBQUE7O0FBR2xCO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLFlBQVk7RUFBRSwyQkFBQSxFQUE0QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXJzL3Rvb2wtcmVwYWlycy9jdXN0b21lci10b29sLXJlcGFpcnMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcblxyXG4gIGEge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgY29sb3I6ICM3Nzc7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmludmFsaWQtZW1haWwge1xyXG4gIGNvbG9yOiByZWQ7XHJcbn1cclxuXHJcblxyXG4uY3VzdG9tZXItc2VhcmNoIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyAvKiBMaWdodCBncmV5IGJvcmRlciAqL1xyXG4gIHBhZGRpbmc6IDE1cHg7IC8qIFBhZGRpbmcgaW5zaWRlIHRoZSBib3JkZXJlZCBhcmVhICovXHJcbiAgbWFyZ2luLXRvcDogMjBweDsgLyogU3BhY2luZyBhYm92ZSB0aGUgc2VjdGlvbiAqL1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IC8qIFNsaWdodCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBjb250cmFzdCAqL1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDsgLyogUm91bmRlZCBjb3JuZXJzIGZvciB0aGUgYm94ICovXHJcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcblxyXG4gIC5maWVsZC1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IHh4LXNtYWxsO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbn1cclxuLmNvbXBhY3QtbGluZS1oZWlnaHQgcCB7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XHJcbn1cclxuXHJcbi5jdXN0b21lci1oZWFkaW5nIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyAvKiBMaWdodCBncmV5IGJvcmRlciAqL1xyXG4gIHBhZGRpbmc6IDE1cHg7IC8qIFBhZGRpbmcgaW5zaWRlIHRoZSBib3JkZXJlZCBhcmVhICovXHJcbiAgbWFyZ2luLXRvcDogMjBweDsgLyogU3BhY2luZyBhYm92ZSB0aGUgc2VjdGlvbiAqL1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGY4ZmY7IC8qIFNsaWdodCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBjb250cmFzdCAqL1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDsgLyogUm91bmRlZCBjb3JuZXJzIGZvciB0aGUgYm94ICovXHJcbiAgcGFkZGluZy1ib3R0b206IDBweDtcclxuXHJcbiAgLmZpZWxkLWxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogeHgtc21hbGw7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnN1cHBsaWVyLXNlYXJjaCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgLyogTGlnaHQgZ3JleSBib3JkZXIgKi9cclxuICBwYWRkaW5nOiAxNXB4OyAvKiBQYWRkaW5nIGluc2lkZSB0aGUgYm9yZGVyZWQgYXJlYSAqL1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7IC8qIFNwYWNpbmcgYWJvdmUgdGhlIHNlY3Rpb24gKi9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlMmU2OyAvKiBTbGlnaHQgYmFja2dyb3VuZCBjb2xvciBmb3IgY29udHJhc3QgKi9cclxuICBib3JkZXItcmFkaXVzOiA1cHg7IC8qIFJvdW5kZWQgY29ybmVycyBmb3IgdGhlIGJveCAqL1xyXG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG5cclxuICAuZmllbGQtbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiB4eC1zbWFsbDtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbn1cclxuXHJcbi5zdXBwbGllci1zZWN0aW9uIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyAvKiBMaWdodCBncmV5IGJvcmRlciAqL1xyXG4gIHBhZGRpbmc6IDE1cHg7IC8qIFBhZGRpbmcgaW5zaWRlIHRoZSBib3JkZXJlZCBhcmVhICovXHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyAvKiBTbGlnaHQgYmFja2dyb3VuZCBjb2xvciBmb3IgY29udHJhc3QgKi9cclxuICBib3JkZXItcmFkaXVzOiA1cHg7IC8qIFJvdW5kZWQgY29ybmVycyBmb3IgdGhlIGJveCAqL1xyXG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XHJcblxyXG4gIC5maWVsZC1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IHh4LXNtYWxsO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmpvYi1jYXJkIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyAvKiBMaWdodCBncmV5IGJvcmRlciAqL1xyXG4gIHBhZGRpbmc6IDE1cHg7IC8qIFBhZGRpbmcgaW5zaWRlIHRoZSBib3JkZXJlZCBhcmVhICovXHJcbiAgbWFyZ2luLXRvcDogLTVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgLyogU2xpZ2h0IGJhY2tncm91bmQgY29sb3IgZm9yIGNvbnRyYXN0ICovXHJcbiAgYm9yZGVyLXJhZGl1czogNXB4OyAvKiBSb3VuZGVkIGNvcm5lcnMgZm9yIHRoZSBib3ggKi9cclxuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG5cclxuICAuZmllbGQtbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiB4eC1zbWFsbDtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbn1cclxuXHJcbiNpbnZvaWNlRGV0YWlsIHtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4jaW52b2ljZURldGFpbCB0ZCwgI2ludm9pY2VEZXRhaWwgdGgge1xyXG4gIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDVweDtcclxufVxyXG5cclxuI2ludm9pY2VEZXRhaWwgdGJvZHkgdHIge1xyXG4gIGhlaWdodDogMzBweDsgLyogU2V0IHRoZSBoZWlnaHQgb2Ygcm93cyAqL1xyXG59XHJcbiJdfQ== */\"","import { AfterViewInit, Component, ElementRef, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { ArCustomer } from '../../../models/arcustomer.model';\r\nimport { CoreAudit } from '../../../models/core-audit.model';\r\nimport { Email } from '../../../models/email.model';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { CoreJCStatus, JobCard, JobCardStatusHistory, JobCardSuppliers } from '../../../models/job-card.model';\r\nimport { PurchaseOrderList } from '../../../models/purchaseorder-list.model';\r\nimport { QuoteList } from '../../../models/quote-list.model';\r\nimport { SalesOrderList } from '../../../models/salesorder-list.model';\r\nimport { Supplier } from '../../../models/supplier.model';\r\nimport { SysproUser } from '../../../models/syspro-user.model';\r\nimport { User } from '../../../models/user.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n@Component({\r\n selector: 'customer-tool-repairs',\r\n templateUrl: './customer-tool-repairs.component.html',\r\n styleUrls: ['./customer-tool-repairs.component.scss']\r\n})\r\nexport class SysproCustomerToolrepairsComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n ranges = {\r\n 'All Dates': [moment('2024-11-01').startOf('month'), moment()],\r\n 'Today': [moment().subtract(0, 'days'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n loadingIndicator: boolean;\r\n isHistoryPanelOpen: boolean = false;\r\n\r\n\r\n @ViewChild('searchInput')\r\n searchInput: ElementRef;\r\n searchValue: string = \"\";\r\n\r\n @Input() isViewOnly: boolean;\r\n\r\n auditObj = new CoreAudit();\r\n emailObject: Email = new Email();\r\n\r\n columns: any[] = [];\r\n rows: JobCard[] = [];\r\n rowsCache: JobCard[] = [];\r\n\r\n jobCard: JobCard;\r\n jobCardDetail: JobCard;\r\n\r\n @ViewChild('jobCardDetailModal') jobCardDetailModal: ModalDirective;\r\n\r\n statuses: CoreJCStatus[] = [];\r\n\r\n customersCache: ArCustomer[] = [];\r\n selectedCustomerCode: string = '';\r\n selectedCustomerName: string = '';\r\n\r\n @ViewChild('dateTemplate') dateTemplate: TemplateRef;\r\n @ViewChild('selectTemplate') selectTemplate: TemplateRef;\r\n @ViewChild('statusTemplate') statusTemplate: TemplateRef;\r\n @ViewChild('customerTemplate') customerTemplate: TemplateRef;\r\n @ViewChild('quoteTemplate') quoteTemplate: TemplateRef;\r\n @ViewChild('invoiceTemplate') invoiceTemplate: TemplateRef;\r\n @ViewChild('itsTemplate') itsTemplate: TemplateRef;\r\n @ViewChild('purchaseOrderTemplate') purchaseOrderTemplate: TemplateRef;\r\n\r\n @ViewChild('statusListSelector') private statusListSelector;\r\n selectedStatus: string = \"\";\r\n currentStatus: string;\r\n smartsearch: string = \"\";\r\n\r\n invoiceNumber: string;\r\n\r\n // Properties for search functionality\r\n searchCustomerType: string = 'customer'; // Default to customer code\r\n searchCustomerText: string = '';\r\n searchCustomerResults: ArCustomer[] = [];\r\n searchCustomerResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchByCustomerSelector') private searchByCustomerSelector;\r\n @ViewChild('customerSearchResultsSelector') private customerSearchResultsSelector;\r\n\r\n\r\n @ViewChild('quoteSearchModal') quoteSearchModal: ModalDirective;\r\n @Input() selectedQuote: string;\r\n showQuotePopup: boolean;\r\n\r\n searchQuoteType: string = 'customer'; // Default to customer code\r\n searchQuoteText: string = '';\r\n searchQuoteResults: QuoteList[] = [];\r\n searchQuoteResultSelected: QuoteList;\r\n quoteSearch: boolean;\r\n\r\n @ViewChild('searchByQuoteSelector')\r\n private searchByQuoteSelector;\r\n\r\n @ViewChild('QuoteSearchResultsSelector')\r\n private QuoteSearchResultsSelector;\r\n\r\n searchType: string;\r\n searchText: string;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n dateRows: JobCard[];\r\n\r\n @ViewChild('invoiceSearchModal')\r\n invoiceSearchModal: ModalDirective;\r\n\r\n @Input()\r\n selectedInvoice: string;\r\n showInvoicePopup: boolean;\r\n showITSPopup: boolean;\r\n hasTracking: boolean;\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n\r\n searchInvoiceType: string = 'customer'; // Default to customer code\r\n searchInvoiceText: string = '';\r\n searchInvoiceResults: SalesOrderList[] = [];\r\n searchInvoiceResultSelected: SalesOrderList;\r\n invoiceSearch: boolean;\r\n\r\n @ViewChild('searchByInvoiceSelector')\r\n private searchByInvoiceSelector;\r\n\r\n @ViewChild('InvoiceSearchResultsSelector')\r\n private InvoiceSearchResultsSelector;\r\n selectedSalesOrder: string;\r\n editJobCard: boolean;\r\n\r\n @ViewChild('supplierSelector') supplierSelector;\r\n @ViewChild('currentSupplier') currentSupplier: Supplier;\r\n @ViewChild('suppliers') private suppliers;\r\n suppliersCache: Supplier[] = [];\r\n selectedSupplier: Supplier;\r\n addselectedSupplier: Supplier;\r\n\r\n @ViewChild('salesPerson') private salesPerson;\r\n usersCache: SysproUser[] = [];\r\n selectedSalesPerson: User;\r\n\r\n jobCardStatusHistory: JobCardStatusHistory[];\r\n oldStatus: number; oldStatusId: number = null;\r\n\r\n @ViewChild('poTemplate')\r\n poTemplate: TemplateRef;\r\n\r\n @ViewChild('purchaseOrderList')\r\n purchaseOrderList: TemplateRef;\r\n\r\n @ViewChild('purchaseOrderListSelector')\r\n private purchaseOrderListSelector;\r\n\r\n private selectUndefinedPOOptionValue: string = \"Please Select\";\r\n showPurchaseOrderPopup: boolean;\r\n purchaseOrderSearch: boolean;\r\n\r\n @ViewChild('purchaseOrderSearchModal')\r\n purchaseOrderSearchModal: ModalDirective;\r\n\r\n @Input()\r\n selectedPurchaseOrder: string;\r\n\r\n selectedFilterStatus: number = 0;\r\n @ViewChild('statusFilter')\r\n private statusFilter;\r\n\r\n sysproUsers: SysproUser[];\r\n\r\n @ViewChild('operators') private operators;\r\n @ViewChild('operatorSelector') private operatorSelector;\r\n allOperators: SysproUser[] = [];\r\n selectedOperator: string;\r\n jobCardUsers: any;\r\n src: string;\r\n\r\n predefinedComments: any[] = [];\r\n selectedComment: string = '';\r\n customComment: any;\r\n selectedCompany: string;\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n showCustomerEmailModal: boolean;\r\n selectedSupplierIndex: number | null = null;\r\n searchResultSelected: any;\r\n searchResults: ArCustomer[];\r\n allRows: JobCard[];\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService) { }\r\n\r\n // #region Lifecycle Hooks\r\n ngOnInit() {\r\n this.selectedCompany = this.application === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n this.searchType = \"customer\";\r\n // this.checkCustomerInMemory();\r\n\r\n this.selected = {\r\n startDate: moment('2024-11-01').startOf('month'),\r\n endDate: moment().endOf('month')\r\n };\r\n\r\n this.setData();\r\n this.loadData();\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.setData();\r\n }\r\n\r\n checkCustomerInMemory() {\r\n\r\n const savedCustomer = sessionStorage.getItem(localStorageActions.Customer);\r\n if (savedCustomer) {\r\n this.currentCustomer = savedCustomer;\r\n this.loadCustomerData();\r\n }\r\n }\r\n\r\n loadCustomerData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getCustomerDetail(this.currentCustomer)\r\n .subscribe(\r\n customer => {\r\n this.customerHeading = customer;\r\n this.loadJobCardsForCustomer();\r\n },\r\n error => this.onSearchFailed(error)\r\n );\r\n }\r\n\r\n loadJobCardsForCustomer() {\r\n this.fowkesService.getJobCards().subscribe(\r\n jobCards => this.onSearchSuccessful(jobCards),\r\n error => {\r\n this.alertService.showStickyMessage('', 'No Job Cards found for your search', MessageSeverity.warn);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n );\r\n }\r\n\r\n onCustomerLoadSuccessful(x: ArCustomer[]): void {\r\n this.customerSearch = x;\r\n this.customerHeading = this.customerSearch.find(x => x.customer == this.currentCustomer);\r\n setTimeout(() => {\r\n if (this.customerSelector) {\r\n this.customerSelector.refresh();\r\n }\r\n });\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResults = null;\r\n this.searchResultSelected = null;\r\n\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rows = null;\r\n this.rowsCache = null;\r\n\r\n if (x && x.length >= 1) {\r\n\r\n this.searchResults = x;\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.loadCustomer();\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'Customer could not be found',\r\n MessageSeverity.warn);\r\n }\r\n\r\n\r\n }\r\n\r\n private loadCustomer() {\r\n\r\n this.currentCustomer = this.searchResultSelected.customer;\r\n sessionStorage.removeItem(localStorageActions.Customer);\r\n sessionStorage.setItem(localStorageActions.Customer, this.currentCustomer);\r\n\r\n this.customerHeading = this.searchResultSelected;\r\n this.loadJobCardsForCustomer();\r\n\r\n }\r\n // #endregion\r\n\r\n // #region Data Setup and Loading\r\n private setData() {\r\n this.columns = [\r\n { prop: 'jobCardNumber', name: 'Job Card #', width: 90, cellTemplate: this.selectTemplate, cellClass: \"center\" },\r\n { prop: 'dateMachineReceived', name: 'Received Date', width: 90, cellTemplate: this.dateTemplate, cellClass: \"center\" },\r\n { prop: 'statusId', name: 'Status', width: 210, cellTemplate: this.statusTemplate },\r\n { prop: 'customerCode', name: 'Customer', width: 200, cellTemplate: this.customerTemplate },\r\n { prop: 'machineDescription', name: 'Machine Description', width: 200 },\r\n { prop: 'quoteNumber', name: 'Quote Number', width: 120, cellTemplate: this.quoteTemplate },\r\n { prop: 'salesOrderNumber', name: 'Sales Order Number', width: 120, cellTemplate: this.invoiceTemplate },\r\n { prop: 'purchaseOrderNumber', name: 'Purchase Order Number', width: 150, cellTemplate: this.poTemplate },\r\n { prop: 'itsStatus', name: 'ITS', width: 100, cellClass: \"left\", cellTemplate: this.itsTemplate },\r\n { prop: 'assignedTechnician', name: 'Technician', width: 150 },\r\n { prop: 'completionDate', name: 'Completion Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'costOfRepair', name: 'Cost of Repair (Incl Vat)', width: 120, cellTemplate: this.totalTemplate, cellClass: \"right\" },\r\n { prop: 'lastStatusChangeDate', name: 'Last Status Change', width: 90, cellTemplate: this.dateTemplate, cellClass: \"center\" }\r\n ];\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.getStatuses();\r\n\r\n this.fowkesService.getJobCards().subscribe(\r\n jobCards => this.onSearchSuccessful(jobCards),\r\n error => {\r\n this.alertService.showStickyMessage('', 'No Job Cards found for your search', MessageSeverity.warn);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n );\r\n }\r\n\r\n refresh() {\r\n this.currentCustomer = \"\";\r\n this.loadData();\r\n }\r\n // #endregion\r\n\r\n // #region Event Handlers and Data Processing\r\n onSearchSuccessful(jobCards: JobCard[]): void {\r\n\r\n this.rows = null;\r\n this.rowsCache = null;\r\n this.smartsearch = \"\";\r\n\r\n jobCards.forEach(jobCard => {\r\n const status = this.statuses.find(s => s.statusId === jobCard.statusId);\r\n jobCard.statusName = status ? status.statusName : 'Unknown Status';\r\n\r\n if (jobCard.salesOrderNumber && jobCard.purchaseOrderNumber && jobCard.company == this.selectedCompany) {\r\n this.sysproService.getPurchaseOrderSearchByCriteriaByCompany(\"SALESORDER\", jobCard.salesOrderNumber, jobCard.company)\r\n .subscribe(poResults => {\r\n jobCard.poNumbers = poResults;\r\n jobCard.purchaseOrderNumber = poResults.length > 0 ? \"Please Select\" : '';\r\n }, error => console.error('Error loading purchase orders for sales order', error));\r\n }\r\n });\r\n\r\n this.rows = jobCards.filter(j => j.company == this.selectedCompany); // && j.customerCode == this.currentCustomer);\r\n\r\n if (this.currentCustomer) {\r\n this.rows = jobCards.filter(j => j.customerCode == this.currentCustomer);\r\n }\r\n\r\n this.rowsCache = this.rows;\r\n this.allRows = jobCards;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n getStatuses() {\r\n this.fowkesService.getJobCardStatuses()\r\n .subscribe((statuses: CoreJCStatus[]) => {\r\n this.statuses = statuses;\r\n this.selectedFilterStatus = 0;\r\n }, error => console.error(\"Error fetching statuses: \", error));\r\n }\r\n// #endregion\r\n\r\n\r\n specificCustomerSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchResults = null;\r\n this.searchResultSelected = null;\r\n\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n viewCustomerSelected() {\r\n this.rows = null;\r\n this.rowsCache = null;\r\n\r\n if (this.searchResultSelected) {\r\n this.loadCustomer();\r\n }\r\n\r\n }\r\n \r\n\r\n viewJobCard(row: JobCard) {\r\n\r\n this.jobCardDetail = new JobCard();\r\n // Fetch the job card details based on jobCardNumber or id from the row\r\n this.fowkesService.getJobCardById(row.id).subscribe(\r\n (jobCard: JobCard) => {\r\n\r\n this.jobCardDetail = jobCard; // Assign the fetched job card to jobCardDetail\r\n \r\n if (this.jobCardDetail.statusId) {\r\n const status = this.statuses.find(s => s.statusId === this.jobCardDetail.statusId);\r\n this.jobCardDetail.statusName = status ? status.statusName : 'Unknown Status';\r\n }\r\n\r\n this.jobCardDetail.customerContactInfo = jobCard.customerContactInfo;\r\n this.jobCardDetail.jobContactName = jobCard.jobContactName;\r\n this.jobCardDetail.jobContactEmail = jobCard.jobContactEmail;\r\n this.jobCardDetail.jobContactTelephone = jobCard.jobContactTelephone;\r\n this.jobCardDetail.assignedTechnician = jobCard.assignedTechnician;\r\n\r\n this.selectedCompany = jobCard.company || (this.application === 'MaxArcusOnline' ? 'M' : 'F');\r\n\r\n this.selectedOperator = jobCard.salesPersonOperator;\r\n\r\n if (this.jobCardDetail.purchaseOrderNumber) {\r\n this.sysproService.getPurchaseOrderSearchByCriteriaByCompany(\"SALESORDER\", this.jobCardDetail.salesOrderNumber, this.jobCardDetail.company)\r\n .subscribe(x => {\r\n this.jobCardDetail.poNumbers = x; // Attach the PO numbers to the job card\r\n if (x && x.length > 0) {\r\n this.jobCardDetail.purchaseOrderNumber = \"Please Select\";\r\n } else {\r\n this.jobCardDetail.purchaseOrderNumber = ''; // Reset if no POs are found\r\n }\r\n }, error => {\r\n console.error('Error loading purchase orders for sales order', error);\r\n });\r\n }\r\n\r\n this.fowkesService.getJobCardStatusHistory(row.id).subscribe(\r\n (x: JobCardStatusHistory[]) => {\r\n // Filter to include entries with \"status\" updates or \"Job Created\" updateType and sort by ChangeDate in descending order\r\n this.jobCardStatusHistory = x\r\n .filter(history =>\r\n history.updateType &&\r\n (history.updateType.toLowerCase().includes('status') ||\r\n history.updateType.toLowerCase() === 'job created' ||\r\n history.notes.toLowerCase().includes('email sent') ||\r\n history.updateType.toLowerCase().includes('message sent') // Include email-related updates\r\n )\r\n )\r\n .sort((a, b) => {\r\n return new Date(b.changeDate).getTime() - new Date(a.changeDate).getTime(); // Sort by ChangeDate in descending order\r\n });\r\n },\r\n (error) => {\r\n console.error('Failed to load job card status history', error);\r\n }\r\n );\r\n\r\n // Open the modal for editing the job card\r\n if (!this.jobCardDetailModal) {\r\n setTimeout(() => {\r\n if (this.jobCardDetailModal) {\r\n this.jobCardDetailModal.show();\r\n }\r\n });\r\n } else {\r\n this.jobCardDetailModal.show();\r\n }\r\n },\r\n (error) => {\r\n this.alertService.showStickyMessage('Load Error', 'Unable to load job card details', MessageSeverity.error, error);\r\n }\r\n );\r\n }\r\n\r\n viewQuoteSelected() {\r\n if (this.searchQuoteResultSelected) {\r\n this.selectQuote(this.searchQuoteResultSelected);\r\n }\r\n }\r\n\r\n selectQuote(quote: QuoteList) {\r\n this.selectedQuote = quote.quoteNumber;\r\n if (sessionStorage.getItem(localStorageActions.Customer) != this.jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, this.jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.QuoteNumber) != this.selectedQuote) {\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, this.selectedQuote);\r\n }\r\n }\r\n\r\n onSpecificInvoiceSearchSuccesful(invoices: SalesOrderList[]): void {\r\n this.searchInvoiceResults = invoices;\r\n\r\n // If only one invoice is returned, automatically select it\r\n if (invoices.length === 1) {\r\n this.searchInvoiceResultSelected = invoices[0];\r\n this.selectInvoice(this.searchInvoiceResultSelected);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n selectInvoice(invoice: SalesOrderList) {\r\n this.selectedInvoice = invoice.invoiceNumber;\r\n this.selectedSalesOrder = invoice.salesOrderNumber;\r\n\r\n this.jobCardDetail.invoiceNumber = invoice.salesOrderNumber;\r\n this.jobCardDetail.salesOrderNumber = invoice.salesOrderNumber;\r\n\r\n if (invoice.poNumber != \"\" && invoice.poNumber != \"NA\") {\r\n invoice.poNumber = \"Please Select\";\r\n this.SetPONumbers(invoice);\r\n }\r\n }\r\n\r\n SetPONumbers(salesOrder: SalesOrderList) {\r\n this.sysproService.getPurchaseOrderSearchByCriteriaByCompany(\"SALESORDER\", salesOrder.salesOrderNumber, this.selectedCompany).\r\n subscribe(x => this.POSearchSuccesful(salesOrder, x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n POSearchSuccesful(salesOrder: SalesOrderList, x: PurchaseOrderList[]): void {\r\n let poList = x;\r\n x.forEach((poNumber, index, x) => {\r\n (poNumber).index = index + 1;\r\n });\r\n\r\n if (poList && poList.length > 0) {\r\n // Concatenate all the purchase order numbers into a single string\r\n salesOrder.poNumbers = x;\r\n this.jobCardDetail.poNumbers = x;\r\n //this.jobCardDetail.purchaseOrderNumber = x[0].purchaseOrder;\r\n this.jobCardDetail.purchaseOrderNumber = x.map(po => po.purchaseOrder).join(', ');\r\n } else {\r\n // If no POs are found, reset the purchase order number\r\n this.jobCardDetail.purchaseOrderNumber = '';\r\n }\r\n }\r\n\r\n quoteSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showQuotePopup = false;\r\n this.quoteSearch = false;\r\n this.searchQuoteText = \"\";\r\n this.searchQuoteResultSelected = null;\r\n this.selectedQuote = \"\";\r\n if (this.quoteSearchModal) {\r\n this.quoteSearchModal.hide();\r\n }\r\n }\r\n\r\n previewQuote(jobCardDetail: JobCard) {\r\n this.showQuotePopup = true;\r\n this.quoteSearch = false;\r\n this.selectedQuote = jobCardDetail.quoteNumber;\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.QuoteNumber) != jobCardDetail.quoteNumber) {\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, jobCardDetail.quoteNumber);\r\n }\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.quoteSearchModal) {\r\n setTimeout(() => {\r\n if (this.quoteSearchModal) {\r\n this.quoteSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.quoteSearchModal.show();\r\n }\r\n }\r\n\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n //handleJobCardSaveError(error: any) {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n // this.alertService.showStickyMessage('Save Error', 'An error occurred while saving the Job Card.', MessageSeverity.error, error);\r\n //}\r\n\r\n \r\n viewInvoiceSelected() {\r\n if (this.searchInvoiceResultSelected) {\r\n this.selectInvoice(this.searchInvoiceResultSelected);\r\n }\r\n }\r\n\r\n previewSupplierInvoice(jobCardDetail: JobCard) {\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = false;\r\n this.selectedInvoice = this.jobCardDetail.originalInvoice;\r\n this.selectedSalesOrder = this.jobCardDetail.originalInvoice;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.invoiceSearchModal) {\r\n setTimeout(() => {\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.invoiceSearchModal.show();\r\n }\r\n }\r\n\r\n previewInvoice(jobCardDetail: JobCard) {\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = false;\r\n\r\n this.selectedInvoice = jobCardDetail.invoiceNumber;\r\n this.selectedSalesOrder = jobCardDetail.salesOrderNumber;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.selectedInvoice);\r\n }\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.invoiceSearchModal) {\r\n setTimeout(() => {\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.invoiceSearchModal.show();\r\n }\r\n }\r\n\r\n previewITS(jobCardDetail: JobCard) {\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = false;\r\n\r\n this.selectedInvoice = jobCardDetail.invoiceNumber;\r\n this.selectedSalesOrder = jobCardDetail.salesOrderNumber;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n this.showITSPopup = true;\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n viewTracking() {\r\n this.showITSPopup = true;\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n itsModalHide() {\r\n\r\n this.showITSPopup = false;\r\n if (this.itsModal) {\r\n this.itsModal.hide();\r\n }\r\n }\r\n\r\n\r\n gotToITS() {\r\n //this.router.navigate(['../../reports'], { fragment: 'invoicestatus', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n invoiceSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showInvoicePopup = false;\r\n this.invoiceSearch = false;\r\n this.searchInvoiceText = \"\";\r\n this.searchInvoiceResultSelected = null;\r\n this.selectedInvoice = \"\";\r\n this.selectedSalesOrder = \"\";\r\n this.selectedSupplierIndex = null;\r\n\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.hide();\r\n }\r\n }\r\n\r\n previewPurchaseOrderDetail(jobCardDetail: JobCard, po: PurchaseOrderList) {\r\n this.showPurchaseOrderPopup = true;\r\n this.purchaseOrderSearch = false;\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n this.selectedInvoice = jobCardDetail.invoiceNumber;\r\n this.selectedSalesOrder = jobCardDetail.salesOrderNumber;\r\n\r\n if (po && po.purchaseOrder) {\r\n\r\n this.selectedPurchaseOrder = po.purchaseOrder;\r\n }\r\n else {\r\n this.selectedPurchaseOrder = this.jobCardDetail.purchaseOrderNumber;\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.PurchaseOrder) != this.selectedPurchaseOrder) {\r\n sessionStorage.setItem(localStorageActions.PurchaseOrder, this.selectedPurchaseOrder);\r\n }\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.purchaseOrderSearchModal) {\r\n setTimeout(() => {\r\n if (this.purchaseOrderSearchModal) {\r\n this.purchaseOrderSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.purchaseOrderSearchModal.show();\r\n }\r\n }\r\n\r\n purchaseOrderSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showPurchaseOrderPopup = false;\r\n this.purchaseOrderSearch = false;\r\n this.selectedInvoice = \"\";\r\n this.selectedSalesOrder = \"\";\r\n this.selectedPurchaseOrder = \"\";\r\n\r\n if (this.purchaseOrderSearchModal) {\r\n this.purchaseOrderSearchModal.hide();\r\n }\r\n }\r\n\r\n jobCardDetailModalHide() {\r\n this.jobCardDetail = null;\r\n this.jobCardStatusHistory = null;\r\n this.isHistoryPanelOpen = false;\r\n\r\n if (this.jobCardDetailModal) {\r\n this.jobCardDetailModal.hide();\r\n }\r\n }\r\n\r\n\r\n\r\n // #region Working functions\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n\r\n //toggleHistoryPanel() {\r\n // this.isHistoryPanelOpen = !this.isHistoryPanelOpen;\r\n //}\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n getTodayDate(): string {\r\n const today = new Date();\r\n const year = today.getFullYear();\r\n const month = String(today.getMonth() + 1).padStart(2, '0');\r\n const day = String(today.getDate()).padStart(2, '0');\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n filterChanged() {\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n // Filter rowsCache by the date range\r\n this.dateRows = this.rowsCache.filter(d => {\r\n const createdDate = new Date(d.createdDate);\r\n return createdDate >= startD && createdDate <= endD;\r\n });\r\n\r\n this.applySmartSearch();\r\n }\r\n\r\n // Smart Search filter\r\n applySmartSearch() {\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n // Filter rowsCache by the date range\r\n this.dateRows = this.rowsCache.filter(d => {\r\n const createdDate = new Date(d.createdDate);\r\n return createdDate >= startD && createdDate <= endD;\r\n });\r\n\r\n let value = this.smartsearch.trim().toLowerCase();\r\n\r\n // Step 3: Filter dateRows based on the smart search\r\n let filteredRows = this.dateRows.filter(r => {\r\n return Utilities.searchArray(value,\r\n false, r.machineDescription, r.binNumber, r.quoteNumber, r.customerCode, r.customerName, r.customerContactInfo, r.invoiceNumber, r.jobCardNumber, r.assignedTechnician, r.salesPersonName, r.salespersonEmail);\r\n });\r\n\r\n // Step 4: Filter based on selected status if one is chosen\r\n if (this.selectedFilterStatus && this.selectedFilterStatus != 0) {\r\n filteredRows = filteredRows.filter(r => r.statusId === Number(this.selectedFilterStatus));\r\n }\r\n\r\n // Update the rows to display based on all filters\r\n this.rows = filteredRows;\r\n }\r\n\r\n //reset() {\r\n // this.jobCardDetailModalHide();\r\n // this.loadData();\r\n //}\r\n\r\n onSearchChanged(e: any) {\r\n this.applySmartSearch();\r\n }\r\n // #endregion Working functions\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{modalHeader}}

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

New File

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n      \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host /deep/ .treeview-container .row-item {\\n margin-bottom: .3rem;\\n width: 400px; }\\n\\n:host /deep/ .treeview-container {\\n height: calc(100vh - 100px);\\n max-height: 1000px !important; }\\n\\n:host /deep/ .treeview-header {\\n margin: -26px; }\\n\\n.category-header {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.content-container {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kb2N1bWVudHMvZG9jdW1lbnQtY29tcG9uZW50cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGRvY3VtZW50c1xcZG9jdW1lbnQtY29tcG9uZW50c1xcZG9jdW1lbnQtZWRpdGNhdGVnb3JpZXMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxvQkFBb0I7RUFDcEIsWUFBWSxFQUFBOztBQUdkO0VBQ0UsMkJBQTJCO0VBQzNCLDZCQUE2QixFQUFBOztBQUkvQjtFQUNFLGFBQWEsRUFBQTs7QUFHZjtFQUNFLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBR3RCLGtEQUErQztFQUMvQyxrQkFBa0IsRUFBQTs7QUFLcEI7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZG9jdW1lbnRzL2RvY3VtZW50LWNvbXBvbmVudHMvZG9jdW1lbnQtZWRpdGNhdGVnb3JpZXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCAvZGVlcC8gLnRyZWV2aWV3LWNvbnRhaW5lciAucm93LWl0ZW0ge1xyXG4gIG1hcmdpbi1ib3R0b206IC4zcmVtO1xyXG4gIHdpZHRoOiA0MDBweDtcclxufVxyXG5cclxuOmhvc3QgL2RlZXAvIC50cmVldmlldy1jb250YWluZXIge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDEwMHB4KTtcclxuICBtYXgtaGVpZ2h0OiAxMDAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbjpob3N0IC9kZWVwLyAudHJlZXZpZXctaGVhZGVyIHtcclxuICBtYXJnaW46IC0yNnB4O1xyXG59XHJcblxyXG4uY2F0ZWdvcnktaGVhZGVyIHtcclxuICBwYWRkaW5nOiAuMnJlbSAxcmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IC01cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIC1tb3otYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG59XHJcblxyXG5cclxuXHJcbi5jb250ZW50LWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbn1cclxuIl19 */\"","import { Component, ViewChild, Input, TemplateRef, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { isNil, remove, reverse } from 'lodash';\r\nimport {\r\n TreeviewItem, TreeviewConfig, TreeviewHelper, TreeviewComponent,\r\n TreeviewEventParser, OrderDownlineTreeviewEventParser, DownlineTreeviewItem } from 'ngx-treeview';\r\nimport { DocumentManagmement } from '../../../models/document-management.model';\r\nimport { SimpleTree } from '../../../models/simple-tree.model';\r\nimport { CMCategories } from '../../../models/cms-category.model';\r\nimport { DocumentCategory } from '../../../models/document-category.model';\r\n\r\n@Component({\r\n selector: 'Edit-Categories',\r\n templateUrl: './document-editcategories.component.html',\r\n styleUrls: ['./document-editcategories.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class EditCategoriesComponent {\r\n\r\n items: TreeviewItem[];\r\n rows: string[];\r\n item: any;\r\n data: DocumentManagmement;\r\n categoryData: DocumentCategory[];\r\n\r\n breadcrumbs: SimpleTree[] = [];\r\n\r\n seletedItem: TreeviewItem;\r\n\r\n expandIndex: Number = -1;\r\n\r\n config: TreeviewConfig = {\r\n hasAllCheckBox: false,\r\n hasFilter: false,\r\n hasCollapseExpand: true,\r\n decoupleChildFromParent: false,\r\n maxHeight: 1000,\r\n hasDivider: false\r\n };\r\n\r\n @ViewChild(TreeviewComponent) treeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('itemTemplate')\r\n itemTemplate: TemplateRef;\r\n @ViewChild('headerTemplate')\r\n headerTemplate: TemplateRef;\r\n\r\n loadingIndicator: boolean;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n @ViewChild('categoryListSelector')\r\n private categoryListSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n categorySelected: string = \"\";\r\n categoryList: DocumentCategory[] = [];\r\n categoryListChangeParent: DocumentCategory[] = [];\r\n changeParent: boolean = false;\r\n\r\n\r\n @ViewChild('fileListSelector')\r\n private fileListSelector;\r\n fileCategorySelected: string = \"\";\r\n fileListChangeParent: DocumentCategory[] = [];\r\n changeFileParent: boolean = false;\r\n\r\n @ViewChild('categoryModal')\r\n categoryModal: ModalDirective;\r\n\r\n @ViewChild('attachmentModal')\r\n attachmentModal: ModalDirective;\r\n\r\n @ViewChild('myFileInput')\r\n myFileInput: ElementRef;\r\n\r\n categoryDetail: DocumentCategory = new DocumentCategory();\r\n rowsCache: TreeviewItem[];\r\n headerTemplateContext: { config: TreeviewConfig; item: any};\r\n modalHeader: string;\r\n isSaving: boolean;\r\n compareFolderName: any;\r\n documentDetail: DocumentManagmement = new DocumentManagmement();\r\n\r\n newformData = new FormData();\r\n compareFileName: string;\r\n repoDocsList: DocumentManagmement[] = [];\r\n\r\n\r\n constructor(private alertService: AlertService, private router: Router, private route: ActivatedRoute, private sysproService: SysproService, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n\r\n }\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getDocumentCatergories(this.expandIndex).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.GetAllDocumentCategoriesList().subscribe(x => this.onCategoriesLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.getAllRepoDocs().subscribe(x => this.onDocsLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n \r\n onDataLoadSuccessful(treeview: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n \r\n let treeviewItems = new TreeviewItem(JSON.parse(treeview[0]));\r\n\r\n this.items = this.getItems([treeviewItems]);\r\n this.rowsCache = [...this.items];\r\n\r\n console.log(\"CACHE\", this.rowsCache);\r\n }\r\n\r\n onCategoriesLoadSuccessful(results: DocumentCategory[]) {\r\n\r\n this.categoryList = results;\r\n this.categoryListChangeParent = this.categoryList.filter(x => x.enabled);\r\n this.categorySelected = \"\";\r\n console.log(\"LIST\", this.categoryList, this.categorySelected );\r\n }\r\n\r\n onDocsLoadSuccessful(results: DocumentManagmement[]) {\r\n\r\n this.repoDocsList = results;\r\n this.categorySelected = \"\";\r\n\r\n let mappedList = this.repoDocsList.map(docCat => { return docCat.categoryName });\r\n\r\n this.categoryListChangeParent = this.categoryList.filter(x => !mappedList.includes(x.categoryName));\r\n this.fileListChangeParent = this.categoryList.filter(x => mappedList.includes(x.categoryName));\r\n console.log(\"DOCLIST\", this.repoDocsList, this.categorySelected);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n selectItem(item: TreeviewItem) {\r\n if (item.value.document && item.value.document.DocumentName) {\r\n if (item.value.document.DocumentName.indexOf(\"xls\") >= 0 || item.value.document.DocumentName.indexOf(\".doc\") >= 0) {\r\n window.open(\"/MediaServer/DocumentRepositoryDocuments/\" + item.value.document.DocumentName, \"_blank\");\r\n }\r\n else {\r\n window.open(item.value.document.FilePath + \"/\" + item.value.document.DocumentName, \"_blank\");\r\n }\r\n }\r\n }\r\n\r\n treeBeforeExpand(row: TreeviewItem) {\r\n console.log(row);\r\n if (row) {\r\n if (row.collapsed) {\r\n\r\n }\r\n else {\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n }\r\n }\r\n }\r\n\r\n changeCategoryParent() {\r\n this.changeParent = !this.changeParent;\r\n }\r\n\r\n openChangeFileParent() {\r\n this.changeFileParent = !this.changeFileParent;\r\n }\r\n\r\n enableEditMethod(row: TreeviewItem) {\r\n this.enableEdit = true;\r\n console.log(row.value, row);\r\n this.modalHeader = \"Edit Folder\";\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n\r\n this.categoryDetail.displayName = \"Edit Folder Name \t:\"\r\n\r\n this.categoryDetail.parentCategoryName = row.value.category.ParentCategoryName;\r\n\r\n this.categoryDetail.categoryName = row.value.category.CategoryName;\r\n\r\n this.categoryDetail.responsibility = row.value.category.Responsibility;\r\n\r\n this.categoryDetail.enabled = row.value.category.Enabled;\r\n\r\n this.categoryDetail.id = row.value.category.Id;\r\n\r\n this.compareFolderName = this.categoryDetail.categoryName;\r\n this.categorySelected = this.categoryDetail.parentCategoryName;\r\n\r\n if (!this.categoryModal) {\r\n setTimeout(() => {\r\n if (this.categoryModal) {\r\n this.categoryModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.categoryModal.show();\r\n }\r\n }\r\n\r\n addNewFolder(row: TreeviewItem) {\r\n this.modalHeader = \"Add new Folder\";\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n\r\n this.categoryDetail.displayName = \"New Folder Name \t:\"\r\n this.categoryDetail.parentCategoryName = row.text;\r\n this.categoryDetail.enabled = true;\r\n this.categoryDetail.createdBy = this.accountService.currentUser.email;\r\n this.categoryDetail.responsibility = \"\";\r\n\r\n this.categorySelected = row.text;\r\n\r\n if (!this.categoryModal) {\r\n setTimeout(() => {\r\n if (this.categoryModal) {\r\n this.categoryModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.categoryModal.show();\r\n }\r\n }\r\n\r\n categoryModalHide() {\r\n this.categoryDetail = new DocumentCategory();\r\n this.changeParent = false;\r\n this.categoryModal.hide();\r\n }\r\n\r\n saveNewDocumentFolder() {\r\n\r\n //Validate save\r\n if (this.categoryDetail) {\r\n if (this.categoryDetail.categoryName) {\r\n if (this.changeParent && this.categorySelected != \"\") {\r\n this.categoryDetail.parentCategoryName = this.categorySelected;\r\n }\r\n if (this.categoryDetail.id > 0) {\r\n if (this.compareFolderName && this.compareFolderName.toUpperCase() != this.categoryDetail.categoryName.toUpperCase()) {\r\n if (this.validateCategorySave()) {\r\n if (this.categoryDetail.parentCategoryName == \"Categories\") {\r\n this.categoryDetail.parentCategoryName = \"Root\";\r\n }\r\n this.sysproService.editDocumentCategory(this.categoryDetail, this.categoryDetail.id).subscribe(x => this.onNewFolderAdded(x), error => this.onNewFolderAddedFailed(error));\r\n\r\n }\r\n }\r\n else {\r\n this.sysproService.editDocumentCategory(this.categoryDetail, this.categoryDetail.id).subscribe(x => this.onNewFolderAdded(x), error => this.onNewFolderAddedFailed(error));\r\n }\r\n }\r\n else {\r\n if (this.validateCategorySave()) {\r\n if (this.categoryDetail.parentCategoryName == \"Categories\") {\r\n this.categoryDetail.parentCategoryName = \"Root\";\r\n }\r\n this.sysproService.addDocumentCategory(this.categoryDetail).subscribe(x => this.onNewFolderAdded(x), error => this.onNewFolderAddedFailed(error));\r\n }\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a document folder name`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n validateCategorySave() {\r\n let error = \"\";\r\n\r\n error = (this.categoryList.filter(x => x.categoryName.toUpperCase() == this.categoryDetail.categoryName.toUpperCase()).length > 0 ? \"This folder name has already been added\" : \"\");\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n validateFileSave() {\r\n let error = \"\";\r\n\r\n error = (this.repoDocsList.filter(x => x.documentName.toUpperCase() == this.documentDetail.documentName.toUpperCase()).length > 0 ? \"This file has already been added\" : \"\");\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n uploadFile(row: TreeviewItem) {\r\n\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n this.expandIndex = this.breadcrumbs[this.breadcrumbs.length - 1].categoryId;\r\n\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.documentDetail.description = \"\";\r\n this.documentDetail.categoryName = row.text;\r\n this.documentDetail.enabled = true;\r\n this.documentDetail.createdBy = this.accountService.currentUser.email;\r\n this.documentDetail.responsibility = \"\";\r\n\r\n if (!this.attachmentModal) {\r\n setTimeout(() => {\r\n if (this.attachmentModal) {\r\n this.attachmentModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.attachmentModal.show();\r\n }\r\n }\r\n\r\n\r\n editFile(row: TreeviewItem) {\r\n\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n this.expandIndex = this.breadcrumbs[this.breadcrumbs.length - 1].categoryId;\r\n\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.documentDetail.documentName = row.value.document.DocumentName;\r\n this.documentDetail.description = row.value.document.Description;\r\n this.documentDetail.categoryName = row.value.document.CategoryName;\r\n this.documentDetail.enabled = row.value.document.Enabled;\r\n this.documentDetail.createdBy = row.value.document.CreatedBy;\r\n this.documentDetail.responsibility = row.value.document.Responsibility;\r\n this.documentDetail.id = row.value.document.Id;\r\n\r\n this.compareFileName = this.documentDetail.documentName;\r\n this.fileCategorySelected = this.documentDetail.categoryName;\r\n\r\n if (!this.attachmentModal) {\r\n setTimeout(() => {\r\n if (this.attachmentModal) {\r\n this.attachmentModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.attachmentModal.show();\r\n }\r\n }\r\n\r\n attachmentModallHide() {\r\n this.documentDetail = new DocumentManagmement();\r\n this.newformData = new FormData();\r\n this.myFileInput.nativeElement.value = '';\r\n this.attachmentModal.hide();\r\n }\r\n\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newformData.append('file', file);\r\n this.documentDetail.documentName = file.name;\r\n }\r\n }\r\n\r\n saveDocument() {\r\n\r\n //Validate save\r\n if (this.documentDetail) {\r\n if (this.documentDetail.documentName) {\r\n if (this.changeFileParent && this.fileCategorySelected != \"\") {\r\n this.documentDetail.categoryName = this.fileCategorySelected;\r\n }\r\n if (this.documentDetail.id > 0) {\r\n if (this.compareFileName && this.compareFileName.toUpperCase() != this.documentDetail.documentName.toUpperCase()) {\r\n //if (this.validateFileSave()) {\r\n if (this.newformData.has('file')) {\r\n this.sysproService.postDocument(this.newformData, \"DOC\", this.documentDetail.description.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => {\r\n this.documentDetail.documentName = x.fileName;\r\n this.sysproService.updateRepoDoc(this.documentDetail, this.documentDetail.id).subscribe(x =>\r\n this.onNewFolderAdded(new DocumentCategory()), error => this.onNewFolderAddedFailed(error));\r\n\r\n }, error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n else {\r\n this.sysproService.updateRepoDoc(this.documentDetail, this.documentDetail.id).subscribe(x => this.onNewFolderAdded(new DocumentCategory()), error => this.onNewFolderAddedFailed(error));\r\n }\r\n }\r\n else {\r\n /* if (this.validateFileSave()) {*/\r\n if (this.newformData.has('file')) {\r\n this.sysproService.postDocument(this.newformData, \"DOC\", this.documentDetail.description.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(x => {\r\n this.documentDetail.documentName = x.fileName;\r\n this.sysproService.addNewDoc(this.documentDetail).subscribe(x =>\r\n this.onNewFolderAdded(new DocumentCategory()), error => this.onNewFolderAddedFailed(error));\r\n\r\n }, error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Remeber to add a file first`, MessageSeverity.warn);\r\n }\r\n //}\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to add a document first`, MessageSeverity.warn);\r\n }\r\n }\r\n\r\n \r\n }\r\n\r\n removeFile(row: TreeviewItem) {\r\n\r\n this.sysproService.getSimpleDocumentTree(row.value.document.CategoryName).subscribe(result => this.breadcrumbs = [...result]);\r\n this.expandIndex = this.breadcrumbs[this.breadcrumbs.length - 1].categoryId;\r\n\r\n this.enableEditIndex = row.value.index;\r\n\r\n if (row.value.document) {\r\n this.sysproService.deleteRepoDoc(row.value.document.Id).subscribe(x => this.onNewFolderAdded(new DocumentCategory()), error => this.onNewFolderAddedFailed(error));\r\n }\r\n\r\n }\r\n\r\n\r\n newFilePostedSuccess(x: any) {\r\n this.documentDetail.createdBy = this.accountService.currentUser.email;\r\n this.documentDetail.documentName = x.fileName;\r\n this.sysproService.addNewDoc(this.documentDetail).subscribe(x => this.onNewFolderAdded(new DocumentCategory()), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n \r\n\r\n onNewFolderAdded(x: DocumentCategory): void {\r\n\r\n if (x && x.id) {\r\n\r\n this.expandIndex = x.id;\r\n }\r\n\r\n this.loadData();\r\n // Open to correct level.\r\n this.categoryModalHide();\r\n this.attachmentModallHide();\r\n }\r\n\r\n\r\n onNewFolderAddedFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n }\r\n\r\n removeFolder(row: TreeviewItem) {\r\n\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n if (row.value.category) {\r\n this.sysproService.deleteDocumentCategory(row.value.category.Id).subscribe(x => this.onNewFolderAdded(x), error => this.onNewFolderAddedFailed(error));\r\n }\r\n\r\n }\r\n\r\n\r\n expandItem(item: TreeviewItem): void {\r\n \r\n for (const tmpItem of this.items) {\r\n if (tmpItem === item) {\r\n item.collapsed = false;\r\n let parent = TreeviewHelper.findParent(tmpItem, item);\r\n parent.collapsed = false;\r\n }\r\n }\r\n\r\n this.treeviewComponent.raiseSelectedChange();\r\n }\r\n\r\n getItems(parentChildObj) {\r\n let itemsArray = [];\r\n parentChildObj.forEach(set => {\r\n itemsArray.push(new TreeviewItem(set))\r\n });\r\n return itemsArray;\r\n }\r\n\r\n\r\n get canManageDocuments() {\r\n return this.accountService.userHasPermission(Permission.manageDocumentsPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host /deep/ .treeview-container .row-item {\\n margin-bottom: .3rem;\\n width: 400px; }\\n\\n:host /deep/ .treeview-container {\\n height: calc(100vh - 100px);\\n max-height: 1000px !important; }\\n\\n:host /deep/ .treeview-header {\\n margin: -26px; }\\n\\n.category-header {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.content-container {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kb2N1bWVudHMvZG9jdW1lbnQtY29tcG9uZW50cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGRvY3VtZW50c1xcZG9jdW1lbnQtY29tcG9uZW50c1xcZG9jdW1lbnQtdmlldy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFvQjtFQUNwQixZQUFZLEVBQUE7O0FBR2Q7RUFDRSwyQkFBMkI7RUFDM0IsNkJBQTZCLEVBQUE7O0FBRy9CO0VBQ0UsYUFBYSxFQUFBOztBQUVmO0VBQ0UsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFHdEIsa0RBQStDO0VBQy9DLGtCQUFrQixFQUFBOztBQUlwQjtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9kb2N1bWVudHMvZG9jdW1lbnQtY29tcG9uZW50cy9kb2N1bWVudC12aWV3LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgL2RlZXAvIC50cmVldmlldy1jb250YWluZXIgLnJvdy1pdGVtIHtcclxuICBtYXJnaW4tYm90dG9tOiAuM3JlbTtcclxuICB3aWR0aDogNDAwcHg7XHJcbn1cclxuXHJcbjpob3N0IC9kZWVwLyAudHJlZXZpZXctY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XHJcbiAgbWF4LWhlaWdodDogMTAwMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjpob3N0IC9kZWVwLyAudHJlZXZpZXctaGVhZGVyIHtcclxuICBtYXJnaW46IC0yNnB4O1xyXG59XHJcbi5jYXRlZ29yeS1oZWFkZXIge1xyXG4gIHBhZGRpbmc6IC4ycmVtIDFyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgLW1vei1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcblxyXG4uY29udGVudC1jb250YWluZXIge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcbiJdfQ== */\"","import { Component, ViewChild, Input, TemplateRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { isNil, remove, reverse } from 'lodash';\r\nimport {\r\n TreeviewItem, TreeviewConfig, TreeviewHelper, TreeviewComponent,\r\n TreeviewEventParser, OrderDownlineTreeviewEventParser, DownlineTreeviewItem } from 'ngx-treeview';\r\nimport { DocumentManagmement } from '../../../models/document-management.model';\r\nimport { SimpleTree } from '../../../models/simple-tree.model';\r\nimport { CMCategories } from '../../../models/cms-category.model';\r\nimport { DocumentCategory } from '../../../models/document-category.model';\r\n\r\n@Component({\r\n selector: 'document-view',\r\n templateUrl: './document-view.component.html',\r\n styleUrls: ['./document-view.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ViewDocumentsComponent {\r\n\r\n items: TreeviewItem[];\r\n rows: string[];\r\n item: any;\r\n data: DocumentManagmement;\r\n categoryData: DocumentCategory[];\r\n\r\n breadcrumbs: SimpleTree[] = [];\r\n\r\n seletedItem: TreeviewItem;\r\n\r\n config: TreeviewConfig = {\r\n hasAllCheckBox: false,\r\n hasFilter: false,\r\n hasCollapseExpand: true,\r\n decoupleChildFromParent: false,\r\n maxHeight: 1000,\r\n hasDivider: false\r\n };\r\n\r\n @ViewChild(TreeviewComponent) treeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('itemTemplate')\r\n itemTemplate: TemplateRef;\r\n @ViewChild('headerTemplate')\r\n headerTemplate: TemplateRef;\r\n\r\n loadingIndicator: boolean;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n\r\n @ViewChild('categoryModal')\r\n categoryModal: ModalDirective;\r\n\r\n categoryDetail: DocumentCategory = new DocumentCategory();\r\n rowsCache: TreeviewItem[];\r\n\r\n constructor(private alertService: AlertService, private router: Router, private route: ActivatedRoute, private sysproService: SysproService, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n\r\n }\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getDocumentCatergories(-1).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onDataLoadSuccessful(treeview: any[]) {\r\n\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n \r\n let treeviewItems = new TreeviewItem(JSON.parse(treeview[0]));\r\n\r\n this.items = this.getItems([treeviewItems]);\r\n this.rowsCache = [...this.items];\r\n \r\n console.log(this.items);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n selectItem(item: TreeviewItem) {\r\n if (item.value.document && item.value.document.DocumentName) {\r\n var test = item.value.document.FilePath + \"/\" + decodeURI(item.value.document.DocumentName);\r\n if (item.value.document.DocumentName.indexOf(\"xls\") >= 0 || item.value.document.DocumentName.indexOf(\".doc\") >= 0) {\r\n window.open(\"/MediaServer/DocumentRepositoryDocuments/\" + item.value.document.DocumentName, \"_blank\");\r\n }\r\n else {\r\n window.open(item.value.document.FilePath + \"/\" + item.value.document.DocumentName, \"_blank\");\r\n }\r\n }\r\n }\r\n\r\n treeBeforeExpand(row: TreeviewItem) {\r\n console.log(row);\r\n if (row) {\r\n if (row.collapsed) {\r\n\r\n }\r\n else {\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n }\r\n }\r\n \r\n //if (e.item && e.item.locked)\r\n // e.cancel = true;\r\n } \r\n\r\n enableEditMethod(row: TreeviewItem) {\r\n this.enableEdit = true;\r\n console.log(row.value, row);\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n }\r\n\r\n\r\n addNewFolder(row: TreeviewItem) {\r\n // this.enableEdit = true;\r\n console.log(row.value, row);\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n\r\n this.categoryDetail.parentCategoryName = row.text;\r\n this.categoryDetail.enabled = true;\r\n this.categoryDetail.createdBy = this.accountService.currentUser.email;\r\n this.categoryDetail.responsibility = \"\";\r\n\r\n if (!this.categoryModal) {\r\n setTimeout(() => {\r\n if (this.categoryModal) {\r\n this.categoryModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.categoryModal.show();\r\n }\r\n }\r\n\r\n categoryModalHide() {\r\n this.categoryDetail = new DocumentCategory();\r\n this.categoryModal.hide();\r\n }\r\n\r\n\r\n saveNewDocumentFolder() {\r\n\r\n //Validate save\r\n if (this.categoryDetail) {\r\n if (this.categoryDetail.categoryName) {\r\n this.sysproService.addDocumentCategory(this.categoryDetail).subscribe(x => this.onNewFolderAdded(x), error => this.onNewFolderAddedFailed(error));\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a document folder name`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n onNewFolderAdded(x: DocumentCategory): void {\r\n this.loadData();\r\n // Open to correct level.\r\n\r\n this.categoryModalHide();\r\n }\r\n\r\n\r\n onNewFolderAddedFailed(error: any): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n removeFolder(row: TreeviewItem) {\r\n // this.enableEdit = true;\r\n console.log(row.value, row);\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n if (row.value.category) {\r\n this.sysproService.deleteDocumentCategory(row.value.category.Id).subscribe(x => { this.removeItem(row) }, error => this.onNewFolderAddedFailed(error));\r\n }\r\n\r\n }\r\n\r\n onSelectedCheckedChange(row: TreeviewItem) {\r\n let test = \"\";\r\n }\r\n\r\n onSelectedChange(downlineItems: TreeviewItem): void {\r\n\r\n console.log(downlineItems);\r\n // this.sysproService.getSimpleDocumentTree(downlineItems[0].item.text).subscribe(result => this.breadcrumbs = [...result]);\r\n //this.rows = [];\r\n //downlineItems.forEach(downlineItem => {\r\n // const item = downlineItem.item;\r\n // const value = item.value.split(\"|__\")[0];\r\n // const texts = [item.text];\r\n // let parent = downlineItem.parent;\r\n // while (!isNil(parent)) {\r\n // texts.push(parent.item.text);\r\n // parent = parent.parent;\r\n // }\r\n // const reverseTexts = reverse(texts);\r\n // const row = `${reverseTexts.join(' -> ')} : ${value}`;\r\n // this.rows.push(row);\r\n //});\r\n }\r\n\r\n expandItem(item: TreeviewItem): void {\r\n \r\n for (const tmpItem of this.items) {\r\n if (tmpItem === item) {\r\n item.collapsed = false;\r\n let parent = TreeviewHelper.findParent(tmpItem, item);\r\n parent.collapsed = false;\r\n }\r\n }\r\n\r\n this.treeviewComponent.raiseSelectedChange();\r\n }\r\n\r\n removeItem(item: TreeviewItem): void {\r\n for (const tmpItem of this.items) {\r\n if (tmpItem === item) {\r\n remove(this.items, item);\r\n } else {\r\n if (TreeviewHelper.removeItem(tmpItem, item)) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.treeviewComponent.raiseSelectedChange();\r\n }\r\n\r\n onFilterChange(value: string): void {\r\n //console.log('filter:', value);\r\n }\r\n\r\n\r\n getItems(parentChildObj) {\r\n let itemsArray = [];\r\n parentChildObj.forEach(set => {\r\n itemsArray.push(new TreeviewItem(set))\r\n });\r\n return itemsArray;\r\n }\r\n\r\n\r\n get canManageDocuments() {\r\n return this.accountService.userHasPermission(Permission.manageDocumentsPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZG9jdW1lbnRzL2RvY3VtZW50LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'Documents',\r\n templateUrl: './document.component.html',\r\n styleUrls: ['./document.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class DocumentsComponent {\r\n\r\n isEditCategoriesActivated = false;\r\n isViewDocumentsActivated = true;\r\n isCollapsed = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly viewDocumentsTab = 'viewdocuments';\r\n readonly editCategoriesTab = 'editcategories';\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private accountService: AccountService,\r\n private configurations: ConfigurationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n this.isCollapsed = !this.menuExpanded;\r\n }\r\n \r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n\r\n showContent(anchor: string, test?: any) {\r\n\r\n //this.purchaseorder = sessionStorage.getItem(localStorageActions.PurchaseOrder);\r\n\r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.viewDocumentsTab}Tab`);\r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isEditCategoriesActivated = activeTab == this.editCategoriesTab;\r\n this.isViewDocumentsActivated = activeTab == this.viewDocumentsTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isViewDocumentsActivated = activeTab == this.viewDocumentsTab;\r\n this.isEditCategoriesActivated = activeTab == this.editCategoriesTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n \r\n \r\n get canViewDocuments() {\r\n return this.accountService.userHasPermission(Permission.viewDocumentsPermission);\r\n }\r\n\r\n\r\n get canManageDocuments() {\r\n return this.accountService.userHasPermission(Permission.manageDocumentsPermission);\r\n }\r\n\r\n get canViewMailServer() {\r\n return this.accountService.userHasPermission(Permission.webmailPermission);\r\n }\r\n \r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\"","module.exports = \"/*\\r\\n:host ::ng-deep .mat-tab-body-active {\\r\\n z-index: auto !important;\\r\\n }\\r\\n*/\\nbutton.close {\\n position: absolute;\\n top: 0.25rem;\\n right: 1.5rem;\\n z-index: 100; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ob21lL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcaG9tZVxcaG9tZS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9ob21lL2hvbWUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0NJQztBRENEO0VBQ0ksa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixhQUFhO0VBQ2IsWUFBWSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ob21lL2hvbWUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC10YWItYm9keS1hY3RpdmUge1xyXG4gICAgei1pbmRleDogYXV0byAhaW1wb3J0YW50O1xyXG4gIH1cclxuKi9cclxuYnV0dG9uLmNsb3NlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMC4yNXJlbTtcclxuICAgIHJpZ2h0OiAxLjVyZW07XHJcbiAgICB6LWluZGV4OiAxMDA7XHJcbn1cclxuIiwiLypcclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtdGFiLWJvZHktYWN0aXZlIHtcclxuICAgIHotaW5kZXg6IGF1dG8gIWltcG9ydGFudDtcclxuICB9XHJcbiovXG5idXR0b24uY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC4yNXJlbTtcbiAgcmlnaHQ6IDEuNXJlbTtcbiAgei1pbmRleDogMTAwOyB9XG4iXX0= */\"","\r\nimport { Component, Input, ViewChild } from '@angular/core';\r\nimport { MatSidenav } from '@angular/material';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BootstrapTabDirective } from '../../directives/bootstrap-tab.directive';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class HomeComponent {\r\n\r\n\r\n isSysprorepsActivated = true;\r\n isUserWhatsappsActivated = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly sysprorepsTab = 'sysproreps';\r\n readonly userwhatsappsTab = 'userwhatsapps';\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n @ViewChild('sidenav')\r\n sidenav: MatSidenav;\r\n\r\n @Input()\r\n isSpecificUser: boolean;\r\n isCollapsed: boolean;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private accountService: AccountService, private configurations: ConfigurationService\r\n ) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.isCollapsed = !this.menuExpanded;\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n showContent(anchor: string, test?: any) {\r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.sysprorepsTab}Tab`);\r\n\r\n }\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isSysprorepsActivated = activeTab == this.sysprorepsTab;\r\n this.isUserWhatsappsActivated = activeTab == this.userwhatsappsTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isSysprorepsActivated = activeTab == this.sysprorepsTab;\r\n this.isUserWhatsappsActivated = activeTab == this.userwhatsappsTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n Login\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Username is required\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Password is required\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".boxshadow {\\n position: relative;\\n box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5);\\n padding: 10px;\\n background: white; }\\n\\n.boxshadow::after {\\n content: '';\\n position: absolute;\\n z-index: -1;\\n /* hide shadow behind image */\\n box-shadow: 0 15px 20px rgba(0, 0, 0, 0.3);\\n width: 70%;\\n left: 15%;\\n /* one half of the remaining 30% */\\n height: 100px;\\n bottom: 0; }\\n\\n.cardshadow {\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); }\\n\\n.last-control-group {\\n margin-bottom: -0.75rem; }\\n\\n.h-90 {\\n height: 90%; }\\n\\n@media (min-width: 768px) {\\n .login-container {\\n width: 700px; } }\\n\\n@media (min-width: 1200px) {\\n .login-container {\\n width: 730px; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9sb2dpbi9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGxvZ2luXFxsb2dpbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtFQUNsQiwwQ0FBeUM7RUFDekMsYUFBYTtFQUNiLGlCQUFpQixFQUFBOztBQUluQjtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsV0FBVztFQUFFLDZCQUFBO0VBQ2IsMENBQTBDO0VBQzFDLFVBQVU7RUFDVixTQUFTO0VBQUUsa0NBQUE7RUFDWCxhQUFhO0VBQ2IsU0FBUyxFQUFBOztBQUlYO0VBQ0UsNEVBQTRFLEVBQUE7O0FBSTlFO0VBQ0UsdUJBQXVCLEVBQUE7O0FBSXpCO0VBQ0UsV0FBVyxFQUFBOztBQUliO0VBQ0U7SUFDRSxZQUFZLEVBQUEsRUFDYjs7QUFJSDtFQUNFO0lBQ0UsWUFBWSxFQUFBLEVBQ2IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJveHNoYWRvdyB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJveC1zaGFkb3c6IDFweCAycHggNHB4IHJnYmEoMCwgMCwgMCwgLjUpO1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbn1cclxuXHJcblxyXG4uYm94c2hhZG93OjphZnRlciB7XHJcbiAgY29udGVudDogJyc7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6IC0xOyAvKiBoaWRlIHNoYWRvdyBiZWhpbmQgaW1hZ2UgKi9cclxuICBib3gtc2hhZG93OiAwIDE1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgd2lkdGg6IDcwJTtcclxuICBsZWZ0OiAxNSU7IC8qIG9uZSBoYWxmIG9mIHRoZSByZW1haW5pbmcgMzAlICovXHJcbiAgaGVpZ2h0OiAxMDBweDtcclxuICBib3R0b206IDA7XHJcbn1cclxuXHJcblxyXG4uY2FyZHNoYWRvdyB7XHJcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDZweCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE5KTtcclxufVxyXG5cclxuXHJcbi5sYXN0LWNvbnRyb2wtZ3JvdXAge1xyXG4gIG1hcmdpbi1ib3R0b206IC0wLjc1cmVtO1xyXG59XHJcblxyXG5cclxuLmgtOTAge1xyXG4gIGhlaWdodDogOTAlO1xyXG59XHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgLmxvZ2luLWNvbnRhaW5lciB7XHJcbiAgICB3aWR0aDogNzAwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gIC5sb2dpbi1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDczMHB4O1xyXG4gIH1cclxufVxyXG4iXX0= */\"","\r\nimport { Component, OnInit, OnDestroy, Input } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { UserLogin } from '../../models/user-login.model';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\n\r\nexport class LoginComponent implements OnInit, OnDestroy {\r\n\r\n userLogin = new UserLogin();\r\n isLoading = false;\r\n formResetToggle = true;\r\n modalClosedCallback: () => void;\r\n loginStatusSubscription: any;\r\n\r\n @Input()\r\n isModal = false;\r\n\r\n\r\n constructor(private alertService: AlertService, private authService: AuthService, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.userLogin.rememberMe = this.authService.rememberMe;\r\n\r\n if (this.getShouldRedirect()) {\r\n this.authService.redirectLoginUser();\r\n } else {\r\n this.loginStatusSubscription = this.authService.getLoginStatusEvent().subscribe(isLoggedIn => {\r\n if (this.getShouldRedirect()) {\r\n this.authService.redirectLoginUser();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this.loginStatusSubscription) {\r\n this.loginStatusSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n getShouldRedirect() {\r\n return !this.isModal && this.authService.isLoggedIn && !this.authService.isSessionExpired;\r\n }\r\n\r\n\r\n showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n closeModal() {\r\n if (this.modalClosedCallback) {\r\n this.modalClosedCallback();\r\n }\r\n }\r\n\r\n\r\n login() {\r\n this.isLoading = true;\r\n this.alertService.startLoadingMessage('', 'Attempting login...');\r\n\r\n this.authService.login(this.userLogin.userName, this.userLogin.password, this.userLogin.rememberMe)\r\n .subscribe(\r\n user => {\r\n setTimeout(() => {\r\n this.alertService.stopLoadingMessage();\r\n this.isLoading = false;\r\n this.reset();\r\n\r\n if (!this.isModal) {\r\n this.alertService.showMessage('Login', `Welcome ${user.userName}!`, MessageSeverity.success);\r\n \r\n } else {\r\n this.alertService.showMessage('Login', `Session for ${user.userName} restored!`, MessageSeverity.success);\r\n setTimeout(() => {\r\n this.alertService.showStickyMessage('Session Restored', 'Please try your last operation again', MessageSeverity.default);\r\n }, 500);\r\n\r\n this.closeModal();\r\n }\r\n }, 500);\r\n },\r\n error => {\r\n\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (Utilities.checkNoNetwork(error)) {\r\n this.alertService.showStickyMessage(Utilities.noNetworkMessageCaption, Utilities.noNetworkMessageDetail, MessageSeverity.error, error);\r\n this.offerAlternateHost();\r\n } else {\r\n const errorMessage = Utilities.getHttpResponseMessage(error);\r\n\r\n if (errorMessage) {\r\n this.alertService.showStickyMessage('Unable to login', this.mapLoginErrorMessage(errorMessage), MessageSeverity.error, error);\r\n } else {\r\n this.alertService.showStickyMessage('Unable to login', 'An error occured whilst logging in, please try again later.\\nError: ' + Utilities.getResponseBody(error), MessageSeverity.error, error);\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n this.isLoading = false;\r\n }, 500);\r\n });\r\n }\r\n\r\n\r\n offerAlternateHost() {\r\n\r\n if (Utilities.checkIsLocalHost(location.origin) && Utilities.checkIsLocalHost(this.configurations.baseUrl)) {\r\n this.alertService.showDialog('Dear Developer!\\nIt appears your backend Web API service is not running...\\n' +\r\n 'Would you want to temporarily switch to the online Demo API below?(Or specify another)',\r\n DialogType.prompt,\r\n (value: string) => {\r\n this.configurations.baseUrl = value;\r\n this.configurations.tokenUrl = value;\r\n this.alertService.showStickyMessage('API Changed!', 'The target Web API has been changed to: ' + value, MessageSeverity.warn);\r\n },\r\n null,\r\n null,\r\n null,\r\n this.configurations.fallbackBaseUrl);\r\n }\r\n }\r\n\r\n\r\n mapLoginErrorMessage(error: string) {\r\n\r\n if (error == 'invalid_username_or_password') {\r\n return 'Invalid username or password';\r\n }\r\n\r\n if (error == 'invalid_grant') {\r\n return 'This account has been disabled';\r\n }\r\n\r\n return error;\r\n }\r\n\r\n\r\n reset() {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n}\r\n","module.exports = \"
\\r\\n

{{'pageHeader.NotFound' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
{{'notFound.404' | translate}}
\\r\\n
{{'notFound.pageNotFound' | translate}}
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \".icon-container {\\n font-size: 5rem; }\\n\\n.error-description {\\n font-size: 1.5rem;\\n padding-bottom: 10px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ub3QtZm91bmQvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxub3QtZm91bmRcXG5vdC1mb3VuZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLGVBQWUsRUFBQTs7QUFHbkI7RUFDSSxpQkFBaUI7RUFDakIsb0JBQW9CLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL25vdC1mb3VuZC9ub3QtZm91bmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmljb24tY29udGFpbmVyIHtcclxuICAgIGZvbnQtc2l6ZTogNXJlbTtcclxufVxyXG5cclxuLmVycm9yLWRlc2NyaXB0aW9uIHtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbn1cclxuIl19 */\"","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Component } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\n@Component({\r\n selector: 'not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class NotFoundComponent {\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvb3JkZXJzL29yZGVycy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n@Component({\r\n selector: 'orders',\r\n templateUrl: './orders.component.html',\r\n styleUrls: ['./orders.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class OrdersComponent {\r\n\r\n isListActivated = true;\r\n isViewActivated = false;\r\n isInventoryListActivated = false;\r\n isInventoryNSActivated = false;\r\n isCartViewActivated = false;\r\n\r\n isCollapsed = false;\r\n fragmentSubscription: any;\r\n\r\n readonly customersListTab = 'customers';\r\n readonly customerViewTab = 'view';\r\n readonly inventoryListTab = 'inventory';\r\n readonly inventoryNSTab = 'nonstock';\r\n readonly cartViewTab = 'cart';\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n isSearch: boolean;\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n id: any = \"\";\r\n cartId: string;\r\n noCart: boolean;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute,\r\n private configurations: ConfigurationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n this.cartId = cartId;\r\n this.noCart = true;\r\n\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n\r\n if (action) {\r\n this.id = action;\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor, this.id));\r\n if (cartId) {\r\n this.noCart = false;\r\n }\r\n } else {\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n this.cartId = cartId;\r\n this.noCart = true;\r\n if (action) {\r\n this.id = action;\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor, this.id));\r\n if (cartId) {\r\n this.noCart = false;\r\n }\r\n } else {\r\n\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n //this.router.navigate(['orders']);\r\n }\r\n }\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n showContent(anchor: string, test?: any) {\r\n\r\n this.id = sessionStorage.getItem(localStorageActions.Customer);\r\n this.cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n if (this.cartId) {\r\n this.noCart = false;\r\n }\r\n \r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.customersListTab}Tab`);\r\n\r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isListActivated = activeTab == this.customersListTab;\r\n this.isViewActivated = activeTab == this.customerViewTab;\r\n this.isInventoryListActivated = activeTab == this.inventoryListTab;\r\n this.isInventoryNSActivated = activeTab == this.inventoryNSTab;\r\n this.isCartViewActivated = activeTab == this.cartViewTab;\r\n\r\n this.router.navigate([], { fragment: activeTab, queryParams: { customer: this.id, cartId: this.cartId } });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isListActivated = activeTab == this.customersListTab;\r\n this.isViewActivated = activeTab == this.customerViewTab;\r\n this.isInventoryListActivated = activeTab == this.inventoryListTab;\r\n this.isInventoryNSActivated = activeTab == this.inventoryNSTab;\r\n this.isCartViewActivated = activeTab == this.cartViewTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n get canViewCustomers() {\r\n return true;\r\n }\r\n\r\n get canViewMovements() {\r\n return true;//TODO: this.accountService.userHasPermission(Permission.viewCustomerMovementsPermission);\r\n }\r\n\r\n get canViewPayments() {\r\n return true;//TODO: this.accountService.userHasPermission(Permission.viewCustomerPaymentsPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcG9kL3BvZC1jb21wb25lbnRzL3BvZC1lZGl0YmF0Y2guY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, ViewChild, Input } from '@angular/core';\r\n//import { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { fadeInOut } from '../../../services/animations';\r\n//import { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\n//import { Permission } from 'src/app/models/permission.model';\r\n//import { Utilities } from 'src/app/services/utilities';\r\n//import { SysproService } from 'src/app/services/syspro.service';\r\n//import { localStorageActions } from 'src/app/models/enums';\r\n//import { ReportsInvoiceReprintComponent } from './report-components/reports-invoice-reprint-component';\r\n//import { ReportsInvoiceStatusComponent } from './report-components/reports-invoice-status-component';\r\n//import { ReportsSalesComponent } from './report-components/reports-sales-component';\r\n//import { ReportsInvoiceTrackingPurgeComponent } from './report-components/reports-invoice-tracking-purge-component';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'pod-editbatch',\r\n templateUrl: './pod-editbatch.component.html',\r\n styleUrls: ['./pod-editbatch.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class PodEditBatchComponent {\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private accountService: AccountService) {\r\n }\r\n \r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
Records Synced to Next Gen
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wb2QvcG9kLWNvbXBvbmVudHMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxwb2RcXHBvZC1jb21wb25lbnRzXFxwb2QtZmlsZS1zeW5jLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3BvZC9wb2QtY29tcG9uZW50cy9wb2QtZmlsZS1zeW5jLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGFBQWE7RUFDYixZQUFZO0VBQ1osMEVBQTBFLEVBQUE7RUFQNUU7SUFVSSw4QkFBOEI7SUFDOUIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixVQUFVO0lBQ1YsV0FBVyxFQUFBO0VBSWYsVUFBQTtFQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QjtFQUN2Qiw2Q0FBMEMsRUFBQTtFQUk1QztFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixxQ0FBcUM7SUFDckMsNkJBQTZCO0lBQzdCLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osVUFBVSxFQUFBO0VBZGQ7SUFrQkksa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixnQkFBZ0IsRUFBQTtFQXBCcEI7SUF3Qkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEI7RUFDRSxzQkFBc0I7RUFDdEIsNERBQWlHO0VBQ2pHLGtCQUFrQixFQUFBO0VBR3BCO0VBQ0UsZUFBZTtFQUVmLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxZQUFZLEVBQUE7RUFEZDtJQUlJLFVBQVUsRUFBQTtFQUlkO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUIsRUFBQTtFQUd6QjtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQjttQ0N4QitCO0lEMEIvQixpQkFBaUI7SUFDakIsWUFBWSxFQUFBO0VBYmhCO0lBaUJJLGtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBQTtFQWxCcEI7SUFzQkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEIsbUJBQUE7RUFDQTtFQUNFO0lBQ0UsK0ZBQUE7SUFDQSw2QkFBNkIsRUFBQSxFQUM5QjtFQUdILGtCQUFBO0VBQ0E7RUFDRTtJQUNFLHNFQUFBO0lBQ0Esc0JBQXNCLEVBQUEsRUFDdkI7RUFJSDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLFdBQVcsRUFBQTtFQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixPQUFPO0VBQ1AsV0FBVyxFQUFBO0VBSmI7SUFPSSxZQUFZLEVBQUE7RUFJaEI7RUFDRSxlQUFlO0VBQ2Ysd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxlQUFlO0VBQ2YsaUNBQWlDLEVBQUE7RUFHbkM7RUFDRSxlQUFlLEVBQUE7RUFHakI7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxhQUFhLEVBQUE7RUFHZjtFQUNFLGNBQWMsRUFBQTtFQUdoQjtFQUNFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsaUJBQWlCLEVBQUE7RUFHbkI7O0VBRUUsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRTtJQUNFLGdCQUFnQixFQUFBLEVBQ2pCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wb2QvcG9kLWNvbXBvbmVudHMvcG9kLWZpbGUtc3luYy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uYWRkcmVzcy1jb250YWluZXIge1xyXG4gIG1heC13aWR0aDogNDAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XHJcbiAgcGFkZGluZzogMjVweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7XHJcblxyXG4gIGZpZWxkc2V0IHtcclxuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMCAwIDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBMYXJnZSAqL1xyXG4uZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XHJcbiAgLy9oZWlnaHQ6IDI1cHg7XHJcbn1cclxuXHJcbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIGZsZXg6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gICAgbWluLXdpZHRoOiAyMDBweDtcclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4ucm93IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4uY29udHJvbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAycHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7XHJcbn1cclxuXHJcbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICB9XHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogN3B4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5zdWJzZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogN3B4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogN3B4O1xyXG59XHJcblxyXG4uZm9ybS1ncm91cCB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBwYWRkaW5nLXRvcDogMDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG59XHJcblxyXG4uY29sLXNldC1kZWZhdWx0IHtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XHJcbiAgbWluLXdpZHRoOiAxNTBweDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgfVxyXG59XHJcbiIsIi5hZGRyZXNzLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIG1hcmdpbjogMTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLmFkZHJlc3MtY29udGFpbmVyIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4vKiBMYXJnZSAqL1xuLmZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGZsZXg6IG5vbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXgtZ3JvdzogMjtcbiAgICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi5yb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlIDEwJSwgI2Y3ZjdmNyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4uY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIG1pbi13aWR0aDogMTcwcHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsIHtcbiAgcGFkZGluZzogOHB4OyB9XG4gIC5jb250cm9sLWRldGFpbCAubmF2LWxpbmsge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMnB4OyB9XG5cbi5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4OyB9XG5cbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAxMjBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9IH1cblxuLyogU21hbGwgc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxO1xuICBmbG9hdDogbGVmdDsgfVxuICAuY29sdW1uIGxhYmVsIHtcbiAgICBwYWRkaW5nOiA1cHg7IH1cblxuLnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkOyB9XG5cbi5zdWJzZXBhcmF0b3ItaHIge1xuICBtYXJnaW46IDdweCA1cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xuICBtYXJnaW4tdG9wOiA3cHg7IH1cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcbiAgbWluLWhlaWdodDogMDsgfVxuXG4uY2hlY2tib3gge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5jb2wtc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQgLmJ0bixcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XG4gIG1pbi13aWR0aDogMTUwcHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtZm9ybS1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDVweDsgfSB9XG4iXX0= */\"","import { Component, OnInit, ViewChild, Input, TemplateRef } from '@angular/core';\r\n//import { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { fadeInOut } from '../../../services/animations';\r\n//import { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { MySQLDocument } from '../../../models/mysqldocument.model';\r\nimport { SalesOrderList } from '../../../models/salesorder-list.model';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { InvoiceBarcode } from '../../../models/invoice-barcode.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { BarcodeReference } from '../../../models/barcode-reference.model';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'pod-file-sync',\r\n templateUrl: './pod-file-sync.component.html',\r\n styleUrls: ['./pod-file-sync.component.scss']\r\n})\r\nexport class PodFileSyncComponent implements OnInit {\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n searchResults: InvoiceBarcode[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: InvoiceBarcode;\r\n\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n checkCreditNotes: boolean;\r\n columns: any[] = [];\r\n rows: InvoiceBarcode[] = [];\r\n rowsCache: InvoiceBarcode[];\r\n\r\n columnsBarcodeReference: any[] = [];\r\n BarcodeReferenceList: BarcodeReference[] = [];\r\n BarcodesUpdated: BarcodeReference[];\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n\r\n selectedBranch: string;\r\n selectedCustomer: string;\r\n selectedCompany: string;\r\n selectedDocumentType: string;\r\n\r\n loadingIndicator: boolean;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n show: boolean;\r\n\r\n ranges = {\r\n //'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n constructor(private router: Router, private alertService: AlertService, private fowkesService: FowkesOnlineService, private sysproService: SysproService, private route: ActivatedRoute, private accountService: AccountService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.selected = {\r\n startDate: moment().subtract(1, 'day').startOf('day'),\r\n endDate: moment().subtract(0, 'day').endOf('day')\r\n }\r\n\r\n\r\n //Search by document dates\r\n this.columnsBarcodeReference = [\r\n { prop: 'company', name: 'C', width: 50 },\r\n { prop: 'prefix', name: 'Prefix', width: 50, cellClass: \"center\" },\r\n { prop: 'branch', name: 'Branch', width: 70, cellClass: \"center\" },\r\n { prop: 'status', name: 'Status', width: 120 },\r\n { prop: 'invoice', name: 'Invoice', width: 90 },\r\n { prop: 'barcode', name: 'Barcode', width: 90 },\r\n { prop: 'fileName', name: 'File Name', width: 200 },\r\n { prop: 'numberOfFiles', name: 'Count', width: 50 },\r\n { prop: 'barcodeDate', name: 'Document Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'exclude', name: 'Excluded', width: 90 }\r\n ];\r\n\r\n this.loadFileReferences();\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n //Search by document dates\r\n this.columnsBarcodeReference = [\r\n { prop: 'company', name: 'C', width: 50 },\r\n { prop: 'prefix', name: 'Prefix', width: 50, cellClass: \"center\" },\r\n { prop: 'branch', name: 'Branch', width: 70, cellClass: \"center\" },\r\n { prop: 'status', name: 'Status', width: 120 },\r\n { prop: 'invoice', name: 'Invoice', width: 90 },\r\n { prop: 'barcode', name: 'Barcode', width: 90 },\r\n { prop: 'fileName', name: 'File Name', width: 200 },\r\n { prop: 'numberOfFiles', name: 'Count', width: 50 },\r\n { prop: 'barcodeDate', name: 'Document Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'exclude', name: 'Excluded', width: 90 }\r\n ];\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.company, r.customer, r.branch, r.docType, r.invoice));\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n }\r\n\r\n private loadFileReferences(result?: any) { \r\n\r\n //this.alertService.startLoadingMessage();\r\n //this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.selectUndefinedOptionValue);\r\n let status = this.selectUndefinedOptionValue;\r\n\r\n //this.sysproService.getBarcodesAvailableReport(startD.toJSON(), endD.toJSON(),\r\n // company, branch, status).subscribe(x => this.onBarcodeSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n if (result) { \r\n console.log(\"POST RESPONSE\", result.value);\r\n let test = result.value.actionInput;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', test + ' Records were found for syncing, the database has been updated', MessageSeverity.success);\r\n }\r\n }\r\n\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n\r\n syncToNextGen() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n let currentDate: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n while (currentDate <= endD) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n let year = currentDate.getFullYear();\r\n let month = (\"0\" + (currentDate.getMonth() + 1)).slice(-2);\r\n let day = (\"0\" + currentDate.getDate()).slice(-2);\r\n currentDate = new Date(currentDate.setDate(currentDate.getDate() + 1));\r\n\r\n this.sysproService.syncFileReferencesByDate(year + '-' + month, day).subscribe(x => this.loadFileReferences(x) , error => this.onDataLoadFailed(error));\r\n }\r\n //let currentDate: Date = new Date();\r\n //let year = currentDate.getFullYear();\r\n //let month = (\"0\" + (currentDate.getMonth() + 1)).slice(-2);\r\n //let day = (\"0\" + currentDate.getDate()).slice(-2);\r\n //currentDate = new Date(currentDate.setDate(currentDate.getDate() + 1));\r\n //this.sysproService.syncFileReferencesByDate(year + '-' + month, day).subscribe(x => this.loadFileReferences(x), error => this.onReferenceLoadFail(error));\r\n }\r\n\r\n onBarcodeSearchSuccesful(x: BarcodeReference[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n let details = x;\r\n details.forEach((line, index, details) => { \r\n (line).index = index + 1;\r\n });\r\n this.BarcodesUpdated = [...details];\r\n this.BarcodeReferenceList = this.BarcodesUpdated; \r\n }\r\n }\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n this.loadFileReferences();\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.show = false;\r\n this.loadFileReferences();\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n this.loadFileReferences();\r\n }\r\n\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n Allocate \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

POD List

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CompanyReferenceFileNumberPrefixUploaded OnStatusFilenameUpdate
\\r\\n {{row.company}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.fileNumber}}\\r\\n \\r\\n {{row.prefix}}\\r\\n \\r\\n {{row.barcodeDate | date: 'dd MMM yyyy'}}\\r\\n \\r\\n {{row.status}}\\r\\n \\r\\n \\r\\n {{row.fileName}}\\r\\n \\r\\n \\r\\n Save new mapping \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcG9kL3BvZC1jb21wb25lbnRzL3BvZC1yZWNvbmNpbGUuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, TemplateRef, ViewChild } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { BarcodeReference } from '../../../models/barcode-reference.model';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'pod-reconcile',\r\n templateUrl: './pod-reconcile.component.html',\r\n styleUrls: ['./pod-reconcile.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class PodReconcileComponent {\r\n\r\n show: boolean = false;\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n loadingIndicator: boolean = false;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n ranges = {\r\n //'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n rows: BarcodeReference[] = [];\r\n\r\n rowsCache: BarcodeReference[] = [];\r\n\r\n columns: any[] = [];\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('barcodeTemplate')\r\n barcodeTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n referenceList: BarcodeReference[];\r\n\r\n pdfSrc: SafeResourceUrl | null = null; // Store PDF URL\r\n\r\n @ViewChild('podModal')\r\n podModal: ModalDirective;\r\n referenceRows: BarcodeReference[];\r\n rowsToSave: number;\r\n invoice: string;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private accountService: AccountService, private sysproService: SysproService, private alertService: AlertService,\r\n private sanitizer: DomSanitizer, private configurations: ConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.selected = {\r\n startDate: moment().startOf('month'),\r\n endDate: moment().endOf('month')\r\n }\r\n\r\n\r\n this.columns = [\r\n { prop: 'invoice', name: 'Reference', width: '120', cellClass: \"left\"},\r\n { prop: 'barcodeDate', name: 'File Date', width: '120', cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n //{ prop: 'orderStatus', name: 'Order Status', width: '90', cellClass: \"left\", sortable: false },\r\n { prop: 'status', name: 'Status', width: '100', cellClass: \"left\" },\r\n { prop: 'month', name: 'File Month', width: '100', cellClass: \"left\" },\r\n { prop: 'day', name: 'File Day', width: '100', cellClass: \"left\" },\r\n { prop: 'fileNumber', name: 'Number', width: '100', cellClass: \"left\" },\r\n { prop: 'prefix', name: 'Prefix', width: '100', cellClass: \"left\" },\r\n { prop: 'fileName', name: 'File Name', width: '200', cellClass: \"left\", cellTemplate: this.selectTemplate },\r\n //{ prop: 'lastSyncDate', name: 'Synced On', width: '100', cellClass: \"left\", cellTemplate: this.dateTemplate, sortable: false },\r\n //{ prop: 'hasBuyouts', name: 'Buyouts?', width: '70', cellClass: \"left\" },\r\n //{ prop: 'documentType', name: 'Type', width: '70', cellClass: \"left\", sortable: false },\r\n //{ prop: 'invTerms', name: 'Terms', width: '70', cellClass: \"left\", sortable: false },\r\n //{ prop: 'numberOfFiles', name: 'Files', width: '70', cellClass: \"left\", sortable: false }\r\n ];\r\n\r\n this.columns.push({ name: '', width: 160, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.Loaddata();\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n this.columns = [\r\n { prop: 'invoice', name: 'Reference', width: '120', cellClass: \"left\" },\r\n { prop: 'barcodeDate', name: 'File Date', width: '120', cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n //{ prop: 'orderStatus', name: 'Order Status', width: '90', cellClass: \"left\", sortable: false },\r\n { prop: 'status', name: 'Status', width: '100', cellClass: \"left\" },\r\n { prop: 'month', name: 'File Month', width: '100', cellClass: \"left\" },\r\n { prop: 'day', name: 'File Day', width: '100', cellClass: \"left\" },\r\n { prop: 'fileNumber', name: 'Number', width: '100', cellClass: \"left\" },\r\n { prop: 'prefix', name: 'Prefix', width: '100', cellClass: \"left\" },\r\n { prop: 'fileName', name: 'File Name', width: '200', cellClass: \"left\", cellTemplate: this.selectTemplate },\r\n //{ prop: 'lastSyncDate', name: 'Synced On', width: '100', cellClass: \"left\", cellTemplate: this.dateTemplate, sortable: false },\r\n //{ prop: 'hasBuyouts', name: 'Buyouts?', width: '70', cellClass: \"left\" },\r\n //{ prop: 'documentType', name: 'Type', width: '70', cellClass: \"left\", sortable: false },\r\n //{ prop: 'invTerms', name: 'Terms', width: '70', cellClass: \"left\", sortable: false },\r\n //{ prop: 'numberOfFiles', name: 'Files', width: '70', cellClass: \"left\", sortable: false }\r\n ];\r\n\r\n this.columns.push({ name: '', width: 160, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n\r\n Loaddata() {\r\n\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n\r\n this.sysproService.getBarcodesUnallocated(startD.toJSON(), endD.toJSON(), this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue)\r\n .subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onSearchSuccesful(x: BarcodeReference[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n\r\n this.referenceList = x;\r\n\r\n this.referenceList.forEach((barcode, index, list) => {\r\n (barcode).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...this.referenceList];\r\n if (this.referenceList.length >= 200) {\r\n this.rows = this.referenceList.slice(0, 200);\r\n }\r\n else {\r\n this.rows = this.referenceList;\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n viewFile(row: BarcodeReference) {\r\n this.sysproService.getFileStream(row.fileName, row.fileNumber).subscribe(x => this.onFileSuccessful(x, row.fileName), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n viewPOD(row: BarcodeReference) {\r\n this.sysproService.getFileStream(row.fileName, row.fileNumber).subscribe(\r\n (x) => {\r\n const url = window.URL.createObjectURL(new Blob([x], { type: \"application/pdf\" }));\r\n this.pdfSrc = this.sanitizer.bypassSecurityTrustResourceUrl(url + \"#view=FitH&navpanes=0\");\r\n\r\n },\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n }\r\n\r\n podModalHide() {\r\n this.pdfSrc = null; // Reset PDF source when closing\r\n this.podModal.hide();\r\n\r\n this.Loaddata();\r\n }\r\n\r\n\r\n changeInvoice(row: BarcodeReference) {\r\n\r\n sessionStorage.removeItem(localStorageActions.PODReference);\r\n sessionStorage.setItem(localStorageActions.PODReference, row.invoice);\r\n\r\n //this.router.navigate(['../pods'], { fragment: 'view', queryParams: { invoice: row.invoice } });\r\n \r\n this.sysproService.getPODByInvoice(row.invoice).subscribe(\r\n (data) => {\r\n this.referenceRows = data;\r\n this.podModalShow();\r\n },\r\n (error) => {\r\n this.alertService.showStickyMessage('Error', `Could not fetch POD details: ${error}`, MessageSeverity.error);\r\n }\r\n );\r\n }\r\n podModalShow() {\r\n if (!this.podModal) {\r\n setTimeout(() => {\r\n if (this.podModal) {\r\n this.podModal.show();\r\n }\r\n });\r\n } else {\r\n this.podModal.show();\r\n }\r\n }\r\n\r\n allocate(row: BarcodeReference) {\r\n if (row.invoice && row.invoice.length >= 5) {\r\n row.company = (this.application == \"MaxArcusOnline\" ? \"M\" : \"F\");\r\n row.branch = row.invoice.substr(0, 2);\r\n row.status = \"Allocated\";\r\n this.rowsToSave = 0;\r\n this.invoice = row.invoice;\r\n this.sysproService.savePOD(row, row.invoice).subscribe(_response => this.saveSuccessHelper(_response, row.fileNumber, row.barcode, row.invoice), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n private saveSuccessHelper(x: BarcodeReference, oldRow: number, oldInvoice: string, newInvoice: string) {\r\n if (oldInvoice != newInvoice) {\r\n\r\n this.alertService.showMessage('Success', ` POD mapped from ` + oldInvoice + ` to ` + newInvoice, MessageSeverity.success);\r\n this.sysproService.deletePOD(oldInvoice, oldRow).subscribe(x => this.onBarcodesForNewInvoiceLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n onBarcodesForNewInvoiceLoadSuccesful(x: any) {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n\r\n this.referenceList = x;\r\n\r\n this.referenceList.forEach((barcode, index, list) => {\r\n (barcode).index = index + 1;\r\n if (barcode.company.trim() == \"\") {\r\n (barcode).status = \"Unallocated\";\r\n }\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n get canManagePODs() {\r\n return this.accountService.userHasPermission(Permission.managePODsPermission);\r\n }\r\n\r\n onFileSuccessful(x: Blob, fileName: string): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n this.Loaddata();\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.show = false;\r\n this.Loaddata();\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n this.Loaddata();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.invoice, r.orderDate, r.orderStatus, r.fileName, r.prefix, r.branch, r.month, r.status,\r\n r.barcodeEntryDateString));\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

POD List

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CompanyReferenceFileNumberPrefixUploaded OnStatusFilename
\\r\\n {{row.company}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.fileNumber}}\\r\\n \\r\\n {{row.prefix}}\\r\\n \\r\\n {{row.barcodeDate | date: 'dd MMM yyyy'}}\\r\\n \\r\\n {{row.status}}\\r\\n \\r\\n \\r\\n {{row.fileName}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .slim-table th,\\n.slim-table td {\\n padding: 4px 8px !important;\\n /* Reduce padding */\\n font-size: 0.65rem !important;\\n /* Slightly smaller font */ }\\n .slim-table th {\\n background-color: #343a40;\\n color: white;\\n text-align: center; }\\n .slim-table tbody tr {\\n height: 30px;\\n /* Reduce row height */ }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wb2QvcG9kLWNvbXBvbmVudHMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxwb2RcXHBvZC1jb21wb25lbnRzXFxwb2Qtc2VhcmNoLW1pc3NpbmcuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvcG9kL3BvZC1jb21wb25lbnRzL3BvZC1zZWFyY2gtbWlzc2luZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsWUFBWTtFQUNaLDBFQUEwRSxFQUFBO0VBUDVFO0lBVUksOEJBQThCO0lBQzlCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsVUFBVTtJQUNWLFdBQVcsRUFBQTtFQUlmLFVBQUE7RUFDQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUI7RUFDdkIsNkNBQTBDLEVBQUE7RUFJNUM7RUFDRSxhQUFhLEVBQUE7RUFHZjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDJCQUEyQjtFQUMzQixxQkFBcUIsRUFBQTtFQUx2QjtJQVFJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIscUNBQXFDO0lBQ3JDLDZCQUE2QjtJQUM3QixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLFVBQVUsRUFBQTtFQWRkO0lBa0JJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osZ0JBQWdCLEVBQUE7RUFwQnBCO0lBd0JJLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsWUFBWSxFQUFBO0VBSWhCO0VBQ0Usc0JBQXNCO0VBQ3RCLDREQUFpRztFQUNqRyxrQkFBa0IsRUFBQTtFQUdwQjtFQUNFLGVBQWU7RUFFZixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsWUFBWSxFQUFBO0VBRGQ7SUFJSSxVQUFVLEVBQUE7RUFJZDtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0Usd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCLEVBQUE7RUFHekI7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDJCQUEyQjtFQUMzQixxQkFBcUIsRUFBQTtFQUx2QjtJQVFJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEI7bUNDeEIrQjtJRDBCL0IsaUJBQWlCO0lBQ2pCLFlBQVksRUFBQTtFQWJoQjtJQWlCSSxrQkFBa0I7SUFDbEIsZ0JBQWdCLEVBQUE7RUFsQnBCO0lBc0JJLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsWUFBWSxFQUFBO0VBSWhCOztFQUVFLDJCQUEyQjtFQUFFLG1CQUFBO0VBQzdCLDZCQUE2QjtFQUFFLDBCQUFBLEVBQTJCO0VBRzVEO0VBQ0UseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixrQkFBa0IsRUFBQTtFQUdwQjtFQUNFLFlBQVk7RUFBRSxzQkFBQSxFQUF1QjtFQUl2QyxtQkFBQTtFQUNBO0VBQ0U7SUFDRSwrRkFBQTtJQUNBLDZCQUE2QixFQUFBLEVBQzlCO0VBR0gsa0JBQUE7RUFDQTtFQUNFO0lBQ0Usc0VBQUE7SUFDQSxzQkFBc0IsRUFBQSxFQUN2QjtFQUlIO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsV0FBVyxFQUFBO0VBR2I7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLE9BQU87RUFDUCxXQUFXLEVBQUE7RUFKYjtJQU9JLFlBQVksRUFBQTtFQUloQjtFQUNFLGVBQWU7RUFDZix3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGVBQWU7RUFDZixpQ0FBaUMsRUFBQTtFQUduQztFQUNFLGVBQWUsRUFBQTtFQUdqQjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsY0FBYyxFQUFBO0VBR2hCO0VBQ0UsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxpQkFBaUIsRUFBQTtFQUduQjs7RUFFRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFO0lBQ0UsZ0JBQWdCLEVBQUEsRUFDakIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3BvZC9wb2QtY29tcG9uZW50cy9wb2Qtc2VhcmNoLW1pc3NpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmFkZHJlc3MtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xyXG4gIHBhZGRpbmc6IDI1cHg7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xyXG5cclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyogTGFyZ2UgKi9cclxuLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xyXG4gIC8vaGVpZ2h0OiAyNXB4O1xyXG59XHJcblxyXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICBmbGV4OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICAgIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLnJvdyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiKDI1NSwgMjU1LCAyNTUpLCByZ2IoMjU1LCAyNTUsIDI1NSkgMTAlLCByZ2IoMjQ3LCAyNDcsIDI0NykpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxufVxyXG5cclxuLmNvbnRyb2wtbGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICAvLyBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAzcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gIG1pbi13aWR0aDogMTcwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCB7XHJcbiAgcGFkZGluZzogOHB4O1xyXG5cclxuICAubmF2LWxpbmsge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMnB4O1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG5cclxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuc21hbGwtY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgd2lkdGg6IDEyMHB4O1xyXG4gIH1cclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLnNsaW0tdGFibGUgdGgsXHJcbi5zbGltLXRhYmxlIHRkIHtcclxuICBwYWRkaW5nOiA0cHggOHB4ICFpbXBvcnRhbnQ7IC8qIFJlZHVjZSBwYWRkaW5nICovXHJcbiAgZm9udC1zaXplOiAwLjY1cmVtICFpbXBvcnRhbnQ7IC8qIFNsaWdodGx5IHNtYWxsZXIgZm9udCAqL1xyXG59XHJcblxyXG4uc2xpbS10YWJsZSB0aCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uc2xpbS10YWJsZSB0Ym9keSB0ciB7XHJcbiAgaGVpZ2h0OiAzMHB4OyAvKiBSZWR1Y2Ugcm93IGhlaWdodCAqL1xyXG59XHJcblxyXG5cclxuLyogTWVkaXVtIHNjcmVlbnMgKi9cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcclxuICAuZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgICAvKiBXaGVuIG9uIG1lZGl1bSBzaXplZCBzY3JlZW5zLCB3ZSBjZW50ZXIgaXQgYnkgZXZlbmx5IGRpc3RyaWJ1dGluZyBlbXB0eSBzcGFjZSBhcm91bmQgaXRlbXMgKi9cclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gIH1cclxufVxyXG5cclxuLyogU21hbGwgc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5jb2x1bW4ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4OiAxO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG5cclxuICBsYWJlbCB7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDdweCA1cHg7XHJcbiAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uc3Vic2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDdweCA1cHg7XHJcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbi10b3A6IDdweDtcclxufVxyXG5cclxuLmZvcm0tZ3JvdXAge1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgcGFkZGluZy10b3A6IDA7XHJcbn1cclxuXHJcbi5jb2wtcmVzZXQtZGVmYXVsdCB7XHJcbiAgcGFkZGluZy1yaWdodDogMDtcclxufVxyXG5cclxuLmNvbC1zZXQtZGVmYXVsdCB7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxyXG4uY29sLXNldC1kZWZhdWx0IC5idG4ge1xyXG4gIG1pbi13aWR0aDogMTUwcHg7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gIH1cclxufVxyXG4iLCIuYWRkcmVzcy1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xuICBwYWRkaW5nOiAyNXB4O1xuICBtYXJnaW46IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XG4gIC5hZGRyZXNzLWNvbnRhaW5lciBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiBtZWRpdW0gbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLyogTGFyZ2UgKi9cbi5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4uY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBmbGV4OiBub25lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4LWdyb3c6IDI7XG4gICAgbWluLXdpZHRoOiAyMDBweDsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4ucm93IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSAxMCUsICNmN2Y3ZjcpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuLmNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBtaW4td2lkdGg6IDE3MHB4OyB9XG5cbi5jb250cm9sLWRldGFpbCB7XG4gIHBhZGRpbmc6IDhweDsgfVxuICAuY29udHJvbC1kZXRhaWwgLm5hdi1saW5rIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XG4gIHBhZGRpbmc6IDJweDsgfVxuXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDAgMTBweDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZzogLjA1cmVtIC4yNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7Ki9cbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aWR0aDogMTIwcHg7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIG1pbi13aWR0aDogMTAwcHg7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleDogMztcbiAgICBmbGV4LWdyb3c6IDI7IH1cblxuLnNsaW0tdGFibGUgdGgsXG4uc2xpbS10YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDRweCA4cHggIWltcG9ydGFudDtcbiAgLyogUmVkdWNlIHBhZGRpbmcgKi9cbiAgZm9udC1zaXplOiAwLjY1cmVtICFpbXBvcnRhbnQ7XG4gIC8qIFNsaWdodGx5IHNtYWxsZXIgZm9udCAqLyB9XG5cbi5zbGltLXRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnNsaW0tdGFibGUgdGJvZHkgdHIge1xuICBoZWlnaHQ6IDMwcHg7XG4gIC8qIFJlZHVjZSByb3cgaGVpZ2h0ICovIH1cblxuLyogTWVkaXVtIHNjcmVlbnMgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgICAvKiBXaGVuIG9uIG1lZGl1bSBzaXplZCBzY3JlZW5zLCB3ZSBjZW50ZXIgaXQgYnkgZXZlbmx5IGRpc3RyaWJ1dGluZyBlbXB0eSBzcGFjZSBhcm91bmQgaXRlbXMgKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfSB9XG5cbi8qIFNtYWxsIHNjcmVlbnMgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgICAvKiBPbiBzbWFsbCBzY3JlZW5zLCB3ZSBhcmUgbm8gbG9uZ2VyIHVzaW5nIHJvdyBkaXJlY3Rpb24gYnV0IGNvbHVtbiAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuXG4ucm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uY29sdW1uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmNvbHVtbiBsYWJlbCB7XG4gICAgcGFkZGluZzogNXB4OyB9XG5cbi5zZXBhcmF0b3ItaHIge1xuICBtYXJnaW46IDdweCA1cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDsgfVxuXG4uc3Vic2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luLXRvcDogN3B4OyB9XG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XG4gIG1pbi1oZWlnaHQ6IDA7IH1cblxuLmNoZWNrYm94IHtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLmNvbC1yZXNldC1kZWZhdWx0IHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uY29sLXNldC1kZWZhdWx0IHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cblxuLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXG4uY29sLXNldC1kZWZhdWx0IC5idG4ge1xuICBtaW4td2lkdGg6IDE1MHB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sLWZvcm0tbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiA1cHg7IH0gfVxuIl19 */\"","import { Component, OnInit, ViewChild, AfterViewInit, TemplateRef, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { Branch } from '../../../models/branch.model';\r\n\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { BarcodeReference } from '../../../models/barcode-reference.model';\r\nimport { ValueHelper } from '../../../models/valuehelper.model';\r\nimport { validation } from '../../../services/validation.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { ModalDirective } from 'ngx-bootstrap';\r\nimport { CreditNoteDetail } from '../../../models/invoice-credit-note-detail.model';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'pod-search-missing',\r\n templateUrl: './pod-search-missing.component.html',\r\n styleUrls: ['./pod-search-missing.component.scss']\r\n})\r\nexport class PodSearchMissingComponent implements OnInit, AfterViewInit {\r\n\r\n show: boolean = false;\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n allBranches: Branch[] = [];\r\n\r\n loadingIndicator: boolean = false;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n ranges = {\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 6 Months': [moment().subtract(6, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n rows: BarcodeReference[] = [];\r\n\r\n rowsCache: BarcodeReference[] = [];\r\n\r\n columns: any[] = [];\r\n\r\n selectedBranch: string;\r\n\r\n selectedCompany: string;\r\n\r\n selectedStatus: string;\r\n\r\n exclTrans: boolean = false;\r\n\r\n exclCancelled: boolean = false;\r\n\r\n exclCreditNotes: boolean = false;\r\n\r\n exclCashSales: boolean = false;\r\n\r\n showAll: boolean = false;\r\n\r\n excludedTransfers: BarcodeReference[] = [];\r\n\r\n excludedCreditnotes: BarcodeReference[] = [];\r\n\r\n excludedCashSales: BarcodeReference[] = [];\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n\r\n @ViewChild('statusList')\r\n private statusList;\r\n\r\n @ViewChild('statusListSelector')\r\n private statusListSelector;\r\n\r\n @ViewChild('purchaseOrderList')\r\n purchaseOrderList: TemplateRef;\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('barcodeTemplate')\r\n barcodeTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n chkBuyouts: boolean;\r\n chkPresent: boolean;\r\n chkTransfers: boolean;\r\n chkCRN: boolean;\r\n chkCash: boolean;\r\n chkAll: boolean;\r\n chkCnc: boolean;\r\n searchBatchFrom: string;\r\n searchBatchTo: string;\r\n\r\n\r\n @ViewChild('podModal')\r\n podModal: ModalDirective;\r\n referenceRow: BarcodeReference;\r\n referenceRows: BarcodeReference[] = [];\r\n selectedCreditNote: CreditNoteDetail[] = [];\r\n selectedInvoice: string;\r\n selectedSalesOrder: string;\r\n showsalesOrder: boolean;\r\n showSalesInvoice: boolean;\r\n hasCreditNote: boolean;\r\n showIts: boolean;\r\n isTransfer: boolean;\r\n showCreditNoteInvoice: boolean;\r\n activeTab: string;\r\n selectedCreditNoteInvoice: string;\r\n selectedCreditNoteSalesOrder: string;\r\n\r\n\r\n constructor(private router: Router, private alertService: AlertService, private sysproService: SysproService, private route: ActivatedRoute,\r\n private accountService: AccountService, private fowkesOnline: FowkesOnlineService, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.selected = {\r\n startDate: moment().startOf('month'),\r\n endDate: moment().endOf('month')\r\n }\r\n\r\n this.selectedCompany = (this.application == \"MaxArcusOnline\" ? \"M\" : \"F\");\r\n this.selectedStatus = \"Missing POD\";\r\n this.chkCnc = true;\r\n this.chkTransfers = true;\r\n this.chkCRN = true;\r\n this.selectedBranch = \"ALL\";\r\n\r\n this.setData();\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n this.Loaddata();\r\n }\r\n\r\n setData() {\r\n this.columns = [\r\n { prop: 'company', name: 'C', width: '50', cellClass: \"left\" },\r\n { prop: 'documentType', name: 'T', width: '50', cellClass: \"left\" },\r\n { prop: 'branch', name: 'Branch', width: '70', cellClass: \"left\" },\r\n { prop: 'invoice', name: 'Reference', width: '120', cellClass: \"left\", cellTemplate: this.barcodeTemplate },\r\n { prop: 'orderDate', name: 'Order Date', width: '120', cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'orderStatus', name: 'Order Status', width: '90', cellClass: \"left\" },\r\n { prop: 'status', name: 'Status', width: '100', cellClass: \"left\" },\r\n { prop: 'customer', name: 'Customer', width: '100', cellClass: \"left\" },\r\n { prop: 'numberOfFiles', name: 'Files', width: '70', cellClass: \"left\" },\r\n { name: 'Documents', width: '200', cellTemplate: this.selectTemplate, cellClass: \"left\", resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'operator', name: 'Operator', width: '70', cellClass: \"left\" },\r\n { prop: 'shippingInstructions', name: 'Shipping Instructions', width: '300', cellClass: \"left\" },\r\n { prop: 'creditNote', name: 'Credit Note', width: '120', cellClass: \"left\" }\r\n ];\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setData();\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n Loaddata() {\r\n\r\n }\r\n\r\n syncInvoice(row: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getBarcodeForInvoiceSync(row.invoice, row.branch).subscribe(x => this.Loaddata(), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n statusSelected() {\r\n this.filterChanged();\r\n }\r\n\r\n branchSelected() {\r\n }\r\n\r\n filterBuyouts() {\r\n this.chkBuyouts = !this.chkBuyouts;\r\n this.filterChanged();\r\n }\r\n\r\n filterCancelled() {\r\n this.chkCnc = !this.chkCnc;\r\n this.filterChanged();\r\n }\r\n\r\n filterPresent() {\r\n this.chkPresent = !this.chkPresent;\r\n this.filterChanged();\r\n }\r\n\r\n filterTransfers() {\r\n this.chkTransfers = !this.chkTransfers;\r\n this.filterChanged();\r\n }\r\n\r\n filterCRN() {\r\n this.chkCRN = !this.chkCRN;\r\n this.filterChanged();\r\n\r\n }\r\n\r\n filterCash() {\r\n this.chkCash = !this.chkCash;\r\n this.filterChanged();\r\n\r\n }\r\n\r\n filterAll() {\r\n this.chkAll = !this.chkAll;\r\n this.filterChanged();\r\n }\r\n\r\n filterChanged() {\r\n if (this.chkAll) {\r\n this.chkCash = false;\r\n this.chkCRN = false;\r\n this.chkTransfers = false;\r\n this.chkPresent = false;\r\n this.chkBuyouts = false;\r\n this.chkCnc = false;\r\n //this.searchTerm = \"\";\r\n this.rows = this.rowsCache;\r\n return;\r\n }\r\n\r\n if (this.chkCRN || this.chkTransfers || this.chkCnc || this.selectedStatus || this.selectedBranch) {\r\n let filteredRows = this.rowsCache; \r\n this.chkCRN ? filteredRows = filteredRows.filter(m => m.documentType != 'C') : '';\r\n this.chkTransfers ? filteredRows = filteredRows.filter(m => m.documentType != 'O') : ''; \r\n this.chkCnc ? filteredRows = filteredRows.filter(m => m.orderStatus != '\\\\') : '';\r\n this.selectedStatus != 'ALL' ? filteredRows = filteredRows.filter(m => m.status == this.selectedStatus) : '';\r\n this.selectedBranch != 'ALL' ? filteredRows = filteredRows.filter(m => m.branch == this.selectedBranch) : '';\r\n this.rows = filteredRows;\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n\r\n }\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n\r\n this.selectedBranch = this.branchCode;\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n specificSearch() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.selectUndefinedOptionValue);\r\n\r\n let batchFrom = (this.searchBatchFrom ? this.searchBatchFrom : this.selectUndefinedOptionValue);\r\n let batchTo = (this.searchBatchTo ? this.searchBatchTo : this.selectUndefinedOptionValue);\r\n\r\n this.sysproService.getBarcodeReferences(startD.toJSON(), endD.toJSON(), company.toUpperCase(), branch.toUpperCase(), batchFrom.toUpperCase(), batchTo.toUpperCase()).subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onSearchSuccesful(x: BarcodeReference[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n var updatedList = x.filter(x => x.fileNumber == 0 || x.fileNumber == 1);\r\n\r\n this.rows = [];\r\n if (updatedList && updatedList[0] && updatedList.length > 0) {\r\n updatedList.forEach((bReference, index, updatedList) => {\r\n\r\n (bReference).index = index + 1;\r\n let docList = x.filter(x => x.invoice == bReference.invoice);\r\n\r\n if (bReference.fileNumber >= 1 && bReference.numberOfFiles >= 1) {\r\n let helper: ValueHelper = new ValueHelper;\r\n\r\n helper.dataValue = 0;\r\n helper.displayValue = \"Please Select\";\r\n bReference.fileNumbers = [];\r\n bReference.fileNumbers.unshift(helper);\r\n\r\n docList.forEach((item, indexy, y) => {\r\n let dropDown: ValueHelper = new ValueHelper;\r\n dropDown.dataValue = item.fileNumber;\r\n dropDown.displayValue = item.fileName;\r\n bReference.fileNumbers.push(dropDown);\r\n\r\n });\r\n\r\n bReference.bnumber = bReference.fileNumbers[0];\r\n }\r\n\r\n this.rows.push(bReference);\r\n\r\n });\r\n }\r\n\r\n this.rowsCache = [...this.rows];\r\n\r\n this.filterChanged();\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n viewPurchaseOrder(row: BarcodeReference) {\r\n\r\n this.sysproService.getFileStream(row.fileName, row.bnumber.dataValue).subscribe(x => this.onFileSuccessful(x, row.fileName), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n viewPurchaseOrderDetails(row: BarcodeReference) {\r\n\r\n sessionStorage.removeItem(localStorageActions.PODReference);\r\n sessionStorage.setItem(localStorageActions.PODReference, row.invoice);\r\n\r\n sessionStorage.removeItem(localStorageActions.SalesOrderNumber);\r\n this.selectedInvoice = row.invoice;\r\n\r\n this.sysproService.getPODByInvoice(row.invoice).subscribe(\r\n (data) => {\r\n this.referenceRows = data;\r\n this.podModalShow();\r\n },\r\n (error) => {\r\n this.alertService.showStickyMessage('Error', `Could not fetch POD details: ${error}`, MessageSeverity.error);\r\n }\r\n );\r\n\r\n if (row.orderStatus.trim() == \"8\" || row.orderStatus.trim() == \"\\\\\" || row.orderStatus.trim() == \"S\" || row.documentType.trim() == \"D\") {\r\n //Don't assume theres an invoice\r\n this.showsalesOrder = true;\r\n this.selectedSalesOrder = row.invoice;\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n this.showSalesInvoice = false;\r\n this.showIts = false;\r\n this.showCreditNoteInvoice = false;\r\n this.isTransfer = false;\r\n this.setActiveTab();\r\n }\r\n else {\r\n\r\n //Sales Invoice\r\n if (row.documentType.trim() == \"B\") {\r\n this.selectedSalesOrder = this.selectedInvoice;\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n this.showSalesInvoice = true;\r\n\r\n this.setActiveTab();\r\n\r\n //TODO: This has to be updated for new ITS\r\n if (row.branch == \"CT\") {\r\n this.showIts = true;\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.selectedInvoice);\r\n }\r\n }\r\n\r\n if (row.creditNote) {\r\n this.sysproService.getCreditNoteSearchByCriteria(\"invoice\", row.creditNote).subscribe(\r\n (data) => {\r\n this.selectedCreditNoteSalesOrder = data[0].salesOrderNumber;\r\n this.selectedCreditNoteInvoice = data[0].invoiceNumber;\r\n\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedCreditNoteSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedCreditNoteSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedCreditNoteInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedCreditNoteInvoice);\r\n }\r\n this.hasCreditNote = true;\r\n },\r\n (error) => {\r\n this.alertService.showMessage('Error', 'No credit note found for this invoice.', MessageSeverity.warn);\r\n }\r\n );\r\n }\r\n\r\n }\r\n else {\r\n //Sales Credit Note Invoice\r\n if (row.documentType.trim() == \"C\") {\r\n this.sysproService.getCreditNoteSearchByCriteria(\"invoice\", row.invoice).subscribe(\r\n (data) => {\r\n this.selectedSalesOrder = data[0].salesOrderNumber;\r\n this.selectedInvoice = row.invoice;\r\n\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n this.showCreditNoteInvoice = true;\r\n this.showIts = false;\r\n this.setActiveTab();\r\n },\r\n (error) => {\r\n this.alertService.showMessage('Error', 'No credit note found for this invoice.', MessageSeverity.warn);\r\n }\r\n );\r\n }\r\n else {\r\n if (row.documentType.trim() == \"O\") {\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedInvoice);\r\n }\r\n\r\n this.isTransfer = true;\r\n this.setActiveTab();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n setActiveTab() {\r\n if (this.showIts) {\r\n this.activeTab = 'itsDetails';\r\n } else if (this.showSalesInvoice) {\r\n this.activeTab = 'invoiceDetails';\r\n } else if (this.hasCreditNote) {\r\n this.activeTab = 'creditNoteDetails';\r\n } else if (this.showCreditNoteInvoice) {\r\n this.activeTab = 'creditNoteInvoice';\r\n } else if (this.isTransfer) {\r\n this.activeTab = 'transferDetails';\r\n } else if (this.showsalesOrder) {\r\n this.activeTab = 'salesOrderDetails';\r\n } else {\r\n this.activeTab = ''; // Default case\r\n }\r\n }\r\n\r\n\r\n podModalShow() {\r\n if (!this.podModal) {\r\n setTimeout(() => {\r\n if (this.podModal) {\r\n this.podModal.show();\r\n }\r\n });\r\n } else {\r\n this.podModal.show();\r\n }\r\n }\r\n\r\n podModalHide() {\r\n\r\n this.isTransfer = false;\r\n this.showSalesInvoice = false;\r\n this.showsalesOrder = false;\r\n this.showCreditNoteInvoice = false;\r\n this.hasCreditNote = false;\r\n this.showIts = false;\r\n this.referenceRows = null;\r\n this.selectedInvoice = '';\r\n this.selectedSalesOrder = '';\r\n this.selectedCreditNote = null;\r\n this.podModal.hide();\r\n }\r\n\r\n\r\n viewPOD(row: BarcodeReference) {\r\n this.sysproService.getFileStream(row.fileName, row.fileNumber).subscribe(\r\n (x) => {\r\n const url = window.URL.createObjectURL(new Blob([x], { type: \"application/pdf\" }));\r\n window.open(url, \"_blank\"); // Open the PDF in a new tab\r\n },\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n }\r\n\r\n\r\n\r\n onFileSuccessful(x: Blob, fileName: string): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n //this.Loaddata();\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.Loaddata();\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.Loaddata();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.invoice, r.orderDate, r.orderStatus, r.fileName, r.prefix, r.branch, r.month, r.status,\r\n r.barcodeEntryDateString, r.creditNote, r.customerName, r.customer, r.documentType, r.operator, r.shippingInstructions));\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n }\r\n\r\n exportDetails() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Reference\", \"OrderDate\", \"DocumentType\", \"Customer\", \"CustomerName\", \"Operator\", \"ShippingInstructions\", \"Status\", \"NumberOfFiles\", \"OrderStatus\", \"CreditNote\"]\r\n };\r\n\r\n var filename = \"Documents\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Invoice: row.invoice, OrderDate: (moment(row.orderDate)).format('DD-MMM-YYYY'), DocumentType: row.documentType,\r\n Customer: row.customer, CustomerName: row.customerName, Operator: row.operator, ShippingInstructions: row.shippingInstructions,\r\n Status: row.status, NumberOfFiles: row.numberOfFiles, OrderStatus: row.orderStatus, CreditNote: row.creditNote\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
= 1\\\" class=\\\"row\\\" style=\\\"margin: 2px 0 2px 0\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wb2QvcG9kLWNvbXBvbmVudHMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxwb2RcXHBvZC1jb21wb25lbnRzXFxwb2Qtc2VhcmNoLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3BvZC9wb2QtY29tcG9uZW50cy9wb2Qtc2VhcmNoLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGFBQWE7RUFDYixZQUFZO0VBQ1osMEVBQTBFLEVBQUE7RUFQNUU7SUFVSSw4QkFBOEI7SUFDOUIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixVQUFVO0lBQ1YsV0FBVyxFQUFBO0VBSWYsVUFBQTtFQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QjtFQUN2Qiw2Q0FBMEMsRUFBQTtFQUk1QztFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixxQ0FBcUM7SUFDckMsNkJBQTZCO0lBQzdCLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osVUFBVSxFQUFBO0VBZGQ7SUFrQkksa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixnQkFBZ0IsRUFBQTtFQXBCcEI7SUF3Qkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEI7RUFDRSxzQkFBc0I7RUFDdEIsNERBQWlHO0VBQ2pHLGtCQUFrQixFQUFBO0VBR3BCO0VBQ0UsZUFBZTtFQUVmLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxZQUFZLEVBQUE7RUFEZDtJQUlJLFVBQVUsRUFBQTtFQUlkO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUIsRUFBQTtFQUd6QjtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQjttQ0N4QitCO0lEMEIvQixpQkFBaUI7SUFDakIsWUFBWSxFQUFBO0VBYmhCO0lBaUJJLGtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBQTtFQWxCcEI7SUFzQkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEIsbUJBQUE7RUFDQTtFQUNFO0lBQ0UsK0ZBQUE7SUFDQSw2QkFBNkIsRUFBQSxFQUM5QjtFQUdILGtCQUFBO0VBQ0E7RUFDRTtJQUNFLHNFQUFBO0lBQ0Esc0JBQXNCLEVBQUEsRUFDdkI7RUFJSDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLFdBQVcsRUFBQTtFQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixPQUFPO0VBQ1AsV0FBVyxFQUFBO0VBSmI7SUFPSSxZQUFZLEVBQUE7RUFJaEI7RUFDRSxlQUFlO0VBQ2Ysd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxlQUFlO0VBQ2YsaUNBQWlDLEVBQUE7RUFHbkM7RUFDRSxlQUFlLEVBQUE7RUFHakI7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxhQUFhLEVBQUE7RUFHZjtFQUNFLGNBQWMsRUFBQTtFQUdoQjtFQUNFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsaUJBQWlCLEVBQUE7RUFHbkI7O0VBRUUsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRTtJQUNFLGdCQUFnQixFQUFBLEVBQ2pCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wb2QvcG9kLWNvbXBvbmVudHMvcG9kLXNlYXJjaC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uYWRkcmVzcy1jb250YWluZXIge1xyXG4gIG1heC13aWR0aDogNDAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XHJcbiAgcGFkZGluZzogMjVweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7XHJcblxyXG4gIGZpZWxkc2V0IHtcclxuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMCAwIDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBMYXJnZSAqL1xyXG4uZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XHJcbiAgLy9oZWlnaHQ6IDI1cHg7XHJcbn1cclxuXHJcbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIGZsZXg6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gICAgbWluLXdpZHRoOiAyMDBweDtcclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4ucm93IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4uY29udHJvbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAycHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7XHJcbn1cclxuXHJcbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICB9XHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogN3B4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5zdWJzZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogN3B4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogN3B4O1xyXG59XHJcblxyXG4uZm9ybS1ncm91cCB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBwYWRkaW5nLXRvcDogMDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG59XHJcblxyXG4uY29sLXNldC1kZWZhdWx0IHtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XHJcbiAgbWluLXdpZHRoOiAxNTBweDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgfVxyXG59XHJcbiIsIi5hZGRyZXNzLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIG1hcmdpbjogMTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLmFkZHJlc3MtY29udGFpbmVyIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4vKiBMYXJnZSAqL1xuLmZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGZsZXg6IG5vbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXgtZ3JvdzogMjtcbiAgICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi5yb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlIDEwJSwgI2Y3ZjdmNyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4uY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIG1pbi13aWR0aDogMTcwcHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsIHtcbiAgcGFkZGluZzogOHB4OyB9XG4gIC5jb250cm9sLWRldGFpbCAubmF2LWxpbmsge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMnB4OyB9XG5cbi5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4OyB9XG5cbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAxMjBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9IH1cblxuLyogU21hbGwgc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxO1xuICBmbG9hdDogbGVmdDsgfVxuICAuY29sdW1uIGxhYmVsIHtcbiAgICBwYWRkaW5nOiA1cHg7IH1cblxuLnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkOyB9XG5cbi5zdWJzZXBhcmF0b3ItaHIge1xuICBtYXJnaW46IDdweCA1cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xuICBtYXJnaW4tdG9wOiA3cHg7IH1cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcbiAgbWluLWhlaWdodDogMDsgfVxuXG4uY2hlY2tib3gge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5jb2wtc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQgLmJ0bixcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XG4gIG1pbi13aWR0aDogMTUwcHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtZm9ybS1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDVweDsgfSB9XG4iXX0= */\"","import { AfterViewInit, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\n//import { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { BarcodeReference } from '../../../models/barcode-reference.model';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { InvoiceDocuments } from '../../../models/invoice-documents.model';\r\nimport { InvoiceHeader } from '../../../models/invoice-header.model';\r\nimport { SalesOrderHeader } from '../../../models/salesorder-header.model';\r\nimport { ValueHelper } from '../../../models/valuehelper.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'pod-search',\r\n templateUrl: './pod-search.component.html',\r\n styleUrls: ['./pod-search.component.scss']\r\n})\r\nexport class PodSearchComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n loadingIndicator: boolean = false;\r\n\r\n rows: InvoiceDocuments[] = [];\r\n\r\n rowsCache: InvoiceDocuments[] = [];\r\n\r\n columns: any[] = [];\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('refreshTemplate')\r\n refreshTemplate: TemplateRef;\r\n\r\n @ViewChild('barcodeListList')\r\n barcodeListList: TemplateRef;\r\n\r\n @ViewChild('barcodeListListSelector')\r\n private barcodeListListSelector;\r\n\r\n @ViewChild('barcodeTemplate')\r\n barcodeTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n \r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedSearchOptionValue: string = \"Please Select\";\r\n\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: InvoiceDocuments;\r\n searchResults: InvoiceDocuments[];\r\n doclist: BarcodeReference[] = [];\r\n selectedDoc: BarcodeReference;\r\n\r\n\r\n invoiceHeader: InvoiceHeader = new InvoiceHeader();\r\n\r\n constructor(private router: Router, private alertService: AlertService, private sysproService: SysproService, private route: ActivatedRoute, private accountService: AccountService, private fowkesOnline: FowkesOnlineService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.searchType = \"invoice\";\r\n\r\n this.columns = [\r\n { prop: 'documentType', name: 'T', width: '50', cellClass: \"left\" },\r\n { prop: 'branch', name: 'Branch', width: '70', cellClass: \"left\" },\r\n { prop: 'salesOrderNumber', name: 'Sales Order', width: '120', cellClass: \"left\", cellTemplate: this.barcodeTemplate },\r\n { prop: 'orderStatus', name: 'S', width: '50', cellClass: \"left\" },\r\n { prop: 'invoiceNumber', name: 'Invoice', width: '120', cellClass: \"left\"},\r\n //{ prop: 'gtrReferenceNumber', name: 'Transfer', width: '120', cellClass: \"left\" },\r\n { prop: 'createDate', name: 'Order Date', width: '120', cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'operator', name: 'Operator', width: '70', cellClass: \"left\" },\r\n { prop: 'barcode', name: 'Barcode', width: '120', cellClass: \"left\" },\r\n { prop: 'status', name: 'Status', width: '100', cellClass: \"left\" },\r\n // { prop: 'fileNumber', name: 'File No', width: '70', cellClass: \"left\" },\r\n // { prop: 'prefix', name: 'Prefix', width: '70', cellClass: \"left\" },\r\n { prop: 'fileName', name: '', width: '200', cellClass: \"left\", cellTemplate: this.selectTemplate },\r\n { prop: '', name: '', width: '25', cellClass: \"left\", cellTemplate: this.refreshTemplate }\r\n ];\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.columns = [\r\n { prop: 'documentType', name: 'T', width: '50', cellClass: \"left\" },\r\n { prop: 'branch', name: 'Branch', width: '70', cellClass: \"left\" },\r\n { prop: 'salesOrderNumber', name: 'Sales Order', width: '120', cellClass: \"left\", cellTemplate: this.barcodeTemplate },\r\n { prop: 'orderStatus', name: 'S', width: '50', cellClass: \"left\" },\r\n { prop: 'invoiceNumber', name: 'Invoice', width: '120', cellClass: \"left\" },\r\n //{ prop: 'gtrReferenceNumber', name: 'Transfer', width: '120', cellClass: \"left\" },\r\n { prop: 'createDate', name: 'Order Date', width: '120', cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'operator', name: 'Operator', width: '70', cellClass: \"left\" },\r\n { prop: 'barcode', name: 'Barcode', width: '120', cellClass: \"left\" },\r\n { prop: 'status', name: 'Status', width: '100', cellClass: \"left\" },\r\n // { prop: 'fileNumber', name: 'File No', width: '70', cellClass: \"left\" },\r\n // { prop: 'prefix', name: 'Prefix', width: '70', cellClass: \"left\" },\r\n { prop: 'fileName', name: '', width: '200', cellClass: \"left\", cellTemplate: this.selectTemplate },\r\n { prop: '', name: '', width: '25', cellClass: \"left\", cellTemplate: this.refreshTemplate }\r\n ];\r\n\r\n }\r\n\r\n\r\n specificSearch(stop?: boolean) {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchResults = null;\r\n this.sysproService.getInvoiceDocumentsSearchByCriteria(this.searchType, this.searchText.trim()).subscribe(\r\n x => this.onSpecificSearchSuccesful(x, stop), error => this.onSearchFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (this.searchType == \"invoice\" || this.searchType == \"salesorder\") {\r\n this.sysproService.getBarcodeForInvoiceSync(this.searchText.trim(), this.searchText.trim().substr(0, 2)).subscribe(x => this.specificSearch(), error => this.onDataLoadFailed(error));\r\n }\r\n \r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: InvoiceDocuments[], stop?: boolean): void {\r\n\r\n if (x && x.length >= 1) {\r\n\r\n this.searchResults = x;\r\n if (this.searchResults && this.searchResults.length >= 1) {\r\n\r\n this.rowsCache = this.searchResults;\r\n\r\n this.rowsCache.forEach((barcode, index, list) => {\r\n (barcode).index = index + 1;\r\n if (barcode.barcode.length > 0) {\r\n //this.doclist = [];\r\n let defaultDoc = new BarcodeReference();\r\n defaultDoc.fileNumber = 0;\r\n defaultDoc.fileName = this.selectUndefinedSearchOptionValue;\r\n //this.doclist.push(defaultDoc);\r\n\r\n this.sysproService.getPODByInvoice(barcode.invoiceNumber).subscribe(docs => {\r\n barcode.barcodeReferences = [...docs];\r\n barcode.barcodeReferences.push(defaultDoc);\r\n barcode.fileName = this.selectUndefinedSearchOptionValue;\r\n\r\n }, error => this.onDataLoadFailed(error));\r\n\r\n }\r\n });\r\n\r\n this.rows = [...this.rowsCache];\r\n console.log(this.rows);\r\n }\r\n\r\n }\r\n else {\r\n if (!stop) {\r\n if (this.searchType == \"invoice\" || this.searchType == \"salesorder\") {\r\n this.sysproService.getBarcodeForInvoiceSync(this.searchText.trim(), this.searchText.trim().substr(0, 2)).subscribe(x => this.specificSearch(true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n\r\n syncInvoice(row: InvoiceDocuments) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n if ((row.invoiceNumber && row.invoiceNumber.length > 1 && row.documentType) && (row.documentType == \"C\" || row.documentType == \"D\")) {\r\n this.sysproService.getBarcodeForInvoiceSync(row.invoiceNumber, row.branch).subscribe(x => this.specificSearch(), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.sysproService.getBarcodeForInvoiceSync(row.salesOrderNumber, row.branch).subscribe(x => this.specificSearch(), error => this.onDataLoadFailed(error));\r\n }\r\n \r\n //if (row.gtrReferenceNumber && row.gtrReferenceNumber.length > 1) {\r\n // this.sysproService.getBarcodeForInvoiceSync(row.salesOrderNumber, row.branch).subscribe(x => this.specificSearch(), error => this.onDataLoadFailed(error));\r\n //}\r\n //else {\r\n // if (row.invoiceNumber && row.invoiceNumber.length > 1 && row.invoiceNumber != row.salesOrderNumber) {\r\n // this.sysproService.getBarcodeForInvoiceSync(row.invoiceNumber, row.branch).subscribe(x => this.specificSearch(), error => this.onDataLoadFailed(error));\r\n // }\r\n // else {\r\n // this.sysproService.getBarcodeForInvoiceSync(row.salesOrderNumber, row.branch).subscribe(x => this.specificSearch(), error => this.onDataLoadFailed(error));\r\n // }\r\n //}\r\n \r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n viewPOD(row: InvoiceDocuments) {\r\n\r\n\r\n \r\n if (row.fileName != \"\" && row.fileName != this.selectUndefinedSearchOptionValue) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getFileStream(row.fileName, 0).subscribe(x => this.onFileSuccessful(x, row.fileName), error => this.onDataLoadFailed(error));\r\n }\r\n \r\n }\r\n\r\n viewPODDetails(row: InvoiceDocuments) {\r\n\r\n sessionStorage.removeItem(localStorageActions.PODReference);\r\n sessionStorage.setItem(localStorageActions.PODReference, row.invoiceNumber);\r\n\r\n sessionStorage.removeItem(localStorageActions.SalesOrderNumber);\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.salesOrderNumber);\r\n\r\n this.router.navigate(['../pods'], { fragment: 'view', queryParams: { invoice: row.invoiceNumber } });\r\n }\r\n\r\n onFileSuccessful(x: Blob, fileName: string): void {\r\n\r\n\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n link.title = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n //toggle() {\r\n // this.show = true;\r\n //}\r\n\r\n //choosedDateTime(e) {\r\n\r\n // this.selected = {\r\n // startDate: e.startDate,\r\n // endDate: e.endDate\r\n // }\r\n\r\n // this.show = false;\r\n // this.Loaddata();\r\n //}\r\n\r\n //rangeClicked(e) {\r\n\r\n // this.picker.renderRanges();\r\n\r\n // this.selected = {\r\n // startDate: this.picker.startDate,\r\n // endDate: this.picker.endDate\r\n // }\r\n\r\n // this.show = false;\r\n // this.Loaddata();\r\n //}\r\n\r\n //searchDates(e) {\r\n\r\n // this.selected = {\r\n // startDate: e.startDate,\r\n // endDate: e.endDate\r\n // }\r\n\r\n // this.show = false;\r\n // this.Loaddata();\r\n //}\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.invoiceNumber, r.orderStatus, r.fileName, r.prefix, r.branch, r.status));\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n }\r\n\r\n\r\n //exportDetails() {\r\n // var options = {\r\n // fieldSeparator: ',',\r\n // quoteStrings: '\"',\r\n // decimalseparator: '.',\r\n // showLabels: true,\r\n // showTitle: false,\r\n // useBom: true,\r\n // noDownload: false,\r\n // headers: [\"Invoice\", \"OrderDate\", \"Status\", \"LastSyncDate\", \"NumberOfFiles\"]\r\n // };\r\n\r\n // var filename = \"Documents\";\r\n // var selectRows = [...this.rows];\r\n // var exportRows = [];\r\n // for (var row of selectRows) {\r\n\r\n // //exportRows.push({\r\n // // Invoice: row.invoiceNumber, OrderDate: row.orderDate, Status: row.status, LastSyncDate: row.lastSyncedDate, NumberOfFiles: row.numberOfFiles\r\n // //});\r\n // }\r\n\r\n // return new ngxCsv(exportRows, filename, options);\r\n //}\r\n\r\n\r\n //filterTransfers() {\r\n\r\n // this.showAll = false;\r\n\r\n // if (!this.exclTrans) {\r\n\r\n // this.excludedTransfers = this.rows.filter(x => x.documentType == 'O');\r\n // this.rows = this.rows.filter(x => x.documentType != 'O');\r\n // }\r\n // else {\r\n\r\n // if (this.excludedTransfers && this.excludedTransfers.length >= 1) {\r\n // this.rows = this.rows.concat(this.excludedTransfers);\r\n // //this.excludedTransfers = [];\r\n // }\r\n // }\r\n //}\r\n\r\n //filterCanceled() {\r\n // //todo OrderStatus or Status / ?\r\n //}\r\n\r\n //filterCRN() {\r\n\r\n\r\n // this.showAll = false;\r\n\r\n // if (!this.exclCreditNotes) {\r\n\r\n // this.excludedCreditnotes = this.rows.filter(x => x.documentType == 'C');\r\n // this.rows = this.rows.filter(x => x.documentType != 'C');\r\n // }\r\n // else {\r\n // if (this.excludedCreditnotes && this.excludedCreditnotes.length >= 1) {\r\n // this.rows = this.rows.concat(this.excludedCreditnotes);\r\n // }\r\n // }\r\n //}\r\n\r\n //filterCash() {\r\n // this.showAll = false;\r\n\r\n // if (!this.exclCashSales) {\r\n // this.excludedCashSales = this.rows.filter(x => x.invTerms == '03');\r\n\r\n // this.rows = this.rows.filter(x => x.invTerms != '03');\r\n // }\r\n // else {\r\n\r\n // if (this.excludedCashSales && this.excludedCashSales.length >= 1) {\r\n // this.rows = this.rows.concat(this.excludedCashSales);\r\n // }\r\n // }\r\n //}\r\n\r\n //filterAll() {\r\n // if (!this.showAll) {\r\n\r\n // if (!this.exclTrans) {\r\n // this.filterTransfers();\r\n // }\r\n\r\n // if (!this.exclCreditNotes) {\r\n // this.filterCRN();\r\n // }\r\n\r\n // if (!this.exclCashSales) {\r\n // this.filterCash();\r\n // }\r\n\r\n // this.exclTrans = true;\r\n\r\n // this.exclCreditNotes = true;\r\n\r\n // this.exclCashSales = true;\r\n\r\n // }\r\n // else {\r\n // if (this.exclTrans) {\r\n // this.filterTransfers();\r\n // }\r\n\r\n // if (this.exclCreditNotes) {\r\n // this.filterCRN();\r\n // }\r\n\r\n // if (this.exclCashSales) {\r\n // this.filterCash();\r\n // }\r\n\r\n // this.exclTrans = false;\r\n\r\n // this.exclCreditNotes = false;\r\n\r\n // this.exclCashSales = false;\r\n // }\r\n //}\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
The following invoices don't have document references yet
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n |\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
= 1\\\" class=\\\"form-group row\\\" style=\\\"margin-left: 5px\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
Records Synced to Next Gen
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wb2QvcG9kLWNvbXBvbmVudHMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxwb2RcXHBvZC1jb21wb25lbnRzXFxwb2Qtc3luYy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9wb2QvcG9kLWNvbXBvbmVudHMvcG9kLXN5bmMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7RUFDWiwwRUFBMEUsRUFBQTtFQVA1RTtJQVVJLDhCQUE4QjtJQUM5QixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLFVBQVU7SUFDVixXQUFXLEVBQUE7RUFJZixVQUFBO0VBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCO0VBQ3ZCLDZDQUEwQyxFQUFBO0VBSTVDO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixVQUFVLEVBQUE7RUFkZDtJQWtCSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0VBcEJwQjtJQXdCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQjtFQUNFLHNCQUFzQjtFQUN0Qiw0REFBaUc7RUFDakcsa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSxlQUFlO0VBRWYsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksVUFBVSxFQUFBO0VBSWQ7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QixFQUFBO0VBR3pCO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCO21DQ3hCK0I7SUQwQi9CLGlCQUFpQjtJQUNqQixZQUFZLEVBQUE7RUFiaEI7SUFpQkksa0JBQWtCO0lBQ2xCLGdCQUFnQixFQUFBO0VBbEJwQjtJQXNCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQixtQkFBQTtFQUNBO0VBQ0U7SUFDRSwrRkFBQTtJQUNBLDZCQUE2QixFQUFBLEVBQzlCO0VBR0gsa0JBQUE7RUFDQTtFQUNFO0lBQ0Usc0VBQUE7SUFDQSxzQkFBc0IsRUFBQSxFQUN2QjtFQUlIO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsV0FBVyxFQUFBO0VBR2I7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLE9BQU87RUFDUCxXQUFXLEVBQUE7RUFKYjtJQU9JLFlBQVksRUFBQTtFQUloQjtFQUNFLGVBQWU7RUFDZix3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGVBQWU7RUFDZixpQ0FBaUMsRUFBQTtFQUduQztFQUNFLGVBQWUsRUFBQTtFQUdqQjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsY0FBYyxFQUFBO0VBR2hCO0VBQ0UsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxpQkFBaUIsRUFBQTtFQUduQjs7RUFFRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFO0lBQ0UsZ0JBQWdCLEVBQUEsRUFDakIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3BvZC9wb2QtY29tcG9uZW50cy9wb2Qtc3luYy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uYWRkcmVzcy1jb250YWluZXIge1xyXG4gIG1heC13aWR0aDogNDAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XHJcbiAgcGFkZGluZzogMjVweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7XHJcblxyXG4gIGZpZWxkc2V0IHtcclxuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMCAwIDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBMYXJnZSAqL1xyXG4uZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XHJcbiAgLy9oZWlnaHQ6IDI1cHg7XHJcbn1cclxuXHJcbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIGZsZXg6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gICAgbWluLXdpZHRoOiAyMDBweDtcclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4ucm93IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4uY29udHJvbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAycHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7XHJcbn1cclxuXHJcbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICB9XHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogN3B4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5zdWJzZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogN3B4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogN3B4O1xyXG59XHJcblxyXG4uZm9ybS1ncm91cCB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBwYWRkaW5nLXRvcDogMDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG59XHJcblxyXG4uY29sLXNldC1kZWZhdWx0IHtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XHJcbiAgbWluLXdpZHRoOiAxNTBweDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgfVxyXG59XHJcbiIsIi5hZGRyZXNzLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIG1hcmdpbjogMTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLmFkZHJlc3MtY29udGFpbmVyIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4vKiBMYXJnZSAqL1xuLmZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGZsZXg6IG5vbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXgtZ3JvdzogMjtcbiAgICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi5yb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlIDEwJSwgI2Y3ZjdmNyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4uY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIG1pbi13aWR0aDogMTcwcHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsIHtcbiAgcGFkZGluZzogOHB4OyB9XG4gIC5jb250cm9sLWRldGFpbCAubmF2LWxpbmsge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMnB4OyB9XG5cbi5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4OyB9XG5cbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAxMjBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9IH1cblxuLyogU21hbGwgc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxO1xuICBmbG9hdDogbGVmdDsgfVxuICAuY29sdW1uIGxhYmVsIHtcbiAgICBwYWRkaW5nOiA1cHg7IH1cblxuLnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkOyB9XG5cbi5zdWJzZXBhcmF0b3ItaHIge1xuICBtYXJnaW46IDdweCA1cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xuICBtYXJnaW4tdG9wOiA3cHg7IH1cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcbiAgbWluLWhlaWdodDogMDsgfVxuXG4uY2hlY2tib3gge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5jb2wtc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQgLmJ0bixcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XG4gIG1pbi13aWR0aDogMTUwcHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtZm9ybS1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDVweDsgfSB9XG4iXX0= */\"","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\n//import { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { BarcodeReference } from '../../../models/barcode-reference.model';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { InvoiceBarcode } from '../../../models/invoice-barcode.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'pod-sync',\r\n templateUrl: './pod-sync.component.html',\r\n styleUrls: ['./pod-sync.component.scss']\r\n})\r\nexport class PodSyncComponent implements OnInit {\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n searchResults: InvoiceBarcode[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: InvoiceBarcode;\r\n\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n checkCreditNotes: boolean;\r\n columns: any[] = [];\r\n rows: InvoiceBarcode[] = [];\r\n rowsCache: InvoiceBarcode[];\r\n\r\n columnsBarcodeReference: any[] = [];\r\n BarcodeReferenceList: BarcodeReference[] = [];\r\n BarcodesUpdated: BarcodeReference[];\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n\r\n selectedBranch: string;\r\n selectedCustomer: string;\r\n selectedCompany: string;\r\n selectedDocumentType: string;\r\n\r\n loadingIndicator: boolean = false;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n show: boolean;\r\n\r\n ranges = {\r\n //'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n constructor(private router: Router, private alertService: AlertService, private fowkesService: FowkesOnlineService, private sysproService: SysproService, private route: ActivatedRoute, private accountService: AccountService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesService.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n this.selected = {\r\n startDate: moment().subtract(7, 'day').startOf('day'),\r\n endDate: moment().subtract(0, 'day').endOf('day')\r\n }\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n //Sync Search Batches:\r\n\r\n //Syspro Invoices not yet having documents\r\n this.columns = [\r\n { prop: 'company', name: 'C', width: 50 },\r\n { prop: 'docType', name: 'Type', width: 50 },\r\n { prop: 'branch', name: 'Branch', width: 70, cellClass: \"center\" },\r\n { prop: 'customer', name: 'Customer', width: 90, cellClass: \"center\" },\r\n { prop: 'invoice', name: 'Invoice', width: 90 },\r\n { prop: 'invoiceDate', name: 'Date', width: 100, cellTemplate: this.dateTemplate }\r\n ];\r\n\r\n this.columns.push({ name: '', width: 300, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.columnsBarcodeReference = [\r\n { prop: 'company', name: 'C', width: 50 },\r\n { prop: 'prefix', name: 'Prefix', width: 50, cellClass: \"center\" },\r\n { prop: 'branch', name: 'Branch', width: 70, cellClass: \"center\" },\r\n { prop: 'status', name: 'Status', width: 120 },\r\n { prop: 'invoice', name: 'Invoice', width: 90 },\r\n { prop: 'fileNumber', name: 'Count', width: 90 },\r\n { prop: 'barcode', name: 'Barcode', width: 90 },\r\n { prop: 'fileName', name: 'File Name', width: 200 },\r\n { prop: 'barcodeDate', name: 'DocumentDate', width: 90, cellTemplate: this.dateTemplate },\r\n { prop: 'exclude', name: 'Excluded', width: 90 }\r\n ];\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.columns = [\r\n { prop: 'company', name: 'C', width: 50 },\r\n { prop: 'docType', name: 'Type', width: 50 },\r\n { prop: 'branch', name: 'Branch', width: 70, cellClass: \"center\" },\r\n { prop: 'customer', name: 'Customer', width: 90, cellClass: \"center\" },\r\n { prop: 'invoice', name: 'Invoice', width: 90 },\r\n { prop: 'invoiceDate', name: 'Date', width: 100, cellTemplate: this.dateTemplate }\r\n ];\r\n\r\n this.columns.push({ name: '', width: 300, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n this.columnsBarcodeReference = [\r\n { prop: 'company', name: 'C', width: 50 },\r\n { prop: 'prefix', name: 'Prefix', width: 50, cellClass: \"center\" },\r\n { prop: 'branch', name: 'Branch', width: 70, cellClass: \"center\" },\r\n { prop: 'status', name: 'Status', width: 120 },\r\n { prop: 'invoice', name: 'Invoice', width: 90 },\r\n { prop: 'fileNumber', name: 'Count', width: 90 },\r\n { prop: 'barcode', name: 'Barcode', width: 90 },\r\n { prop: 'fileName', name: 'File Name', width: 200 },\r\n { prop: 'barcodeDate', name: 'DocumentDate', width: 90, cellTemplate: this.dateTemplate },\r\n { prop: 'exclude', name: 'Excluded', width: 90 }\r\n ];\r\n\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.company, r.customer, r.branch, r.docType, r.invoice));\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n }\r\n\r\n specificSearch() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchResults = null;\r\n\r\n //This loads the Local invoices not yet having barcodes in the reference table\r\n this.loadInvoicesForSync();\r\n }\r\n\r\n\r\n private loadInvoicesForSync() {\r\n\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.selectUndefinedOptionValue);\r\n let customer = this.selectUndefinedOptionValue;\r\n let documentType = this.selectUndefinedOptionValue;\r\n if (this.selectedDocumentType) {\r\n if (this.selectedDocumentType == \"Canceled\") {\r\n customer = \"Canceled\";\r\n }\r\n else {\r\n if (this.selectedDocumentType == \"IncludeMissing\") {\r\n customer = \"IncludeMissing\";\r\n }\r\n else {\r\n documentType = this.selectedDocumentType;\r\n }\r\n }\r\n }\r\n\r\n this.sysproService.getInvoiceBarcodeSyncReport(startD.toJSON(), endD.toJSON(),\r\n company, branch, customer, documentType).subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n onSearchSuccesful(x: InvoiceBarcode[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...details];\r\n this.rows = details;\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n syncInvoice(row: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let temp = [...this.rows];\r\n temp.splice(row.index - 1, 1);\r\n temp.forEach((line, index, temp) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...temp];\r\n this.rows = temp;\r\n\r\n this.sysproService.getBarcodeForInvoiceSync(row.invoice, row.branch).subscribe(x => this.onBarcodeSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n excludeInvoice(row: any) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let temp = [...this.rows];\r\n temp.splice(row.index - 1, 1);\r\n temp.forEach((line, index, temp) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...temp];\r\n this.rows = temp;\r\n\r\n this.sysproService.updateBarcodeExcluded(row.invoice).subscribe(x => this.onBarcodeSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n //syncToNextGen() {\r\n\r\n // this.alertService.startLoadingMessage();\r\n // this.loadingIndicator = true;\r\n\r\n // for (var invoice of this.rows) {\r\n // this.sysproService.getBarcodeForInvoiceSync(invoice.invoice, invoice.branch).subscribe(x => this.onBarcodeSearchSuccesful(x, 1), error => this.onDataLoadFailed(error));\r\n // }\r\n //}\r\n\r\n\r\n syncToNextGen() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n // Prepare invoice and branch data for bulk request\r\n const invoiceData = this.rows.map(row => ({\r\n invoice: row.invoice,\r\n branch: row.branch\r\n }));\r\n\r\n this.sysproService.syncMultipleInvoices(invoiceData).subscribe(\r\n x => this.onBarcodeSearchSuccesful(x),\r\n error => this.onDataLoadFailed(error)\r\n );\r\n }\r\n\r\n excludeItems() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n for (var invoice of this.rows) {\r\n this.sysproService.updateBarcodeExcluded(invoice.invoice).subscribe(x => this.onBarcodeSearchSuccesful(x, 1), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n onBarcodeSearchSuccesful(x: BarcodeReference[], rowIndex?: number): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n let details = x;\r\n details.forEach((line, index, details) => {\r\n \r\n (line).index = index + 1;\r\n let newLine = new BarcodeReference();\r\n newLine.invoice = line.invoice;\r\n newLine.branch = line.branch;\r\n newLine.fileNumber = line.fileNumber;\r\n newLine.fileName = line.fileName;\r\n newLine.status = line.status;\r\n newLine.barcode = line.barcode;\r\n newLine.barcodeDate = line.barcodeDate;\r\n newLine.exclude = line.exclude;\r\n newLine.prefix = line.prefix;\r\n newLine.company = line.company;\r\n this.BarcodeReferenceList.push(newLine);\r\n if (rowIndex) {\r\n let rowNum = this.rowsCache.findIndex(x => x.invoice == line.invoice);\r\n let temp = [...this.rows];\r\n temp.splice(rowNum -1, 1);\r\n temp.forEach((line, index, temp) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...temp];\r\n }\r\n });\r\n\r\n //this.BarcodeReferenceList = details;\r\n this.BarcodesUpdated = [...this.BarcodeReferenceList];\r\n if (rowIndex) {\r\n this.rows = this.rowsCache;\r\n }\r\n \r\n }\r\n }\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.specificSearch();\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.specificSearch();\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n // this.specificSearch();\r\n }\r\n\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unallocated Files, please assign to Invoice\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{invoiceHeader.customer}} - {{invoiceHeader.customerName }} - (SALESORDER: {{invoiceHeader.salesOrderNumber}}, INVOICE: {{invoiceHeader.invoiceNumber}}) - (STATUS: {{invoiceHeader.orderStatus}} - {{invoiceHeader.statusDescription}})\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{salesOrderHeader.customer}} - {{salesOrderHeader.customerName }} - (SALESORDER: {{salesOrderHeader.salesOrderNumber}} - (STATUS: {{salesOrderHeader.orderStatus}} - {{salesOrderHeader.statusDescription}})\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Allocate the rows below to {{moveToInvoice}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CompanyReferenceFileNumberPrefixUploaded OnStatusFilenameUpdate
\\r\\n {{row.company}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.fileNumber}}\\r\\n \\r\\n {{row.prefix}}\\r\\n \\r\\n {{row.barcodeDate | date: 'dd MMM yyyy'}}\\r\\n \\r\\n {{row.status}}\\r\\n \\r\\n \\r\\n {{row.fileName}}\\r\\n \\r\\n \\r\\n {{'users.management.Delete' | translate}}\\r\\n Save new mapping \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wb2QvcG9kLWNvbXBvbmVudHMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxwb2RcXHBvZC1jb21wb25lbnRzXFxwb2Qtdmlldy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSxpQ0FBaUM7RUFDakMsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFRSSxtQkFBbUI7SUFDbkIsZ0NBQWdDLEVBQUE7O0FBVHBDO0lBY0ksZ0JBQWdCO0lBQ2hCLDBCQUEwQixFQUFBOztBQWY5QjtJQW1CSSxxQ0FBcUMsRUFBQTs7QUFJekM7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UsWUFBWSxFQUFBOztBQUdkO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUZsQjtJQUtJLGdCQUFnQixFQUFBOztBQU1wQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxTQUFTLEVBQUE7O0FBR1g7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3BvZC9wb2QtY29tcG9uZW50cy9wb2Qtdmlldy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMnB4IDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuXHJcbiAgLmJ0bi1saW5rLmdyaWQge1xyXG4gICAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODY4ZTk1O1xyXG4gICAgLy9jb2xvcjogI0Q5MjMwRjtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgYS5ob3ZlciB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBoZWlnaHQ6IDI2cHg7XHJcbiAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxufVxyXG5cclxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgcGFkZGluZy10b3A6IDNweDtcclxuXHJcbiAgLnRvZ2dsZS5idG4tc20ge1xyXG4gICAgbWluLWhlaWdodDogMjdweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgY29sb3I6ICM3Nzc7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG4iXX0= */\"","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\n//import { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\n//import { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\n//import { ReportsInvoiceReprintComponent } from './report-components/reports-invoice-reprint-component';\r\n//import { ReportsInvoiceStatusComponent } from './report-components/reports-invoice-status-component';\r\n//import { ReportsSalesComponent } from './report-components/reports-sales-component';\r\n//import { ReportsInvoiceTrackingPurgeComponent } from './report-components/reports-invoice-tracking-purge-component';\r\n//import { MySQLDocument } from '../../../models/mysqldocument.model';\r\nimport { BarcodeReference } from '../../../models/barcode-reference.model';\r\nimport { InvoiceDocuments } from '../../../models/invoice-documents.model';\r\nimport { InvoiceHeader } from '../../../models/invoice-header.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { SalesOrderHeader } from '../../../models/salesorder-header.model';\r\nimport { SalesOrderList } from '../../../models/salesorder-list.model';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'pod-view',\r\n templateUrl: './pod-view.component.html',\r\n styleUrls: ['./pod-view.component.scss']\r\n})\r\nexport class PodViewComponent implements OnInit, AfterViewInit {\r\n\r\n invoice: string;\r\n\r\n loadingIndicator: boolean;\r\n\r\n isEditMode: boolean;\r\n\r\n isSaving: boolean;\r\n\r\n invoiceHeader: InvoiceHeader = new InvoiceHeader();\r\n unallocated: boolean;\r\n\r\n referenceList: BarcodeReference[];\r\n\r\n rows: BarcodeReference[] = [];\r\n rowsCache: BarcodeReference[];\r\n rowsExistingCache: BarcodeReference[];\r\n rowsExisting: BarcodeReference[];\r\n\r\n oldReference: string;\r\n showInvoiceSearch: boolean;\r\n\r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n checkCreditNotes: boolean;\r\n salesOrderNumber: string;\r\n\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n showSalesOrder: boolean;\r\n moveToInvoice: string;\r\n rowsToSave: number;\r\n order: string;\r\n originalInvoice: string;\r\n originalOrder: string;\r\n salesOrderHeader: SalesOrderHeader;\r\n\r\n constructor(private router: Router, private alertService: AlertService, private sysproService: SysproService,\r\n private route: ActivatedRoute, private accountService: AccountService, private fowkesOnline: FowkesOnlineService, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n const invoiceNumber = sessionStorage.getItem(localStorageActions.PODReference);\r\n const podSalesOrder = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n\r\n this.originalInvoice = invoiceNumber;\r\n this.originalOrder = podSalesOrder;\r\n\r\n if (!podSalesOrder || podSalesOrder == \"\") {\r\n this.originalOrder = this.originalInvoice;\r\n }\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getPODByInvoice(this.originalInvoice).subscribe(x => this.onBarcodesLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit() {}\r\n\r\n onBarcodesLoadSuccesful(x: BarcodeReference[]): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n\r\n this.referenceList = x;\r\n\r\n this.referenceList.forEach((barcode, index, list) => {\r\n (barcode).index = index + 1;\r\n if (barcode.company.trim() == \"\") {\r\n (barcode).status = \"Unallocated\";\r\n }\r\n });\r\n\r\n this.rowsCache = [...this.referenceList];\r\n this.rows = this.referenceList;\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n //Try and get the invoice this document belongs to\r\n this.sysproService.getInvoiceHeader(this.originalOrder, this.originalInvoice).subscribe(x => this.onInvoiceLoadSuccessful(x), error => this.onInvoiceNotFound(error));\r\n\r\n }\r\n\r\n onInvoiceLoadSuccessful(order: InvoiceHeader) {\r\n if (order) {\r\n let res = order;\r\n this.invoiceHeader = res[0];\r\n }\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n onInvoiceNotFound(error: any): void {\r\n //Try and find the sales order this document belongs to\r\n this.sysproService.getSalesOrderHeader(this.originalInvoice).subscribe(x => this.onSalesOrderLoadSuccessful(x), error => this.onSalesOrderNotFound(error));\r\n }\r\n \r\n onSalesOrderLoadSuccessful(x: SalesOrderHeader): void {\r\n this.salesOrderHeader = x;\r\n }\r\n\r\n onSalesOrderNotFound(error: any): void {\r\n\r\n this.alertService.showStickyMessage('Warning', 'These documents does not match the invoice or sales order search and might be a transfer, debit or credit note',\r\n MessageSeverity.warn);\r\n }\r\n\r\n viewPOD(row: BarcodeReference) {\r\n\r\n this.sysproService.getFileStream(row.fileName, row.fileNumber).subscribe(x => this.onFileSuccessful(x, row.fileName), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, fileName: string): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n\r\n \r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: InvoiceDocuments[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x.length === 1) {\r\n\r\n this.sysproService.getInvoiceHeader(x[0].salesOrderNumber, x[0].invoiceNumber).subscribe(x => this.onInvoiceLoadSuccessful(x), error => this.onSalesOrderNotFound(error));\r\n this.sysproService.getPODByInvoice(x[0].invoiceNumber).subscribe(x => this.onBarcodesLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n }\r\n\r\n viewInvoice() {\r\n \r\n this.setLocalCustomer(this.invoiceHeader.customer, this.invoiceHeader.salesOrderNumber, this.invoiceHeader.invoiceNumber);\r\n if (this.invoiceHeader.invoiceNumber && this.invoiceHeader.invoiceNumber.length >= 1) {\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: this.invoiceHeader.customer } });\r\n }\r\n else {\r\n\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: this.invoiceHeader.customer } });\r\n }\r\n }\r\n\r\n setLocalCustomer(customer: string, salesOrderNumber: string, invoiceNumber: string) {\r\n\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != salesOrderNumber) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, salesOrderNumber);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != invoiceNumber) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, invoiceNumber);\r\n }\r\n \r\n }\r\n\r\n\r\n viewInvoiceSelected() {\r\n if (this.searchResultSelected) {\r\n this.salesOrderNumber = this.searchResultSelected.salesOrderNumber;\r\n this.showSalesOrder = true;\r\n this.moveToInvoice = this.salesOrderNumber + \": \" + this.searchResultSelected.orderHistory;\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getPODByInvoice(this.salesOrderNumber).subscribe(x => this.onBarcodesForNewInvoiceLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n onBarcodesForNewInvoiceLoadSuccesful(x: any) {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n\r\n this.referenceList = x;\r\n\r\n this.referenceList.forEach((barcode, index, list) => {\r\n (barcode).index = index + 1;\r\n if (barcode.company.trim() == \"\") {\r\n (barcode).status = \"Unallocated\";\r\n }\r\n });\r\n\r\n this.rowsExistingCache = [...this.referenceList];\r\n this.rowsExisting = this.referenceList;\r\n }\r\n \r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n reAllocateAll() {\r\n\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.rowsToSave = this.rows.length;\r\n for (var row of this.rows) {\r\n row.company = (this.application == \"MaxArcusOnline\" ? \"M\" : \"F\");\r\n row.branch = row.invoice.substr(0, 2);\r\n row.status = \"Allocated\";\r\n this.oldReference = row.barcode;\r\n this.rowsToSave--;\r\n this.sysproService.savePOD(row, row.invoice).subscribe(_response => this.saveSuccessHelper(_response, row.fileNumber, row.barcode, row.invoice), error => this.saveFailedHelper(error));\r\n }\r\n\r\n }\r\n\r\n allocate(row: BarcodeReference) {\r\n if (row.invoice && row.invoice.length >= 5) {\r\n row.company = (this.application == \"MaxArcusOnline\" ? \"M\" : \"F\");\r\n row.branch = row.invoice.substr(0, 2);\r\n row.status = \"Allocated\";\r\n this.rowsToSave = 0;\r\n this.invoice = row.invoice;\r\n this.sysproService.savePOD(row, row.invoice).subscribe(_response => this.saveSuccessHelper(_response, row.fileNumber, row.barcode, row.invoice), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(x: BarcodeReference, oldRow: number, oldInvoice: string, newInvoice: string) {\r\n if (oldInvoice != newInvoice) {\r\n\r\n this.alertService.showMessage('Success', ` POD mapped from ` + oldInvoice + ` to ` + newInvoice, MessageSeverity.success);\r\n this.sysproService.deletePOD(oldInvoice, oldRow).subscribe(x => this.onBarcodesForNewInvoiceLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n if (this.rowsToSave == 0) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', ` PODs Updated Succesfully `, MessageSeverity.success);\r\n this.sysproService.getInvoiceDocumentsSearchByCriteria(\"invoice\", this.salesOrderNumber).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onSearchFailed(error));\r\n } \r\n\r\n }\r\n\r\n get canManagePODs() {\r\n return this.accountService.userHasPermission(Permission.managePODsPermission);\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n deleteRow(row: BarcodeReference) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.invoice + ' - ' + row.fileName + '\\\"?', DialogType.confirm, () => this.deleteRowHelper(row));\r\n }\r\n\r\n deleteRowHelper(row: BarcodeReference) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n\r\n this.sysproService.deletePOD(row.invoice, row.fileNumber).subscribe(results => {\r\n this.alertService.showMessage('Success', row.invoice + ` ` + row.fileNumber + ` Successfully deleted`, MessageSeverity.success);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcG9kL3BvZC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'Pods',\r\n templateUrl: './pod.component.html',\r\n styleUrls: ['./pod.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class PodComponent {\r\n\r\n isEditBatchActivated = false;\r\n isReconcileActivated = false;\r\n isSearchActivated = true;\r\n isSearchMissingActivated = false;\r\n isSyncActivated = false;\r\n isFileSyncActivated = false;\r\n isPODViewActivated = false;\r\n\r\n isCollapsed = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly editBatchTab = 'editbatch';\r\n readonly reconcileTab = 'reconcile';\r\n readonly searchTab = 'search';\r\n readonly searchMissingTab = 'searchmissing';\r\n readonly syncTab = 'sync';\r\n readonly fileSyncTab = 'filesync';\r\n readonly podViewTab = 'view';\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n POD: string;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private accountService: AccountService,\r\n private configurations: ConfigurationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n let POD = sessionStorage.getItem(localStorageActions.PODReference);\r\n\r\n this.POD = POD;\r\n\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n\r\n if (this.POD) {\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor, this.POD));\r\n } else {\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n }\r\n }\r\n \r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n showContent(anchor: string, test?: any) {\r\n\r\n this.POD = sessionStorage.getItem(localStorageActions.PODReference);\r\n\r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.searchTab}Tab`);\r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isEditBatchActivated = activeTab == this.editBatchTab;\r\n this.isReconcileActivated = activeTab == this.reconcileTab;\r\n this.isSearchActivated = activeTab == this.searchTab;\r\n this.isSearchMissingActivated = activeTab == this.searchMissingTab;\r\n this.isSyncActivated = activeTab == this.syncTab;\r\n this.isFileSyncActivated = activeTab == this.fileSyncTab;\r\n this.isPODViewActivated = activeTab == this.podViewTab;\r\n\r\n this.router.navigate([], { fragment: activeTab, queryParams: { Invoice: this.POD } });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isEditBatchActivated = activeTab == this.editBatchTab;\r\n this.isReconcileActivated = activeTab == this.reconcileTab;\r\n this.isSearchActivated = activeTab == this.searchTab;\r\n this.isSearchMissingActivated = activeTab == this.searchMissingTab;\r\n this.isSyncActivated = activeTab == this.syncTab;\r\n this.isFileSyncActivated = activeTab == this.fileSyncTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n \r\n \r\n get canViewEquation() {\r\n return this.accountService.userHasPermission(Permission.eqationPODsPermission);\r\n }\r\n\r\n\r\n get canSearchPODs() {\r\n return this.accountService.userHasPermission(Permission.searchPODsPermission);\r\n }\r\n\r\n\r\n get canManagePODs() {\r\n return this.accountService.userHasPermission(Permission.managePODsPermission);\r\n }\r\n\r\n\r\n get canViewPODs() {\r\n return this.accountService.userHasPermission(Permission.viewPODsPermission);\r\n }\r\n\r\n\r\n get canViewMissingPODs() {\r\n return this.accountService.userHasPermission(Permission.missingPODsPermission);\r\n }\r\n\r\n\r\n get canSyncPODs() {\r\n return this.accountService.userHasPermission(Permission.batchSyncPODsPermission);\r\n }\r\n \r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

Pool Surface Square Meter Area Calculator

\\r\\n
Select Pool Shape
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
For square and rectangular shaped pools
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"Rectangular\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
For rounder or more complex shaped pools
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\\"Circular\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
Results
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Total m² Surface Area: {{ totalArea | currency:' ':'symbol':'1.2'}} m²
\\r\\n
{{ resinLiters | number:'1.2-2' }} liters
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Material300g csm450g csm
CHOPPED STRAND MAT (CSM){{ totalCsm300gsmKg | number:'1.0-1' }} kg {{ totalCsm450gsmKg | number:'1.0-1' }} kg\\r\\n \\r\\n
POLYESTER RESIN (Ratio 2.5 kg :1 kg CSM){{ resinQuantity300 | number:'1.0-1' }} kg{{ resinQuantity450 | number:'1.0-1' }} kg\\r\\n \\r\\n
TOPCOAT (600g per sqm){{ poolCoatQuantity | number:'1.0-1' }} kg{{ poolCoatQuantity | number:'1.0-1' }} kg\\r\\n \\r\\n
CATALYST 2%{{ catalystQuantity300 | number:'1.0-1' }} kg{{ catalystQuantity450 | number:'1.0-1' }} kg\\r\\n \\r\\n
Optional Extras
SURFACE TISSUE (30g/sqm, 1000mm wide){{ totalArea | number:'1.0-1' }} m{{ totalArea | number:'1.0-1' }} m\\r\\n \\r\\n
ADDITIONAL POLYESTER RESIN FOR SURFACE TISSUE (300g/sqm){{ additionalResinForSurfaceTissue | number:'1.0-1' }} kg{{ additionalResinForSurfaceTissue | number:'1.0-1' }} kg\\r\\n Ensures a smooth and attractive finish whilst providing extra strength and durability\\r\\n
ADDITIONAL POLYESTER RESIN FOR PRIMER COAT (300g/sqm){{ additionalResinForSurfaceTissue | number:'1.0-1' }} kg{{ additionalResinForSurfaceTissue | number:'1.0-1' }} kg\\r\\n Only required for concrete, cement, gunite and marbelite substrates (not required for fibreglass linings)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \".stack-top {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #006699;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n.stack-new {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #006699;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n.stack-onpromotion {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #760B1F;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n.price-container,\\n.price-container:before,\\n.price-container:after,\\n.price-container .price,\\n.price-container .price:before,\\n.price-container .price:after {\\n height: 8.5em;\\n width: 8.5em;\\n background: #760B1F top left no-repeat;\\n background-size: 8.5em; }\\n\\n.price-container .blue,\\n .price-container:before .blue,\\n .price-container:after .blue,\\n .price-container .price .blue,\\n .price-container .price:before .blue,\\n .price-container .price:after .blue {\\n background: #2825bd top left no-repeat; }\\n\\n.price-container:before,\\n.price-container:after,\\n.price-container .price:before,\\n.price-container .price:after {\\n content: \\\"\\\";\\n position: absolute; }\\n\\n.price-container {\\n margin: 100px auto;\\n /* Centering for demo */\\n position: relative;\\n /* Context */\\n top: 1.5em;\\n left: -7.5em;\\n transform: rotate(-45deg); }\\n\\n.price-container:before {\\n top: 0;\\n left: 0;\\n transform: rotate(-30deg); }\\n\\n.price-container:after {\\n top: 0;\\n left: 0;\\n transform: rotate(-15deg); }\\n\\n.price-container .price {\\n padding: .5em 0em;\\n height: 8.5em;\\n position: absolute;\\n bottom: 0;\\n right: 0;\\n transform: rotate(45deg);\\n z-index: 1 !important; }\\n\\n.price-container .price:before {\\n top: 0;\\n left: 0;\\n transform: rotate(60deg); }\\n\\n.price-container .price:after {\\n top: 0;\\n left: 0;\\n transform: rotate(75deg); }\\n\\n.price-container .price span {\\n position: relative;\\n z-index: 100;\\n display: block;\\n text-align: center;\\n color: #FE3D5C;\\n font: 1em Sans-Serif;\\n height: 38px; }\\n\\n.price-container .price span.number {\\n font-weight: bold;\\n font-size: 1.8em;\\n line-height: .9em;\\n color: #fff;\\n white-space: nowrap; }\\n\\n.price-container-blue,\\n.price-container-blue:before,\\n.price-container-blue:after,\\n.price-container-blue .price,\\n.price-container-blue .price:before,\\n.price-container-blue .price:after {\\n height: 8.5em;\\n width: 8.5em;\\n background: #2825bd top left no-repeat;\\n background-size: 8.5em; }\\n\\n.price-container-blue:before,\\n.price-container-blue:after,\\n.price-container-blue .price:before,\\n.price-container-blue .price:after {\\n content: \\\"\\\";\\n position: absolute; }\\n\\n.price-container-blue {\\n margin: 100px auto;\\n /* Centering for demo */\\n position: relative;\\n /* Context */\\n top: -7.5em;\\n left: -1.5em;\\n transform: rotate(-45deg); }\\n\\n.price-container-blue:before {\\n top: 0;\\n left: 0;\\n transform: rotate(-30deg); }\\n\\n.price-container-blue:after {\\n top: 0;\\n left: 0;\\n transform: rotate(-15deg); }\\n\\n.price-container-blue .price {\\n padding: .5em 0em;\\n height: 8.5em;\\n position: absolute;\\n bottom: 0;\\n right: 0;\\n transform: rotate(45deg);\\n z-index: 1 !important; }\\n\\n.price-container-blue .price:before {\\n top: 0;\\n left: 0;\\n transform: rotate(60deg); }\\n\\n.price-container-blue .price:after {\\n top: 0;\\n left: 0;\\n transform: rotate(75deg); }\\n\\n.price-container-blue .price span {\\n position: relative;\\n z-index: 100;\\n display: block;\\n text-align: center;\\n color: #FE3D5C;\\n font: 1em Sans-Serif;\\n height: 38px; }\\n\\n.price-container-blue .price span.number {\\n font-weight: bold;\\n font-size: 1.8em;\\n line-height: .9em;\\n color: #fff;\\n white-space: nowrap; }\\n\\n.selected-image-button {\\n border: 3px solid #007bff;\\n /* Blue border for example */\\n box-shadow: 0 0 10px rgba(0, 123, 255, 0.5);\\n /* Optional: adds a glow effect */ }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy1jYWxjdWxhdG9yLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBO0VBQ0UsMENBQUE7RUFDQSxRQUFJO0VBQ0osVUFBSTtFQUNKLFlBQUk7RUFDSixHQUFBO0VBQ0Esa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixRQUFRO0VBQ1IsaURBQWlEO0VBQUUsbUNBQUE7RUFDbkQsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YsNkJBQTZCO0VBQzdCLG1DQUFtQztFQUNuQywyRkFBd0Y7RUFDeEYsK01BQTBNLEVBQUE7O0FBSzVNO0VBQ0UsMENBQUE7RUFDQSxRQUFJO0VBQ0osVUFBSTtFQUNKLFlBQUk7RUFDSixHQUFBO0VBQ0Esa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixRQUFRO0VBQ1IsaURBQWlEO0VBQUUsbUNBQUE7RUFDbkQsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YsNkJBQTZCO0VBQzdCLG1DQUFtQztFQUNuQywyRkFBd0Y7RUFDeEYsK01BQTBNLEVBQUE7O0FBSzVNO0VBQ0UsMENBQUE7RUFDQSxRQUFJO0VBQ0osVUFBSTtFQUNKLFlBQUk7RUFDSixHQUFBO0VBQ0Esa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixRQUFRO0VBQ1IsaURBQWlEO0VBQUUsbUNBQUE7RUFDbkQsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YsNkJBQTZCO0VBQzdCLG1DQUFtQztFQUNuQywyRkFBd0Y7RUFDeEYsK01BQTBNLEVBQUE7O0FBRzVNOzs7Ozs7RUFNRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLHNDQUFzQztFQUN0QyxzQkFBc0IsRUFBQTs7QUFUeEI7Ozs7OztJQVlJLHNDQUFzQyxFQUFBOztBQUkxQzs7OztFQUlFLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxrQkFBa0I7RUFBRSx1QkFBQTtFQUNwQixrQkFBa0I7RUFBRSxZQUFBO0VBQ3BCLFVBQVU7RUFDVixZQUFZO0VBS1oseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsTUFBTTtFQUNOLE9BQU87RUFLUCx5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSxNQUFNO0VBQ04sT0FBTztFQUtQLHlCQUF5QixFQUFBOztBQUczQjtFQUNFLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxRQUFRO0VBS1Isd0JBQXdCO0VBQ3hCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLE1BQU07RUFDTixPQUFPO0VBS1Asd0JBQXdCLEVBQUE7O0FBRzFCO0VBQ0UsTUFBTTtFQUNOLE9BQU87RUFLUCx3QkFBd0IsRUFBQTs7QUFHMUI7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLG9CQUFvQjtFQUNwQixZQUFZLEVBQUE7O0FBR2Q7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsbUJBQW1CLEVBQUE7O0FBR3JCOzs7Ozs7RUFNRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLHNDQUFzQztFQUN0QyxzQkFBc0IsRUFBQTs7QUFHeEI7Ozs7RUFJRSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0Usa0JBQWtCO0VBQUUsdUJBQUE7RUFDcEIsa0JBQWtCO0VBQUUsWUFBQTtFQUNwQixXQUFXO0VBQ1gsWUFBWTtFQUtaLHlCQUF5QixFQUFBOztBQUczQjtFQUNFLE1BQU07RUFDTixPQUFPO0VBS1AseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsTUFBTTtFQUNOLE9BQU87RUFLUCx5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSxpQkFBaUI7RUFDakIsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsUUFBUTtFQUtSLHdCQUF3QjtFQUN4QixxQkFBcUIsRUFBQTs7QUFHdkI7RUFDRSxNQUFNO0VBQ04sT0FBTztFQUtQLHdCQUF3QixFQUFBOztBQUcxQjtFQUNFLE1BQU07RUFDTixPQUFPO0VBS1Asd0JBQXdCLEVBQUE7O0FBRzFCO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxvQkFBb0I7RUFDcEIsWUFBWSxFQUFBOztBQUdkO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLHlCQUF5QjtFQUFFLDRCQUFBO0VBQzNCLDJDQUEyQztFQUFFLGlDQUFBLEVBQWtDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9wcm9kdWN0cy1jYWxjdWxhdG9yLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZ1bGxzY3JlZW57XHJcblxyXG59XHJcblxyXG4uc3RhY2stdG9wIHtcclxuICAvKiBhZGp1c3QgdGhlIGJlbG93IHRvIGNvbnRyb2wgdGhlIHNoYXBlICovXHJcbiAgLS1kOiA1cHg7XHJcbiAgLS13OiAxMDBweDtcclxuICAtLWM6ICMwMDY2OTk7XHJcbiAgLyoqL1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjkuMjklLCAtMTAwJSkgcm90YXRlKDQ1ZGVnKTsgLyogMjkuMjklID0gMTAwJSooMSAtIGNvcyg0NWRlZykpICovXHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiB2YXIoLS13KTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcclxuICBwYWRkaW5nOiA1cHggMCBjYWxjKHZhcigtLWQpICsgNXB4KTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjYpIDAgMCkgYm90dG9tLzEwMCUgdmFyKC0tZCkgbm8tcmVwZWF0IHZhcigtLWMpO1xyXG4gIGNsaXAtcGF0aDogcG9seWdvbigwIDEwMCUsMCBjYWxjKDEwMCUgLSB2YXIoLS1kKSksNTAlIGNhbGMoMTAwJSAtIHZhcigtLWQpIC0gdmFyKC0tdykvMiksMTAwJSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksMTAwJSAxMDAlLGNhbGMoMTAwJSAtIHZhcigtLWQpKSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksIHZhcigtLWQpIGNhbGMoMTAwJSAtIHZhcigtLWQpKSlcclxufVxyXG5cclxuXHJcblxyXG4uc3RhY2stbmV3IHtcclxuICAvKiBhZGp1c3QgdGhlIGJlbG93IHRvIGNvbnRyb2wgdGhlIHNoYXBlICovXHJcbiAgLS1kOiA1cHg7XHJcbiAgLS13OiAxMDBweDtcclxuICAtLWM6ICMwMDY2OTk7XHJcbiAgLyoqL1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjkuMjklLCAtMTAwJSkgcm90YXRlKDQ1ZGVnKTsgLyogMjkuMjklID0gMTAwJSooMSAtIGNvcyg0NWRlZykpICovXHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiB2YXIoLS13KTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcclxuICBwYWRkaW5nOiA1cHggMCBjYWxjKHZhcigtLWQpICsgNXB4KTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjYpIDAgMCkgYm90dG9tLzEwMCUgdmFyKC0tZCkgbm8tcmVwZWF0IHZhcigtLWMpO1xyXG4gIGNsaXAtcGF0aDogcG9seWdvbigwIDEwMCUsMCBjYWxjKDEwMCUgLSB2YXIoLS1kKSksNTAlIGNhbGMoMTAwJSAtIHZhcigtLWQpIC0gdmFyKC0tdykvMiksMTAwJSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksMTAwJSAxMDAlLGNhbGMoMTAwJSAtIHZhcigtLWQpKSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksIHZhcigtLWQpIGNhbGMoMTAwJSAtIHZhcigtLWQpKSlcclxufVxyXG5cclxuXHJcblxyXG4uc3RhY2stb25wcm9tb3Rpb24ge1xyXG4gIC8qIGFkanVzdCB0aGUgYmVsb3cgdG8gY29udHJvbCB0aGUgc2hhcGUgKi9cclxuICAtLWQ6IDVweDtcclxuICAtLXc6IDEwMHB4O1xyXG4gIC0tYzogIzc2MEIxRjtcclxuICAvKiovXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyOS4yOSUsIC0xMDAlKSByb3RhdGUoNDVkZWcpOyAvKiAyOS4yOSUgPSAxMDAlKigxIC0gY29zKDQ1ZGVnKSkgKi9cclxuICBjb2xvcjogI2ZmZjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2lkdGg6IHZhcigtLXcpO1xyXG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xyXG4gIHBhZGRpbmc6IDVweCAwIGNhbGModmFyKC0tZCkgKyA1cHgpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDAuNikgMCAwKSBib3R0b20vMTAwJSB2YXIoLS1kKSBuby1yZXBlYXQgdmFyKC0tYyk7XHJcbiAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMTAwJSwwIGNhbGMoMTAwJSAtIHZhcigtLWQpKSw1MCUgY2FsYygxMDAlIC0gdmFyKC0tZCkgLSB2YXIoLS13KS8yKSwxMDAlIGNhbGMoMTAwJSAtIHZhcigtLWQpKSwxMDAlIDEwMCUsY2FsYygxMDAlIC0gdmFyKC0tZCkpIGNhbGMoMTAwJSAtIHZhcigtLWQpKSwgdmFyKC0tZCkgY2FsYygxMDAlIC0gdmFyKC0tZCkpKVxyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLFxyXG4ucHJpY2UtY29udGFpbmVyOmJlZm9yZSxcclxuLnByaWNlLWNvbnRhaW5lcjphZnRlcixcclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2UsXHJcbi5wcmljZS1jb250YWluZXIgLnByaWNlOmJlZm9yZSxcclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2U6YWZ0ZXIge1xyXG4gIGhlaWdodDogOC41ZW07XHJcbiAgd2lkdGg6IDguNWVtO1xyXG4gIGJhY2tncm91bmQ6ICM3NjBCMUYgdG9wIGxlZnQgbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogOC41ZW07XHJcblxyXG4gIC5ibHVlIHtcclxuICAgIGJhY2tncm91bmQ6ICMyODI1YmQgdG9wIGxlZnQgbm8tcmVwZWF0O1xyXG4gIH1cclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lcjpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXI6YWZ0ZXIsXHJcbi5wcmljZS1jb250YWluZXIgLnByaWNlOmJlZm9yZSxcclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2U6YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyIHtcclxuICBtYXJnaW46IDEwMHB4IGF1dG87IC8qIENlbnRlcmluZyBmb3IgZGVtbyAqL1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogQ29udGV4dCAqL1xyXG4gIHRvcDogMS41ZW07XHJcbiAgbGVmdDogLTcuNWVtO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyOmJlZm9yZSB7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcclxuICAtby10cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXI6YWZ0ZXIge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyIC5wcmljZSB7XHJcbiAgcGFkZGluZzogLjVlbSAwZW07XHJcbiAgaGVpZ2h0OiA4LjVlbTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgei1pbmRleDogMSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyIC5wcmljZTpiZWZvcmUge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2U6YWZ0ZXIge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg3NWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDc1ZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2Ugc3BhbiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDEwMDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6ICNGRTNENUM7XHJcbiAgZm9udDogMWVtIFNhbnMtU2VyaWY7XHJcbiAgaGVpZ2h0OiAzOHB4O1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyIC5wcmljZSBzcGFuLm51bWJlciB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zaXplOiAxLjhlbTtcclxuICBsaW5lLWhlaWdodDogLjllbTtcclxuICBjb2xvcjogI2ZmZjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWUsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZTpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZTphZnRlcixcclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIC5wcmljZSxcclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIC5wcmljZTpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2U6YWZ0ZXIge1xyXG4gIGhlaWdodDogOC41ZW07XHJcbiAgd2lkdGg6IDguNWVtO1xyXG4gIGJhY2tncm91bmQ6ICMyODI1YmQgdG9wIGxlZnQgbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogOC41ZW07XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZTpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZTphZnRlcixcclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIC5wcmljZTpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2U6YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWUge1xyXG4gIG1hcmdpbjogMTAwcHggYXV0bzsgLyogQ2VudGVyaW5nIGZvciBkZW1vICovXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBDb250ZXh0ICovXHJcbiAgdG9wOiAtNy41ZW07XHJcbiAgbGVmdDogLTEuNWVtO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWU6YmVmb3JlIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lci1ibHVlOmFmdGVyIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIC5wcmljZSB7XHJcbiAgcGFkZGluZzogLjVlbSAwZW07XHJcbiAgaGVpZ2h0OiA4LjVlbTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICB6LWluZGV4OiAxICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2U6YmVmb3JlIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2U6YWZ0ZXIge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg3NWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDc1ZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIC5wcmljZSBzcGFuIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMTAwO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogI0ZFM0Q1QztcclxuICBmb250OiAxZW0gU2Fucy1TZXJpZjtcclxuICBoZWlnaHQ6IDM4cHg7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2Ugc3Bhbi5udW1iZXIge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc2l6ZTogMS44ZW07XHJcbiAgbGluZS1oZWlnaHQ6IC45ZW07XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLnNlbGVjdGVkLWltYWdlLWJ1dHRvbiB7XHJcbiAgYm9yZGVyOiAzcHggc29saWQgIzAwN2JmZjsgLyogQmx1ZSBib3JkZXIgZm9yIGV4YW1wbGUgKi9cclxuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDEyMywgMjU1LCAwLjUpOyAvKiBPcHRpb25hbDogYWRkcyBhIGdsb3cgZWZmZWN0ICovXHJcbn1cclxuIl19 */\"","\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Utilities } from '../../services/utilities';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'products-calculator',\r\n templateUrl: './products-calculator.component.html',\r\n styleUrls: ['./products-calculator.component.scss']\r\n})\r\n\r\n\r\nexport class ProductsCalculatorComponent implements OnInit {\r\n \r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('calcModal')\r\n calcModal: ModalDirective;\r\n\r\n totalArea: number;\r\n csmQuantity: number;\r\n resinQuantity: number;\r\n poolCoatQuantity: number;\r\n catalystQuantity: number;\r\n\r\n poolWidth: number;\r\n poolLength: number;\r\n poolDepthShallow: number;\r\n poolDepthDeep: number;\r\n avgDepth: number;\r\n\r\n floorArea: number;\r\n wallArea: number;\r\n surfaceArea: number;\r\n\r\n calculated: boolean;\r\n calWastage: number;\r\n\r\n poolDiameter: number;\r\n totalCircularArea: number;\r\n poolDepthShallowC: number;\r\n poolDepthDeepC: number;\r\n avgDepthC: number;\r\n calWastageC: number;\r\n poolCircumference: number;\r\n img1 = require('../../assets/images/Calc1.png');\r\n img2 = require('../../assets/images/Calc2.png');\r\n img3 = require('../../assets/images/Calc3.png');\r\n img4 = require('../../assets/images/Calc4.png');\r\n // pdfFile1Url = '../../assets/images/Application_Guidance_Swimming_Pools.pdf';\r\n //pdfFile2Url = require('../../assets/images/Required_Materials_Swimming_Pools.pdf');\r\n //pdfFile3Url = require('../../assets/images/Square_Meter_Area_Swimming_Pools.pdf');\r\n\r\n selectedPoolShape: string = '';\r\n resinLiters: number;\r\n specificGravity: number;\r\n totalCsm300gsmKg: number;\r\n totalCsm450gsmKg: number;\r\n surfaceTissueTotalKg: number;\r\n surfaceTissuePerSqm: number;\r\n resinQuantity450: number;\r\n resinQuantity300: number;\r\n catalystQuantity450: number;\r\n catalystQuantity300: number;\r\n additionalResinForSurfaceTissue: number;\r\n\r\n\r\n constructor(private alertService: AlertService, private fowkesService: FowkesOnlineService,\r\n private sysproService: SysproService, private configurations: ConfigurationService,) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.calculated = false;\r\n this.calWastage = 10;\r\n this.calWastageC = 10;\r\n\r\n this.poolDepthDeep = 1.8;\r\n this.poolDepthShallow = 1.2;\r\n\r\n this.poolDepthDeepC = 1.8;\r\n this.poolDepthShallowC = 1.2;\r\n\r\n this.specificGravity = 1000;\r\n this.surfaceTissuePerSqm = 300;\r\n\r\n this.calculateAverageDepth();\r\n this.calculateAverageDepthC();\r\n\r\n }\r\n\r\n selectPoolShape(shape: string) {\r\n this.selectedPoolShape = shape;\r\n }\r\n\r\n calculateArea() {\r\n\r\n // Validation check for width and length\r\n if (!this.poolWidth || this.poolWidth <= 0 || !this.poolLength || this.poolLength <= 0) {\r\n this.alertService.showMessage('Warning', `Please enter valid width and length values.`, MessageSeverity.warn);\r\n return;\r\n }\r\n\r\n this.avgDepth = (this.poolDepthShallow + this.poolDepthDeep) / 2;\r\n\r\n //Floor Area\r\n this.floorArea = this.poolLength * this.poolWidth;\r\n\r\n //Wall area\r\n this.wallArea = 2 * (this.poolLength * this.avgDepth) + 2 * (this.poolWidth * this.avgDepth);\r\n\r\n //Surface Area\r\n this.surfaceArea = this.totalArea = this.floorArea + this.wallArea;\r\n\r\n // Area calculation\r\n //this.totalArea = this.poolLength * this.poolWidth * this.avgDepth;\r\n this.totalArea = this.surfaceArea;\r\n\r\n //Add wastage\r\n this.totalArea *= (1 + (this.calWastage / 100));\r\n\r\n\r\n //CSM (Chop Strand Mat) 450gsm: Since 450gsm(grams per square meter) is the density, you calculate the CSM quantity by multiplying the total area by 450gsm.Convert the result to kilograms.\r\n this.totalCsm450gsmKg = this.totalArea * 450 / 1000; // Convert grams to kilograms\r\n\r\n //Add additional layer to 300\r\n this.totalCsm300gsmKg = this.totalArea * 300 / 1000; // Convert grams to kilograms\r\n\r\n //Resin (2.5:1 Ratio):\r\n this.resinQuantity450 = this.totalCsm450gsmKg * 2.5;\r\n //3 for 300\r\n this.resinQuantity300 = this.totalCsm300gsmKg * 2.5;\r\n\r\n //PoolCoat (600gsm):\r\n this.poolCoatQuantity = this.totalArea * 600 / 1000; // Convert grams to kilograms\r\n\r\n //Catalyst (2%): The catalyst quantity is 2% of the combined quantity of Resin and PoolCoat. \r\n this.catalystQuantity450 = (this.resinQuantity450 + this.poolCoatQuantity) * 0.02;\r\n this.catalystQuantity300 = (this.resinQuantity300 + this.poolCoatQuantity) * 0.02;\r\n\r\n // Example for the rectangular pool calculation\r\n this.resinLiters = this.totalArea * this.specificGravity; // Add this line to calculate liters\r\n\r\n this.surfaceTissueTotalKg = (this.surfaceTissuePerSqm * this.totalArea) / 1000; // Convert to kg\r\n\r\n // Calculate additional resin for surface tissue with 10% wastage\r\n this.additionalResinForSurfaceTissue = this.totalArea * 300 / 1000; // Convert grams to kilograms\r\n\r\n //0.3 times surface area additionalResin for top coat\r\n\r\n\r\n this.calculated = true;\r\n\r\n if (!this.calcModal) {\r\n setTimeout(() => {\r\n if (this.calcModal) {\r\n this.calcModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.calcModal.show();\r\n }\r\n }\r\n\r\n calculateCircularArea() {\r\n\r\n \r\n let radius;\r\n\r\n if (this.poolDiameter && this.poolDiameter > 0) {\r\n radius = this.poolDiameter / 2;\r\n } else if (this.poolCircumference && this.poolCircumference > 0) {\r\n radius = this.poolCircumference / (2 * Math.PI);\r\n } else {\r\n // Handle case where neither diameter nor circumference is provided\r\n this.alertService.showMessage('Warning', `Make sure to enter the diameter`, MessageSeverity.warn);\r\n return;\r\n }\r\n\r\n // Calculate average depth first\r\n this.avgDepthC = (this.poolDepthShallowC + this.poolDepthDeepC) / 2;\r\n\r\n // Calculate floor and wall areas\r\n let floorArea = Math.PI * radius * radius; // Area = πr²\r\n let wallArea = 2 * Math.PI * radius * this.avgDepthC;\r\n\r\n // Total surface area\r\n this.totalArea = floorArea + wallArea;\r\n\r\n // Add wastage\r\n this.totalArea *= (1 + (this.calWastageC / 100));\r\n\r\n // Material calculations\r\n this.csmQuantity = this.totalArea * 450 / 1000; // Convert grams to kilograms\r\n this.resinQuantity = this.csmQuantity * 2.5;\r\n this.poolCoatQuantity = this.totalArea * 600 / 1000; // Convert grams to kilograms\r\n this.catalystQuantity = (this.resinQuantity + this.poolCoatQuantity) * 0.02;\r\n\r\n //CSM (Chop Strand Mat) 450gsm: Since 450gsm(grams per square meter) is the density, you calculate the CSM quantity by multiplying the total area by 450gsm.Convert the result to kilograms.\r\n this.totalCsm450gsmKg = this.totalArea * 450 / 1000; // Convert grams to kilograms\r\n\r\n //Add additional layer to 300\r\n this.totalCsm300gsmKg = this.totalArea * 300 / 1000; // Convert grams to kilograms\r\n\r\n //Resin (2.5:1 Ratio):\r\n this.resinQuantity450 = this.totalCsm450gsmKg * 2.5;\r\n //3 for 300\r\n this.resinQuantity300 = this.totalCsm300gsmKg * 2.5;\r\n\r\n //Catalyst (2%): The catalyst quantity is 2% of the combined quantity of Resin and PoolCoat. \r\n this.catalystQuantity450 = (this.resinQuantity450 + this.poolCoatQuantity) * 0.02;\r\n this.catalystQuantity300 = (this.resinQuantity300 + this.poolCoatQuantity) * 0.02;\r\n\r\n\r\n this.resinLiters = this.totalArea * this.specificGravity; // Add this line to calculate liters\r\n this.surfaceTissueTotalKg = (this.surfaceTissuePerSqm * this.totalArea) / 1000; // Convert to kg\r\n // Calculate additional resin for surface tissue with 10% wastage\r\n this.additionalResinForSurfaceTissue = this.totalArea * 300 / 1000; // Convert grams to kilograms\r\n\r\n this.calculated = true;\r\n if (!this.calcModal) {\r\n setTimeout(() => {\r\n if (this.calcModal) {\r\n this.calcModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.calcModal.show();\r\n }\r\n }\r\n\r\n calculateAverageDepth() {\r\n if (this.poolDepthShallow && this.poolDepthDeep) {\r\n this.avgDepth = (this.poolDepthShallow + this.poolDepthDeep) / 2;\r\n }\r\n }\r\n\r\n\r\n calculateAverageDepthC() {\r\n if (this.poolDepthShallowC && this.poolDepthDeepC) {\r\n this.avgDepthC = (this.poolDepthShallowC + this.poolDepthDeepC) / 2;\r\n }\r\n }\r\n\r\n closeCalc() {\r\n // Close the modal\r\n this.calcModal.hide();\r\n this.calculated = false;\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n openWebsiteLink(searchString: string) {\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"https://www.maxarcus.co.za/products?keyword=\" + encodeURIComponent(searchString), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"https://www.fowkes.co.za/products?keyword=\" + encodeURIComponent(searchString), \"_blank\");\r\n }\r\n }\r\n\r\n openPDF(doc: number) {\r\n let fileName = '';\r\n\r\n switch (doc) {\r\n case 1:\r\n fileName = 'Application Guidance (Swimming pools).pdf';\r\n break;\r\n case 2:\r\n fileName = 'Required Materials (Swimming Pools).pdf';\r\n break;\r\n case 3:\r\n fileName = 'Square Meter Area (Swimming Pools).pdf';\r\n break;\r\n default:\r\n console.error('Document not found');\r\n return;\r\n }\r\n\r\n window.open(`/MediaServer/ContentManagementDocuments/PublicDocuments/${fileName}`, \"_blank\");\r\n }\r\n\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"col-md-3 no-padding\\\" style=\\\"margin-top: 1px;\\\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"col-lg-1\\\">\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"col-md-2 no-padding\\\" style=\\\"margin-top: 1px;\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n Edit\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n.datatable-header-cell {\\n display: flex !important;\\n align-items: center !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row red {\\n background-color: red; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy1jYXRhbG9ndWUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsK0JBQStCLEVBQUE7O0FBRWpDO0VBQ0Usd0JBQXdCO0VBQ3hCLDhCQUE4QixFQUFBOztBQUVoQztFQUVJLHFCQUFxQixFQUFBOztBQUd6QjtFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLG1CQUFtQixFQUFBOztBQVB2QjtJQVdJLGdCQUFnQjtJQUNoQiwwQkFBMEIsRUFBQTs7QUFaOUI7SUFnQkksMEJBQTBCLEVBQUE7O0FBSTlCO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHckI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3Byb2R1Y3RzL3Byb2R1Y3RzLWNhdGFsb2d1ZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcclxufVxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3d7XHJcbiAgcmVke1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIH1cclxufVxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcblxyXG4gIC5idG4tbGluay5ncmlkIHtcclxuICAgIGZvbnQtc2l6ZTogMC43MDByZW07XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIGEuaG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udXNlci1yb2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG4iXX0= */\"","\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { TreeviewComponent, TreeviewConfig, TreeviewItem } from 'ngx-treeview';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { CMCategories } from '../../models/cms-category.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { SimpleTree } from '../../models/simple-tree.model';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Utilities } from '../../services/utilities';\r\n\r\nimport { CoreAudit } from '../../models/core-audit.model';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'products-catalogue',\r\n templateUrl: './products-catalogue.component.html',\r\n styleUrls: ['./products-catalogue.component.scss']\r\n})\r\n\r\n \r\nexport class ProductsCatalogueComponent implements OnInit {\r\n\r\n auditObj = new CoreAudit();\r\n\r\n columns: any[] = [];\r\n rows: Inventory[] = [];\r\n rowsCache: Inventory[] = [];\r\n\r\n loadingIndicator: boolean;\r\n\r\n items: TreeviewItem[];\r\n treeItems: TreeviewItem[] = [];\r\n treeItem: any;\r\n treerows: string[];\r\n item: any;\r\n data: CMCategories;\r\n categoryData: CMCategories[];\r\n\r\n breadcrumbs: SimpleTree[] = [];\r\n\r\n seletedItem: TreeviewItem;\r\n\r\n expandIndex: Number = -1;\r\n\r\n config: TreeviewConfig = {\r\n hasAllCheckBox: false,\r\n hasFilter: false,\r\n hasCollapseExpand: true,\r\n decoupleChildFromParent: false,\r\n maxHeight: 1000,\r\n hasDivider: false\r\n };\r\n\r\n @ViewChild(TreeviewComponent) treeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild(TreeviewComponent)\r\n categoryTreeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('treeModal')\r\n treeModal: ModalDirective;\r\n\r\n @ViewChild('treeItemTemplate')\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('sellpriceTemplate')\r\n sellpriceTemplate: TemplateRef;\r\n\r\n @ViewChild('unitCostTemplate')\r\n unitCostTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n stockCode: string;\r\n\r\n id: string;\r\n cartId: string;\r\n customer: ArCustomer;\r\n stockCodedetail: Inventory;\r\n isNavigating: boolean;\r\n isSaving: boolean;\r\n cartSaved: boolean;\r\n cartlinenumber: number = 0;\r\n saveCount: number;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n isNavigatingTo: string;\r\n hasDataSheets: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n savedLineCount: number;\r\n isReloading: boolean;\r\n src: string;\r\n searchTerm: string = \"\";\r\n chkNew: boolean;\r\n chkSp: boolean;\r\n chkAlt: boolean;\r\n chkDis: any;\r\n chkUnmapped: boolean;\r\n chkAll: boolean;\r\n chkDt1: boolean;\r\n chkDt2: boolean;\r\n\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n reportTitle: string = \"\";\r\n reportType: string = \"\";\r\n\r\n searchResults: Inventory[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n\r\n inventoryList: Inventory[];\r\n searchingOn: string;\r\n chkShortDescription: boolean;\r\n chkLongDescription: boolean;\r\n chkAnyDescription: boolean;\r\n hasAddDataSheets: boolean;\r\n buyerResponsible: string;\r\n brandList: any[];\r\n newParentName: string;\r\n selectedBrand: string;\r\n chkIncludeIndexPage: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService, private reportService: ReportService, \r\n private router: Router, private route: ActivatedRoute, private numberPipe: CurrencyPipe, private authService: AuthService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.auditObj.referenceType = \"CATALOGUE\";\r\n this.auditObj.branch = this.branchCode;\r\n this.auditObj.applicationUser = this.authService.currentUser.email;\r\n this.auditObj.actionedBy = this.authService.currentUser.email;\r\n this.auditObj.groupKey = this.accountService.currentUser.id;\r\n\r\n this.chkIncludeIndexPage = false;\r\n this.SetDataGrid();\r\n\r\n this.loadData();\r\n }\r\n\r\n \r\n private SetDataGrid() {\r\n \r\n var variableWidth = this.canManageInventory ? 100 : 160;\r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: variableWidth, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 370, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n { prop: 'brandName', name: 'Brand', width: 70, cellClass: \"right\" },\r\n { prop: 'categoryTree', name: 'Category', width: 120, cellClass: \"right\" },\r\n { prop: 'uom', name: 'UOM', width: 50, cellClass: \"center\" },\r\n //{ prop: 'warehouse', name: 'WH', width: 50, cellClass: \"center\" },\r\n { prop: 'availQty', name: 'Qty Available', width: 50, cellClass: \"right\" },\r\n //{ prop: 'qtyOnOrder', name: 'Qty On Order', width: 70, cellClass: \"right\" },\r\n //{ prop: 'qtyInTransit', name: 'Qty In Transit', width: 50, cellClass: \"right\" },\r\n { prop: 'specialPrice', name: 'Special Price', width: 90, cellTemplate: this.priceTemplate, cellClass: \"right\", pipe: { transform: this.currencyPipe } }\r\n //{ prop: 'unitCost', name: 'Unit Cost', width: 90, cellTemplate: this.unitCostTemplate, cellClass: \"right\", pipe: { transform: this.currencyPipe } }\r\n ];\r\n\r\n if (this.canManageInventory) {\r\n this.columns.push({ name: 'CMS', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n }\r\n }\r\n\r\n currencyPipe(value: any, ...args: any[]) {\r\n let updated = value.toFixed(2);\r\n updated += '';\r\n let x = updated.split('.');\r\n let x1 = x[0];\r\n let x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n //return value.toFixed(2);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n\r\n loadData() {\r\n\r\n this.searchType = \"\";\r\n this.searchText = \"\";\r\n this.searchTerm = \"\";\r\n\r\n this.sysproService.getBrands().subscribe(x => this.onBrandsLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n this.sysproService.getAllCMCatergoriesTree(this.expandIndex).subscribe(x => this.onCategoriesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType != \"\") {\r\n\r\n this.rows = [];\r\n this.rowsCache = [];\r\n\r\n\r\n this.auditObj.referenceNumber = this.searchType;\r\n\r\n switch (this.searchType) {\r\n case \"new\": {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.reportType = \"report\";\r\n this.reportTitle = \"New In\";\r\n this.searchText = \"new\";\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, \"report\", \"new\").subscribe(x => this.onStockLoadSuccessful([x], false),\r\n error => this.onDataLoadFailed(error));\r\n\r\n break;\r\n }\r\n case \"specialsF\": {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportType = \"report\";\r\n this.reportTitle = \"Fowkes Bros. Specials\";\r\n this.searchText = \"specialsF\";\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, \"report\", \"specialsF\").subscribe(x => this.onStockLoadSuccessful([x], false),\r\n error => this.onDataLoadFailed(error));\r\n\r\n //this.rows = this.rowsCache.filter(x => x.onSpecialFowkes == true);\r\n\r\n break;\r\n }\r\n case \"specialsM\": {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportType = \"report\";\r\n this.reportTitle = \"Max Arcus Specials\";\r\n this.searchText = \"specialsM\";\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, \"report\", \"specialsM\").subscribe(x => this.onStockLoadSuccessful([x], false),\r\n error => this.onDataLoadFailed(error));\r\n\r\n break;\r\n }\r\n\r\n case \"category\": {\r\n\r\n this.searchText = \"\";\r\n this.reportType = \"\";\r\n this.loadCategoryModal();\r\n\r\n break;\r\n }\r\n case \"brand\": {\r\n if (this.selectedBrand && this.selectedBrand != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportType = \"reportbrand\";\r\n this.reportTitle = this.selectedBrand;\r\n this.searchText = this.selectedBrand;\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.reportType, this.selectedBrand).subscribe(x => this.onStockLoadSuccessful([x], false),\r\n error => this.onDataLoadFailed(error));\r\n }\r\n break;\r\n }\r\n case \"catLowList\": {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportType = \"report\";\r\n this.reportTitle = \"Category List\";\r\n this.searchText = \"catLowList\";\r\n this.createCatalogue();\r\n //this.sysproService.getStockCodeSearchByCriteria(this.branchCode, \"report\", \"catLowList\").subscribe(x => this.onStockLoadSuccessful([x], false),\r\n // error => this.onDataLoadFailed(error));\r\n\r\n break;\r\n }\r\n default: {\r\n this.searchText = \"\";\r\n this.reportType = \"\";\r\n //statements; \r\n break;\r\n }\r\n } \r\n\r\n this.isReloading = false;\r\n this.auditObj.actionType = \"SEARCH\";\r\n this.auditObj.referenceNumber = this.reportTitle;\r\n this.auditObj.actionInput = this.searchText;\r\n\r\n this.postAudit();\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onBrandsLoadSuccessful(brands: any[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (brands[0]) {\r\n this.brandList = [...brands[0]];\r\n }\r\n }\r\n\r\n onCategoriesLoadSuccessful(treeview: any[]) {\r\n if (treeview[0]) {\r\n let treeviewItems = new TreeviewItem(JSON.parse(treeview[0]));\r\n\r\n this.items = this.getItems([treeviewItems]);\r\n this.treeItems = this.getItems([treeviewItems]);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n getItems(parentChildObj) {\r\n let itemsArray = [];\r\n parentChildObj.forEach(set => {\r\n itemsArray.push(new TreeviewItem(set))\r\n });\r\n return itemsArray;\r\n }\r\n\r\n list_to_tree(list) {\r\n var map = {}, node, roots = [], i;\r\n\r\n for (i = 0; i < list.length; i += 1) {\r\n map[list[i].id] = i; // initialize the map\r\n list[i].children = []; // initialize the children\r\n }\r\n\r\n for (i = 0; i < list.length; i += 1) {\r\n node = list[i];\r\n if (node.parentCategory !== \"Root\") {\r\n // if you have dangling branches check that map[node.parentId] exists\r\n list[map[node.parentCategory]].children.push(node);\r\n } else {\r\n roots.push(node);\r\n }\r\n }\r\n return roots;\r\n }\r\n\r\n\r\n loadCategoryModal() {\r\n if (!this.treeModal) {\r\n setTimeout(() => {\r\n if (this.treeModal) {\r\n this.treeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.treeModal.show();\r\n }\r\n }\r\n\r\n\r\n selectTreeItem(row: TreeviewItem) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.newParentName = row.text;\r\n\r\n this.reportType = \"reportcategory\";\r\n this.reportTitle = this.newParentName;\r\n this.searchText = this.newParentName;\r\n\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.reportType, this.newParentName.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onStockLoadSuccessful([x], false),\r\n error => this.onDataLoadFailed(error));\r\n\r\n this.treeModal.hide();\r\n\r\n }\r\n\r\n\r\n treeItemBeforeExpand(row: TreeviewItem) {\r\n console.log(row);\r\n if (row) {\r\n if (row.collapsed) {\r\n\r\n }\r\n else {\r\n }\r\n }\r\n }\r\n\r\n onSpecificSearchSuccesful(x: Inventory[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n this.onStockLoadSuccessful([x], false);\r\n\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n \r\n onDataLoadSuccessful(customer: ArCustomer) {\r\n this.customer = customer;\r\n }\r\n\r\n onStockLoadSuccessful(inventory: any[], trim?: boolean) {\r\n\r\n this.searchTerm = \"\";\r\n this.inventoryList = inventory[0];\r\n\r\n this.inventoryList.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n stockCode.description = stockCode.shortDescription + ' - ' + stockCode.longDescription;\r\n //stockCode.sellingPrice = stockCode.sellingPrice.toFixed(2);\r\n });\r\n\r\n this.rowsCache = [...this.inventoryList];\r\n this.rows = [...this.rowsCache];\r\n\r\n this.isReloading = false;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n \r\n \r\n }\r\n\r\n createCatalogue() {\r\n\r\n this.alertService.startLoadingMessage(\"Generating Report...\");\r\n this.loadingIndicator = true;\r\n\r\n var extrafilter = (this.searchTerm && this.searchTerm != \"\" ? this.searchTerm : \"ALL\");\r\n\r\n this.reportService.getCataloguePDF(this.branchCode, this.application, this.reportTitle.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"),\r\n this.reportType, this.searchText.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"),\r\n this.chkIncludeIndexPage, extrafilter.replace(/\\//g, \"--\").replace(/\\%/gi, \"---\").replace(/\\+/gi, \"___\")).subscribe(x => this.previewCatalogue(), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n previewCatalogue() {\r\n\r\n this.auditObj.actionInput = this.reportTitle + \" Catalogue\";\r\n this.auditObj.actionType = \"GENERATE\";\r\n\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.accountService.currentUser.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = this.reportTitle + \" Catalogue\";\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = this.reportTitle;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Catalogue\";\r\n\r\n this.reportService.getFileStreamCatalogue(this.reportTitle.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.emailModal.show(), error => this.onDataLoadFailed(error));\r\n\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var attachement = this.emailObject.Attachment.replace('/', '_').replace('+', '_').replace('%', '_');\r\n\r\n this.src = url;\r\n\r\n if (!preview) {\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = attachement + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n viewPDF() {\r\n var attachement = this.emailObject.Attachment;\r\n if (this.emailObject.EmailType == \"Inventory\") {\r\n\r\n this.reportService.getFileStreamInventory(attachement.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n\r\n } else {\r\n\r\n this.reportService.getFileStreamCatalogue(this.reportTitle.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n\r\n this.auditObj.actionType = \"VIEW\";\r\n this.auditObj.referenceNumber = this.reportTitle;\r\n this.auditObj.actionInput = this.reportTitle;\r\n\r\n this.postAudit();\r\n }\r\n }\r\n\r\n previewPDF() {\r\n var attachement = this.emailObject.Attachment;\r\n if (this.emailObject.EmailType == \"Inventory\") {\r\n\r\n this.reportService.getFileStreamInventory(attachement.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n } else {\r\n\r\n this.reportService.getFileStreamCatalogue(this.reportTitle.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n\r\n this.auditObj.actionType = \"PRINT\";\r\n this.auditObj.referenceNumber = this.reportTitle;\r\n this.auditObj.actionInput = this.reportTitle;\r\n\r\n this.postAudit();\r\n }\r\n }\r\n\r\n emailPDF() {\r\n\r\n console.log(this.emailObject);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n if (this.emailObject.EmailType == \"Inventory\") {\r\n this.emailObject.AddDoc1 = (this.attachDataSheets && this.hasDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n this.emailObject.AddDoc3 = (this.attachDataSheets && this.hasAddDataSheets ? this.emailObject.AddDoc3 : \"\");\r\n }\r\n else {\r\n this.auditObj.referenceNumber = this.reportTitle;\r\n this.auditObj.actionType = \"EMAIL\";\r\n this.auditObj.actionOutput = this.emailObject.RecepientEmail;\r\n\r\n this.postAudit();\r\n }\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n \r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return;}\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n var filterValues = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.description, r.stockCode, r.brandName, r.categoryName)); \r\n\r\n this.rows = this._sortByTerm(filterValues, \"description\", value.toUpperCase());\r\n \r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n _sortByTerm(data, key, term) {\r\n return data.sort(function (a, b) {\r\n return a[key].indexOf(term) < b[key].indexOf(term) ? -1 : 1;\r\n });\r\n }\r\n\r\n _sortByrank(array, searchKey, props) {\r\n if (!array || !searchKey || !props) return array;\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n var obj = array[i];\r\n obj.rankSearch = 0;\r\n for (var j = 0; j < props.length; j++) {\r\n var index = obj[props[j]].indexOf(searchKey);\r\n // i should probably spend time tweaking these arbitrary numbers\r\n // to find good values that produce the best results, but\r\n // here's what I have so far...\r\n obj.rankSearch += (index === -1 ? 15 : index) * ((j + 1) * 8);\r\n }\r\n }\r\n\r\n return array;\r\n }\r\n\r\n\r\n results() {\r\n\r\n this.auditObj.actionType = \"CSV\";\r\n this.auditObj.referenceNumber = this.reportTitle;\r\n this.auditObj.actionInput = this.searchText;\r\n\r\n this.postAudit();\r\n\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"UOM\", \"WH\", \"Qty On Hand\", \"Bin\", \"Qty On Order\", \"Qty In Transit\",\r\n \"Selling Price\", \"Special Price\", \"Unit Cost\", \"Brand\", \"StockCodeImage\", \"DataSheetImage\", \"DataSheetImage2\", \"SpecialsImage\", \"Status\",\r\n \"NewArrival\", \"OnSpecial\", \"ShowAlternate\", \"AlternateKey\", \"Mapped\", \"Category\", \"CategoryTree\"]\r\n };\r\n\r\n var filename = \"InventoryList\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode, Description: row.description, UOM: row.uom, WH: row.warehouse,\r\n QtyOnHand: row.qtyOnHand, Bin: row.binLoc, QtyOnOrder: row.qtyOnOrder, QtyInTransit: row.qtyInTransit,\r\n SellingPrice: row.sellingPrice, SpecialPrice: row.specialPrice, UnitCost: row.unitCost, Brand: row.brandName, StockCodeImage: row.stockCodeImage,\r\n DataSheetImage: row.dataSheetImage, DataSheetImage2: row.addSheetImage, SpecialsImage: row.specialsImage, Status: row.status,\r\n NewArrival: row.newArrival, OnSpecial: row.onSpecial, ShowAlternate: row.showAlternate,\r\n AlternateKey: row.alternateKey, Mapped: row.mapped, Category: row.categoryName, CategoryTree: row.categoryTree\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n\r\n stockCodeModalHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n \r\n if (row.lineType != \"7\" && row.mapped) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.description;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.addSheetImage = row.addSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n this.stockCodedetail.onSpecialFowkes = row.onSpecialFowkes;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n editStockCode(row: Inventory) {\r\n if (row) {\r\n if (sessionStorage.getItem(localStorageActions.StockCode) != row.stockCode) {\r\n sessionStorage.setItem(localStorageActions.StockCode, row.stockCode);\r\n }\r\n this.router.navigate(['../../products'], { fragment: 'stockcodes' });\r\n } \r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey && row.mapped) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.alternateKey;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n\r\n openSpecials(row: Inventory) {\r\n if (!!row.specialsImage && row.specialsImage != \"\") {\r\n window.open(row.filePath + \"/SpecialImages/\" + row.specialsImage, \"_blank\");\r\n }\r\n }\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n\r\n onEmailLoadSuccessful() {\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasAddDataSheets = false;\r\n this.hasSpecials = false;\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n this.hasAddDataSheets = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage.length >= 1);\r\n\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.specialsImage.length >= 1 && (this.stockCodedetail.onSpecial || this.stockCodedetail.onSpecialFowkes));\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"), this.branchCode, this.application).subscribe(x => this.emailModal.show(), error => this.onDataLoadFailed(error));\r\n\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.accountService.currentUser.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim(); \r\n }\r\n\r\n if (this.hasAddDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc3 = this.stockCodedetail.addSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n\r\n get canManageInventory() {\r\n return this.accountService.userHasPermission(Permission.manageInventoryPermission);\r\n }\r\n\r\n\r\n private postAudit() {\r\n this.sysproService.postCoreAudit(this.auditObj).subscribe(x => console.log(x));\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\\"{{value}}\\\"\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \":host /deep/ .treeview-container .row-item {\\n margin-bottom: .3rem;\\n width: 400px; }\\n\\n:host /deep/ .treeview-container {\\n height: calc(100vh - 100px);\\n max-height: 1000px !important; }\\n\\n:host /deep/ .treeview-header {\\n visibility: hidden;\\n margin: -26px; }\\n\\n.tree-rows {\\n margin-left: 20px;\\n background-color: white;\\n height: 30px; }\\n\\n.tree-rows .categories {\\n border-bottom: 1px solid;\\n border-bottom-color: whitesmoke; }\\n\\n.tree-rows .items {\\n height: 20px; }\\n\\n.category-header {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.item-row {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.content-container {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy1jYXRlZ29yeS1jYXRhbG9ndWUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxvQkFBb0I7RUFDcEIsWUFBWSxFQUFBOztBQUdkO0VBQ0UsMkJBQTJCO0VBQzNCLDZCQUE2QixFQUFBOztBQUkvQjtFQUVJLGtCQUFrQjtFQUNwQixhQUFhLEVBQUE7O0FBR2Y7RUFDRSxpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLFlBQVksRUFBQTs7QUFIZDtJQU1JLHdCQUF3QjtJQUN4QiwrQkFBK0IsRUFBQTs7QUFQbkM7SUFXRSxZQUFZLEVBQUE7O0FBSWQ7RUFDRSxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUd0QixrREFBK0M7RUFDL0Msa0JBQWtCLEVBQUE7O0FBSXBCO0VBQ0UsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFHdEIsa0RBQStDO0VBQy9DLGtCQUFrQixFQUFBOztBQUtwQjtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9wcm9kdWN0cy1jYXRlZ29yeS1jYXRhbG9ndWUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCAvZGVlcC8gLnRyZWV2aWV3LWNvbnRhaW5lciAucm93LWl0ZW0ge1xyXG4gIG1hcmdpbi1ib3R0b206IC4zcmVtO1xyXG4gIHdpZHRoOiA0MDBweDtcclxufVxyXG5cclxuOmhvc3QgL2RlZXAvIC50cmVldmlldy1jb250YWluZXIge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDEwMHB4KTtcclxuICBtYXgtaGVpZ2h0OiAxMDAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbjpob3N0IC9kZWVwLyAudHJlZXZpZXctaGVhZGVyIHtcclxuXHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgbWFyZ2luOiAtMjZweDtcclxufVxyXG5cclxuLnRyZWUtcm93cyB7XHJcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG5cclxuICAuY2F0ZWdvcmllcyB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XHJcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gIH1cclxuXHJcbiAgLml0ZW1zIHtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uY2F0ZWdvcnktaGVhZGVyIHtcclxuICBwYWRkaW5nOiAuMnJlbSAxcmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IC01cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIC1tb3otYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG59XHJcblxyXG5cclxuLml0ZW0tcm93IHtcclxuICBwYWRkaW5nOiAuMnJlbSAxcmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IC01cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIC1tb3otYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG59XHJcblxyXG5cclxuXHJcbi5jb250ZW50LWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbn1cclxuIl19 */\"","import { Component, ElementRef, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { TreeviewComponent, TreeviewConfig, TreeviewItem } from 'ngx-treeview';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { CMCategoryList } from '../../models/cms-category-list.model';\r\nimport { CMCategories } from '../../models/cms-category.model';\r\nimport { CMStockCode } from '../../models/cms-stockcode.model';\r\nimport { Email } from '../../models/email.model';\r\nimport { SimpleTree } from '../../models/simple-tree.model';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { ReportService } from '../../services/report.service';\r\n\r\n@Component({\r\n selector: 'products-category-catalogue',\r\n templateUrl: './products-category-catalogue.component.html',\r\n styleUrls: ['./products-category-catalogue.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ProductsCatagoryCatalogueComponent {\r\n\r\n\r\n @ViewChild('imageTemplate')\r\n imageTemplate: TemplateRef;\r\n\r\n loadingIndicator: boolean;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n searchType: string = \"\";\r\n reportTitle: string = \"\";\r\n reportType: string = \"\";\r\n searchText: string = \"\";\r\n\r\n columnsCat: any[] = [];\r\n rowsCat: CMCategoryList[] = [];\r\n rowsCatcache: CMCategoryList[] = [];\r\n\r\n\r\n\r\n emailObject: Email = new Email();\r\n\r\n\r\n src: string;\r\n\r\n\r\n constructor(private alertService: AlertService, private router: Router, private route: ActivatedRoute,\r\n private sysproService: SysproService, private accountService: AccountService, private reportService: ReportService,\r\n private configurations: ConfigurationService, private authService: AuthService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.searchType = \"catLowList\";\r\n this.SetDataGrid();\r\n this.loadData();\r\n\r\n }\r\n\r\n ngOnDestroy() { }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n SetDataGrid() {\r\n \r\n this.columnsCat = [\r\n { name: '', width: 60, cellTemplate: this.imageTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'categoryName', name: 'Category', width: 280, cellClass: \"left\" },\r\n { prop: 'numberOfStockCodes', name: 'Items', width: 80, cellClass: \"right\" },\r\n { prop: 'categoryGroup', name: 'Group', width: 250, cellClass: \"left\" },\r\n { prop: 'categoryTree', name: 'Tree', width: 400, cellClass: \"left\" }\r\n ]\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportType = \"report\";\r\n this.reportTitle = \"Category List\";\r\n this.searchText = \"catLowList\";\r\n this.loadList();\r\n\r\n }\r\n\r\n\r\n\r\n loadList() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n //Scrape and Load Categories\r\n this.sysproService.getCategoryCatalogueList(\"CT\", \"catLowList\", \"ALL\", \"ALL\").subscribe(x => this.onCategoryListLoadSuccessful(x), error =>\r\n this.onDataLoadFailed(error));\r\n }\r\n\r\n onCategoryListLoadSuccessful(x: CMCategoryList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x[0]) {\r\n this.rowsCatcache = [...x];\r\n this.rowsCat = this.rowsCatcache;\r\n }\r\n }\r\n \r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rowsCat = this.rowsCatcache.filter(r => Utilities.searchArray(value, false, r.categoryName, r.categoryGroup, r.categoryTree,\r\n r.metaDescription));\r\n this.searchText = value;\r\n }\r\n else {\r\n this.rowsCat = this.rowsCatcache;\r\n this.searchText = \"\";\r\n }\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n\r\n\r\n createCatalogue() {\r\n\r\n this.alertService.startLoadingMessage(\"Generating Report...\");\r\n this.loadingIndicator = true;\r\n\r\n var filter = this.searchText != \"\" ? this.searchText : \"ALL\";\r\n this.reportService.getCataloguePDF(this.branchCode, this.application, this.reportTitle,\r\n this.reportType, \"catLowList\", true, filter).subscribe(x => this.previewCatalogue(), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewCatalogue() {\r\n\r\n\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.accountService.currentUser.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = this.reportTitle + \" Catalogue\";\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = this.reportTitle;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Catalogue\";\r\n\r\n this.reportService.getFileStreamCatalogue(this.reportTitle.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.viewPDF(), error => this.onDataLoadFailed(error));\r\n\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n viewPDF() {\r\n var attachement = this.emailObject.Attachment;\r\n\r\n\r\n this.reportService.getFileStreamCatalogue(this.reportTitle.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var attachement = this.emailObject.Attachment.replace('/', '_').replace('+', '_').replace('%', '_');\r\n\r\n this.src = url;\r\n\r\n if (!preview) {\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = attachement + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"CategoryGroup\", \"CategoryName\", \"CategoryTree\", \"NumberOfStockCodes\"]\r\n };\r\n\r\n var filename = \"Category Catalogue\";\r\n var selectRows = [...this.rowsCat];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n CategoryGroup: row.categoryGroup, Category: row.categoryName, CategoryTree: row.categoryTree, NumberOfStockCodes: row.numberOfStockCodes\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\\"{{value}}\\\"\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{categoryDetail.categoryName}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"{{categoryDetail.categoryImage}}\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Meta Page Title:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Search phrase(s) or Keyword(s):\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Meta Description:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host /deep/ .treeview-container .row-item {\\n margin-bottom: .3rem;\\n width: 400px; }\\n\\n:host /deep/ .treeview-container {\\n height: calc(100vh - 100px);\\n max-height: 1000px !important; }\\n\\n:host /deep/ .treeview-header {\\n visibility: hidden;\\n margin: -26px; }\\n\\n.tree-rows {\\n margin-left: 20px;\\n background-color: white;\\n height: 30px; }\\n\\n.tree-rows .categories {\\n border-bottom: 1px solid;\\n border-bottom-color: whitesmoke; }\\n\\n.tree-rows .items {\\n height: 20px; }\\n\\n.category-header {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.item-row {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.content-container {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy1lZGl0LW1ldGF0YWdzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usb0JBQW9CO0VBQ3BCLFlBQVksRUFBQTs7QUFHZDtFQUNFLDJCQUEyQjtFQUMzQiw2QkFBNkIsRUFBQTs7QUFJL0I7RUFFSSxrQkFBa0I7RUFDcEIsYUFBYSxFQUFBOztBQUdmO0VBQ0UsaUJBQWlCO0VBQ2pCLHVCQUF1QjtFQUN2QixZQUFZLEVBQUE7O0FBSGQ7SUFNSSx3QkFBd0I7SUFDeEIsK0JBQStCLEVBQUE7O0FBUG5DO0lBV0UsWUFBWSxFQUFBOztBQUlkO0VBQ0UsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFHdEIsa0RBQStDO0VBQy9DLGtCQUFrQixFQUFBOztBQUlwQjtFQUNFLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBR3RCLGtEQUErQztFQUMvQyxrQkFBa0IsRUFBQTs7QUFLcEI7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJvZHVjdHMvcHJvZHVjdHMtZWRpdC1tZXRhdGFncy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IC9kZWVwLyAudHJlZXZpZXctY29udGFpbmVyIC5yb3ctaXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogLjNyZW07XHJcbiAgd2lkdGg6IDQwMHB4O1xyXG59XHJcblxyXG46aG9zdCAvZGVlcC8gLnRyZWV2aWV3LWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTAwcHgpO1xyXG4gIG1heC1oZWlnaHQ6IDEwMDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuOmhvc3QgL2RlZXAvIC50cmVldmlldy1oZWFkZXIge1xyXG5cclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBtYXJnaW46IC0yNnB4O1xyXG59XHJcblxyXG4udHJlZS1yb3dzIHtcclxuICBtYXJnaW4tbGVmdDogMjBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICBoZWlnaHQ6IDMwcHg7XHJcblxyXG4gIC5jYXRlZ29yaWVzIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlc21va2U7XHJcbiAgfVxyXG5cclxuICAuaXRlbXMge1xyXG4gIGhlaWdodDogMjBweDtcclxuICB9XHJcbn1cclxuXHJcbi5jYXRlZ29yeS1oZWFkZXIge1xyXG4gIHBhZGRpbmc6IC4ycmVtIDFyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgLW1vei1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcblxyXG4uaXRlbS1yb3cge1xyXG4gIHBhZGRpbmc6IC4ycmVtIDFyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgLW1vei1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcblxyXG5cclxuLmNvbnRlbnQtY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxufVxyXG4iXX0= */\"","import { Component, ElementRef, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { TreeviewComponent, TreeviewConfig, TreeviewItem } from 'ngx-treeview';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { CMCategoryList } from '../../models/cms-category-list.model';\r\nimport { CMCategories } from '../../models/cms-category.model';\r\nimport { CMStockCode } from '../../models/cms-stockcode.model';\r\nimport { SimpleTree } from '../../models/simple-tree.model';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\n@Component({\r\n selector: 'Products-Edit-MetaTags',\r\n templateUrl: './products-edit-metatags.component.html',\r\n styleUrls: ['./products-edit-metatags.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ProductsEditMetaTagsComponent {\r\n\r\n items: TreeviewItem[];\r\n rows: string[];\r\n item: any;\r\n data: CMCategories;\r\n categoryData: CMCategories[];\r\n\r\n categoryrows: CMCategories[] = [];\r\n categoryrowsCache: CMCategories[] = [];\r\n\r\n breadcrumbs: SimpleTree[] = [];\r\n\r\n seletedItem: TreeviewItem;\r\n\r\n expandIndex: Number = -1;\r\n\r\n config: TreeviewConfig = {\r\n hasAllCheckBox: false,\r\n hasFilter: false,\r\n hasCollapseExpand: true,\r\n decoupleChildFromParent: false,\r\n maxHeight: 1000,\r\n hasDivider: false\r\n };\r\n\r\n @ViewChild(TreeviewComponent) treeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('itemTemplate')\r\n itemTemplate: TemplateRef;\r\n\r\n loadingIndicator: boolean;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n @ViewChild('categoryListSelector')\r\n private categoryListSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n categorySelected: string = \"\";\r\n categoryList: CMCategories[] = [];\r\n categoryListChangeParent: CMCategories[] = [];\r\n changeParent: boolean = false;\r\n\r\n\r\n @ViewChild('fileListSelector')\r\n private fileListSelector;\r\n fileCategorySelected: string = \"\";\r\n fileListChangeParent: CMCategories[] = [];\r\n changeFileParent: boolean = false;\r\n\r\n @ViewChild('categoryModal')\r\n categoryModal: ModalDirective;\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n @ViewChild('myFileInput')\r\n myFileInput: ElementRef;\r\n\r\n categoryDetail: CMCategories = new CMCategories();\r\n rowsCache: TreeviewItem[];\r\n headerTemplateContext: { config: TreeviewConfig; item: any};\r\n modalHeader: string;\r\n isSaving: boolean;\r\n compareFolderName: any;\r\n documentDetail: CMStockCode = new CMStockCode();\r\n\r\n //newformData = new FormData();\r\n compareFileName: string;\r\n repoDocsList: CMStockCode[] = [];\r\n stockCodeList: CMStockCode[] = [];\r\n changeImage: boolean;\r\n newCategoryImageData = new FormData();\r\n\r\n @ViewChild(TreeviewComponent)\r\n categoryTreeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('treeModal')\r\n treeModal: ModalDirective;\r\n\r\n @ViewChild('treeItemTemplate')\r\n treeItemTemplate: TemplateRef;\r\n\r\n treeItems: TreeviewItem[] = [];\r\n treeItem: any;\r\n newParentName: string = \"\";\r\n isEnabled: boolean;\r\n stockCodedetail: any;\r\n hasDataSheet: boolean;\r\n hasSpecials: boolean;\r\n hasImpaCodes: boolean;\r\n hasAddDataSheet: boolean;\r\n alternatesList: any[];\r\n configurations: any;\r\n updatedStockCodeDetail: any;\r\n changeStockCodeImage: boolean;\r\n newStockCodeImageData: FormData;\r\n newSpecialsImageData: any;\r\n newDatasheetImageData: any;\r\n newAddDatasheetImageData: any;\r\n stockCode: any;\r\n newStockCode: boolean;\r\n selectedCategory: string;\r\n\r\n columns: any[] = [];\r\n\r\n\r\n\r\n searchType: string = \"\";\r\n reportTitle: string = \"\";\r\n reportType: string = \"\";\r\n searchText: string = \"\";\r\n\r\n columnsCat: any[] = [];\r\n rowsCat: CMCategoryList[] = [];\r\n rowsCatcache: CMCategoryList[] = [];\r\n\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('imageTemplate')\r\n imageTemplate: TemplateRef;\r\n\r\n constructor(private alertService: AlertService, private router: Router, private route: ActivatedRoute, private sysproService: SysproService, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.searchType = \"\";\r\n this.SetDataGrid();\r\n this.loadData();\r\n\r\n }\r\n\r\n ngOnDestroy() { }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n SetDataGrid() {\r\n this.columns = [\r\n { name: '', width: 60, cellTemplate: this.imageTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'categoryName', name: 'Category', width: 280, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n { prop: 'metaDescription', name: 'Meta Description', width: 250, cellClass: \"left\" },\r\n { prop: 'keywords', name: 'Key Words', width: 250, cellClass: \"left\" },\r\n { prop: 'title', name: 'Title', width: 250, cellClass: \"left\" },\r\n { prop: 'parentCategoryName', name: 'Parent', width: 250, cellClass: \"left\" },\r\n /* { name: 'Edit', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },*/\r\n { prop: 'tree', name: 'Tree', width: 400, cellClass: \"left\" }\r\n ]\r\n\r\n this.columnsCat = [\r\n { name: '', width: 60, cellTemplate: this.imageTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'categoryName', name: 'Category', width: 280, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n { prop: 'categoryGroup', name: 'Group', width: 250, cellClass: \"left\" },\r\n { prop: 'categoryTree', name: 'Tree', width: 400, cellClass: \"left\" }\r\n ]\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getAllCMCategories().subscribe(x => this.onCategoriesLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n/* this.sysproService.getAllCMCatergoriesTree(this.expandIndex).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));*/\r\n }\r\n\r\n\r\n specificSearch() {\r\n\r\n if (this.searchType == \"metatags\") {\r\n this.loadData();\r\n }\r\n else {\r\n if (this.searchType == \"catLowList\") {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportType = \"report\";\r\n this.reportTitle = \"Category List\";\r\n this.searchText = \"catLowList\";\r\n this.loadList();\r\n // this.createCatalogue();\r\n }\r\n }\r\n\r\n }\r\n\r\n loadList() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n //Scrape and Load Categories\r\n this.sysproService.getCategoryCatalogueList(\"CT\", \"catLowList\", \"ALL\", \"ALL\").subscribe(x => this.onCategoryListLoadSuccessful(x), error =>\r\n this.onDataLoadFailed(error));\r\n }\r\n\r\n onCategoryListLoadSuccessful(x: CMCategoryList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x[0]) {\r\n this.rowsCatcache = [...x];\r\n this.rowsCat = this.rowsCatcache;\r\n }\r\n }\r\n \r\n onDataLoadSuccessful(treeview: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n \r\n let treeviewItems = new TreeviewItem(JSON.parse(treeview[0]));\r\n\r\n this.items = this.getItems([treeviewItems]);\r\n this.treeItems = this.getItems([treeviewItems]);\r\n }\r\n\r\n onCategoriesLoadSuccessful(results: CMCategories[]) {\r\n this.categoryList = results;\r\n const updateRows = this.categoryList.filter(r => r.categoryName != \"Root\");\r\n for (var category of updateRows) {\r\n var parentTree = \"\";\r\n\r\n category.tree = this.buildParentTree(category.parentCategoryName, parentTree);\r\n }\r\n\r\n updateRows.sort((a, b) => (a.categoryName > b.categoryName) ? 1 : -1)\r\n this.categoryrows = [...updateRows];\r\n this.categorySelected = \"\";\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n console.log(this.categoryrows);\r\n }\r\n\r\n buildParentTree(parentCategoryName: string, treePath: string): string {\r\n var path = \"\";\r\n if (parentCategoryName && parentCategoryName != \"Root\") {\r\n let parents = this.categoryList.filter(x => x.categoryName == parentCategoryName);\r\n if (parents && parents.length >= 1) {\r\n let parent = parents[0];\r\n if (parent) {\r\n path = parentCategoryName + \" | \" + treePath;\r\n treePath = this.buildParentTree(parent.parentCategoryName, path);\r\n }\r\n else {\r\n return treePath;\r\n }\r\n }\r\n else {\r\n return treePath;\r\n }\r\n }\r\n return treePath;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.categoryrows = this.categoryList.filter(r => Utilities.searchArray(value, false, r.categoryName, r.parentCategoryName, r.tree,\r\n r.title, r.metaDescription, r.keywords));\r\n }\r\n else {\r\n this.categoryrows = this.categoryList;\r\n }\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n\r\n\r\n\r\n enableEditMethod(row: CMCategories) {\r\n this.enableEdit = true;\r\n this.modalHeader = \"Edit Category\";\r\n\r\n\r\n this.isEnabled = (row.statusIndicator == \"E\") ? true : false;\r\n\r\n this.categoryDetail = new CMCategories();\r\n\r\n this.categoryDetail.id = row.id;\r\n this.categoryDetail.parentCategoryName = row.parentCategoryName;\r\n this.categoryDetail.categoryName = row.categoryName;\r\n this.categoryDetail.categoryImage = row.categoryImage;\r\n this.categoryDetail.title = row.title;\r\n this.categoryDetail.metaDescription = row.metaDescription;\r\n this.categoryDetail.keywords = row.keywords;\r\n this.categoryDetail.statusIndicator = row.statusIndicator;\r\n this.categoryDetail.filePath = row.filePath;\r\n this.categoryDetail.tree = row.tree;\r\n\r\n this.compareFolderName = this.categoryDetail.categoryName;\r\n this.categorySelected = this.categoryDetail.parentCategoryName;\r\n\r\n\r\n this.changeImage = false;\r\n this.newCategoryImageData = new FormData();\r\n\r\n if (!this.categoryModal) {\r\n setTimeout(() => {\r\n if (this.categoryModal) {\r\n this.categoryModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.categoryModal.show();\r\n }\r\n }\r\n\r\n //addNewCategory(row: TreeviewItem) {\r\n // this.modalHeader = \"Add new Category\";\r\n // this.enableEditIndex = row.value.index;\r\n\r\n // this.isEnabled = false;\r\n\r\n // this.categoryDetail = new CMCategories();\r\n // this.categoryDetail.statusIndicator = \"D\";\r\n // this.categoryDetail.categoryName = \"\";\r\n // this.categoryDetail.parentCategoryName = row.text;\r\n // this.categoryDetail.createdBy = this.accountService.currentUser.email;\r\n // this.categoryDetail.title = \"\";\r\n // this.categoryDetail.metaDescription = \"\";\r\n // this.categoryDetail.keywords = \"\";\r\n // this.categoryDetail.filePath =\"\";\r\n\r\n // this.categorySelected = row.text;\r\n // this.compareFolderName = \"\";\r\n\r\n // if (!this.categoryModal) {\r\n // setTimeout(() => {\r\n // if (this.categoryModal) {\r\n // this.categoryModal.show();\r\n // }\r\n // });\r\n // }\r\n // else {\r\n // this.categoryModal.show();\r\n // }\r\n //}\r\n\r\n\r\n categoryModalHide() {\r\n this.categoryDetail = new CMCategories();\r\n this.changeParent = false;\r\n this.categorySelected = \"\";\r\n this.categoryModal.hide();\r\n }\r\n\r\n saveCategory() {\r\n if (this.categoryDetail && this.categoryDetail.categoryName != \"\") {\r\n\r\n if (this.validateCategorySave()) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n var newFileName = this.categoryDetail.categoryName.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\");\r\n\r\n this.handleFiles(newFileName, 0);\r\n }\r\n\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a category name`, MessageSeverity.warn);\r\n }\r\n }\r\n\r\n //deleteCategory(row: TreeviewItem) {\r\n // console.log(row);\r\n // if (row.value.isLasLevel) {\r\n // if (null == row.children) {\r\n // this.alertService.startLoadingMessage();\r\n // this.loadingIndicator = true;\r\n // this.sysproService.getStockCodesForCategory(row.value.category.Id).subscribe(x => this.onStockCodesLoadSuccesfull(x, row, true), error => this.onDataLoadFailed(error));\r\n // }\r\n // }\r\n //}\r\n\r\n //onCategoryDeleted(x: CMCategories): void {\r\n // this.loadData();\r\n //}\r\n\r\n\r\n toggleImageUpload(type: string) {\r\n switch (type) {\r\n case \"categoryImage\": {\r\n this.changeImage = !this.changeImage;\r\n if (!this.changeImage) {\r\n this.newCategoryImageData = new FormData();\r\n }\r\n break;\r\n }\r\n case \"stockCodeImage\": {\r\n this.changeStockCodeImage = !this.changeStockCodeImage;\r\n if (!this.changeStockCodeImage) {\r\n this.newStockCodeImageData = new FormData();\r\n }\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n \r\n handleFiles(newFileName: string, numberDone: number) {\r\n\r\n //Update Files\r\n if (numberDone == 0) {\r\n if (this.newCategoryImageData.has('file')) {\r\n this.sysproService.postFileData(this.newCategoryImageData, \"CATEGORY\", newFileName).subscribe(x => {\r\n this.categoryDetail.categoryImage = x.fileName;\r\n this.categoryDetail.categoryImageChanged = new Date();\r\n this.handleFiles(newFileName, 1);\r\n this.alertService.showMessage('Success', `Added Category Image`, MessageSeverity.success);\r\n }, error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n if ((!this.categoryDetail.categoryImage || this.categoryDetail.categoryImage == \"\")) {\r\n this.categoryDetail.categoryImage = \"\";\r\n }\r\n this.handleFiles(newFileName, 1)\r\n }\r\n }\r\n if (numberDone == 1) { \r\n if (this.isEnabled) {\r\n this.categoryDetail.statusIndicator =\"E\";\r\n }\r\n else {\r\n this.categoryDetail.statusIndicator =\"D\";\r\n }\r\n\r\n if (!this.categoryDetail.categoryImage) {\r\n\r\n this.categoryDetail.categoryImage = \"\";\r\n }\r\n\r\n if (this.categoryDetail.parentCategoryName != this.newParentName && this.newParentName != \"\") {\r\n this.categoryDetail.parentCategoryName = this.newParentName;\r\n this.changeParent = false;\r\n }\r\n if (this.categoryDetail.parentCategoryName == \"Categories\") {\r\n this.categoryDetail.parentCategoryName = \"Root\";\r\n }\r\n //Save Category\r\n if (!this.categoryDetail.id || this.categoryDetail.id == 0) {\r\n this.sysproService.addCMCategory(this.categoryDetail).subscribe(x => this.onNewCategoryAdded(x), error => this.onNewCategoryAddedFailed(error));\r\n }\r\n else {\r\n //Edit Category\r\n if (this.categoryDetail.id > 0) { \r\n this.sysproService.updateCMCategory(this.categoryDetail, this.categoryDetail.id).subscribe(x => this.onNewCategoryAdded(x), error => this.onNewCategoryAddedFailed(error));\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n onNewCategoryAddedFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n onNewCategoryAdded(x: CMCategories): void {\r\n //if (x && x.id) {\r\n\r\n // this.expandIndex = x.id;\r\n //}\r\n\r\n this.loadData();\r\n // Open to correct level.\r\n this.categoryModalHide();\r\n // this.stockCodeModallHide();\r\n }\r\n\r\n \r\n\r\n\r\n validateCategorySave() {\r\n let error = \"\";\r\n if (this.compareFolderName != this.categoryDetail.categoryName) {\r\n error = (this.categoryList.filter(x => x.categoryName.toUpperCase() == this.categoryDetail.categoryName.toUpperCase()).length > 0 ? \"This category name has already been added. \" : \"\");\r\n }\r\n //error += ((!this.categoryDetail.categoryImage || this.categoryDetail.categoryImage == \"\" ) && (!this.newCategoryImageData || !this.newCategoryImageData.has('file')) ? \"Remember to add an image for the category\" : \"\")\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n validateFileSave() {\r\n let error = \"\";\r\n\r\n //error = (this.repoDocsList.filter(x => x.documentName.toUpperCase() == this.documentDetail.documentName.toUpperCase()).length > 0 ? \"This file has already been added\" : \"\");\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newCategoryImageData.append('file', file);\r\n }\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n \r\n\r\n\r\n getItems(parentChildObj) {\r\n let itemsArray = [];\r\n parentChildObj.forEach(set => {\r\n itemsArray.push(new TreeviewItem(set))\r\n });\r\n return itemsArray;\r\n }\r\n\r\n\r\n metaList() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Tree\", \"CategoryName\", \"Title\", \"Keywords\", \"MetaDescription\", \"ParentCategoryName\", \"Status\"]\r\n };\r\n\r\n var filename = \"MetaTags\";\r\n var selectRows = [...this.categoryrows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Tree: row.tree, CategoryName: row.categoryName, Title: row.title, Keywords: row.keywords,\r\n MetaDescription: row.metaDescription, ParentCategoryName: row.parentCategoryName, Status: row.statusIndicator\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n    \\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{categoryDetail.categoryName}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"{{categoryDetail.categoryImage}}\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Meta Page Title:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Search phrase(s) or Keyword(s):\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Meta Description:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Parent:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n New Parent:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n     \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Image updated on {{categoryDetail.categoryImageChanged | date: 'dd MMM yyyy HH:mm'}}\\r\\n Modified on {{categoryDetail.modifiedDate | date: 'dd MMM yyyy HH:mm'}}\\r\\n
\\r\\n
\\r\\n Next Gen Id: {{categoryDetail.id}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host /deep/ .treeview-container .row-item {\\n margin-bottom: .3rem;\\n width: 400px; }\\n\\n:host /deep/ .treeview-container {\\n height: calc(100vh - 100px);\\n max-height: 1000px !important; }\\n\\n:host /deep/ .treeview-header {\\n visibility: hidden;\\n margin: -26px; }\\n\\n.tree-rows {\\n margin-left: 20px;\\n background-color: white;\\n height: 30px; }\\n\\n.tree-rows .categories {\\n border-bottom: 1px solid;\\n border-bottom-color: whitesmoke; }\\n\\n.tree-rows .items {\\n height: 20px; }\\n\\n.category-header {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.item-row {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.content-container {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy1lZGl0Y2F0ZWdvcmllcy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFvQjtFQUNwQixZQUFZLEVBQUE7O0FBR2Q7RUFDRSwyQkFBMkI7RUFDM0IsNkJBQTZCLEVBQUE7O0FBSS9CO0VBRUksa0JBQWtCO0VBQ3BCLGFBQWEsRUFBQTs7QUFHZjtFQUNFLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIsWUFBWSxFQUFBOztBQUhkO0lBTUksd0JBQXdCO0lBQ3hCLCtCQUErQixFQUFBOztBQVBuQztJQVdFLFlBQVksRUFBQTs7QUFJZDtFQUNFLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBR3RCLGtEQUErQztFQUMvQyxrQkFBa0IsRUFBQTs7QUFJcEI7RUFDRSxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUd0QixrREFBK0M7RUFDL0Msa0JBQWtCLEVBQUE7O0FBS3BCO0VBQ0UsMkJBQTJCO0VBQzNCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3Byb2R1Y3RzL3Byb2R1Y3RzLWVkaXRjYXRlZ29yaWVzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgL2RlZXAvIC50cmVldmlldy1jb250YWluZXIgLnJvdy1pdGVtIHtcclxuICBtYXJnaW4tYm90dG9tOiAuM3JlbTtcclxuICB3aWR0aDogNDAwcHg7XHJcbn1cclxuXHJcbjpob3N0IC9kZWVwLyAudHJlZXZpZXctY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XHJcbiAgbWF4LWhlaWdodDogMTAwMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG46aG9zdCAvZGVlcC8gLnRyZWV2aWV3LWhlYWRlciB7XHJcblxyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIG1hcmdpbjogLTI2cHg7XHJcbn1cclxuXHJcbi50cmVlLXJvd3Mge1xyXG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIGhlaWdodDogMzBweDtcclxuXHJcbiAgLmNhdGVnb3JpZXMge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogd2hpdGVzbW9rZTtcclxuICB9XHJcblxyXG4gIC5pdGVtcyB7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmNhdGVnb3J5LWhlYWRlciB7XHJcbiAgcGFkZGluZzogLjJyZW0gMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG5cclxuXHJcbi5pdGVtLXJvdyB7XHJcbiAgcGFkZGluZzogLjJyZW0gMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG5cclxuXHJcblxyXG4uY29udGVudC1jb250YWluZXIge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcbiJdfQ== */\"","import { Component, ElementRef, TemplateRef, ViewChild } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { TreeviewComponent, TreeviewConfig, TreeviewItem } from 'ngx-treeview';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { CMCategoryForStockCodeList } from '../../models/cms-categoriesforstockcodes-list.model';\r\nimport { CMCategories } from '../../models/cms-category.model';\r\nimport { CMStockCode } from '../../models/cms-stockcode.model';\r\nimport { CoreAudit } from '../../models/core-audit.model';\r\nimport { DocumentCategory } from '../../models/document-category.model';\r\nimport { Inventory } from '../../models/inventory.model';\r\nimport { SimpleTree } from '../../models/simple-tree.model';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'Products-Edit-Categories',\r\n templateUrl: './products-editcategories.component.html',\r\n styleUrls: ['./products-editcategories.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ProductsEditCategoriesComponent {\r\n\r\n auditObj = new CoreAudit();\r\n\r\n items: TreeviewItem[];\r\n rows: string[];\r\n item: any;\r\n data: CMCategories;\r\n categoryData: CMCategories[];\r\n\r\n breadcrumbs: SimpleTree[] = [];\r\n\r\n seletedItem: TreeviewItem;\r\n\r\n expandIndex: Number = -1;\r\n\r\n config: TreeviewConfig = {\r\n hasAllCheckBox: false,\r\n hasFilter: false,\r\n hasCollapseExpand: true,\r\n decoupleChildFromParent: false,\r\n maxHeight: 1000,\r\n hasDivider: false\r\n };\r\n\r\n @ViewChild(TreeviewComponent) treeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('itemTemplate')\r\n itemTemplate: TemplateRef;\r\n\r\n loadingIndicator: boolean;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n @ViewChild('categoryListSelector')\r\n private categoryListSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n categorySelected: string = \"\";\r\n categoryList: CMCategories[] = [];\r\n categoryListChangeParent: CMCategories[] = [];\r\n changeParent: boolean = false;\r\n\r\n\r\n @ViewChild('fileListSelector')\r\n private fileListSelector;\r\n fileCategorySelected: string = \"\";\r\n fileListChangeParent: CMCategories[] = [];\r\n changeFileParent: boolean = false;\r\n\r\n @ViewChild('categoryModal')\r\n categoryModal: ModalDirective;\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n @ViewChild('myFileInput')\r\n myFileInput: ElementRef;\r\n\r\n categoryDetail: CMCategories = new CMCategories();\r\n rowsCache: TreeviewItem[];\r\n headerTemplateContext: { config: TreeviewConfig; item: any};\r\n modalHeader: string;\r\n isSaving: boolean;\r\n compareFolderName: any;\r\n documentDetail: CMStockCode = new CMStockCode();\r\n\r\n //newformData = new FormData();\r\n compareFileName: string;\r\n repoDocsList: CMStockCode[] = [];\r\n stockCodeList: CMStockCode[] = [];\r\n\r\n categoryStockCodeList: CMCategoryForStockCodeList[] = [];\r\n changeImage: boolean;\r\n newCategoryImageData = new FormData();\r\n\r\n @ViewChild(TreeviewComponent)\r\n categoryTreeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('treeModal')\r\n treeModal: ModalDirective;\r\n\r\n @ViewChild('treeItemTemplate')\r\n treeItemTemplate: TemplateRef;\r\n\r\n treeItems: TreeviewItem[] = [];\r\n treeItem: any;\r\n newParentName: string = \"\";\r\n isEnabled: boolean;\r\n stockCodedetail: any;\r\n hasDataSheet: boolean;\r\n hasSpecials: boolean;\r\n hasImpaCodes: boolean;\r\n hasAddDataSheet: boolean;\r\n alternatesList: any[];\r\n updatedStockCodeDetail: any;\r\n changeStockCodeImage: boolean;\r\n newStockCodeImageData: FormData;\r\n newSpecialsImageData: any;\r\n newDatasheetImageData: any;\r\n newAddDatasheetImageData: any;\r\n stockCode: any;\r\n newStockCode: boolean;\r\n selectedCategory: string;\r\n newParentId: number;\r\n\r\n timestamp: string;\r\n\r\n\r\n constructor(private alertService: AlertService, private router: Router, private route: ActivatedRoute, private sysproService: SysproService,\r\n private configurations: ConfigurationService,\r\n private accountService: AccountService, private authService: AuthService, private http: HttpClient) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngOnDestroy() { }\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.newParentName = \"\";\r\n\r\n this.sysproService.getAllCMCatergoriesTree(this.expandIndex).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.getAllCMCategories().subscribe(x => this.onCategoriesLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.getCategoriesForStockCodesList().subscribe(x => this.onListLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.auditObj.referenceType = \"INVENTORY\";\r\n this.auditObj.referenceNumber = \"\";\r\n this.auditObj.branch = this.branchCode;\r\n this.auditObj.applicationUser = this.accountService.currentUser.email;\r\n this.auditObj.actionedBy = this.accountService.currentUser.email;\r\n this.auditObj.groupKey = this.accountService.currentUser.id;\r\n\r\n this.timestamp = Date.now.toString();\r\n }\r\n\r\n refresh() {\r\n this.loadData();\r\n }\r\n\r\n\r\n openCategoryLink(category: string) {\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"https://www.maxarcus.co.za/Search.aspx?s=\" + encodeURIComponent(category), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"https://www.fowkes.co.za/products?keyword=\" + encodeURIComponent(category), \"_blank\");\r\n }\r\n }\r\n \r\n onDataLoadSuccessful(treeview: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n \r\n let treeviewItems = new TreeviewItem(JSON.parse(treeview[0]));\r\n\r\n this.items = this.getItems([treeviewItems]);\r\n this.treeItems = this.getItems([treeviewItems]);\r\n }\r\n\r\n onCategoriesLoadSuccessful(results: CMCategories[]) {\r\n\r\n this.categoryList = results;\r\n this.categorySelected = \"\";\r\n }\r\n\r\n\r\n onListLoadSuccessful(x: CMCategoryForStockCodeList[]): void {\r\n this.categoryStockCodeList = x;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n collapseAll() {\r\n this.expandIndex = -1;\r\n this.loadData();\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n //Category Tree Management\r\n treeBeforeExpand(row: TreeviewItem) {\r\n if (row) {\r\n if (row.collapsed) { }\r\n else {\r\n if (row.value.isLasLevel) {\r\n if (null == row.children) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getStockCodesForCategory(row.value.category.Id).subscribe(x => this.onStockCodesLoadSuccesfull(x, row), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n enableEditMethod(row: TreeviewItem) {\r\n this.enableEdit = true;\r\n this.modalHeader = \"Edit Category\";\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.isEnabled = (row.value.category.StatusIndicator == \"E\") ? true : false;\r\n\r\n this.categoryDetail = new CMCategories();\r\n\r\n this.categoryDetail.id = row.value.category.Id;\r\n this.categoryDetail.parentCategoryName = row.value.category.ParentCategoryName;\r\n this.categoryDetail.parentCategoryId = row.value.category.ParentCategoryId;\r\n this.categoryDetail.categoryName = row.value.category.CategoryName;\r\n this.categoryDetail.categoryImage = row.value.category.CategoryImage;\r\n this.categoryDetail.title = row.value.category.Title;\r\n this.categoryDetail.metaDescription = row.value.category.MetaDescription;\r\n this.categoryDetail.keywords = row.value.category.Keywords;\r\n this.categoryDetail.statusIndicator = row.value.category.StatusIndicator;\r\n this.categoryDetail.filePath = row.value.category.FilePath;\r\n this.categoryDetail.modifiedDate = row.value.category.ModifiedDate;\r\n this.categoryDetail.createDate = row.value.category.CreateDate;\r\n this.categoryDetail.categoryImageChanged = row.value.category.CategoryImageChanged;\r\n\r\n this.compareFolderName = this.categoryDetail.categoryName;\r\n this.categorySelected = this.categoryDetail.parentCategoryName;\r\n\r\n this.changeImage = false;\r\n this.newCategoryImageData = new FormData();\r\n\r\n if (!this.categoryModal) {\r\n setTimeout(() => {\r\n if (this.categoryModal) {\r\n this.categoryModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.categoryModal.show();\r\n }\r\n }\r\n\r\n addNewCategory(row: TreeviewItem) {\r\n this.modalHeader = \"Add new Category\";\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.isEnabled = true;\r\n\r\n this.categoryDetail = new CMCategories();\r\n this.categoryDetail.statusIndicator = \"E\";\r\n this.categoryDetail.categoryName = \"\";\r\n this.categoryDetail.parentCategoryName = row.text;\r\n this.categoryDetail.parentCategoryId = row.value.category.Id;\r\n this.categoryDetail.createdBy = this.accountService.currentUser.email;\r\n this.categoryDetail.title = \"\";\r\n this.categoryDetail.metaDescription = \"\";\r\n this.categoryDetail.keywords = \"\";\r\n this.categoryDetail.filePath =\"\";\r\n\r\n this.categorySelected = row.text;\r\n this.compareFolderName = \"\";\r\n\r\n\r\n this.changeImage = false;\r\n this.newCategoryImageData = new FormData();\r\n\r\n if (!this.categoryModal) {\r\n setTimeout(() => {\r\n if (this.categoryModal) {\r\n this.categoryModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.categoryModal.show();\r\n }\r\n }\r\n\r\n\r\n categoryModalHide() {\r\n this.categoryDetail = new CMCategories();\r\n this.changeParent = false;\r\n this.categorySelected = \"\";\r\n this.categoryModal.hide();\r\n }\r\n\r\n treemodalHide() {\r\n \r\n this.changeParent = false;\r\n this.newParentName = \"\";\r\n this.newParentId = 0;\r\n this.treeModal.hide();\r\n }\r\n\r\n saveCategory() {\r\n if (this.categoryDetail && this.categoryDetail.categoryName != \"\") {\r\n\r\n if (this.validateCategorySave()) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n var newFileName = this.categoryDetail.categoryName.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\");\r\n\r\n this.handleFiles(newFileName, 0);\r\n }\r\n\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a category name`, MessageSeverity.warn);\r\n }\r\n }\r\n\r\n deleteCategory(row: TreeviewItem) {\r\n console.log(row);\r\n if (row.value.isLasLevel) {\r\n if (null == row.children) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getStockCodesForCategory(row.value.category.Id).subscribe(x => this.onStockCodesLoadSuccesfull(x, row, true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n\r\n onCategoryDeleted(x: CMCategories): void {\r\n this.loadData();\r\n }\r\n\r\n\r\n toggleImageUpload(type: string) {\r\n switch (type) {\r\n case \"categoryImage\": {\r\n this.changeImage = !this.changeImage;\r\n if (!this.changeImage) {\r\n this.newCategoryImageData = new FormData();\r\n }\r\n break;\r\n }\r\n case \"stockCodeImage\": {\r\n this.changeStockCodeImage = !this.changeStockCodeImage;\r\n if (!this.changeStockCodeImage) {\r\n this.newStockCodeImageData = new FormData();\r\n }\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n //Change Parent Category Tree Management\r\n changeCategoryParent() {\r\n this.changeParent = !this.changeParent;\r\n\r\n if (this.changeParent) {\r\n\r\n if (!this.treeModal) {\r\n setTimeout(() => {\r\n if (this.treeModal) {\r\n this.treeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.treeModal.show();\r\n }\r\n }\r\n }\r\n\r\n\r\n selectTreeItem(row: TreeviewItem) {\r\n \r\n \r\n if (this.categoryDetail.parentCategoryName != row.text) {\r\n\r\n if (this.categoryDetail.categoryName == row.text) {\r\n\r\n this.alertService.showMessage('Error', \"This category is the same as the one selected\", MessageSeverity.error);\r\n }\r\n else {\r\n\r\n if (row.value.isLasLevel) {\r\n //Check if row has stock codes\r\n this.sysproService.getStockCodesForCategory(row.value.category.Id).subscribe(x => this.onStockCodesCheckedSuccesfull(x, row, true), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n this.newParentName = row.text;\r\n this.newParentId = row.value.category.Id;\r\n this.treeModal.hide();\r\n }\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Error', \"This parent category is the same as the one selected\", MessageSeverity.error);\r\n }\r\n }\r\n\r\n\r\n //Stock Code Management\r\n onStockCodesCheckedSuccesfull(x: CMStockCode[], row: TreeviewItem, remove?: boolean): void {\r\n \r\n this.stockCodeList = x;\r\n let valueString = JSON.stringify(row.value);\r\n valueString = valueString.substr(0, valueString.length - 1);\r\n valueString = valueString + ', \"numberOfStockCodes\" : ' + x.length + '}';\r\n\r\n if (x.length > 0) {\r\n this.alertService.showMessage('Error', \"This category has stock codes and can not be selected\", MessageSeverity.error);\r\n }\r\n else {\r\n\r\n this.newParentName = row.text;\r\n this.newParentId = row.value.category.Id;\r\n this.treeModal.hide();\r\n }\r\n \r\n\r\n }\r\n\r\n \r\n handleFiles(newFileName: string, numberDone: number) {\r\n\r\n //Update Files\r\n if (numberDone == 0) {\r\n if (this.newCategoryImageData.has('file')) {\r\n this.auditObj.actionType = \"CATEGORYIMAGE\";\r\n this.auditObj.actionInput = this.categoryDetail.categoryImage;\r\n\r\n this.sysproService.postFileData(this.newCategoryImageData, \"CATEGORY\", newFileName).subscribe(x => {\r\n\r\n this.categoryDetail.categoryImage = x.fileName;\r\n this.categoryDetail.categoryImageChanged = new Date();\r\n this.auditObj.actionOutput = x.fileName;\r\n\r\n this.alertService.showMessage('Success', `Added Category Image`, MessageSeverity.success);\r\n\r\n //Call website webhook to initiate image update \r\n this.http.get('https://www.fowkes.co.za/api/next-gen/update-category-image/' + this.categoryDetail.id).subscribe(x => { console.log(x); }, error => { console.log(error); });\r\n // (this.alertService.showMessage('Success', `Website Image Update Sent`, MessageSeverity.success)), error => this.onPostDataLoadFailed(error));\r\n\r\n this.handleFiles(newFileName, 1);\r\n }, error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n if ((!this.categoryDetail.categoryImage || this.categoryDetail.categoryImage == \"\")) {\r\n this.categoryDetail.categoryImage = \"\";\r\n }\r\n this.handleFiles(newFileName, 1)\r\n }\r\n }\r\n if (numberDone == 1) { \r\n if (this.isEnabled) {\r\n this.categoryDetail.statusIndicator = \"E\";\r\n }\r\n else {\r\n this.categoryDetail.statusIndicator = \"D\";\r\n }\r\n\r\n if (!this.categoryDetail.categoryImage) {\r\n\r\n this.categoryDetail.categoryImage = \"\";\r\n }\r\n\r\n if (this.categoryDetail.parentCategoryName != this.newParentName && this.newParentName != \"\") {\r\n this.auditObj.actionType = \"CATEGORYPARENTCHANGE\";\r\n this.auditObj.actionInput = this.categoryDetail.parentCategoryName;\r\n this.auditObj.actionOutput = this.newParentName;\r\n\r\n this.categoryDetail.parentCategoryName = this.newParentName;\r\n this.newParentId = this.newParentId;\r\n this.changeParent = false;\r\n }\r\n if (this.categoryDetail.parentCategoryName == \"Categories\") {\r\n this.categoryDetail.parentCategoryName = \"Root\";\r\n\r\n }\r\n //Save Category\r\n if (!this.categoryDetail.id || this.categoryDetail.id == 0) {\r\n this.sysproService.addCMCategory(this.categoryDetail).subscribe(x => this.onNewCategoryAdded(x), error => this.onNewFolderAddedFailed(error));\r\n }\r\n else {\r\n //Edit Category\r\n if (this.categoryDetail.id > 0) { \r\n this.sysproService.updateCMCategory(this.categoryDetail, this.categoryDetail.id).subscribe(x => this.onNewCategoryAdded(x), error => this.onNewCategoryAddedFailed(error));\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n onNewCategoryAddedFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n onNewCategoryAdded(x: CMCategories): void {\r\n if (x && x.id) {\r\n\r\n // this.postAudit();\r\n this.expandIndex = x.id;\r\n }\r\n\r\n this.loadData();\r\n // Open to correct level.\r\n this.categoryModalHide();\r\n // this.stockCodeModallHide();\r\n }\r\n\r\n \r\n\r\n\r\n validateCategorySave() {\r\n let error = \"\";\r\n if (this.compareFolderName != this.categoryDetail.categoryName) {\r\n error = (this.categoryList.filter(x => x.categoryName.toUpperCase() == this.categoryDetail.categoryName.toUpperCase()).length > 0 ? \"This category name has already been added. \" : \"\");\r\n }\r\n\r\n if (this.categoryDetail.statusIndicator == 'E') {\r\n error += ((!this.categoryDetail.categoryImage || this.categoryDetail.categoryImage == \"\") && (!this.newCategoryImageData || !this.newCategoryImageData.has('file')) ? \"Remember to add an image for the enabled category\" : \"\")\r\n }\r\n \r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n validateFileSave() {\r\n let error = \"\";\r\n\r\n //error = (this.repoDocsList.filter(x => x.documentName.toUpperCase() == this.documentDetail.documentName.toUpperCase()).length > 0 ? \"This file has already been added\" : \"\");\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n\r\n\r\n //Stock Code Management\r\n onStockCodesLoadSuccesfull(x: CMStockCode[], row: TreeviewItem, remove?: boolean): void {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.stockCodeList = x;\r\n let valueString = JSON.stringify(row.value);\r\n valueString = valueString.substr(0, valueString.length - 1);\r\n valueString = valueString + ', \"numberOfStockCodes\" : ' + x.length + '}';\r\n\r\n if (x.length > 0) {\r\n\r\n this.stockCodeList.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n\r\n let stockRow = {\r\n \"text\": \"(\" + stockCode.stockCode + \") - \" + stockCode.description,\r\n \"value\": {\r\n \"index\": stockCode.id,\r\n \"stockCode\": stockCode\r\n },\r\n \"collapsed\": true,\r\n \"checked\": false,\r\n \"isLink\": true\r\n };\r\n\r\n if (null == row.children) { //if there are no existing child nodes...\r\n\r\n row.children = [new TreeviewItem(stockRow)]; //create the collection of child nodes and set the supplied child to be the sole member\r\n\r\n } else { //else, other children exist, so the collection already exists\r\n\r\n row.children.push(new TreeviewItem(stockRow));//so push the child onto the collection\r\n }\r\n\r\n });\r\n\r\n row.value = JSON.parse(valueString);\r\n\r\n if (remove) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', \"This category has stock codes and can not be deleted\", MessageSeverity.error);\r\n }\r\n }\r\n else {\r\n if (remove) {\r\n this.sysproService.deleteCMCategory(row.value.category.Id).subscribe(x => this.onCategoryDeleted(x), error => this.onNewCategoryAddedFailed(error));\r\n }\r\n }\r\n\r\n }\r\n\r\n selectItem(item: TreeviewItem) {\r\n if (item) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = item.value.stockCode.stockCode;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n\r\n this.stockCodedetail.dataSheetImage = item.value.stockCode.dataSheetImage;\r\n this.stockCodedetail.specialsImage = item.value.stockCode.specialsImage;\r\n this.stockCodedetail.onSpecial = item.value.stockCode.onSpecial;\r\n\r\n if (sessionStorage.getItem(localStorageActions.StockCode) != this.stockCode) {\r\n sessionStorage.setItem(localStorageActions.StockCode, this.stockCode);\r\n }\r\n\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n onAltStockCodesLoadSuccessful(altStockCodes: any[]) {\r\n if (altStockCodes[0]) {\r\n this.alternatesList = [...altStockCodes[0]];\r\n }\r\n }\r\n\r\n\r\n treeItemBeforeExpand(row: TreeviewItem) {\r\n console.log(row);\r\n if (row) {\r\n if (row.collapsed) {\r\n\r\n }\r\n else {\r\n }\r\n }\r\n }\r\n\r\n addNewStockCode(row: TreeviewItem) {\r\n\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.stockCodedetail = new Inventory();\r\n this.hasDataSheet = false;\r\n this.hasSpecials = false;\r\n this.hasImpaCodes = false;\r\n this.isEnabled = false;\r\n\r\n sessionStorage.removeItem(localStorageActions.StockCode);\r\n\r\n this.newStockCode = true;\r\n this.selectedCategory = row.text;\r\n\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n\r\n\r\n stockCodeModallHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n if (this.newStockCode) {\r\n this.loadData();\r\n this.newStockCode = false;\r\n }\r\n }\r\n\r\n removeStockCode(row: TreeviewItem) {\r\n this.enableEditIndex = row.value.index;\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.deleteCMStockCode(row.value.stockCode.id).subscribe(x => this.stockCodeDeleteSuccess(row.value.stockCode.stockCode), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n stockCodeDeleteSuccess(deletedCode: string): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', deletedCode + ` Has been deleted successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newCategoryImageData.append('file', file);\r\n }\r\n }\r\n\r\n\r\n removeFile(row: TreeviewItem) {\r\n\r\n this.sysproService.getSimpleDocumentTree(row.value.document.CategoryName).subscribe(result => this.breadcrumbs = [...result]);\r\n this.expandIndex = this.breadcrumbs[this.breadcrumbs.length - 1].categoryId;\r\n\r\n this.enableEditIndex = row.value.index;\r\n\r\n if (row.value.document) {\r\n this.sysproService.deleteRepoDoc(row.value.document.Id).subscribe(x => this.onNewFolderAdded(new DocumentCategory()), error => this.onNewFolderAddedFailed(error));\r\n }\r\n\r\n }\r\n\r\n\r\n newFilePostedSuccess(x: any) {\r\n //this.documentDetail.createdBy = this.accountService.currentUser.email;\r\n\r\n //this.sysproService.addNewDoc(this.documentDetail).subscribe(x => this.onNewFolderAdded(new DocumentCategory()), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n \r\n\r\n onNewFolderAdded(x: DocumentCategory): void {\r\n\r\n if (x && x.id) {\r\n\r\n this.expandIndex = x.id;\r\n }\r\n\r\n this.loadData();\r\n // Open to correct level.\r\n this.categoryModalHide();\r\n this.stockCodeModallHide();\r\n }\r\n\r\n\r\n onNewFolderAddedFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n }\r\n\r\n removeFolder(row: TreeviewItem) {\r\n\r\n this.sysproService.getSimpleDocumentTree(row.text).subscribe(result => this.breadcrumbs = [...result]);\r\n if (row.value.category) {\r\n this.sysproService.deleteDocumentCategory(row.value.category.Id).subscribe(x => this.onNewFolderAdded(x), error => this.onNewFolderAddedFailed(error));\r\n }\r\n\r\n }\r\n\r\n\r\n getItems(parentChildObj) {\r\n let itemsArray = [];\r\n parentChildObj.forEach(set => {\r\n itemsArray.push(new TreeviewItem(set))\r\n });\r\n return itemsArray;\r\n }\r\n\r\n\r\n get canManageDocuments() {\r\n return this.accountService.userHasPermission(Permission.manageDocumentsPermission);\r\n }\r\n\r\n\r\n\r\n detailList() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"LongDescription\", \"ExtraProdInfo\", \"TopSeller\", \"StockCodeStatus\", \"Brand\", \"CategoryId\", \"CategoryName\", \"CategoryStatus\", \"ParentCategoryId\", \"ParentCategoryName\",\r\n \"Col1\", \"Col2\", \"Col3\", \"Col4\", \"Col5\", \"Col6\"]\r\n };\r\n\r\n var filename = \"Category Export\";\r\n var selectRows = [...this.categoryStockCodeList];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n var a = row.categoryTree.replace(/\\,/g, ' ').split(\" > \");\r\n\r\n var cols = 5;\r\n var res = [...Array(cols).keys()].map(c => a.filter((_, i) => i % cols === c));\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode.replace(/\\,/g, ' ').replace(/\\;/g, ' '), Description: row.description.replace(/\\,/g, ' ').replace(/\\;/g, ' '),\r\n LongDescription: row.longDescription.replace(/\\,/g, ' ').replace(/\\;/g, ' '), ExtraProdInfo: row.extraProductInform, TopSeller: row.topSellerText, StockCodeStatus: row.status,\r\n Brand: row.brand,\r\n CategoryId: row.categoryId,\r\n CategoryName: row.categoryName, CategoryStatus: row.categoryStatus,\r\n ParentCategoryId: row.parentCategoryId, ParentCategoryName: row.parentCategoryName, \r\n Col1: res\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n //private postAudit() {\r\n // this.sysproService.postCoreAudit(this.auditObj).subscribe(x => console.log(x));\r\n //}\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host /deep/ .treeview-container .row-item {\\n margin-bottom: .3rem;\\n width: 400px; }\\n\\n:host /deep/ .treeview-container {\\n height: calc(100vh - 100px);\\n max-height: 1000px !important; }\\n\\n:host /deep/ .treeview-header {\\n visibility: hidden;\\n margin: -26px; }\\n\\n.tree-rows {\\n margin-left: 20px;\\n background-color: white;\\n height: 30px; }\\n\\n.tree-rows .categories {\\n border-bottom: 1px solid;\\n border-bottom-color: whitesmoke; }\\n\\n.tree-rows .items {\\n height: 20px; }\\n\\n.category-header {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.item-row {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.content-container {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy1tYW5hZ2UtZGF0YXNoZWV0cy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFvQjtFQUNwQixZQUFZLEVBQUE7O0FBR2Q7RUFDRSwyQkFBMkI7RUFDM0IsNkJBQTZCLEVBQUE7O0FBSS9CO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWEsRUFBQTs7QUFHZjtFQUNFLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIsWUFBWSxFQUFBOztBQUhkO0lBTUksd0JBQXdCO0lBQ3hCLCtCQUErQixFQUFBOztBQVBuQztJQVdJLFlBQVksRUFBQTs7QUFJaEI7RUFDRSxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUd0QixrREFBK0M7RUFDL0Msa0JBQWtCLEVBQUE7O0FBSXBCO0VBQ0UsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFHdEIsa0RBQStDO0VBQy9DLGtCQUFrQixFQUFBOztBQUtwQjtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9wcm9kdWN0cy1tYW5hZ2UtZGF0YXNoZWV0cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IC9kZWVwLyAudHJlZXZpZXctY29udGFpbmVyIC5yb3ctaXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogLjNyZW07XHJcbiAgd2lkdGg6IDQwMHB4O1xyXG59XHJcblxyXG46aG9zdCAvZGVlcC8gLnRyZWV2aWV3LWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTAwcHgpO1xyXG4gIG1heC1oZWlnaHQ6IDEwMDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuOmhvc3QgL2RlZXAvIC50cmVldmlldy1oZWFkZXIge1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBtYXJnaW46IC0yNnB4O1xyXG59XHJcblxyXG4udHJlZS1yb3dzIHtcclxuICBtYXJnaW4tbGVmdDogMjBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICBoZWlnaHQ6IDMwcHg7XHJcblxyXG4gIC5jYXRlZ29yaWVzIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlc21va2U7XHJcbiAgfVxyXG5cclxuICAuaXRlbXMge1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmNhdGVnb3J5LWhlYWRlciB7XHJcbiAgcGFkZGluZzogLjJyZW0gMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG5cclxuXHJcbi5pdGVtLXJvdyB7XHJcbiAgcGFkZGluZzogLjJyZW0gMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG5cclxuXHJcblxyXG4uY29udGVudC1jb250YWluZXIge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcbiJdfQ== */\"","import { Component, TemplateRef, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { Brand } from '../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CMStockCode } from '../../models/cms-stockcode.model';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CMCategories } from '../../models/cms-category.model';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { Inventory } from '../../models/inventory.model';\r\nimport { localStorageActions } from '../../models/enums';\r\n\r\n@Component({\r\n selector: 'manage-datasheets',\r\n templateUrl: './products-manage-datasheets.component.html',\r\n styleUrls: ['./products-manage-datasheets.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ManageDataSheetsComponent {\r\n\r\n @ViewChild('brandModal')\r\n brandModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n allcategories: CMCategories[] = [];\r\n categoryrows: CMCategories[] = [];\r\n categoryrowscache: CMCategories[] = [];\r\n //categoryurlString: string = \"https://www.fowkes.co.za/FowkesOnline/FowkesDocuments/ContentManagementDocuments/CategoryImages/\";\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n stockCodedetail: any;\r\n\r\n allstockCodes: CMStockCode[] = [];\r\n stockCoderows: CMStockCode[] = [];\r\n stockCoderowscache: CMStockCode[] = [];\r\n //stockCodeurlString: string = \"https://www.fowkes.co.za/FowkesOnline/FowkesDocuments/ContentManagementDocuments/StockCodeImages/\";\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n rowsCache: Brand[];\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n brandDetail: Brand = new Brand();\r\n missingImageCount: number;\r\n columns: any[] = [];\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n chkDt1: boolean;\r\n chkDt2: boolean;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n //this.chkDt1 = true;\r\n //this.chkDt2 = true;\r\n this.SetDataGrid();\r\n this.loadData();\r\n\r\n }\r\n\r\n private SetDataGrid() {\r\n \r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: 120, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 370, cellClass: \"left\" },\r\n { prop: 'categoryTree', name: 'Tree', width: 370, cellClass: \"left\" }\r\n ];\r\n\r\n this.columns.push({ name: 'CMS', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n //}\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.SetDataGrid();\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n //Scrape stock codes and Load Categories\r\n this.sysproService.getAllCMStockCodesMissingDatasheets().subscribe(x => this.onDataLoadSuccessful([x]), error =>\r\n this.noMissingImage());\r\n\r\n }\r\n\r\n noMissingImage() {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `No missing datasheets found!`, MessageSeverity.success);\r\n }\r\n\r\n onDataLoadSuccessful(stockCodes: any[]) {\r\n \r\n\r\n if (stockCodes[0]) {\r\n\r\n this.stockCoderowscache = [...stockCodes[0]];\r\n\r\n\r\n this.missingImageCount = this.stockCoderowscache.length;\r\n this.alertService.showMessage('Processing', this.missingImageCount + ` missing datasheets found! preparing data`, MessageSeverity.info);\r\n\r\n this.stockCoderows = this.stockCoderowscache.slice(0, 100);\r\n\r\n this.sysproService.getAllCMCategories().subscribe(x => this.onCategoriesLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n }\r\n onCategoriesLoadSuccessful(x: any) {\r\n this.allcategories = x;\r\n\r\n let updateRows = this.stockCoderowscache;\r\n updateRows.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n var parentTree = \"\";\r\n stockCode.categoryTree = this.buildParentTree(stockCode.categoryName, parentTree);\r\n \r\n //this.sysproService.getStockCodeAdditionalDetail(stockCode.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).subscribe(\r\n // x => {\r\n // var addDetails = x[0];\r\n // if (addDetails) {\r\n // stockCode.qtyCT = addDetails.qtyCT;\r\n // stockCode.qtyCombined = addDetails.qtyCombined;\r\n // stockCode.binLocCT = addDetails.binLocCT;\r\n // stockCode.createDate = addDetails.createDate;\r\n // }\r\n\r\n // }, error => this.onDataLoadFailed(error));\r\n });\r\n\r\n // updateRows.sort((a, b) => (a.categoryTree > b.categoryTree) ? 1 : -1)\r\n this.stockCoderows = [...updateRows];\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n buildParentTree(parentCategoryName: string, treePath: string): string {\r\n var path = \"\";\r\n if (parentCategoryName && parentCategoryName != \"Root\") {\r\n let parents = this.allcategories.filter(x => x.categoryName == parentCategoryName);\r\n if (parents && parents.length >= 1) {\r\n let parent = parents[0];\r\n if (parent && parent.parentCategoryName != \"\") {\r\n path = parentCategoryName + \" > \" + treePath;\r\n treePath = this.buildParentTree(parent.parentCategoryName, path);\r\n }\r\n else {\r\n return treePath;\r\n }\r\n }\r\n else {\r\n return treePath;\r\n }\r\n }\r\n return treePath;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n \r\n if (value.trim() != \"\") { \r\n this.stockCoderows = this.stockCoderowscache.filter(r => Utilities.searchArray(value, false, r.stockCode, r.description, r.brandName, r.categoryTree));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.stockCoderows = [...this.stockCoderowscache];\r\n }\r\n //if (this.chkDt1) {\r\n // this.stockCoderows = this.stockCoderows.filter(m => m.dataSheetImage == \"\");\r\n //}\r\n \r\n //if (this.chkDt2) {\r\n // this.stockCoderows = this.stockCoderows.filter(m => m.addSheetImage == \"\");\r\n //}\r\n \r\n }\r\n\r\n \r\n\r\n filterDatasheet1() {\r\n this.chkDt1 = !this.chkDt1;\r\n this.onSearchChanged(this.searchTerm );\r\n }\r\n\r\n filterDatasheet2() {\r\n this.chkDt2 = !this.chkDt2;\r\n this.onSearchChanged(this.searchTerm );\r\n }\r\n\r\n deleteStockCodes(row: CMStockCode) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.deleteCMStockCode(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n\r\n enableStockCodes(row: CMStockCode) {\r\n row.status = \"E\";\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateCMStockCode(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n disableStockCodes(row: CMStockCode) {\r\n row.status = \"D\";\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateCMStockCode(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n saveSegment(row: CMStockCode) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n \r\n\r\n this.sysproService.updateCMStockCode(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n\r\n\r\n selectItem(row: CMStockCode) {\r\n if (row) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n var stockCode = this.stockCodedetail.stockCode;\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n\r\n if (sessionStorage.getItem(localStorageActions.StockCode) != stockCode) {\r\n sessionStorage.setItem(localStorageActions.StockCode, stockCode);\r\n }\r\n\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n stockCodeModallHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n \r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n //this.loadData();\r\n }\r\n\r\n\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newformData.append('file', file); \r\n }\r\n }\r\n\r\n\r\n onSaveSuccesful(): void {\r\n\r\n //this.brandModalHide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n onFileChange(event, row: CMStockCode) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n this.sysproService.postFileData(formData, \"DATASHEET\", row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n filePostedSuccess(result: any, row: CMStockCode) {\r\n\r\n console.log(result);\r\n row.dataSheetImage = result.fileName;\r\n row.dataSheetImageChanged = new Date();\r\n //Update Syspro with image path\r\n //this.sysproService.updateStockCodeImageSyspro(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\"), row.stockCodeImage).subscribe(x =>\r\n // (this.alertService.showMessage('Success', `Syspro Image Updated`, MessageSeverity.success)), error => this.onPostDataLoadFailed(error));\r\n\r\n this.saveSegment(row);\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n exportStockCodes() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"Brand\", \"CategoryPath\", \"Datasheet1\", \"DataSheet2\"]\r\n };\r\n\r\n var filename = \"Missing Datasheets\";\r\n var selectRows = [...this.stockCoderowscache];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode, Description: row.description, Brand: row.brandName, CategoryPath: row.categoryTree, Datasheet1: row.dataSheetImage, DataSheet2: row.addSheetImage\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Stock CodeDescriptionQty CTBin CTQty AllAdd Image
{{row.stockCode}} {{row.description}} {{row.qtyCT}} {{row.binLocCT}} {{row.qtyCombined}}\\r\\n \\r\\n \\\"{{row.stockCodeImage}}\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\"","module.exports = \":host /deep/ .treeview-container .row-item {\\n margin-bottom: .3rem;\\n width: 400px; }\\n\\n:host /deep/ .treeview-container {\\n height: calc(100vh - 100px);\\n max-height: 1000px !important; }\\n\\n:host /deep/ .treeview-header {\\n visibility: hidden;\\n margin: -26px; }\\n\\n.tree-rows {\\n margin-left: 20px;\\n background-color: white;\\n height: 30px; }\\n\\n.tree-rows .categories {\\n border-bottom: 1px solid;\\n border-bottom-color: whitesmoke; }\\n\\n.tree-rows .items {\\n height: 20px; }\\n\\n.category-header {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.item-row {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.content-container {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy1tYW5hZ2UtaW1hZ2VzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usb0JBQW9CO0VBQ3BCLFlBQVksRUFBQTs7QUFHZDtFQUNFLDJCQUEyQjtFQUMzQiw2QkFBNkIsRUFBQTs7QUFJL0I7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYSxFQUFBOztBQUdmO0VBQ0UsaUJBQWlCO0VBQ2pCLHVCQUF1QjtFQUN2QixZQUFZLEVBQUE7O0FBSGQ7SUFNSSx3QkFBd0I7SUFDeEIsK0JBQStCLEVBQUE7O0FBUG5DO0lBV0ksWUFBWSxFQUFBOztBQUloQjtFQUNFLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBR3RCLGtEQUErQztFQUMvQyxrQkFBa0IsRUFBQTs7QUFJcEI7RUFDRSxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUd0QixrREFBK0M7RUFDL0Msa0JBQWtCLEVBQUE7O0FBS3BCO0VBQ0UsMkJBQTJCO0VBQzNCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3Byb2R1Y3RzL3Byb2R1Y3RzLW1hbmFnZS1pbWFnZXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCAvZGVlcC8gLnRyZWV2aWV3LWNvbnRhaW5lciAucm93LWl0ZW0ge1xyXG4gIG1hcmdpbi1ib3R0b206IC4zcmVtO1xyXG4gIHdpZHRoOiA0MDBweDtcclxufVxyXG5cclxuOmhvc3QgL2RlZXAvIC50cmVldmlldy1jb250YWluZXIge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDEwMHB4KTtcclxuICBtYXgtaGVpZ2h0OiAxMDAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbjpob3N0IC9kZWVwLyAudHJlZXZpZXctaGVhZGVyIHtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgbWFyZ2luOiAtMjZweDtcclxufVxyXG5cclxuLnRyZWUtcm93cyB7XHJcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG5cclxuICAuY2F0ZWdvcmllcyB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XHJcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gIH1cclxuXHJcbiAgLml0ZW1zIHtcclxuICAgIGhlaWdodDogMjBweDtcclxuICB9XHJcbn1cclxuXHJcbi5jYXRlZ29yeS1oZWFkZXIge1xyXG4gIHBhZGRpbmc6IC4ycmVtIDFyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgLW1vei1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcblxyXG4uaXRlbS1yb3cge1xyXG4gIHBhZGRpbmc6IC4ycmVtIDFyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTFweCA0cHggMzFweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgLW1vei1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcblxyXG5cclxuLmNvbnRlbnQtY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxufVxyXG4iXX0= */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { Brand } from '../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CMStockCode } from '../../models/cms-stockcode.model';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CMCategories } from '../../models/cms-category.model';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\n\r\n@Component({\r\n selector: 'manage-images',\r\n templateUrl: './products-manage-images.component.html',\r\n styleUrls: ['./products-manage-images.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ManageImagesComponent {\r\n\r\n @ViewChild('brandModal')\r\n brandModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n allcategories: CMCategories[] = [];\r\n categoryrows: CMCategories[] = [];\r\n categoryrowscache: CMCategories[] = [];\r\n //categoryurlString: string = \"https://www.fowkes.co.za/FowkesOnline/FowkesDocuments/ContentManagementDocuments/CategoryImages/\";\r\n\r\n\r\n allstockCodes: CMStockCode[] = [];\r\n stockCoderows: CMStockCode[] = [];\r\n stockCoderowscache: CMStockCode[] = [];\r\n //stockCodeurlString: string = \"https://www.fowkes.co.za/FowkesOnline/FowkesDocuments/ContentManagementDocuments/StockCodeImages/\";\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n rowsCache: Brand[];\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n brandDetail: Brand = new Brand();\r\n missingImageCount: number;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n loadData() {\r\n this.findMissingImages();\r\n //this.alertService.startLoadingMessage();\r\n //this.loadingIndicator = true;\r\n\r\n //Scrape stock codes and Load Categories\r\n //this.sysproService.getAllCMStockCodesMissingImages().subscribe(x => this.onDataLoadSuccessful([x]), error =>\r\n // this.noMissingImage());\r\n\r\n }\r\n\r\n findMissingImages() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n //Scrape stock codes and Load Categories\r\n this.sysproService.getAllCMStockCodesMissingImages().subscribe(x => this.onDataLoadSuccessful([x]), error =>\r\n this.noMissingImage());\r\n }\r\n\r\n findUnnasignedIMages() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n //Scrape stock codes and Load Categories\r\n this.sysproService.getAllCMSOrphanFileImages().subscribe(x => this.onOrphansCleanSuccessful(x), error =>\r\n this.onDataLoadFailed(error));\r\n }\r\n\r\n onOrphansCleanSuccessful(x: any): void {\r\n var test = x;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', test.count() + `Images Archived`, MessageSeverity.success);\r\n\r\n }\r\n \r\n\r\n noMissingImage() {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `No missing images found!`, MessageSeverity.success);\r\n }\r\n\r\n onDataLoadSuccessful(stockCodes: any[]) {\r\n \r\n\r\n if (stockCodes[0]) {\r\n\r\n this.stockCoderowscache = [...stockCodes[0]];\r\n this.stockCoderowscache = this.stockCoderowscache.filter(x => x.status == \"E\");\r\n\r\n this.missingImageCount = this.stockCoderowscache.length;\r\n this.alertService.showMessage('Processing', this.missingImageCount + ` missing images found! preparing data`, MessageSeverity.info);\r\n\r\n this.sysproService.getAllCMCategories().subscribe(x => this.onCategoriesLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n }\r\n onCategoriesLoadSuccessful(x: any) {\r\n this.allcategories = x;\r\n\r\n let updateRows = this.stockCoderowscache;\r\n updateRows.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n var parentTree = \"\";\r\n stockCode.categoryTree = this.buildParentTree(stockCode.categoryName, parentTree);\r\n this.sysproService.getStockCodeAdditionalDetail(stockCode.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => {\r\n var addDetails = x[0];\r\n if (addDetails) {\r\n stockCode.qtyCT = addDetails.qtyCT;\r\n stockCode.qtyCombined = addDetails.qtyCombined;\r\n stockCode.binLocCT = addDetails.binLocCT;\r\n stockCode.createDate = addDetails.createDate;\r\n }\r\n\r\n }, error => this.onDataLoadFailed(error));\r\n });\r\n\r\n // updateRows.sort((a, b) => (a.categoryTree > b.categoryTree) ? 1 : -1)\r\n this.stockCoderows = [...updateRows];\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n buildParentTree(parentCategoryName: string, treePath: string): string {\r\n var path = \"\";\r\n if (parentCategoryName && parentCategoryName != \"Root\") {\r\n let parents = this.allcategories.filter(x => x.categoryName == parentCategoryName);\r\n if (parents && parents.length >= 1) {\r\n let parent = parents[0];\r\n if (parent) {\r\n path = parentCategoryName + \" > \" + treePath;\r\n treePath = this.buildParentTree(parent.parentCategoryName, path);\r\n }\r\n else {\r\n return treePath;\r\n }\r\n }\r\n }\r\n return treePath;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.stockCoderows = this.stockCoderowscache.filter(r => Utilities.searchArray(value, false, r.stockCode, r.description, r.brandName, r.categoryTree));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.stockCoderows = [...this.stockCoderowscache];\r\n }\r\n }\r\n\r\n deleteStockCodes(row: CMStockCode) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.deleteCMStockCode(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n\r\n enableStockCodes(row: CMStockCode) {\r\n row.status = \"E\";\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateCMStockCode(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n disableStockCodes(row: CMStockCode) {\r\n row.status = \"D\";\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateCMStockCode(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n saveSegment(row: CMStockCode) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n \r\n\r\n this.sysproService.updateCMStockCode(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n //this.loadData();\r\n }\r\n\r\n\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newformData.append('file', file); \r\n }\r\n }\r\n\r\n\r\n onSaveSuccesful(): void {\r\n\r\n //this.brandModalHide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n onFileChange(event, row: CMStockCode) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n this.sysproService.postFileData(formData, \"STOCKCODE\", row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n filePostedSuccess(result: any, row: CMStockCode) {\r\n\r\n console.log(result);\r\n row.stockCodeImage = result.fileName;\r\n row.stockCodeImageChanged = new Date();\r\n //Update Syspro with image path\r\n this.sysproService.updateStockCodeImageSyspro(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"), row.stockCodeImage).subscribe(x =>\r\n (this.alertService.showMessage('Success', `Syspro Image Updated`, MessageSeverity.success)), error => this.onPostDataLoadFailed(error));\r\n\r\n this.saveSegment(row);\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n exportStockCodes() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"Path\", \"QTY_CT\", \"BIN_CT\", \"QTY_ALL\", \"Brand\"]\r\n };\r\n\r\n var filename = \"Missing StockCode Images\";\r\n var selectRows = [...this.stockCoderows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode, Description: row.description, Path: row.categoryTree, QTY_CT: row.qtyCT, BIN_CT: row.binLocCT, QTY_ALL: row.qtyCombined, Brand: row.brandName\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CategoryAdd Image
{{row.tree}} {{row.categoryName}} \\r\\n \\r\\n \\r\\n   \\r\\n \\\"{{row.categoryImage}}\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy1taXNzaW5nLWltYWdlcy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9wcm9kdWN0cy1taXNzaW5nLWltYWdlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4udGJvZHkge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcbiJdfQ== */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { Brand } from '../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CMStockCode } from '../../models/cms-stockcode.model';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CMCategories } from '../../models/cms-category.model';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\n\r\n@Component({\r\n selector: 'missing-images',\r\n templateUrl: './products-missing-images.component.html',\r\n styleUrls: ['./products-missing-images.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class MissingImagesComponent {\r\n\r\n emptyDetails: boolean;\r\n\r\n allcategories: CMCategories[] = [];\r\n categoryrows: CMCategories[] = [];\r\n categoryrowscache: CMCategories[] = [];\r\n // categoryurlString: string = \"https://www.fowkes.co.za/FowkesOnline/FowkesDocuments/ContentManagementDocuments/CategoryImages/\";\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n searchText: string = \"\";\r\n missingImageCount: number;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n //Scrape and Load Categories\r\n this.sysproService.getAllCMSCategoryMissingImages().subscribe(x => this.onDataLoadSuccessful([x]), error =>\r\n this.noMissingImage());\r\n }\r\n\r\n noMissingImage() {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `No missing images found!`, MessageSeverity.success);\r\n }\r\n\r\n onDataLoadSuccessful(categories: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (categories[0]) {\r\n this.categoryrowscache = [...categories[0]];\r\n\r\n this.categoryrowscache = this.categoryrowscache.filter(x => x.statusIndicator == \"E\");\r\n this.missingImageCount = this.categoryrowscache.length - 1;\r\n this.sysproService.getAllCMCategories().subscribe(x => this.onCategoriesLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n\r\n refresh() {\r\n this.searchTerm = \"\";\r\n this.loadData();\r\n }\r\n\r\n onCategoriesLoadSuccessful(x: any) {\r\n this.allcategories = x;\r\n\r\n const updateRows = this.categoryrowscache.filter(r => r.categoryName != \"Root\");\r\n for (var category of updateRows) {\r\n var parentTree = \"\";\r\n \r\n category.tree = this.buildParentTree(category.parentCategoryName, parentTree);\r\n }\r\n\r\n updateRows.sort((a, b) => (a.tree > b.tree) ? 1 : -1)\r\n this.categoryrows = [...updateRows];\r\n }\r\n\r\n buildParentTree(parentCategoryName: string, treePath: string): string {\r\n var path = \"\";\r\n if (parentCategoryName && parentCategoryName != \"Root\") {\r\n let parents = this.allcategories.filter(x => x.categoryName == parentCategoryName);\r\n if (parents && parents.length >= 1) {\r\n let parent = parents[0];\r\n if (parent) {\r\n path = parentCategoryName + \" > \" + treePath;\r\n treePath = this.buildParentTree(parent.parentCategoryName, path);\r\n }\r\n else {\r\n return treePath;\r\n }\r\n } \r\n }\r\n return treePath;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.categoryrows = this.categoryrowscache.filter(r => Utilities.searchArray(value, false, r.categoryName, r.parentCategoryName));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.categoryrows = [...this.categoryrowscache];\r\n }\r\n }\r\n\r\n deleteCategory(row: CMCategories) {\r\n //Check that category doesnt have any stock codes assigned\r\n this.sysproService.getStockCodesForCategory(row.id).subscribe(x => this.onValidationSuccesful(x, row), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n onValidationSuccesful(x: CMStockCode[], row: CMCategories): void {\r\n console.log(x);\r\n if (x && x.length >= 1) {\r\n this.alertService.showMessage('Warning', `You cannot delete a category with stock codes associated. There are ` + x.length + ' items linked to this brand ', MessageSeverity.warn);\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.deleteCMCategory(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n enableCategory(row: CMCategories) {\r\n row.statusIndicator = \"E\";\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateCMCategory(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n disableCategory(row: CMCategories) {\r\n row.statusIndicator = \"D\";\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateCMCategory(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error)); \r\n }\r\n\r\n saveSegment(row: CMCategories) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateCMCategory(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n onSaveSuccesful(): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n // this.loadData();\r\n }\r\n\r\n\r\n onFileChange(event, row: CMCategories) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n this.sysproService.postFileData(formData, \"CATEGORY\", row.categoryName.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n filePostedSuccess(result: any, row: CMCategories) {\r\n\r\n console.log(result);\r\n row.categoryImage = result.fileName;\r\n row.categoryImageChanged = new Date();\r\n this.saveSegment(row);\r\n }\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n exportCategories() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Path\", \"Category\", \"Status\", \"Title\", \"KeyWords\", \"Meta Description\"]\r\n };\r\n\r\n var filename = \"Missing Category Images\";\r\n var selectRows = [...this.categoryrows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Path: row.tree, Category: row.categoryName, Status: row.statusIndicator, Title: row.title, KeyWords: row.keywords, MetaDescription: row.metaDescription\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\" style=\\\"padding-top: 1px;\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n {{value}}\\r\\n
\\r\\n
\\r\\n {{value}}\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n Add\\r\\n
\\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n.datatable-header-cell {\\n display: flex !important;\\n align-items: center !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row red {\\n background-color: red; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy1uZXcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsK0JBQStCLEVBQUE7O0FBRWpDO0VBQ0Usd0JBQXdCO0VBQ3hCLDhCQUE4QixFQUFBOztBQUVoQztFQUVJLHFCQUFxQixFQUFBOztBQUd6QjtFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLG1CQUFtQixFQUFBOztBQVB2QjtJQVdJLGdCQUFnQjtJQUNoQiwwQkFBMEIsRUFBQTs7QUFaOUI7SUFnQkksMEJBQTBCLEVBQUE7O0FBSTlCO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHckI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3Byb2R1Y3RzL3Byb2R1Y3RzLW5ldy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcclxufVxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3d7XHJcbiAgcmVke1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIH1cclxufVxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcblxyXG4gIC5idG4tbGluay5ncmlkIHtcclxuICAgIGZvbnQtc2l6ZTogMC43MDByZW07XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIGEuaG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udXNlci1yb2xlIHtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Pipe, PipeTransform } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { validation } from 'src/app/services/validation.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { InventoryAdditional } from '../../models/inventory-additional.model';\r\n\r\n\r\n@Component({\r\n selector: 'products-new',\r\n templateUrl: './products-new.component.html',\r\n styleUrls: ['./products-new.component.scss']\r\n})\r\n\r\n \r\nexport class ProductsNewComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Inventory[] = [];\r\n rowsCache: Inventory[] = [];\r\n cartRows: CartDetail[] = [];\r\n editedCustomer: ArCustomerEdit;\r\n sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('sellpriceTemplate')\r\n sellpriceTemplate: TemplateRef;\r\n\r\n @ViewChild('unitCostTemplate')\r\n unitCostTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n stockCode: string;\r\n\r\n id: string;\r\n cartId: string;\r\n customer: ArCustomer;\r\n stockCodedetail: Inventory;\r\n isNavigating: boolean;\r\n isSaving: boolean;\r\n cartSaved: boolean;\r\n cartlinenumber: number = 0;\r\n saveCount: number;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n isNavigatingTo: string;\r\n hasDataSheets: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n savedLineCount: number;\r\n isReloading: boolean;\r\n src: string;\r\n searchTerm: string = \"\";\r\n chkNew: boolean;\r\n chkSp: boolean;\r\n chkAlt: boolean;\r\n chkDis: any;\r\n chkUnmapped: boolean;\r\n chkAll: boolean;\r\n chkDt1: boolean;\r\n chkDt2: boolean;\r\n\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: Inventory[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n\r\n inventoryList: Inventory[];\r\n searchingOn: string;\r\n chkShortDescription: boolean;\r\n chkLongDescription: boolean;\r\n chkAnyDescription: boolean;\r\n hasAddDataSheets: boolean;\r\n hasOrphinRecords: boolean;\r\n deletedCount: any;\r\n deletingNumber: number;\r\n unmappedCount: number;\r\n buyerResponsible: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService, private reportService: ReportService, \r\n private router: Router, private route: ActivatedRoute, private numberPipe: CurrencyPipe) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.searchType = \"unmapped\";\r\n this.SetDataGrid();\r\n\r\n //this.loadData();\r\n }\r\n\r\n \r\n private SetDataGrid() {\r\n \r\n if (this.searchType == \"unmapped\") {\r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: 150, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 370, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n { prop: 'qtyCT', name: 'QTY CT', width: 50, cellClass: \"right\" },\r\n { prop: 'binLocCT', name: 'Bin Location', width: 50, cellClass: \"right\" },\r\n { prop: 'qtyCombined', name: 'Qty All Warehouses', width: 50, cellClass: \"right\" }\r\n ];\r\n\r\n this.columns.push({ name: 'CMS', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n else {\r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: 150, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 370, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n { prop: 'uom', name: 'UOM', width: 50, cellClass: \"center\" },\r\n { prop: 'warehouse', name: 'WH', width: 50, cellClass: \"center\" },\r\n { prop: 'availQty', name: 'Qty On Hand', width: 50, cellClass: \"right\" },\r\n { prop: 'binLoc', name: 'Bin', width: 70, cellClass: \"right\" },\r\n { prop: 'qtyOnOrder', name: 'Qty On Order', width: 70, cellClass: \"right\" },\r\n { prop: 'qtyInTransit', name: 'Qty In Transit', width: 50, cellClass: \"right\" },\r\n { prop: 'sellingPrice', name: 'Selling Price', width: 90, cellTemplate: this.priceTemplate, cellClass: \"right\", pipe: { transform: this.currencyPipe } },\r\n { prop: 'unitCost', name: 'Unit Cost', width: 90, cellTemplate: this.unitCostTemplate, cellClass: \"right\", pipe: { transform: this.currencyPipe } }\r\n ];\r\n\r\n this.columns.push({ name: 'Delete', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n \r\n\r\n }\r\n\r\n currencyPipe(value: any, ...args: any[]) {\r\n let updated = value.toFixed(2);\r\n updated += '';\r\n let x = updated.split('.');\r\n let x1 = x[0];\r\n let x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n //return value.toFixed(2);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n reset() {\r\n this.chkShortDescription = false;\r\n this.chkLongDescription = false;\r\n this.chkAnyDescription = false;\r\n this.chkNew = false;\r\n this.chkSp = false;\r\n this.chkAlt = false;\r\n this.chkDis = false;\r\n this.chkUnmapped = false;\r\n this.chkDt1 = false;\r\n this.chkDt2 = false;\r\n this.chkAll = false;\r\n this.searchTerm = \"\";\r\n this.searchingOn = \"\";\r\n this.rows = [];\r\n this.rowsCache = [];\r\n this.SetDataGrid();\r\n this.loadData();\r\n\r\n }\r\n\r\n loadData() {\r\n this.specificSearch();\r\n\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.searchingOn = this.searchType;\r\n if (this.searchType == \"unmapped\") {\r\n this.sysproService.getStockCodeAdditionalDetail(\"ALL\").subscribe(\r\n x => this.onUnmappedSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchType, \"ALL\").subscribe(\r\n x => this.onSpecificSearchSuccesful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n onUnmappedSearchSuccesful(x: any): void {\r\n this.inventoryList = x;\r\n if (this.inventoryList && this.inventoryList.length > 0) {\r\n this.inventoryList.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...this.inventoryList];\r\n this.rows = [...this.rowsCache];\r\n this.unmappedCount = this.rows.length;\r\n }\r\n else {\r\n this.rows = null;\r\n this.rowsCache = null;\r\n\r\n this.alertService.showMessage('No Records', 'Could not find any records for your search.',\r\n MessageSeverity.warn);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: any[]): void {\r\n\r\n this.inventoryList = x[0];\r\n\r\n if (this.inventoryList && x.length > 0) {\r\n\r\n this.inventoryList.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n stockCode.description = stockCode.shortDescription + ' - ' + stockCode.longDescription;\r\n (stockCode).orphin = (this.searchType == \"deleted\");\r\n });\r\n\r\n this.rowsCache = [...this.inventoryList];\r\n this.rows = [...this.rowsCache];\r\n\r\n if (this.searchType == \"deleted\") {\r\n this.hasOrphinRecords = true;\r\n this.deletedCount = this.rows.length;\r\n }\r\n }\r\n else {\r\n this.rows = null;\r\n this.rowsCache = null;\r\n\r\n if (this.searchType == \"deleted\") {\r\n this.alertService.showMessage('In Sync', 'All stock codes have been removed from catalogue - Next Gen is now up to date with SYSPRO',\r\n MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage('No Records', 'Could not find any records for your search.',\r\n MessageSeverity.warn);\r\n\r\n }\r\n }\r\n\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n\r\n deleteStockCode(detail: any, event) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.deletingNumber = 1;\r\n this.sysproService.deleteCMStockCode(detail.id).subscribe(x => this.stockCodeDeleteSuccess(detail.stockCode), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n stockCodeDeleteSuccess(deletedCode: string): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', deletedCode + ` Has been deleted successfully`, MessageSeverity.success);\r\n this.specificSearch();\r\n\r\n //this.deletedCount++;\r\n\r\n //if (this.deletedCount == this.deletingNumber) {\r\n\r\n \r\n //}\r\n }\r\n\r\n deleteAllOrphins() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n var updateRows = this.rowsCache;\r\n this.deletingNumber = updateRows.length;\r\n for (var orphin of updateRows) {\r\n this.sysproService.deleteCMStockCode(orphin.id).subscribe(x => this.stockCodeDeleteSuccess(orphin.stockCode), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n \r\n\r\n //onStockLoadSuccessful(inventory: any[], trim?: boolean) {\r\n\r\n\r\n // this.isReloading = false;\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // if (this.searchTerm.trim() != \"\") {\r\n // this.onSearchChanged(this.searchTerm);\r\n // }\r\n \r\n //}\r\n\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n \r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return;}\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n filterNew() {\r\n this.chkNew = !this.chkNew;\r\n this.filterChanged();\r\n }\r\n\r\n filterSpecial() {\r\n this.chkSp = !this.chkSp;\r\n this.filterChanged();\r\n }\r\n\r\n filterDatasheet1() {\r\n this.chkDt1 = !this.chkDt1;\r\n this.filterChanged();\r\n }\r\n\r\n filterDatasheet2() {\r\n this.chkDt2 = !this.chkDt2;\r\n this.filterChanged();\r\n }\r\n\r\n filterAlternate() {\r\n this.chkAlt = !this.chkAlt;\r\n this.filterChanged();\r\n }\r\n\r\n filterDisabled() {\r\n this.chkDis = !this.chkDis;\r\n this.filterChanged();\r\n }\r\n\r\n filterUnmapped() {\r\n this.chkUnmapped = !this.chkUnmapped;\r\n this.filterChanged();\r\n }\r\n\r\n filterAll() {\r\n this.chkAll = !this.chkAll;\r\n this.filterChanged();\r\n }\r\n\r\n filterChanged() {\r\n if (this.chkAll) {\r\n this.chkAlt = false;\r\n this.chkSp = false;\r\n this.chkNew = false;\r\n this.chkUnmapped = false;\r\n this.chkDis = false;\r\n this.chkDt1 = false;\r\n this.chkDt2 = false;\r\n this.searchTerm = \"\";\r\n this.rows = this.rowsCache;\r\n return;\r\n }\r\n\r\n if (this.chkAlt || this.chkSp || this.chkNew || this.chkUnmapped || this.chkDis || this.chkDt1 || this.chkDt2) {\r\n this.rows = this.rowsCache.filter(m => (this.chkAlt ? m.showAlternate == true : '') ||\r\n (this.chkSp ? (m.onSpecial == true || m.onSpecialFowkes == true) : '') ||\r\n (this.chkDt1 ? m.dataSheetImage != \"\" : '') || (this.chkDt2 ? m.addSheetImage != \"\" : '') ||\r\n (this.chkNew ? m.newArrival == true : '') ||\r\n (this.chkUnmapped ? m.mapped == false : '') || (this.chkDis ? m.status == 'D' : ''));\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n \r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n var filterValues = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.description, r.stockCode, r.warehouse)); \r\n\r\n this.rows = this._sortByTerm(filterValues, \"description\", value.toUpperCase());\r\n\r\n if (this.chkAlt || this.chkSp || this.chkNew || this.chkDt1 || this.chkDt2) {\r\n this.rows = this.rows.filter(m => (this.chkAlt ? m.showAlternate == true : '') ||\r\n (this.chkSp ? (m.onSpecial == true || m.onSpecialFowkes == true) : '') ||\r\n (this.chkDt1 ? m.dataSheetImage != \"\" : '') || (this.chkDt2 ? m.addSheetImage != \"\" : '') ||\r\n (this.chkNew ? m.newArrival == true : ''));\r\n }\r\n\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n _sortByTerm(data, key, term) {\r\n return data.sort(function (a, b) {\r\n return a[key].indexOf(term) < b[key].indexOf(term) ? -1 : 1;\r\n });\r\n }\r\n\r\n _sortByrank(array, searchKey, props) {\r\n if (!array || !searchKey || !props) return array;\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n var obj = array[i];\r\n obj.rankSearch = 0;\r\n for (var j = 0; j < props.length; j++) {\r\n var index = obj[props[j]].indexOf(searchKey);\r\n // i should probably spend time tweaking these arbitrary numbers\r\n // to find good values that produce the best results, but\r\n // here's what I have so far...\r\n obj.rankSearch += (index === -1 ? 15 : index) * ((j + 1) * 8);\r\n }\r\n }\r\n\r\n return array;\r\n }\r\n\r\n\r\n results() {\r\n if(this.searchType == \"unmapped\")\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"QtyCT\", \"BinLocCT\", \"QtyCombined\"]\r\n };\r\n\r\n var filename = \"NewInventoryList\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode, Description: row.description, QtyCT: row.qtyCT, BinLocCT: row.binLocCT, QtyCombined: row.qtyCombined\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n\r\n //private refreshAll() {\r\n // this.isSaving = false;\r\n // this.alertService.stopLoadingMessage();\r\n\r\n // this.isReloading = true;\r\n // this.alertService.startLoadingMessage(\"Reloading...\");\r\n // this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n //}\r\n\r\n private saveFailedHelper(error: any) {\r\n //Check if all the lines have been saved\r\n if (this.saveCount == this.savedLineCount) {\r\n \r\n //Reload the inventory and cart details\r\n //this.refreshAll();\r\n }\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n stockCodeModallHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n this.loadData();\r\n }\r\n\r\n addStockCode(row: any, event) {\r\n \r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.description;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n\r\n if (sessionStorage.getItem(localStorageActions.StockCode) != this.stockCode) {\r\n sessionStorage.setItem(localStorageActions.StockCode, this.stockCode);\r\n }\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n\r\n\r\n editStockCode(row: Inventory) {\r\n if (row) {\r\n if (sessionStorage.getItem(localStorageActions.StockCode) != row.stockCode) {\r\n sessionStorage.setItem(localStorageActions.StockCode, row.stockCode);\r\n }\r\n this.router.navigate(['../../products'], { fragment: 'stockcodes' });\r\n } \r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey && row.mapped) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.alternateKey;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n\r\n openSpecials(specialsImg: string) {\r\n if (!!specialsImg && specialsImg != \"\") {\r\n window.open(this.stockCodedetail.filePath + \"/SpecialImages/\" + specialsImg, \"_blank\");\r\n }\r\n }\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n\r\n onEmailLoadSuccessful() {\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasAddDataSheets = false;\r\n this.hasSpecials = false;\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n this.hasAddDataSheets = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage.length >= 1);\r\n\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.specialsImage.length >= 1 && (this.stockCodedetail.onSpecial || this.stockCodedetail.onSpecialFowkes));\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\").replace(/\\%/gi, \"---\"), this.branchCode, this.application).subscribe(x => this.emailModal.show(), error => this.onDataLoadFailed(error));\r\n\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.accountService.currentUser.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim(); \r\n }\r\n\r\n if (this.hasAddDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc3 = this.stockCodedetail.addSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n titleCase(str) {\r\n str = str.toLowerCase();\r\n return str.replace(/\\w\\S/g, function (t) { return t.toUpperCase() });\r\n }\r\n\r\n viewInventory() {\r\n console.log(\"TEST\");\r\n\r\n }\r\n\r\n viewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n console.log(this.emailObject);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.emailObject.AddDoc1 = (this.attachDataSheets && this.hasDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n this.emailObject.AddDoc3 = (this.attachDataSheets && this.hasAddDataSheets ? this.emailObject.AddDoc3 : \"\");\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var stockCode = this.emailObject.Attachment.replace('/', '_').replace('+', '_').replace('%', '_');\r\n\r\n this.src = url;\r\n // window.open(this.src).print();\r\n // const blobUrl = window.URL.createObjectURL((test));\r\n //const iframeDoc = document.getElementsByTagName(\"iframe\")[0].contentWindow;\r\n // iframeDoc.src = url;\r\n\r\n\r\n\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = stockCode + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n calcOrderQty(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.orderqty = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n \r\n calcDisc(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.discountpercentage1 = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcPrice(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n \r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n get canManageInventory() {\r\n return this.accountService.userHasPermission(Permission.manageInventoryPermission);\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{stockCodedetail.topSellerText}}
\\r\\n \\\"{{stockCodedetail.stockCodeImage}}\\\"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Stock Code:{{stockCodedetail.stockCode}}
Brand:{{stockCodedetail.brandName}}
Description:{{stockCodedetail.shortDescription}}
{{stockCodedetail.longDescription}}
1\\\" class=\\\"control-detail no-padding border-0\\\">Extra Info:{{stockCodedetail.extraProductInform}}
\\r\\n
\\r\\n
{{stockCodedetail.extraDescription1}}{{stockCodedetail.extraDescription2}}
\\r\\n
\\r\\n
Web Price:\\r\\n {{stockCodedetail.webPrice | currency:'R ':'symbol':'1.2'}} (Excl VAT)\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \".stack-top {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #006699;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n.stack-new {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #006699;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n.stack-onpromotion {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #760B1F;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n.price-container,\\n.price-container:before,\\n.price-container:after,\\n.price-container .price,\\n.price-container .price:before,\\n.price-container .price:after {\\n height: 8.5em;\\n width: 8.5em;\\n background: #760B1F top left no-repeat;\\n background-size: 8.5em; }\\n\\n.price-container .blue,\\n .price-container:before .blue,\\n .price-container:after .blue,\\n .price-container .price .blue,\\n .price-container .price:before .blue,\\n .price-container .price:after .blue {\\n background: #2825bd top left no-repeat; }\\n\\n.price-container:before,\\n.price-container:after,\\n.price-container .price:before,\\n.price-container .price:after {\\n content: \\\"\\\";\\n position: absolute; }\\n\\n.price-container {\\n margin: 100px auto;\\n /* Centering for demo */\\n position: relative;\\n /* Context */\\n top: 1.5em;\\n left: -7.5em;\\n transform: rotate(-45deg); }\\n\\n.price-container:before {\\n top: 0;\\n left: 0;\\n transform: rotate(-30deg); }\\n\\n.price-container:after {\\n top: 0;\\n left: 0;\\n transform: rotate(-15deg); }\\n\\n.price-container .price {\\n padding: .5em 0em;\\n height: 8.5em;\\n position: absolute;\\n bottom: 0;\\n right: 0;\\n transform: rotate(45deg);\\n z-index: 1 !important; }\\n\\n.price-container .price:before {\\n top: 0;\\n left: 0;\\n transform: rotate(60deg); }\\n\\n.price-container .price:after {\\n top: 0;\\n left: 0;\\n transform: rotate(75deg); }\\n\\n.price-container .price span {\\n position: relative;\\n z-index: 100;\\n display: block;\\n text-align: center;\\n color: #FE3D5C;\\n font: 1em Sans-Serif;\\n height: 38px; }\\n\\n.price-container .price span.number {\\n font-weight: bold;\\n font-size: 1.8em;\\n line-height: .9em;\\n color: #fff;\\n white-space: nowrap; }\\n\\n.price-container-blue,\\n.price-container-blue:before,\\n.price-container-blue:after,\\n.price-container-blue .price,\\n.price-container-blue .price:before,\\n.price-container-blue .price:after {\\n height: 8.5em;\\n width: 8.5em;\\n background: #2825bd top left no-repeat;\\n background-size: 8.5em; }\\n\\n.price-container-blue:before,\\n.price-container-blue:after,\\n.price-container-blue .price:before,\\n.price-container-blue .price:after {\\n content: \\\"\\\";\\n position: absolute; }\\n\\n.price-container-blue {\\n margin: 100px auto;\\n /* Centering for demo */\\n position: relative;\\n /* Context */\\n top: -7.5em;\\n left: -1.5em;\\n transform: rotate(-45deg); }\\n\\n.price-container-blue:before {\\n top: 0;\\n left: 0;\\n transform: rotate(-30deg); }\\n\\n.price-container-blue:after {\\n top: 0;\\n left: 0;\\n transform: rotate(-15deg); }\\n\\n.price-container-blue .price {\\n padding: .5em 0em;\\n height: 8.5em;\\n position: absolute;\\n bottom: 0;\\n right: 0;\\n transform: rotate(45deg);\\n z-index: 1 !important; }\\n\\n.price-container-blue .price:before {\\n top: 0;\\n left: 0;\\n transform: rotate(60deg); }\\n\\n.price-container-blue .price:after {\\n top: 0;\\n left: 0;\\n transform: rotate(75deg); }\\n\\n.price-container-blue .price span {\\n position: relative;\\n z-index: 100;\\n display: block;\\n text-align: center;\\n color: #FE3D5C;\\n font: 1em Sans-Serif;\\n height: 38px; }\\n\\n.price-container-blue .price span.number {\\n font-weight: bold;\\n font-size: 1.8em;\\n line-height: .9em;\\n color: #fff;\\n white-space: nowrap; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy5hZHZlcnRzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBO0VBQ0UsMENBQUE7RUFDQSxRQUFJO0VBQ0osVUFBSTtFQUNKLFlBQUk7RUFDSixHQUFBO0VBQ0Esa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixRQUFRO0VBQ1IsaURBQWlEO0VBQUUsbUNBQUE7RUFDbkQsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YsNkJBQTZCO0VBQzdCLG1DQUFtQztFQUNuQywyRkFBd0Y7RUFDeEYsK01BQTBNLEVBQUE7O0FBSzVNO0VBQ0UsMENBQUE7RUFDQSxRQUFJO0VBQ0osVUFBSTtFQUNKLFlBQUk7RUFDSixHQUFBO0VBQ0Esa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixRQUFRO0VBQ1IsaURBQWlEO0VBQUUsbUNBQUE7RUFDbkQsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YsNkJBQTZCO0VBQzdCLG1DQUFtQztFQUNuQywyRkFBd0Y7RUFDeEYsK01BQTBNLEVBQUE7O0FBSzVNO0VBQ0UsMENBQUE7RUFDQSxRQUFJO0VBQ0osVUFBSTtFQUNKLFlBQUk7RUFDSixHQUFBO0VBQ0Esa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixRQUFRO0VBQ1IsaURBQWlEO0VBQUUsbUNBQUE7RUFDbkQsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YsNkJBQTZCO0VBQzdCLG1DQUFtQztFQUNuQywyRkFBd0Y7RUFDeEYsK01BQTBNLEVBQUE7O0FBRzVNOzs7Ozs7RUFNRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLHNDQUFzQztFQUN0QyxzQkFBc0IsRUFBQTs7QUFUeEI7Ozs7OztJQVlJLHNDQUFzQyxFQUFBOztBQUkxQzs7OztFQUlFLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxrQkFBa0I7RUFBRSx1QkFBQTtFQUNwQixrQkFBa0I7RUFBRSxZQUFBO0VBQ3BCLFVBQVU7RUFDVixZQUFZO0VBS1oseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsTUFBTTtFQUNOLE9BQU87RUFLUCx5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSxNQUFNO0VBQ04sT0FBTztFQUtQLHlCQUF5QixFQUFBOztBQUczQjtFQUNFLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxRQUFRO0VBS1Isd0JBQXdCO0VBQ3hCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLE1BQU07RUFDTixPQUFPO0VBS1Asd0JBQXdCLEVBQUE7O0FBRzFCO0VBQ0UsTUFBTTtFQUNOLE9BQU87RUFLUCx3QkFBd0IsRUFBQTs7QUFHMUI7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLG9CQUFvQjtFQUNwQixZQUFZLEVBQUE7O0FBR2Q7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsbUJBQW1CLEVBQUE7O0FBR3JCOzs7Ozs7RUFNRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLHNDQUFzQztFQUN0QyxzQkFBc0IsRUFBQTs7QUFHeEI7Ozs7RUFJRSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0Usa0JBQWtCO0VBQUUsdUJBQUE7RUFDcEIsa0JBQWtCO0VBQUUsWUFBQTtFQUNwQixXQUFXO0VBQ1gsWUFBWTtFQUtaLHlCQUF5QixFQUFBOztBQUczQjtFQUNFLE1BQU07RUFDTixPQUFPO0VBS1AseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsTUFBTTtFQUNOLE9BQU87RUFLUCx5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSxpQkFBaUI7RUFDakIsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsUUFBUTtFQUtSLHdCQUF3QjtFQUN4QixxQkFBcUIsRUFBQTs7QUFHdkI7RUFDRSxNQUFNO0VBQ04sT0FBTztFQUtQLHdCQUF3QixFQUFBOztBQUcxQjtFQUNFLE1BQU07RUFDTixPQUFPO0VBS1Asd0JBQXdCLEVBQUE7O0FBRzFCO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxvQkFBb0I7RUFDcEIsWUFBWSxFQUFBOztBQUdkO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLG1CQUFtQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9wcm9kdWN0cy5hZHZlcnRzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZ1bGxzY3JlZW57XHJcblxyXG59XHJcblxyXG4uc3RhY2stdG9wIHtcclxuICAvKiBhZGp1c3QgdGhlIGJlbG93IHRvIGNvbnRyb2wgdGhlIHNoYXBlICovXHJcbiAgLS1kOiA1cHg7XHJcbiAgLS13OiAxMDBweDtcclxuICAtLWM6ICMwMDY2OTk7XHJcbiAgLyoqL1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjkuMjklLCAtMTAwJSkgcm90YXRlKDQ1ZGVnKTsgLyogMjkuMjklID0gMTAwJSooMSAtIGNvcyg0NWRlZykpICovXHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiB2YXIoLS13KTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcclxuICBwYWRkaW5nOiA1cHggMCBjYWxjKHZhcigtLWQpICsgNXB4KTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjYpIDAgMCkgYm90dG9tLzEwMCUgdmFyKC0tZCkgbm8tcmVwZWF0IHZhcigtLWMpO1xyXG4gIGNsaXAtcGF0aDogcG9seWdvbigwIDEwMCUsMCBjYWxjKDEwMCUgLSB2YXIoLS1kKSksNTAlIGNhbGMoMTAwJSAtIHZhcigtLWQpIC0gdmFyKC0tdykvMiksMTAwJSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksMTAwJSAxMDAlLGNhbGMoMTAwJSAtIHZhcigtLWQpKSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksIHZhcigtLWQpIGNhbGMoMTAwJSAtIHZhcigtLWQpKSlcclxufVxyXG5cclxuXHJcblxyXG4uc3RhY2stbmV3IHtcclxuICAvKiBhZGp1c3QgdGhlIGJlbG93IHRvIGNvbnRyb2wgdGhlIHNoYXBlICovXHJcbiAgLS1kOiA1cHg7XHJcbiAgLS13OiAxMDBweDtcclxuICAtLWM6ICMwMDY2OTk7XHJcbiAgLyoqL1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjkuMjklLCAtMTAwJSkgcm90YXRlKDQ1ZGVnKTsgLyogMjkuMjklID0gMTAwJSooMSAtIGNvcyg0NWRlZykpICovXHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiB2YXIoLS13KTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcclxuICBwYWRkaW5nOiA1cHggMCBjYWxjKHZhcigtLWQpICsgNXB4KTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjYpIDAgMCkgYm90dG9tLzEwMCUgdmFyKC0tZCkgbm8tcmVwZWF0IHZhcigtLWMpO1xyXG4gIGNsaXAtcGF0aDogcG9seWdvbigwIDEwMCUsMCBjYWxjKDEwMCUgLSB2YXIoLS1kKSksNTAlIGNhbGMoMTAwJSAtIHZhcigtLWQpIC0gdmFyKC0tdykvMiksMTAwJSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksMTAwJSAxMDAlLGNhbGMoMTAwJSAtIHZhcigtLWQpKSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksIHZhcigtLWQpIGNhbGMoMTAwJSAtIHZhcigtLWQpKSlcclxufVxyXG5cclxuXHJcblxyXG4uc3RhY2stb25wcm9tb3Rpb24ge1xyXG4gIC8qIGFkanVzdCB0aGUgYmVsb3cgdG8gY29udHJvbCB0aGUgc2hhcGUgKi9cclxuICAtLWQ6IDVweDtcclxuICAtLXc6IDEwMHB4O1xyXG4gIC0tYzogIzc2MEIxRjtcclxuICAvKiovXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyOS4yOSUsIC0xMDAlKSByb3RhdGUoNDVkZWcpOyAvKiAyOS4yOSUgPSAxMDAlKigxIC0gY29zKDQ1ZGVnKSkgKi9cclxuICBjb2xvcjogI2ZmZjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2lkdGg6IHZhcigtLXcpO1xyXG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xyXG4gIHBhZGRpbmc6IDVweCAwIGNhbGModmFyKC0tZCkgKyA1cHgpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDAuNikgMCAwKSBib3R0b20vMTAwJSB2YXIoLS1kKSBuby1yZXBlYXQgdmFyKC0tYyk7XHJcbiAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMTAwJSwwIGNhbGMoMTAwJSAtIHZhcigtLWQpKSw1MCUgY2FsYygxMDAlIC0gdmFyKC0tZCkgLSB2YXIoLS13KS8yKSwxMDAlIGNhbGMoMTAwJSAtIHZhcigtLWQpKSwxMDAlIDEwMCUsY2FsYygxMDAlIC0gdmFyKC0tZCkpIGNhbGMoMTAwJSAtIHZhcigtLWQpKSwgdmFyKC0tZCkgY2FsYygxMDAlIC0gdmFyKC0tZCkpKVxyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLFxyXG4ucHJpY2UtY29udGFpbmVyOmJlZm9yZSxcclxuLnByaWNlLWNvbnRhaW5lcjphZnRlcixcclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2UsXHJcbi5wcmljZS1jb250YWluZXIgLnByaWNlOmJlZm9yZSxcclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2U6YWZ0ZXIge1xyXG4gIGhlaWdodDogOC41ZW07XHJcbiAgd2lkdGg6IDguNWVtO1xyXG4gIGJhY2tncm91bmQ6ICM3NjBCMUYgdG9wIGxlZnQgbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogOC41ZW07XHJcblxyXG4gIC5ibHVlIHtcclxuICAgIGJhY2tncm91bmQ6ICMyODI1YmQgdG9wIGxlZnQgbm8tcmVwZWF0O1xyXG4gIH1cclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lcjpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXI6YWZ0ZXIsXHJcbi5wcmljZS1jb250YWluZXIgLnByaWNlOmJlZm9yZSxcclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2U6YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyIHtcclxuICBtYXJnaW46IDEwMHB4IGF1dG87IC8qIENlbnRlcmluZyBmb3IgZGVtbyAqL1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogQ29udGV4dCAqL1xyXG4gIHRvcDogMS41ZW07XHJcbiAgbGVmdDogLTcuNWVtO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyOmJlZm9yZSB7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcclxuICAtby10cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXI6YWZ0ZXIge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyIC5wcmljZSB7XHJcbiAgcGFkZGluZzogLjVlbSAwZW07XHJcbiAgaGVpZ2h0OiA4LjVlbTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgei1pbmRleDogMSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyIC5wcmljZTpiZWZvcmUge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2U6YWZ0ZXIge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg3NWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDc1ZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2Ugc3BhbiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDEwMDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6ICNGRTNENUM7XHJcbiAgZm9udDogMWVtIFNhbnMtU2VyaWY7XHJcbiAgaGVpZ2h0OiAzOHB4O1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyIC5wcmljZSBzcGFuLm51bWJlciB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zaXplOiAxLjhlbTtcclxuICBsaW5lLWhlaWdodDogLjllbTtcclxuICBjb2xvcjogI2ZmZjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWUsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZTpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZTphZnRlcixcclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIC5wcmljZSxcclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIC5wcmljZTpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2U6YWZ0ZXIge1xyXG4gIGhlaWdodDogOC41ZW07XHJcbiAgd2lkdGg6IDguNWVtO1xyXG4gIGJhY2tncm91bmQ6ICMyODI1YmQgdG9wIGxlZnQgbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogOC41ZW07XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZTpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZTphZnRlcixcclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIC5wcmljZTpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2U6YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWUge1xyXG4gIG1hcmdpbjogMTAwcHggYXV0bzsgLyogQ2VudGVyaW5nIGZvciBkZW1vICovXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBDb250ZXh0ICovXHJcbiAgdG9wOiAtNy41ZW07XHJcbiAgbGVmdDogLTEuNWVtO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWU6YmVmb3JlIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lci1ibHVlOmFmdGVyIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIC5wcmljZSB7XHJcbiAgcGFkZGluZzogLjVlbSAwZW07XHJcbiAgaGVpZ2h0OiA4LjVlbTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICB6LWluZGV4OiAxICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2U6YmVmb3JlIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2U6YWZ0ZXIge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg3NWRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDc1ZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIC5wcmljZSBzcGFuIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMTAwO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogI0ZFM0Q1QztcclxuICBmb250OiAxZW0gU2Fucy1TZXJpZjtcclxuICBoZWlnaHQ6IDM4cHg7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2Ugc3Bhbi5udW1iZXIge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc2l6ZTogMS44ZW07XHJcbiAgbGluZS1oZWlnaHQ6IC45ZW07XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Pipe, PipeTransform } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\n\r\n\r\n@Component({\r\n selector: 'products.adverts',\r\n templateUrl: './products.adverts.component.html',\r\n styleUrls: ['./products.adverts.component.scss']\r\n})\r\n\r\n\r\nexport class ProductsAdvertsComponent implements OnInit {\r\n \r\n loadingIndicator: boolean;\r\n\r\n rows: Inventory[] = [];\r\n rowsCache: Inventory[] = [];\r\n inventoryList: Inventory[] = [];\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n stockCodedetail: Inventory;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n hasDataSheet: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n hasImpaCodes: boolean;\r\n hasAddDataSheet: boolean;\r\n buyerResponsible: string;\r\n branchCode: string;\r\n currentIndex: number;\r\n showAdvert: boolean;\r\n elem: HTMLElement;\r\n timer: any;\r\n\r\n\r\n constructor(private alertService: AlertService, private fowkesService: FowkesOnlineService,\r\n private sysproService: SysproService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n this.currentIndex = 0;\r\n this.showAdvert = false;\r\n\r\n\r\n //setInterval(() => {\r\n // this.currentIndex = (this.currentIndex + 1) % this.rows.length;\r\n //}, 5000); // Change image every 5 seconds\r\n\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.branchCode = \"CT\";\r\n this.sysproService.getInventoryForAdverts(this.branchCode).subscribe(x => this.onStockListLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n onStockListLoadSuccessful(inventory: any[], trim?: boolean): void {\r\n const stockCodes = inventory[0];\r\n\r\n if (!Array.isArray(stockCodes)) {\r\n // Handle the case when stockCodes is not an array\r\n // Display an error message, log the issue, or handle it as per your requirements\r\n return;\r\n }\r\n\r\n const newData = stockCodes.map((stockCode, index) => {\r\n return {\r\n ...stockCode,\r\n index: index + 1,\r\n description: stockCode.shortDescription + ' - ' + stockCode.longDescription\r\n };\r\n });\r\n\r\n this.inventoryList = newData;\r\n\r\n this.rowsCache = this.inventoryList.filter(\r\n s => s.onSpecialFowkes || s.newArrival || s.topSellerText.trim() !== ''\r\n );\r\n this.rows = [...this.rowsCache];\r\n\r\n // Remove the previous setInterval, if any\r\n if (this.timer) {\r\n clearInterval(this.timer);\r\n }\r\n\r\n this.timer = setInterval(() => {\r\n this.currentIndex = (this.currentIndex + 1) % this.rows.length;\r\n this.onStockCodeLoadSuccessful(this.rows[this.currentIndex]);\r\n }, 10000); // Change image every 10 seconds\r\n }\r\n\r\n\r\n onStockCodeLoadSuccessful(row: any): void {\r\n\r\n if (row) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail = row;\r\n this.hasDataSheet = false;\r\n this.hasSpecials = false;\r\n this.hasImpaCodes = false;\r\n\r\n if (this.stockCodedetail) {\r\n if (this.stockCodedetail.dataSheetImage) {\r\n this.hasDataSheet = true;\r\n this.stockCodedetail.dataSheetImage = encodeURIComponent(this.stockCodedetail.dataSheetImage);\r\n }\r\n if (this.stockCodedetail.addSheetImage) {\r\n this.hasAddDataSheet = true;\r\n this.stockCodedetail.addSheetImage = encodeURIComponent(this.stockCodedetail.addSheetImage);\r\n }\r\n if (this.stockCodedetail.specialsImage) {\r\n this.hasSpecials = true;\r\n this.stockCodedetail.specialsImage = encodeURIComponent(this.stockCodedetail.specialsImage);\r\n }\r\n if (this.stockCodedetail.impaCodes && this.stockCodedetail.impaCodes.trim() != \"\") {\r\n this.hasImpaCodes = true;\r\n }\r\n }\r\n this.stockCodedetail.stockCodeImage = this.ensureUrlEncoded(this.stockCodedetail.stockCodeImage);\r\n\r\n }\r\n \r\n }\r\n\r\n ensureUrlEncoded(url: string): string {\r\n if (url && !url.includes('%')) {\r\n return encodeURIComponent(url);\r\n }\r\n return url;\r\n }\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n\r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return; }\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n //this.alternateKey = row.alternateKey;\r\n this.sysproService.getStockCodeAvailableQuantities(row.alternateKey).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n openSpecials(specialsImg: string) {\r\n if (!!specialsImg && specialsImg != \"\") {\r\n window.open(this.stockCodedetail.filePath + \"/SpecialImages/\" + specialsImg, \"_blank\");\r\n }\r\n }\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
BrandBrand ImageChange ImageDisplay NameWeb DescriptionActions
\\r\\n \\r\\n \\r\\n \\\"{{row.brandImage}}\\\"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Total Brands: {{ rows.length }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{brandDetail.brandName}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy5icmFuZHMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJvZHVjdHMvcHJvZHVjdHMuYnJhbmRzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi50Ym9keSB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbn1cclxuIl19 */\"","import { HttpClient } from '@angular/common/http';\r\nimport { Component, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Brand } from '../../models/brand.model';\r\nimport { CMStockCode } from '../../models/cms-stockcode.model';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\n@Component({\r\n selector: 'brands',\r\n templateUrl: './products.brands.component.html',\r\n styleUrls: ['./products.brands.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class BrandsComponent {\r\n\r\n @ViewChild('brandModal')\r\n brandModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n rows: Brand[] = [];\r\n //urlString: string = \"https://www.fowkes.co.za/FowkesOnline/FowkesDocuments/ContentManagementDocuments/BrandImages/\";\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n rowsCache: Brand[];\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n brandDetail: Brand = new Brand();\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getBrands().subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n\r\n onDataLoadSuccessful(brands: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (brands[0]) {\r\n\r\n this.rowsCache = [...brands[0]];\r\n const updateRows = this.rowsCache.sort((obj1, obj2) => {\r\n if (obj1.brandImage > obj2.brandImage) {\r\n return 1;\r\n }\r\n\r\n if (obj1.brandImage < obj2.brandImage) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n this.rows = [...updateRows];\r\n\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n\r\n\r\n results() {\r\n const options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Id\", \"Brand\", \"Display Name\", \"Description\", \"Image\"]\r\n };\r\n\r\n const filename = \"Brands\";\r\n const exportRows = this.rows.map(row => ({\r\n Id: row.id,\r\n Brand: row.brandName,\r\n \"Display Name\": row.webDisplayName,\r\n Description: row.webDescription,\r\n Image: row.brandImage\r\n }));\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.brandName, r.brandImage));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n deleteRow(row: Brand) {\r\n //Check that brand doesnt have any stock codes assigned\r\n this.sysproService.getStockCodesForBrand(row.id).subscribe(x => this.onValidationSuccesful(x, row), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n onValidationSuccesful(x: CMStockCode[], row: Brand): void {\r\n console.log(x);\r\n if (x && x.length >= 1) {\r\n this.alertService.showMessage('Warning', `You cannot delete a brand with stock codes associated. There are ` + x.length + ' items linked to this brand ', MessageSeverity.warn);\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.deleteBrand(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n\r\n enableEditMethod(row: Brand, i) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n\r\n this.editBrand(row);\r\n console.log(i, row);\r\n }\r\n\r\n saveSegment(row: Brand) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n row.createdBy = this.accountService.currentUser.email;\r\n this.sysproService.editBrand(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n brandModalHide() {\r\n this.brandDetail = new Brand();\r\n this.brandModal.hide();\r\n }\r\n\r\n editBrand(row: Brand) {\r\n\r\n this.brandDetail = row;\r\n\r\n if (!this.brandModal) {\r\n setTimeout(() => {\r\n if (this.brandModal) {\r\n this.brandModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.brandModal.show();\r\n }\r\n\r\n \r\n\r\n }\r\n\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newformData.append('file', file);\r\n \r\n }\r\n }\r\n\r\n saveBrand() {\r\n\r\n //Validate save\r\n if (this.brandDetail) {\r\n if (this.brandDetail.brandName) {\r\n \r\n this.sysproService.editBrand(this.brandDetail, this.brandDetail.id).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a brand name`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n newFilePostedSuccess(x: any) {\r\n\r\n console.log(x);\r\n this.brandDetail.brandImage = x.fileName;\r\n this.brandDetail.createdBy = this.accountService.currentUser.email;\r\n this.brandDetail.brandImageChanged = new Date();\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.addBrand(this.brandDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n onSaveSuccesful(): void {\r\n\r\n this.brandModalHide(); \r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n onFileChange(event, row: Brand) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n this.sysproService.postFileData(formData, \"BRAND\", row.brandName.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n \r\n }\r\n }\r\n filePostedSuccess(result: any, row: Brand) {\r\n\r\n console.log(result);\r\n row.brandImage = result.fileName;\r\n row.brandImageChanged = new Date();\r\n\r\n this.saveSegment(row);\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{stockCodedetail.topSellerText}}
\\r\\n \\\"{{stockCodedetail.stockCodeImage}}\\\"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Stock Code:{{stockCodedetail.stockCode}}
Brand:{{stockCodedetail.brandName}}
Description:{{stockCodedetail.shortDescription}}
{{stockCodedetail.longDescription}}
1\\\" class=\\\"control-detail no-padding border-0\\\">Extra Info:{{stockCodedetail.extraProductInform}}
\\r\\n
\\r\\n
{{stockCodedetail.extraDescription1}}{{stockCodedetail.extraDescription2}}
\\r\\n
\\r\\n
Web Price:\\r\\n {{stockCodedetail.webPrice | currency:'R ':'symbol':'1.2'}} (Excl VAT)\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \".stack-top {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #006699;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n.stack-new {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #006699;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n.stack-onpromotion {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #760B1F;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n.price-container,\\n.price-container:before,\\n.price-container:after,\\n.price-container .price,\\n.price-container .price:before,\\n.price-container .price:after {\\n height: 8.5em;\\n width: 8.5em;\\n background: #760B1F top left no-repeat;\\n background-size: 8.5em; }\\n\\n.price-container .blue,\\n .price-container:before .blue,\\n .price-container:after .blue,\\n .price-container .price .blue,\\n .price-container .price:before .blue,\\n .price-container .price:after .blue {\\n background: #2825bd top left no-repeat; }\\n\\n.price-container:before,\\n.price-container:after,\\n.price-container .price:before,\\n.price-container .price:after {\\n content: \\\"\\\";\\n position: absolute; }\\n\\n.price-container {\\n margin: 100px auto;\\n /* Centering for demo */\\n position: relative;\\n /* Context */\\n top: 1.5em;\\n left: -7.5em;\\n transform: rotate(-45deg); }\\n\\n.price-container:before {\\n top: 0;\\n left: 0;\\n transform: rotate(-30deg); }\\n\\n.price-container:after {\\n top: 0;\\n left: 0;\\n transform: rotate(-15deg); }\\n\\n.price-container .price {\\n padding: .5em 0em;\\n height: 8.5em;\\n position: absolute;\\n bottom: 0;\\n right: 0;\\n transform: rotate(45deg);\\n z-index: 1 !important; }\\n\\n.price-container .price:before {\\n top: 0;\\n left: 0;\\n transform: rotate(60deg); }\\n\\n.price-container .price:after {\\n top: 0;\\n left: 0;\\n transform: rotate(75deg); }\\n\\n.price-container .price span {\\n position: relative;\\n z-index: 100;\\n display: block;\\n text-align: center;\\n color: #FE3D5C;\\n font: 1em Sans-Serif;\\n height: 38px; }\\n\\n.price-container .price span.number {\\n font-weight: bold;\\n font-size: 1.8em;\\n line-height: .9em;\\n color: #fff;\\n white-space: nowrap; }\\n\\n.price-container-blue,\\n.price-container-blue:before,\\n.price-container-blue:after,\\n.price-container-blue .price,\\n.price-container-blue .price:before,\\n.price-container-blue .price:after {\\n height: 8.5em;\\n width: 8.5em;\\n background: #2825bd top left no-repeat;\\n background-size: 8.5em; }\\n\\n.price-container-blue:before,\\n.price-container-blue:after,\\n.price-container-blue .price:before,\\n.price-container-blue .price:after {\\n content: \\\"\\\";\\n position: absolute; }\\n\\n.price-container-blue {\\n margin: 100px auto;\\n /* Centering for demo */\\n position: relative;\\n /* Context */\\n top: -7.5em;\\n left: -1.5em;\\n transform: rotate(-45deg); }\\n\\n.price-container-blue:before {\\n top: 0;\\n left: 0;\\n transform: rotate(-30deg); }\\n\\n.price-container-blue:after {\\n top: 0;\\n left: 0;\\n transform: rotate(-15deg); }\\n\\n.price-container-blue .price {\\n padding: .5em 0em;\\n height: 8.5em;\\n position: absolute;\\n bottom: 0;\\n right: 0;\\n transform: rotate(45deg);\\n z-index: 1 !important; }\\n\\n.price-container-blue .price:before {\\n top: 0;\\n left: 0;\\n transform: rotate(60deg); }\\n\\n.price-container-blue .price:after {\\n top: 0;\\n left: 0;\\n transform: rotate(75deg); }\\n\\n.price-container-blue .price span {\\n position: relative;\\n z-index: 100;\\n display: block;\\n text-align: center;\\n color: #FE3D5C;\\n font: 1em Sans-Serif;\\n height: 38px; }\\n\\n.price-container-blue .price span.number {\\n font-weight: bold;\\n font-size: 1.8em;\\n line-height: .9em;\\n color: #fff;\\n white-space: nowrap; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy5jbGVhcmFuY2UuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7RUFDRSwwQ0FBQTtFQUNBLFFBQUk7RUFDSixVQUFJO0VBQ0osWUFBSTtFQUNKLEdBQUE7RUFDQSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFFBQVE7RUFDUixpREFBaUQ7RUFBRSxtQ0FBQTtFQUNuRCxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZiw2QkFBNkI7RUFDN0IsbUNBQW1DO0VBQ25DLDJGQUF3RjtFQUN4RiwrTUFBME0sRUFBQTs7QUFLNU07RUFDRSwwQ0FBQTtFQUNBLFFBQUk7RUFDSixVQUFJO0VBQ0osWUFBSTtFQUNKLEdBQUE7RUFDQSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFFBQVE7RUFDUixpREFBaUQ7RUFBRSxtQ0FBQTtFQUNuRCxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZiw2QkFBNkI7RUFDN0IsbUNBQW1DO0VBQ25DLDJGQUF3RjtFQUN4RiwrTUFBME0sRUFBQTs7QUFLNU07RUFDRSwwQ0FBQTtFQUNBLFFBQUk7RUFDSixVQUFJO0VBQ0osWUFBSTtFQUNKLEdBQUE7RUFDQSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFFBQVE7RUFDUixpREFBaUQ7RUFBRSxtQ0FBQTtFQUNuRCxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZiw2QkFBNkI7RUFDN0IsbUNBQW1DO0VBQ25DLDJGQUF3RjtFQUN4RiwrTUFBME0sRUFBQTs7QUFHNU07Ozs7OztFQU1FLGFBQWE7RUFDYixZQUFZO0VBQ1osc0NBQXNDO0VBQ3RDLHNCQUFzQixFQUFBOztBQVR4Qjs7Ozs7O0lBWUksc0NBQXNDLEVBQUE7O0FBSTFDOzs7O0VBSUUsV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLGtCQUFrQjtFQUFFLHVCQUFBO0VBQ3BCLGtCQUFrQjtFQUFFLFlBQUE7RUFDcEIsVUFBVTtFQUNWLFlBQVk7RUFLWix5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSxNQUFNO0VBQ04sT0FBTztFQUtQLHlCQUF5QixFQUFBOztBQUczQjtFQUNFLE1BQU07RUFDTixPQUFPO0VBS1AseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsU0FBUztFQUNULFFBQVE7RUFLUix3QkFBd0I7RUFDeEIscUJBQXFCLEVBQUE7O0FBR3ZCO0VBQ0UsTUFBTTtFQUNOLE9BQU87RUFLUCx3QkFBd0IsRUFBQTs7QUFHMUI7RUFDRSxNQUFNO0VBQ04sT0FBTztFQUtQLHdCQUF3QixFQUFBOztBQUcxQjtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osY0FBYztFQUNkLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2Qsb0JBQW9CO0VBQ3BCLFlBQVksRUFBQTs7QUFHZDtFQUNFLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxtQkFBbUIsRUFBQTs7QUFHckI7Ozs7OztFQU1FLGFBQWE7RUFDYixZQUFZO0VBQ1osc0NBQXNDO0VBQ3RDLHNCQUFzQixFQUFBOztBQUd4Qjs7OztFQUlFLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxrQkFBa0I7RUFBRSx1QkFBQTtFQUNwQixrQkFBa0I7RUFBRSxZQUFBO0VBQ3BCLFdBQVc7RUFDWCxZQUFZO0VBS1oseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsTUFBTTtFQUNOLE9BQU87RUFLUCx5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSxNQUFNO0VBQ04sT0FBTztFQUtQLHlCQUF5QixFQUFBOztBQUczQjtFQUNFLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxRQUFRO0VBS1Isd0JBQXdCO0VBQ3hCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLE1BQU07RUFDTixPQUFPO0VBS1Asd0JBQXdCLEVBQUE7O0FBRzFCO0VBQ0UsTUFBTTtFQUNOLE9BQU87RUFLUCx3QkFBd0IsRUFBQTs7QUFHMUI7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLG9CQUFvQjtFQUNwQixZQUFZLEVBQUE7O0FBR2Q7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsbUJBQW1CLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3Byb2R1Y3RzL3Byb2R1Y3RzLmNsZWFyYW5jZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mdWxsc2NyZWVue1xyXG5cclxufVxyXG5cclxuLnN0YWNrLXRvcCB7XHJcbiAgLyogYWRqdXN0IHRoZSBiZWxvdyB0byBjb250cm9sIHRoZSBzaGFwZSAqL1xyXG4gIC0tZDogNXB4O1xyXG4gIC0tdzogMTAwcHg7XHJcbiAgLS1jOiAjMDA2Njk5O1xyXG4gIC8qKi9cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDI5LjI5JSwgLTEwMCUpIHJvdGF0ZSg0NWRlZyk7IC8qIDI5LjI5JSA9IDEwMCUqKDEgLSBjb3MoNDVkZWcpKSAqL1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB3aWR0aDogdmFyKC0tdyk7XHJcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XHJcbiAgcGFkZGluZzogNXB4IDAgY2FsYyh2YXIoLS1kKSArIDVweCk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMC42KSAwIDApIGJvdHRvbS8xMDAlIHZhcigtLWQpIG5vLXJlcGVhdCB2YXIoLS1jKTtcclxuICBjbGlwLXBhdGg6IHBvbHlnb24oMCAxMDAlLDAgY2FsYygxMDAlIC0gdmFyKC0tZCkpLDUwJSBjYWxjKDEwMCUgLSB2YXIoLS1kKSAtIHZhcigtLXcpLzIpLDEwMCUgY2FsYygxMDAlIC0gdmFyKC0tZCkpLDEwMCUgMTAwJSxjYWxjKDEwMCUgLSB2YXIoLS1kKSkgY2FsYygxMDAlIC0gdmFyKC0tZCkpLCB2YXIoLS1kKSBjYWxjKDEwMCUgLSB2YXIoLS1kKSkpXHJcbn1cclxuXHJcblxyXG5cclxuLnN0YWNrLW5ldyB7XHJcbiAgLyogYWRqdXN0IHRoZSBiZWxvdyB0byBjb250cm9sIHRoZSBzaGFwZSAqL1xyXG4gIC0tZDogNXB4O1xyXG4gIC0tdzogMTAwcHg7XHJcbiAgLS1jOiAjMDA2Njk5O1xyXG4gIC8qKi9cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDI5LjI5JSwgLTEwMCUpIHJvdGF0ZSg0NWRlZyk7IC8qIDI5LjI5JSA9IDEwMCUqKDEgLSBjb3MoNDVkZWcpKSAqL1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB3aWR0aDogdmFyKC0tdyk7XHJcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XHJcbiAgcGFkZGluZzogNXB4IDAgY2FsYyh2YXIoLS1kKSArIDVweCk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMC42KSAwIDApIGJvdHRvbS8xMDAlIHZhcigtLWQpIG5vLXJlcGVhdCB2YXIoLS1jKTtcclxuICBjbGlwLXBhdGg6IHBvbHlnb24oMCAxMDAlLDAgY2FsYygxMDAlIC0gdmFyKC0tZCkpLDUwJSBjYWxjKDEwMCUgLSB2YXIoLS1kKSAtIHZhcigtLXcpLzIpLDEwMCUgY2FsYygxMDAlIC0gdmFyKC0tZCkpLDEwMCUgMTAwJSxjYWxjKDEwMCUgLSB2YXIoLS1kKSkgY2FsYygxMDAlIC0gdmFyKC0tZCkpLCB2YXIoLS1kKSBjYWxjKDEwMCUgLSB2YXIoLS1kKSkpXHJcbn1cclxuXHJcblxyXG5cclxuLnN0YWNrLW9ucHJvbW90aW9uIHtcclxuICAvKiBhZGp1c3QgdGhlIGJlbG93IHRvIGNvbnRyb2wgdGhlIHNoYXBlICovXHJcbiAgLS1kOiA1cHg7XHJcbiAgLS13OiAxMDBweDtcclxuICAtLWM6ICM3NjBCMUY7XHJcbiAgLyoqL1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjkuMjklLCAtMTAwJSkgcm90YXRlKDQ1ZGVnKTsgLyogMjkuMjklID0gMTAwJSooMSAtIGNvcyg0NWRlZykpICovXHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiB2YXIoLS13KTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcclxuICBwYWRkaW5nOiA1cHggMCBjYWxjKHZhcigtLWQpICsgNXB4KTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjYpIDAgMCkgYm90dG9tLzEwMCUgdmFyKC0tZCkgbm8tcmVwZWF0IHZhcigtLWMpO1xyXG4gIGNsaXAtcGF0aDogcG9seWdvbigwIDEwMCUsMCBjYWxjKDEwMCUgLSB2YXIoLS1kKSksNTAlIGNhbGMoMTAwJSAtIHZhcigtLWQpIC0gdmFyKC0tdykvMiksMTAwJSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksMTAwJSAxMDAlLGNhbGMoMTAwJSAtIHZhcigtLWQpKSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksIHZhcigtLWQpIGNhbGMoMTAwJSAtIHZhcigtLWQpKSlcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lcixcclxuLnByaWNlLWNvbnRhaW5lcjpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXI6YWZ0ZXIsXHJcbi5wcmljZS1jb250YWluZXIgLnByaWNlLFxyXG4ucHJpY2UtY29udGFpbmVyIC5wcmljZTpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXIgLnByaWNlOmFmdGVyIHtcclxuICBoZWlnaHQ6IDguNWVtO1xyXG4gIHdpZHRoOiA4LjVlbTtcclxuICBiYWNrZ3JvdW5kOiAjNzYwQjFGIHRvcCBsZWZ0IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDguNWVtO1xyXG5cclxuICAuYmx1ZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMjgyNWJkIHRvcCBsZWZ0IG5vLXJlcGVhdDtcclxuICB9XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXI6YmVmb3JlLFxyXG4ucHJpY2UtY29udGFpbmVyOmFmdGVyLFxyXG4ucHJpY2UtY29udGFpbmVyIC5wcmljZTpiZWZvcmUsXHJcbi5wcmljZS1jb250YWluZXIgLnByaWNlOmFmdGVyIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lciB7XHJcbiAgbWFyZ2luOiAxMDBweCBhdXRvOyAvKiBDZW50ZXJpbmcgZm9yIGRlbW8gKi9cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIENvbnRleHQgKi9cclxuICB0b3A6IDEuNWVtO1xyXG4gIGxlZnQ6IC03LjVlbTtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lcjpiZWZvcmUge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyOmFmdGVyIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2Uge1xyXG4gIHBhZGRpbmc6IC41ZW0gMGVtO1xyXG4gIGhlaWdodDogOC41ZW07XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAtby10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIHotaW5kZXg6IDEgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2U6YmVmb3JlIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXIgLnByaWNlOmFmdGVyIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDc1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDc1ZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDc1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg3NWRlZyk7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXIgLnByaWNlIHNwYW4ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAxMDA7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGNvbG9yOiAjRkUzRDVDO1xyXG4gIGZvbnQ6IDFlbSBTYW5zLVNlcmlmO1xyXG4gIGhlaWdodDogMzhweDtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lciAucHJpY2Ugc3Bhbi5udW1iZXIge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc2l6ZTogMS44ZW07XHJcbiAgbGluZS1oZWlnaHQ6IC45ZW07XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lci1ibHVlLFxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWU6YmVmb3JlLFxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWU6YWZ0ZXIsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2UsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2U6YmVmb3JlLFxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWUgLnByaWNlOmFmdGVyIHtcclxuICBoZWlnaHQ6IDguNWVtO1xyXG4gIHdpZHRoOiA4LjVlbTtcclxuICBiYWNrZ3JvdW5kOiAjMjgyNWJkIHRvcCBsZWZ0IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDguNWVtO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWU6YmVmb3JlLFxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWU6YWZ0ZXIsXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2U6YmVmb3JlLFxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWUgLnByaWNlOmFmdGVyIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lci1ibHVlIHtcclxuICBtYXJnaW46IDEwMHB4IGF1dG87IC8qIENlbnRlcmluZyBmb3IgZGVtbyAqL1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogQ29udGV4dCAqL1xyXG4gIHRvcDogLTcuNWVtO1xyXG4gIGxlZnQ6IC0xLjVlbTtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxufVxyXG5cclxuLnByaWNlLWNvbnRhaW5lci1ibHVlOmJlZm9yZSB7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTMwZGVnKTtcclxuICAtby10cmFuc2Zvcm06IHJvdGF0ZSgtMzBkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKC0zMGRlZyk7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZTphZnRlciB7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcclxuICAtby10cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2Uge1xyXG4gIHBhZGRpbmc6IC41ZW0gMGVtO1xyXG4gIGhlaWdodDogOC41ZW07XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgei1pbmRleDogMSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWUgLnByaWNlOmJlZm9yZSB7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcclxuICAtby10cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWUgLnByaWNlOmFmdGVyIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDc1ZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDc1ZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNzVkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDc1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg3NWRlZyk7XHJcbn1cclxuXHJcbi5wcmljZS1jb250YWluZXItYmx1ZSAucHJpY2Ugc3BhbiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDEwMDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6ICNGRTNENUM7XHJcbiAgZm9udDogMWVtIFNhbnMtU2VyaWY7XHJcbiAgaGVpZ2h0OiAzOHB4O1xyXG59XHJcblxyXG4ucHJpY2UtY29udGFpbmVyLWJsdWUgLnByaWNlIHNwYW4ubnVtYmVyIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IDEuOGVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAuOWVtO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuIl19 */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Pipe, PipeTransform } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\n\r\n\r\n@Component({\r\n selector: 'products.clearance',\r\n templateUrl: './products.clearance.component.html',\r\n styleUrls: ['./products.clearance.component.scss']\r\n})\r\n\r\n\r\nexport class ProductsClearanceComponent implements OnInit {\r\n \r\n loadingIndicator: boolean;\r\n\r\n rows: Inventory[] = [];\r\n rowsCache: Inventory[] = [];\r\n inventoryList: Inventory[] = [];\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n stockCodedetail: Inventory;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n hasDataSheet: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n hasImpaCodes: boolean;\r\n hasAddDataSheet: boolean;\r\n buyerResponsible: string;\r\n branchCode: string;\r\n currentIndex: number;\r\n showAdvert: boolean;\r\n elem: HTMLElement;\r\n timer: any;\r\n\r\n\r\n constructor(private alertService: AlertService, private fowkesService: FowkesOnlineService,\r\n private sysproService: SysproService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n this.currentIndex = 0;\r\n this.showAdvert = false;\r\n\r\n\r\n //setInterval(() => {\r\n // this.currentIndex = (this.currentIndex + 1) % this.rows.length;\r\n //}, 5000); // Change image every 5 seconds\r\n\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.branchCode = \"CLEARANCE\";\r\n this.sysproService.getInventoryForAdverts(this.branchCode).subscribe(x => this.onStockListLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n onStockListLoadSuccessful(inventory: any[], trim?: boolean): void {\r\n const stockCodes = inventory[0];\r\n\r\n if (!Array.isArray(stockCodes)) {\r\n // Handle the case when stockCodes is not an array\r\n // Display an error message, log the issue, or handle it as per your requirements\r\n return;\r\n }\r\n\r\n const newData = stockCodes.map((stockCode, index) => {\r\n return {\r\n ...stockCode,\r\n index: index + 1,\r\n description: stockCode.shortDescription + ' - ' + stockCode.longDescription\r\n };\r\n });\r\n\r\n this.inventoryList = newData;\r\n\r\n this.rowsCache = this.inventoryList;\r\n\r\n this.rows = [...this.rowsCache];\r\n\r\n // Remove the previous setInterval, if any\r\n if (this.timer) {\r\n clearInterval(this.timer);\r\n }\r\n\r\n this.timer = setInterval(() => {\r\n this.currentIndex = (this.currentIndex + 1) % this.rows.length;\r\n this.onStockCodeLoadSuccessful(this.rows[this.currentIndex]);\r\n }, 10000); // Change image every 10 seconds\r\n }\r\n\r\n\r\n onStockCodeLoadSuccessful(row: any): void {\r\n\r\n if (row) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail = row;\r\n this.hasDataSheet = false;\r\n this.hasSpecials = false;\r\n this.hasImpaCodes = false;\r\n\r\n if (this.stockCodedetail) {\r\n if (this.stockCodedetail.dataSheetImage) {\r\n this.hasDataSheet = true;\r\n this.stockCodedetail.dataSheetImage = encodeURIComponent(this.stockCodedetail.dataSheetImage);\r\n }\r\n if (this.stockCodedetail.addSheetImage) {\r\n this.hasAddDataSheet = true;\r\n this.stockCodedetail.addSheetImage = encodeURIComponent(this.stockCodedetail.addSheetImage);\r\n }\r\n if (this.stockCodedetail.specialsImage) {\r\n this.hasSpecials = true;\r\n this.stockCodedetail.specialsImage = encodeURIComponent(this.stockCodedetail.specialsImage);\r\n }\r\n if (this.stockCodedetail.impaCodes && this.stockCodedetail.impaCodes.trim() != \"\") {\r\n this.hasImpaCodes = true;\r\n }\r\n }\r\n this.stockCodedetail.stockCodeImage = this.stockCodedetail.stockCodeImage;// this.ensureUrlEncoded(this.stockCodedetail.stockCodeImage);\r\n\r\n }\r\n \r\n }\r\n\r\n ensureUrlEncoded(url: string): string {\r\n if (url && !url.includes('%')) {\r\n return encodeURIComponent(url);\r\n }\r\n return url;\r\n }\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n\r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return; }\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n //this.alternateKey = row.alternateKey;\r\n this.sysproService.getStockCodeAvailableQuantities(row.alternateKey).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n openSpecials(specialsImg: string) {\r\n if (!!specialsImg && specialsImg != \"\") {\r\n window.open(this.stockCodedetail.filePath + \"/SpecialImages/\" + specialsImg, \"_blank\");\r\n }\r\n }\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJvZHVjdHMvcHJvZHVjdHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'products',\r\n templateUrl: './products.component.html',\r\n styleUrls: ['./products.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ProductsComponent {\r\n\r\n isListActivated = true;\r\n isCMCategoriesActivated = false;\r\n isMetaTagsActivated = false;\r\n isCMImagesActivated = false;\r\n isStockCodesActivated = false;\r\n isDataSheetsActivated = false;\r\n isStockNewActivated = false;\r\n isCMSImagesActivated = false;\r\n isVideosActivated = false;\r\n isBrandsActivated = false;\r\n isCatalogueActivated = false;\r\n isCatagoryCatalogueActivated = false;\r\n isCalculatorActivated = false;\r\n\r\n isCollapsed = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly inventoryListTab = 'inventory';\r\n readonly categoriesTab = 'cmcategories';\r\n readonly metaTagsTab = 'metatags';\r\n readonly imagesTab = 'cmimages';\r\n readonly stockcodesTab = 'stockcodes';\r\n readonly datasheetsTab = 'datasheets';\r\n readonly stocknewTab = 'stocknew';\r\n readonly stockimagesTab = 'cmsimages';\r\n readonly videosTab = 'videos';\r\n readonly brandsTab = 'brands';\r\n readonly catalogueTab = 'catalogue';\r\n readonly catagoryCatalogueTab = 'categorycatalogue';\r\n readonly calculatorTab = 'calculator';\r\n\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n sub: any;\r\n id: any = \"\";\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private accountService: AccountService,\r\n private configurations: ConfigurationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n //this.sub = this.route.queryParams.subscribe(params => {\r\n // this.id = params['customer'];\r\n //});\r\n\r\n\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor, this.id));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n showContent(anchor: string, test: any) {\r\n\r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.inventoryListTab}Tab`);\r\n\r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isListActivated = activeTab == this.inventoryListTab;\r\n this.isCMCategoriesActivated = activeTab == this.categoriesTab;\r\n this.isMetaTagsActivated = activeTab == this.metaTagsTab;\r\n this.isCMImagesActivated = activeTab == this.imagesTab;\r\n this.isStockCodesActivated = activeTab == this.stockcodesTab;\r\n this.isDataSheetsActivated = activeTab == this.datasheetsTab;\r\n this.isStockNewActivated = activeTab == this.stocknewTab;\r\n this.isCMSImagesActivated = activeTab == this.stockimagesTab;\r\n this.isVideosActivated = activeTab == this.videosTab;\r\n this.isBrandsActivated = activeTab == this.brandsTab;\r\n this.isCatalogueActivated = activeTab == this.catalogueTab;\r\n this.isCatagoryCatalogueActivated = activeTab == this.catagoryCatalogueTab;\r\n this.isCalculatorActivated = activeTab == this.calculatorTab;\r\n\r\n\r\n this.router.navigate([], { fragment: activeTab, queryParams: { customer: this.id } });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isListActivated = activeTab == this.inventoryListTab;\r\n this.isCMCategoriesActivated = activeTab == this.categoriesTab;\r\n this.isMetaTagsActivated = activeTab == this.metaTagsTab;\r\n this.isCMImagesActivated = activeTab == this.imagesTab;\r\n this.isStockCodesActivated = activeTab == this.stockcodesTab;\r\n this.isDataSheetsActivated = activeTab == this.datasheetsTab;\r\n this.isStockNewActivated = activeTab == this.stocknewTab;\r\n this.isCMSImagesActivated = activeTab == this.stockimagesTab;\r\n this.isVideosActivated = activeTab == this.videosTab;\r\n this.isBrandsActivated = activeTab == this.brandsTab;\r\n this.isCatalogueActivated = activeTab == this.catalogueTab;\r\n this.isCatagoryCatalogueActivated = activeTab == this.catagoryCatalogueTab;\r\n this.isCalculatorActivated = activeTab == this.calculatorTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n get canViewCustomers() {\r\n return true;\r\n }\r\n\r\n get canManageInventory() {\r\n return this.accountService.userHasPermission(Permission.manageInventoryPermission);\r\n }\r\n\r\n\r\n get canViewCatalogue() {\r\n return this.accountService.userHasPermission(Permission.viewCataloguePermission);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{video.title}}

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

{{video.description}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.UserNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{video.detail}}

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

{{video.sequence}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.UserNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{video.url}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.UserNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{video.detail}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.UserNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJvZHVjdHMvcHJvZHVjdHMubmV3dmlkZW9zLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Video } from '../../models/video.model';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'newvideos',\r\n templateUrl: './products.newvideos.component.html',\r\n styleUrls: ['./products.newvideos.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class NewVideosComponent {\r\n\r\n public formResetToggle = true;\r\n\r\n private video: Video = new Video();\r\n\r\n private isEditMode: boolean;\r\n\r\n private isSaving: boolean;\r\n\r\n @ViewChild('userName')\r\n private userName;\r\n\r\n @ViewChild('jobTitle')\r\n private jobTitle;\r\n\r\n @ViewChild('sequence')\r\n private sequence;\r\n\r\n @ViewChild('url')\r\n private url;\r\n\r\n @ViewChild('ispreview')\r\n private ispreview;\r\n\r\n @ViewChild('detail')\r\n private detail;\r\n\r\n constructor(private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute, private accountService: AccountService, private authService: AuthService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.isEditMode = true;\r\n }\r\n\r\n\r\n //ngOnDestroy() {\r\n //}\r\n\r\n newVideo() {\r\n //this.isGeneralEditor = true;\r\n //this.isNewUser = true;\r\n\r\n //this.allRoles = [...allRoles];\r\n //this.allBranches = [...allBranches];\r\n //this.allApplications = [...allApplications];\r\n //this.editingUserName = null;\r\n //this.user = this.userEdit = new UserEdit();\r\n //this.userEdit.isEnabled = true;\r\n //this.edit();\r\n\r\n //console.log(this.userEdit);\r\n //return this.userEdit;\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n this.video.createdBy = this.authService.currentUser.email;\r\n\r\n this.sysproService.newVideo(this.video).subscribe(_response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n\r\n //if (this.isEditingSelf) {\r\n // //Set local branch storage\r\n // this.localStorage.saveSyncedSessionData(this.userEdit.branch, `${TodoDemoComponent.DBKeyTodoDemo}:${this.currentUserId}`);\r\n // }\r\n //}\r\n\r\n //if (this.isNewUser) {\r\n // this.userEdit.sysproSessionId = \"\"; //Requires SysproSessionId\r\n // let configString = '{\"language\":\"en\",\"themeId\":15,\"homeUrl\":\"/\",\"showDashboardStatistics\":false,\"showDashboardNotifications\":false,\"showDashboardTodo\":false,\"showDashboardBanner\":false,';\r\n // configString = configString + '\"applicationName\":\"' + this.userEdit.aspnetApplication + '\", \"branchCode\":\"' + this.userEdit.branch + '\", \"loadCache\":' + (this.userEdit.branch == \"CT\" ? 'true' : 'false') + '}';\r\n // this.userEdit.configuration = configString;\r\n // console.log(\"NEW USER CONFIG\", this.userEdit.configuration);\r\n // this.accountService.newUser(this.userEdit).subscribe(user => this.saveSuccessHelper(user), error => this.saveFailedHelper(error));\r\n //} else {\r\n // console.log(\"EXISITING USER CONFIG\", this.userEdit.configuration);\r\n // this.accountService.updateUser(this.userEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n //}\r\n }\r\n\r\n private saveSuccessHelper() {\r\n\r\n //this.savedLineCount++;\r\n //if (this.saveCount === this.savedLineCount) {\r\n // this.cartSaved = true;\r\n\r\n // this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.isSaving = false;\r\n this.isEditMode = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', ` Updated successfully`, MessageSeverity.success);\r\n\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" style=\\\"padding-top: 1px;\\\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1 && hasOrphinRecords\\\" style=\\\"padding-top: 1px;\\\">\\r\\n \\r\\n
\\r\\n
= 1 && showExport\\\" style=\\\"padding-top: 1px;\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"page-container\\\" style=\\\"margin-top: -3px\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{row.categoryTree}}\\r\\n \\r\\n\\r\\n {{row.categoryTree}} \\r\\n \\r\\n \\r\\n {{row.stockCode}}\\r\\n \\r\\n {{row.stockCode}} \\r\\n \\r\\n \\r\\n {{row.description}}\\r\\n \\r\\n {{row.description}} \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n {{row.qtyCT}}\\r\\n \\r\\n {{row.binLocCT}}\\r\\n \\r\\n {{row.qtyCombined}}\\r\\n \\r\\n {{row.createDate}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{stockCodedetail.topSellerText}}
\\r\\n \\\"{{stockCodedetail.stockCodeImage}}\\\"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n     \\r\\n \\r\\n
\\r\\n
\\r\\n     \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"\\\"\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{image.imageName}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"control-detail-edit\\\">\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Last updated on {{stockCodedetail.modifiedDate | date: 'dd MMM yyyy HH:mm'}}\\r\\n Created on {{stockCodedetail.createDate | date: 'dd MMM yyyy HH:mm'}}\\r\\n
\\r\\n
\\r\\n Next Gen Id: {{stockCodedetail.id}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n.datatable-header-cell {\\n display: flex !important;\\n align-items: center !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row red {\\n background-color: red; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.table tr {\\n height: 20px; }\\n\\n.tbody {\\n max-height: 200px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 98%; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.control-label.right {\\n text-align: right; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n:host /deep/ .treeview-container .row-item {\\n margin-bottom: .3rem;\\n width: 400px; }\\n\\n:host /deep/ .treeview-container {\\n height: calc(100vh - 100px);\\n max-height: 1000px !important; }\\n\\n:host /deep/ .treeview-header {\\n visibility: hidden;\\n margin: -26px; }\\n\\n.tree-rows {\\n margin-left: 20px;\\n background-color: white;\\n height: 30px; }\\n\\n.tree-rows .categories {\\n border-bottom: 1px solid;\\n border-bottom-color: whitesmoke; }\\n\\n.tree-rows .items {\\n height: 20px; }\\n\\n.grid {\\n display: grid;\\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\\n grid-gap: 20px;\\n align-items: stretch; }\\n\\n.grid img {\\n border: 1px solid #ccc;\\n box-shadow: 2px 2px 6px 0px rgba(0, 0, 0, 0.3);\\n max-width: 100%; }\\n\\n.image-container {\\n padding-top: 10px;\\n max-height: 300px;\\n overflow-y: auto;\\n overflow-x: hidden;\\n border: 5px #dddced;\\n border-radius: 8px;\\n width: 100%;\\n box-shadow: 0 0 5px #d6dfd1; }\\n\\n.image-preview {\\n padding: 0;\\n margin-bottom: -5px;\\n box-shadow: -1px 4px 7px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n/* Works on Firefox */\\n\\n* {\\n scrollbar-width: thin;\\n scrollbar-color: lightgray white; }\\n\\n/* Works on Chrome, Edge, and Safari */\\n\\n*::-webkit-scrollbar {\\n width: 12px; }\\n\\n*::-webkit-scrollbar-track {\\n background: white; }\\n\\n*::-webkit-scrollbar-thumb {\\n background-color: lightgray;\\n border-radius: 20px;\\n border: 3px solid white; }\\n\\n.category-header {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.item-row {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.custom-checkbox.right.disabled input[type=\\\"checkbox\\\"]:checked + label:after {\\n background-color: grey;\\n border-color: grey; }\\n\\n.stack-top {\\n /* adjust the below to control the shape */\\n --d: 5px;\\n --w: 100px;\\n --c: #006699;\\n /**/\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(29.29%, -100%) rotate(45deg);\\n /* 29.29% = 100%*(1 - cos(45deg)) */\\n color: #fff;\\n text-align: center;\\n width: var(--w);\\n transform-origin: bottom left;\\n padding: 5px 0 calc(var(--d) + 5px);\\n background: linear-gradient(rgba(0, 0, 0, 0.6) 0 0) bottom/100% var(--d) no-repeat var(--c);\\n clip-path: polygon(0 100%, 0 calc(100% - var(--d)), 50% calc(100% - var(--d) - var(--w)/2), 100% calc(100% - var(--d)), 100% 100%, calc(100% - var(--d)) calc(100% - var(--d)), var(--d) calc(100% - var(--d))); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy5zdG9ja2NvZGVzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUdqQztFQUNFLHdCQUF3QjtFQUN4Qiw4QkFBOEIsRUFBQTs7QUFHaEM7RUFFSSxxQkFBcUIsRUFBQTs7QUFJekI7RUFDRSwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFPSSxtQkFBbUIsRUFBQTs7QUFQdkI7SUFXSSxnQkFBZ0I7SUFDaEIsMEJBQTBCLEVBQUE7O0FBWjlCO0lBZ0JJLDBCQUEwQixFQUFBOztBQUk5QjtFQUNFLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLFlBQVksRUFBQTs7QUFHZDtFQUNFLFlBQVksRUFBQTs7QUFJZDtFQUNFLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixVQUFVLEVBQUE7O0FBR1o7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBR3JCO0VBRUksaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0UsMkJBQTJCO0VBQzNCLGlCQUFpQixFQUFBOztBQUduQjtFQUNJLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLFNBQVMsRUFBQTs7QUFHYjtFQUNJLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7O0FBR3BCO0VBQ0ksV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixpQkFBaUIsRUFBQTs7QUFHckI7RUFDRSxvQkFBb0I7RUFDcEIsWUFBWSxFQUFBOztBQUdkO0VBQ0UsMkJBQTJCO0VBQzNCLDZCQUE2QixFQUFBOztBQUkvQjtFQUNFLGtCQUFrQjtFQUNsQixhQUFhLEVBQUE7O0FBR2Y7RUFDRSxpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLFlBQVksRUFBQTs7QUFIZDtJQU1JLHdCQUF3QjtJQUN4QiwrQkFBK0IsRUFBQTs7QUFQbkM7SUFXSSxZQUFZLEVBQUE7O0FBSWhCO0VBQ0UsYUFBYTtFQUNiLDREQUE0RDtFQUM1RCxjQUFjO0VBQ2Qsb0JBQW9CLEVBQUE7O0FBR3RCO0VBQ0Usc0JBQXNCO0VBQ3RCLDhDQUEyQztFQUMzQyxlQUFlLEVBQUE7O0FBR2pCO0VBQ0UsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsV0FBVztFQUNYLDJCQUFzQyxFQUFBOztBQUd4QztFQUNFLFVBQVU7RUFDVixtQkFBbUI7RUFHbkIsaURBQThDO0VBQzlDLGtCQUFrQixFQUFBOztBQUdwQixxQkFBQTs7QUFDQTtFQUNFLHFCQUFxQjtFQUNyQixnQ0FBZ0MsRUFBQTs7QUFHbEMsc0NBQUE7O0FBQ0E7RUFDRSxXQUFXLEVBQUE7O0FBR2I7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSwyQkFBMkI7RUFDM0IsbUJBQW1CO0VBQ25CLHVCQUF1QixFQUFBOztBQUd6QjtFQUNFLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBR3RCLGtEQUErQztFQUMvQyxrQkFBa0IsRUFBQTs7QUFJcEI7RUFDRSxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUd0QixrREFBK0M7RUFDL0Msa0JBQWtCLEVBQUE7O0FBWXBCO0VBRUUsc0JBQXNCO0VBQ3RCLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLDBDQUFBO0VBQ0EsUUFBSTtFQUNKLFVBQUk7RUFDSixZQUFJO0VBQ0osR0FBQTtFQUNBLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sUUFBUTtFQUNSLGlEQUFpRDtFQUFFLG1DQUFBO0VBQ25ELFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLDZCQUE2QjtFQUM3QixtQ0FBbUM7RUFDbkMsMkZBQXdGO0VBQ3hGLCtNQUEwTSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9wcm9kdWN0cy5zdG9ja2NvZGVzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IHtcclxuICByZWQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuLnRhYmxlIHRoIHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi50YWJsZSB0ciB7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG5cclxuLnRib2R5IHtcclxuICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG4gIHdpZHRoOiA5OCU7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgaGVpZ2h0OiAyNnB4O1xyXG4gIGZvbnQtc2l6ZTogMC43MDByZW07XHJcbn1cclxuXHJcbi5jb250cm9sLWxhYmVsLnJpZ2h0IHtcclxuIFxyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbjpob3N0IC9kZWVwLyAudHJlZXZpZXctY29udGFpbmVyIC5yb3ctaXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogLjNyZW07XHJcbiAgd2lkdGg6IDQwMHB4O1xyXG59XHJcblxyXG46aG9zdCAvZGVlcC8gLnRyZWV2aWV3LWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTAwcHgpO1xyXG4gIG1heC1oZWlnaHQ6IDEwMDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuOmhvc3QgL2RlZXAvIC50cmVldmlldy1oZWFkZXIge1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBtYXJnaW46IC0yNnB4O1xyXG59XHJcblxyXG4udHJlZS1yb3dzIHtcclxuICBtYXJnaW4tbGVmdDogMjBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICBoZWlnaHQ6IDMwcHg7XHJcblxyXG4gIC5jYXRlZ29yaWVzIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlc21va2U7XHJcbiAgfVxyXG5cclxuICAuaXRlbXMge1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmdyaWQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpO1xyXG4gIGdyaWQtZ2FwOiAyMHB4O1xyXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG59XHJcblxyXG4uZ3JpZCBpbWcge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgYm94LXNoYWRvdzogMnB4IDJweCA2cHggMHB4IHJnYmEoMCwwLDAsMC4zKTtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5pbWFnZS1jb250YWluZXIge1xyXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gIG1heC1oZWlnaHQ6IDMwMHB4O1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIGJvcmRlcjogNXB4ICNkZGRjZWQ7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiKDIxNCwgMjIzLCAyMDkpO1xyXG59XHJcblxyXG4uaW1hZ2UtcHJldmlldyB7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTFweCA0cHggN3B4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDdweCAtN3B4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgYm94LXNoYWRvdzogLTFweCA0cHggN3B4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcbi8qIFdvcmtzIG9uIEZpcmVmb3ggKi9cclxuKiB7XHJcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xyXG4gIHNjcm9sbGJhci1jb2xvcjogbGlnaHRncmF5IHdoaXRlO1xyXG59XHJcblxyXG4vKiBXb3JrcyBvbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkgKi9cclxuKjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gIHdpZHRoOiAxMnB4O1xyXG59XHJcblxyXG4qOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbn1cclxuXHJcbio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XHJcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICBib3JkZXI6IDNweCBzb2xpZCB3aGl0ZTtcclxufVxyXG5cclxuLmNhdGVnb3J5LWhlYWRlciB7XHJcbiAgcGFkZGluZzogLjJyZW0gMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG5cclxuXHJcbi5pdGVtLXJvdyB7XHJcbiAgcGFkZGluZzogLjJyZW0gMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG5cclxuLmN1c3RvbS1jaGVja2JveC5yaWdodCB7XHJcblxyXG59XHJcblxyXG4uY3VzdG9tLWNoZWNrYm94LnJpZ2h0IGxhYmVsOmJlZm9yZSxcclxuLmN1c3RvbS1jaGVja2JveC5yaWdodCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xyXG4gXHJcbn1cclxuXHJcbi5jdXN0b20tY2hlY2tib3gucmlnaHQuZGlzYWJsZWQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6IGdyZXk7XHJcbiAgYm9yZGVyLWNvbG9yOiBncmV5O1xyXG59XHJcblxyXG4uc3RhY2stdG9wIHtcclxuICAvKiBhZGp1c3QgdGhlIGJlbG93IHRvIGNvbnRyb2wgdGhlIHNoYXBlICovXHJcbiAgLS1kOiA1cHg7XHJcbiAgLS13OiAxMDBweDtcclxuICAtLWM6ICMwMDY2OTk7XHJcbiAgLyoqL1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjkuMjklLCAtMTAwJSkgcm90YXRlKDQ1ZGVnKTsgLyogMjkuMjklID0gMTAwJSooMSAtIGNvcyg0NWRlZykpICovXHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiB2YXIoLS13KTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcclxuICBwYWRkaW5nOiA1cHggMCBjYWxjKHZhcigtLWQpICsgNXB4KTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjYpIDAgMCkgYm90dG9tLzEwMCUgdmFyKC0tZCkgbm8tcmVwZWF0IHZhcigtLWMpO1xyXG4gIGNsaXAtcGF0aDogcG9seWdvbigwIDEwMCUsMCBjYWxjKDEwMCUgLSB2YXIoLS1kKSksNTAlIGNhbGMoMTAwJSAtIHZhcigtLWQpIC0gdmFyKC0tdykvMiksMTAwJSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksMTAwJSAxMDAlLGNhbGMoMTAwJSAtIHZhcigtLWQpKSBjYWxjKDEwMCUgLSB2YXIoLS1kKSksIHZhcigtLWQpIGNhbGMoMTAwJSAtIHZhcigtLWQpKSlcclxufVxyXG4iXX0= */\"","\r\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { TreeviewComponent, TreeviewConfig, TreeviewItem } from 'ngx-treeview';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Brand } from '../../models/brand.model';\r\nimport { CMCategories } from '../../models/cms-category.model';\r\nimport { CMStockCode } from '../../models/cms-stockcode.model';\r\nimport { CMSAdditionalImage } from '../../models/cms-additional-images.model';\r\nimport { localStorageActions } from '../../models/enums';\r\nimport { SimpleTree } from '../../models/simple-tree.model';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../services/fowkes-online.service';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { SysproService } from '../../services/syspro.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n\r\n@Component({\r\n selector: 'stockcodes',\r\n templateUrl: './products.stockcodes.component.html',\r\n styleUrls: ['./products.stockcodes.component.scss']\r\n})\r\n\r\n\r\nexport class StockCodesComponent implements OnInit {\r\n\r\n loadingIndicator: boolean;\r\n inventoryList: Inventory[];\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n @ViewChild('categoryListSelector')\r\n private categoryListSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n categorySelected: string = \"\";\r\n categoryList: CMCategories[] = [];\r\n categoryListChangeParent: CMCategories[] = [];\r\n changeParent: boolean = false;\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: Inventory[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n columns: any[] = [];\r\n rows: Inventory[] = [];\r\n rowsCache: Inventory[] = [];\r\n\r\n searchingOn: string;\r\n chkShortDescription: boolean;\r\n chkLongDescription: boolean;\r\n chkAnyDescription: boolean;\r\n hasAddDataSheets: boolean;\r\n hasAdditionalImages: boolean;\r\n\r\n\r\n @ViewChild('brandListSelector')\r\n private brandListSelector;\r\n brandSelected: string = \"\";\r\n brandList: Brand[] = [];\r\n\r\n @ViewChild('alternateListSelector')\r\n private alternateListSelector;\r\n alternateSelected: string = \"\";\r\n alternatesList: any[] = [];\r\n\r\n newAdditionalImageData = new FormData();\r\n newStockImageData = new FormData();\r\n newSpecialsImageData = new FormData();\r\n newDatasheetImageData = new FormData();\r\n newAddDatasheetImageData = new FormData();\r\n\r\n @Input()\r\n stockCode: string;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n selectedCategory: string;\r\n\r\n stockCodedetail: Inventory;\r\n updatedStockCodeDetail: CMStockCode = new CMStockCode();\r\n additionalImages: CMSAdditionalImage[] = [];\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n hasDataSheet: boolean;\r\n hasAddDataSheet: boolean;\r\n hasSpecials: boolean;\r\n hasSpecialImage: boolean;\r\n alternateKey: string;\r\n hasImpaCodes: boolean;\r\n isSaving: boolean;\r\n isEnabled: boolean;\r\n chkDeleteDS1: boolean;\r\n chkDeleteDS2: boolean;\r\n\r\n changeImage: boolean;\r\n changeSpecials: boolean;\r\n changeDatasheet1: boolean;\r\n changeDatasheet2: boolean;\r\n changeAdditionalImage: boolean;\r\n changeAdditionalVideo: boolean;\r\n\r\n toggleGrid: boolean;\r\n\r\n items: TreeviewItem[];\r\n treerows: string[];\r\n item: any;\r\n data: CMCategories;\r\n categoryData: CMCategories[];\r\n\r\n breadcrumbs: SimpleTree[] = [];\r\n\r\n seletedItem: TreeviewItem;\r\n\r\n expandIndex: Number = -1;\r\n\r\n config: TreeviewConfig = {\r\n hasAllCheckBox: false,\r\n hasFilter: false,\r\n hasCollapseExpand: true,\r\n decoupleChildFromParent: false,\r\n maxHeight: 1000,\r\n hasDivider: false\r\n };\r\n\r\n @ViewChild(TreeviewComponent) treeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild(TreeviewComponent)\r\n categoryTreeviewComponent: TreeviewComponent;\r\n\r\n @ViewChild('treeModal')\r\n treeModal: ModalDirective;\r\n\r\n @ViewChild('treeItemTemplate')\r\n treeItemTemplate: TemplateRef;\r\n\r\n treeItems: TreeviewItem[] = [];\r\n treeItem: any;\r\n newParentName: any;\r\n\r\n newStockCodeForCategory: boolean;\r\n hasOrphinRecords: boolean;\r\n deletedCount: any;\r\n deletingNumber: number;\r\n showExport: boolean;\r\n buyerResponsible: string;\r\n newVideoURL: string;\r\n hasClearanceFlag: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router, private route: ActivatedRoute, private http: HttpClient, private sanitizer: DomSanitizer) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.searchType = \"stockcode\";\r\n let stockCode = sessionStorage.getItem(localStorageActions.StockCode);\r\n\r\n this.isManagement = this.isManagement == true ? this.isManagement : false;\r\n this.loadData();\r\n\r\n this.chkShortDescription = true;\r\n this.chkLongDescription = false;\r\n this.chkAnyDescription = false;\r\n\r\n if (stockCode) {\r\n this.stockCode = stockCode;\r\n this.loadStockCode(stockCode);\r\n }\r\n else {\r\n if (this.selectedCategory) {\r\n this.newStockCodeForCategory = true;\r\n this.searchType = \"unmapped\";\r\n this.changeParent = true;\r\n this.newParentName = this.selectedCategory;\r\n }\r\n }\r\n }\r\n\r\n \r\n ngAfterViewInit() {\r\n \r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getBrands().subscribe(x => this.onBrandsLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n this.sysproService.getAllCMCatergoriesTree(this.expandIndex).subscribe(x => this.onCategoriesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n clearData() {\r\n this.stockCode = \"\";\r\n this.stockCodedetail = new Inventory();\r\n this.hasDataSheet = false;\r\n this.hasAddDataSheet = false;\r\n this.hasSpecials = false;\r\n this.hasSpecialImage = false;\r\n this.hasImpaCodes = false;\r\n this.isEnabled = false;\r\n this.isSaving = false;\r\n this.chkDeleteDS1 = false;\r\n this.chkDeleteDS2 = false;\r\n this.changeImage = false;\r\n this.changeSpecials = false;\r\n this.changeDatasheet1 = false;\r\n this.changeDatasheet2 = false;\r\n this.changeAdditionalImage = false;\r\n this.changeAdditionalVideo = false;\r\n this.newStockImageData = new FormData();\r\n this.newSpecialsImageData = new FormData();\r\n this.newDatasheetImageData = new FormData();\r\n this.newAddDatasheetImageData = new FormData();\r\n this.newAdditionalImageData = new FormData();\r\n this.changeParent = false;\r\n this.newParentName = \"\";\r\n\r\n this.sysproService.getAllCMCatergoriesTree(this.expandIndex).subscribe(x => this.onCategoriesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n let stockCode = sessionStorage.getItem(localStorageActions.StockCode);\r\n\r\n if (stockCode) {\r\n this.stockCode = stockCode;\r\n this.loadStockCode(stockCode);\r\n }\r\n }\r\n\r\n showStockCode(detail: any) {\r\n\r\n this.stockCode = detail.stockCode;\r\n this.loadStockCode(detail.stockCode);\r\n }\r\n\r\n\r\n selectStockCode(detail: any, event) {\r\n\r\n this.stockCode = detail.stockCode;\r\n this.loadStockCode(detail.stockCode);\r\n }\r\n\r\n\r\n deleteStockCode(detail: any, event) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.deletingNumber = 1;\r\n this.sysproService.deleteCMStockCode(detail.id).subscribe(x => this.stockCodeDeleteSuccess(detail.stockCode), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n\r\n stockCodeDeleteSuccess(deletedCode: string): void {\r\n this.deletedCount++;\r\n\r\n if (this.deletedCount == this.deletingNumber) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', deletedCode + ` Has been deleted successfully`, MessageSeverity.success);\r\n this.specificSearch();\r\n }\r\n }\r\n\r\n\r\n deleteAllOrphins() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n var updateRows = this.rowsCache;\r\n this.deletingNumber = updateRows.length;\r\n for (var orphin of updateRows) {\r\n this.sysproService.deleteCMStockCode(orphin.id).subscribe(x => this.stockCodeDeleteSuccess(orphin.stockCode), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n loadStockCode(stockCode: string) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n console.log(this.stockCode);\r\n this.sysproService.getStockCodeDetail(this.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onStockCodeLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n specificSearch() {\r\n\r\n this.deletedCount = 0;\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n // this.inventoryList = null;\r\n this.searchingOn = this.searchType;\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchingOn, this.searchText.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => this.onStockLoadSuccessful([x], false), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n if (this.searchType == \"unmapped\" || this.searchType == \"deleted\") {\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchType, \"ALL\").subscribe(\r\n x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: Inventory[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n this.onStockLoadSuccessful([x], false);\r\n\r\n }\r\n\r\n\r\n onStockLoadSuccessful(stockCodes: any[], includeAdditional: boolean): void {\r\n\r\n this.showExport = includeAdditional;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.inventoryList = stockCodes[0];\r\n\r\n if (this.inventoryList.length > 0) {\r\n\r\n this.inventoryList.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n stockCode.description = stockCode.shortDescription + ' - ' + stockCode.longDescription;\r\n (stockCode).orphin = (this.searchType == \"deleted\");\r\n if (includeAdditional && this.searchType != \"deleted\" ) {\r\n this.sysproService.getStockCodeAdditionalDetail(stockCode.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => {\r\n var addDetails = x[0];\r\n stockCode.qtyCT = addDetails.qtyCT;\r\n stockCode.qtyCombined = addDetails.qtyCombined;\r\n stockCode.binLocCT = addDetails.binLocCT;\r\n stockCode.createDate = addDetails.createDate;\r\n\r\n }, error => this.onDataLoadFailed(error));\r\n }\r\n });\r\n\r\n this.rowsCache = [...this.inventoryList];\r\n this.rows = [...this.rowsCache];\r\n\r\n if (this.searchType == \"deleted\") {\r\n this.hasOrphinRecords = true;\r\n }\r\n\r\n this.toggleGrid = true;\r\n }\r\n else {\r\n this.rows = null;\r\n this.rowsCache = null;\r\n\r\n if (this.searchType == \"deleted\") {\r\n this.alertService.showMessage('In Sync', 'All stock codes have been removed from catalogue - Next Gen is now up to date with SYSPRO',\r\n MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage('No Records', 'Could not find any records for your search.',\r\n MessageSeverity.warn);\r\n \r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n toggleGridOpen() {\r\n this.toggleGrid = !this.toggleGrid;\r\n }\r\n\r\n onBrandsLoadSuccessful(brands: any[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (brands[0]) {\r\n this.brandList = [...brands[0]]; \r\n }\r\n }\r\n\r\n changeCategoryParent() {\r\n this.changeParent = !this.changeParent;\r\n\r\n if (this.changeParent) {\r\n\r\n if (!this.treeModal) {\r\n setTimeout(() => {\r\n if (this.treeModal) {\r\n this.treeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.treeModal.show();\r\n }\r\n }\r\n }\r\n\r\n\r\n treeItemBeforeExpand(row: TreeviewItem) {\r\n console.log(row);\r\n if (row) {\r\n if (row.collapsed) {\r\n\r\n }\r\n else {\r\n }\r\n }\r\n }\r\n\r\n selectTreeItem(row: TreeviewItem) {\r\n\r\n this.newParentName = row.text;\r\n this.treeModal.hide();\r\n }\r\n\r\n\r\n onCategoriesLoadSuccessful(treeview: any[]) {\r\n if (treeview[0]) {\r\n let treeviewItems = new TreeviewItem(JSON.parse(treeview[0]));\r\n\r\n this.items = this.getItems([treeviewItems]);\r\n this.treeItems = this.getItems([treeviewItems]);\r\n }\r\n }\r\n\r\n\r\n getItems(parentChildObj) {\r\n let itemsArray = [];\r\n parentChildObj.forEach(set => {\r\n itemsArray.push(new TreeviewItem(set))\r\n });\r\n return itemsArray;\r\n }\r\n\r\n list_to_tree(list) {\r\n var map = {}, node, roots = [], i;\r\n\r\n for (i = 0; i < list.length; i += 1) {\r\n map[list[i].id] = i; // initialize the map\r\n list[i].children = []; // initialize the children\r\n }\r\n\r\n for (i = 0; i < list.length; i += 1) {\r\n node = list[i];\r\n if (node.parentCategory !== \"Root\") {\r\n // if you have dangling branches check that map[node.parentId] exists\r\n list[map[node.parentCategory]].children.push(node);\r\n } else {\r\n roots.push(node);\r\n }\r\n }\r\n return roots;\r\n}\r\n\r\n onAltStockCodesLoadSuccessful(altStockCodes: any[]) {\r\n if (altStockCodes[0]) {\r\n this.alternatesList = [...altStockCodes[0]];\r\n }\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName ;\r\n }\r\n\r\n onStockCodeLoadSuccessful(row: Inventory): void {\r\n this.hasClearanceFlag = false;\r\n if (row) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail = row[0];\r\n this.stockCodedetail.categoryName = row[0].categoryName;\r\n this.hasDataSheet = false;\r\n this.hasAddDataSheet = false;\r\n this.hasSpecials = false;\r\n this.hasSpecialImage = false;\r\n this.hasImpaCodes = false;\r\n this.hasAdditionalImages = false;\r\n this.isEnabled = this.stockCodedetail.status == \"E\";\r\n var test = this.stockCodedetail.modifiedDate;\r\n this.changeAdditionalImage = false;\r\n this.changeAdditionalVideo = false;\r\n\r\n if (this.stockCodedetail) {\r\n if (this.stockCodedetail.dataSheetImage) {\r\n this.hasDataSheet = true;\r\n this.stockCodedetail.dataSheetImage = encodeURIComponent(this.stockCodedetail.dataSheetImage);\r\n }\r\n if (this.stockCodedetail.addSheetImage) {\r\n this.hasAddDataSheet = true;\r\n this.stockCodedetail.addSheetImage = encodeURIComponent(this.stockCodedetail.addSheetImage);\r\n }\r\n if (this.stockCodedetail.specialsImage) {\r\n this.stockCodedetail.specialsImage = encodeURIComponent(this.stockCodedetail.specialsImage);\r\n this.hasSpecialImage = true;\r\n }\r\n if ((this.stockCodedetail.onSpecialFowkes || this.stockCodedetail.onSpecial)) {\r\n this.hasSpecials = true;\r\n }\r\n if (this.stockCodedetail.impaCodes && this.stockCodedetail.impaCodes != \"\") {\r\n this.hasImpaCodes = true;\r\n }\r\n }\r\n this.stockCodedetail.stockCodeImage = encodeURIComponent(this.stockCodedetail.stockCodeImage);\r\n }\r\n\r\n if (this.stockCodedetail.id && this.stockCodedetail.id >= 1) {\r\n this.sysproService.getAdditionalImagesForStockCode(this.stockCodedetail.id).subscribe(x => this.onAdditionalImagesLoaded(x), error => this.onDataLoadFailed(error));\r\n\r\n //Check if cleanrance flag has been set\r\n\r\n this.sysproService.getStockCearanceFlag(this.stockCodedetail.id).subscribe(x => this.onClearanceFlagLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n this.sysproService.getAltStockCodeDetail(this.stockCodedetail.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onAltStockCodesLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.updatedStockCodeDetail = this.stockCodedetail;\r\n \r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n onClearanceFlagLoadSuccessful(x: string): void {\r\n if (x && x.length >= 1) {\r\n this.hasClearanceFlag = true;\r\n }\r\n else {\r\n\r\n this.hasClearanceFlag = false;\r\n }\r\n }\r\n onAdditionalImagesLoaded(x: CMSAdditionalImage[]): void {\r\n\r\n if (x && x.length > 0) {\r\n this.hasAdditionalImages = true;\r\n\r\n this.additionalImages = x.map(image => {\r\n if (image.referenceType === 'VIDEO') {\r\n // Generate safe URL by combining filePath and imageName\r\n const videoUrl = `${image.filePath}/${image.imageName}`;\r\n const safeUrl: SafeResourceUrl = this.sanitizer.bypassSecurityTrustResourceUrl(videoUrl);\r\n\r\n // Update the safeURL property of the CMSAdditionalImage object\r\n return { ...image, safeURL: safeUrl };\r\n } else {\r\n return image;\r\n }\r\n });\r\n }\r\n else {\r\n this.hasAdditionalImages = false;\r\n }\r\n\r\n }\r\n\r\n onImageAddedSuccess(x: CMSAdditionalImage): void {\r\n\r\n this.changeAdditionalImage = !this.changeAdditionalImage;\r\n if (!this.changeAdditionalImage) {\r\n this.newAdditionalImageData = new FormData();\r\n }\r\n\r\n //Call website webhook to initiate stock code update\r\n this.http.get('https://www.fowkes.co.za/api/products/sync/' + this.stockCodedetail.id).subscribe(x =>\r\n (this.alertService.showMessage('Success', `Website Request for Update Sent`, MessageSeverity.success)), error => this.onPostDataLoadFailed(error));\r\n\r\n this.sysproService.getAdditionalImagesForStockCode(this.stockCodedetail.id).subscribe(x => this.onAdditionalImagesLoaded(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n\r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return; }\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n toggleImageUpload(type: string) {\r\n switch (type) {\r\n case \"stockcode\": {\r\n this.changeImage = !this.changeImage;\r\n if (!this.changeImage) {\r\n this.newStockImageData = new FormData();\r\n }\r\n break;\r\n }\r\n case \"special\": {\r\n this.changeSpecials = !this.changeSpecials;\r\n if (!this.changeSpecials) {\r\n this.newSpecialsImageData = new FormData();\r\n }\r\n break;\r\n }\r\n case \"datasheet1\": {\r\n this.changeDatasheet1 = !this.changeDatasheet1;\r\n if (!this.changeDatasheet1) {\r\n this.newDatasheetImageData = new FormData();\r\n }\r\n break;\r\n }\r\n case \"datasheet2\": {\r\n this.changeDatasheet2 = !this.changeDatasheet2;\r\n if (!this.changeDatasheet2) {\r\n this.newAddDatasheetImageData = new FormData();\r\n }\r\n break;\r\n }\r\n case \"additional\": {\r\n this.changeAdditionalImage = !this.changeAdditionalImage;\r\n if (!this.changeAdditionalImage) {\r\n this.newAdditionalImageData = new FormData();\r\n }\r\n break;\r\n }\r\n case \"video\": {\r\n this.changeAdditionalVideo = !this.changeAdditionalVideo;\r\n if (!this.changeAdditionalVideo) {\r\n this.newVideoURL = \"\";\r\n }\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n anAdditionalImageFileUpload(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newAdditionalImageData.append('file', file);\r\n this.saveNewImage();\r\n\r\n }\r\n }\r\n\r\n\r\n saveNewVideo() {\r\n if (this.newVideoURL != \"\") {\r\n var imageIndex = 0;\r\n if (this.additionalImages.length >= 1) {\r\n imageIndex = Math.max(...this.additionalImages.map(o => o.imageIndex)) + 1;\r\n }\r\n var newAddImage = new CMSAdditionalImage();\r\n newAddImage.imageIndex = imageIndex;\r\n newAddImage.referenceId = this.stockCodedetail.id;\r\n newAddImage.stockCode = this.stockCodedetail.stockCode;\r\n newAddImage.display = true;\r\n newAddImage.referenceType = \"VIDEO\";\r\n newAddImage.imageName = this.newVideoURL;\r\n newAddImage.modifiedDate = new Date();\r\n this.sysproService.addNewCMSAdditionalImage(newAddImage).subscribe(x => this.onImageAddedSuccess(x), error => this.onPostDataLoadFailed(error));\r\n\r\n //Call website webhook to initiate stock code update\r\n this.http.get('https://www.fowkes.co.za/api/products/sync/' + this.stockCodedetail.id).subscribe(x =>\r\n (this.alertService.showMessage('Success', `Website Request for Update Sent`, MessageSeverity.success)), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n\r\n deleteAdditionalImage(item: CMSAdditionalImage) {\r\n this.sysproService.deleteCMSAdditionalImage(item.id).subscribe(x => this.onAdditionalImageDeleted(x), error => this.onDataLoadFailed(error));\r\n \r\n //Call website webhook to initiate stock code update\r\n this.http.get('https://www.fowkes.co.za/api/products/sync/' + this.stockCodedetail.id).subscribe(x =>\r\n (this.alertService.showMessage('Success', `Website Request for Update Sent`, MessageSeverity.success)), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onAdditionalImageDeleted(x: CMSAdditionalImage): void {\r\n this.sysproService.getAdditionalImagesForStockCode(this.stockCodedetail.id).subscribe(x => this.onAdditionalImagesLoaded(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n //this.alternateKey = row.alternateKey;\r\n this.sysproService.getStockCodeAvailableQuantities(row.alternateKey).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n openCategoryLink(category: string) {\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"https://www.maxarcus.co.za/Search.aspx?s=\" + encodeURIComponent(category), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"https://www.fowkes.co.za/products?keyword=\" + encodeURIComponent(category), \"_blank\");\r\n }\r\n }\r\n\r\n openWebsiteLink(stockCode: string) {\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"https://www.maxarcus.co.za/products?keyword=\" + encodeURIComponent(stockCode), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"https://www.fowkes.co.za/products?keyword=\" + encodeURIComponent(stockCode), \"_blank\");\r\n }\r\n }\r\n\r\n openInternalLink(stockCode: string) {\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"http://old.maxarcus.co.za/Search.aspx?s=\" + encodeURIComponent(stockCode), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"http://old.fowkes.co.za/Search.aspx?s=\" + encodeURIComponent(stockCode), \"_blank\");\r\n }\r\n }\r\n\r\n openImage() {\r\n if (!!this.stockCodedetail.stockCodeImage && this.stockCodedetail.stockCodeImage != \"\") {\r\n window.open(this.stockCodedetail.filePath + \"/\" + this.stockCodedetail.stockCodeImage, \"_blank\");\r\n }\r\n }\r\n\r\n openVideo(item: CMSAdditionalImage) {\r\n if (item.filePath && item.imageName != \"\") {\r\n window.open(\"https://www.youtube.com/watch?v=\" + item.imageName, \"_blank\");\r\n }\r\n }\r\n\r\n openAdditionalImage(item: CMSAdditionalImage) {\r\n if (item.filePath && item.imageName != \"\") {\r\n window.open(item.filePath + \"/\" + item.imageName, \"_blank\");\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n\r\n openSpecials(specialsImg: string) {\r\n if (!!specialsImg && specialsImg != \"\") {\r\n window.open(this.stockCodedetail.filePath + \"/SpecialImages/\" + specialsImg, \"_blank\");\r\n }\r\n }\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n\r\n formatSpecialPrice(): any {\r\n let row = this.stockCodedetail;\r\n row.specialPrice = Calculations.setSpecialPriceDecimals(row.specialPrice);\r\n }\r\n\r\n saveStockCode() {\r\n\r\n //Validate save\r\n if (this.stockCodedetail) {\r\n if (this.stockCodedetail.stockCode) {\r\n if (!this.stockCodedetail.brandName || this.stockCodedetail.brandName == \"\")\r\n {\r\n this.alertService.showMessage('Warning', `No Brand Selected`, MessageSeverity.warn);\r\n }\r\n else {\r\n if ((!this.stockCodedetail.categoryName || this.stockCodedetail.categoryName == \"\") && (!this.newParentName || this.newParentName == \"\")) {\r\n this.alertService.showMessage('Warning', `No Category Selected`, MessageSeverity.warn);\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n var newFileName = this.stockCodedetail.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\").replace(/\\#/g, \"-_-\");\r\n\r\n this.handleFiles(newFileName, 0); \r\n }\r\n\r\n \r\n }\r\n\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `No Stock Code Selected`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n\r\n saveNewImage() {\r\n var imageIndex = 0;\r\n if (this.additionalImages.length >= 1) {\r\n imageIndex = Math.max(...this.additionalImages.map(o => o.imageIndex)) + 1;\r\n }\r\n var newAddImage = new CMSAdditionalImage();\r\n newAddImage.imageIndex = imageIndex;\r\n newAddImage.referenceId = this.stockCodedetail.id;\r\n newAddImage.stockCode = this.stockCodedetail.stockCode;\r\n newAddImage.display = true;\r\n newAddImage.referenceType = \"STOCKCODE\";\r\n var newFileName = this.stockCodedetail.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\").replace(/\\#/g, \"-_-\") + \"_\" + imageIndex;\r\n if (this.newAdditionalImageData.has('file')) {\r\n this.sysproService.postAdditionalFileData(this.newAdditionalImageData, \"STOCKCODE\", newFileName).subscribe(x => {\r\n newAddImage.imageName = x.fileName;\r\n newAddImage.modifiedDate = new Date();\r\n this.alertService.showMessage('Success', `Added Stockcode Image`, MessageSeverity.success);\r\n //save record\r\n this.sysproService.addNewCMSAdditionalImage(newAddImage).subscribe(x => this.onImageAddedSuccess(x), error => this.onPostDataLoadFailed(error));\r\n }, error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n\r\n handleFiles(newFileName: string, numberDone: number) {\r\n \r\n //Update Files\r\n if (numberDone == 0) {\r\n if (this.newStockImageData.has('file')) {\r\n this.sysproService.postFileData(this.newStockImageData, \"STOCKCODE\", newFileName).subscribe(x => {\r\n this.stockCodedetail.stockCodeImage = x.fileName;\r\n this.stockCodedetail.stockCodeImageChanged = new Date();\r\n this.handleFiles(newFileName, 1);\r\n this.alertService.showMessage('Success', `Added Stockcode Image`, MessageSeverity.success);\r\n }, error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n if (!this.stockCodedetail.stockCodeImage || this.stockCodedetail.stockCodeImage == \"\") {\r\n this.alertService.showMessage('Warning', `No Image Selected`, MessageSeverity.warn);\r\n //this.isSaving = false;\r\n this.handleFiles(newFileName, 1)\r\n }\r\n else {\r\n this.stockCodedetail.stockCodeImage = (this.stockCodedetail.stockCodeImage ? decodeURIComponent(this.stockCodedetail.stockCodeImage) : \"\");\r\n this.handleFiles(newFileName, 1)\r\n }\r\n }\r\n }\r\n if (numberDone == 1) {\r\n if (this.newSpecialsImageData.has('file')) {\r\n this.sysproService.postFileData(this.newSpecialsImageData, \"SPECIALS\", newFileName).subscribe(x => {\r\n this.stockCodedetail.specialsImage = x.fileName;\r\n this.stockCodedetail.specialsImageChanged = new Date();\r\n this.handleFiles(newFileName, 2);\r\n this.alertService.showMessage('Success', `Added specials Image`, MessageSeverity.success);\r\n }, error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.stockCodedetail.specialsImage = (this.stockCodedetail.specialsImage && this.stockCodedetail.specialsImage != \"\" ? this.stockCodedetail.specialsImage : \"\");\r\n this.handleFiles(newFileName, 2)\r\n }\r\n }\r\n if (numberDone == 2) {\r\n if (this.newDatasheetImageData.has('file')) {\r\n this.sysproService.postFileData(this.newDatasheetImageData, \"DATASHEET\", newFileName).subscribe(x => {\r\n this.stockCodedetail.dataSheetImage = x.fileName;\r\n this.stockCodedetail.dataSheetImageChanged = new Date();\r\n this.handleFiles(newFileName, 3);\r\n this.alertService.showMessage('Success', `Added datasheet 1`, MessageSeverity.success);\r\n }, error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n this.stockCodedetail.dataSheetImage = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage != \"\" ? this.stockCodedetail.dataSheetImage : \"\");\r\n this.handleFiles(newFileName, 3)\r\n }\r\n }\r\n if (numberDone == 3) {\r\n if (this.newAddDatasheetImageData.has('file')) {\r\n this.sysproService.postFileData(this.newAddDatasheetImageData, \"DATASHEET\", newFileName + \"-01\").subscribe(x => {\r\n this.stockCodedetail.addSheetImage = x.fileName;\r\n this.stockCodedetail.addSheetImageChanged = new Date();\r\n this.alertService.showMessage('Success', `Added datasheet 2`, MessageSeverity.success);\r\n this.handleFiles(newFileName, 4);\r\n \r\n }, error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n this.stockCodedetail.addSheetImage = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage != \"\" ? this.stockCodedetail.addSheetImage : \"\");\r\n this.handleFiles(newFileName, 4)\r\n }\r\n }\r\n if (numberDone == 4) {\r\n if (this.isEnabled) {\r\n this.stockCodedetail.status = \"E\";\r\n }\r\n else {\r\n this.stockCodedetail.status = \"D\";\r\n }\r\n if (this.newParentName && this.newParentName != \"\" && this.stockCodedetail.categoryName != this.newParentName ) {\r\n this.stockCodedetail.categoryName = this.newParentName;\r\n this.changeParent = false;\r\n }\r\n //Save StockCode\r\n if (!this.stockCodedetail.id || this.stockCodedetail.id == 0) {\r\n this.sysproService.addCMStockCode(this.stockCodedetail).subscribe(x => this.onSaveSuccesful(x, true), error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n //Edit Stock Code\r\n if (this.stockCodedetail.id > 0) {\r\n\r\n if (this.chkDeleteDS1) {\r\n this.stockCodedetail.dataSheetImage = \"\";\r\n }\r\n if (this.chkDeleteDS2) {\r\n this.stockCodedetail.addSheetImage = \"\";\r\n }\r\n if (!this.stockCodedetail.onSpecialFowkes && !this.stockCodedetail.onSpecial) {\r\n this.stockCodedetail.specialsImage = \"\";\r\n }\r\n\r\n this.sysproService.updateCMStockCode(this.stockCodedetail, this.stockCodedetail.id).subscribe(x => this.onSaveSuccesful(x, false), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSaveSuccesful(result: CMStockCode, newStockCode?: boolean): void {\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n\r\n this.stockCode = result.stockCode;\r\n if (sessionStorage.getItem(localStorageActions.StockCode) != result.stockCode) {\r\n sessionStorage.setItem(localStorageActions.StockCode, result.stockCode);\r\n }\r\n\r\n //Update Syspro with image path\r\n if (this.stockCodedetail.stockCodeImage != \"\") {\r\n\r\n this.sysproService.updateStockCodeImageSyspro(result.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"), result.stockCodeImage).subscribe(x =>\r\n (this.alertService.showMessage('Success', `Syspro Image Updated`, MessageSeverity.success)), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n\r\n //Call website webhook to initiate stock code update\r\n this.http.get('https://www.fowkes.co.za/api/products/sync/' + result.id).subscribe(x =>\r\n (this.alertService.showMessage('Success', `Website Request for Update Sent`, MessageSeverity.success)), error => this.onPostDataLoadFailed(error));\r\n\r\n\r\n this.alertService.showMessage('Success', `Stock Code Updated`, MessageSeverity.success);\r\n this.clearData();\r\n }\r\n \r\n\r\n newFilePostedSuccess(x: any) {\r\n \r\n this.stockCodedetail.stockCodeImage = x.fileName;\r\n this.stockCodedetail.stockCodeImageChanged = new Date();\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newStockImageData.append('file', file);\r\n \r\n }\r\n }\r\n\r\n onNewspecialsImageFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newSpecialsImageData.append('file', file);\r\n\r\n }\r\n }\r\n\r\n onNewdataSheetImageFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newDatasheetImageData.append('file', file);\r\n\r\n }\r\n }\r\n\r\n onNewaddSheetImageFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newAddDatasheetImageData.append('file', file);\r\n\r\n }\r\n }\r\n\r\n\r\n exportList() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"QtyCT\", \"BinLocCT\", \"QtyCombined\"]\r\n };\r\n\r\n var filename = \"New StockCodes\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode, Description: row.description, QtyCT: row.qtyCT, BinLocCT: row.binLocCT, QtyCombined: row.qtyCombined\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditTitle and DescriptionSequence URLPreviewMax ArcusFowkesEnabledDelete
\\r\\n    \\r\\n \\r\\n\\r\\n Edit \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Delete \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

New Video

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
   \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
   \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
   \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
   \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHByb2R1Y3RzXFxwcm9kdWN0cy52aWRlb3MuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJvZHVjdHMvcHJvZHVjdHMudmlkZW9zLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRib2R5IHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxufVxyXG4iXX0= */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Video } from '../../models/video.model';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { NewVideosComponent } from './products.newvideos.component';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AccountService } from '../../services/account.service';\r\n\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'videos',\r\n templateUrl: './products.videos.component.html',\r\n styleUrls: ['./products.videos.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class VideosComponent {\r\n\r\n emptyDetails: boolean;\r\n\r\n @ViewChild('rows')\r\n rows: Video[] = [];\r\n rowsCache: Video[] = [];\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n\r\n @ViewChild('videoEditor')\r\n videoEditor: NewVideosComponent;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('videoModal')\r\n videoModal: ModalDirective;\r\n\r\n videoDetail: Video = new Video();\r\n safeSrc: SafeResourceUrl;\r\n\r\n constructor(private alertService: AlertService, private sysproService: SysproService, private authService: AuthService, private accountService: AccountService, private sanitizer: DomSanitizer) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n\r\n \r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() { }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getVideos().subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n //videoURL(row: Video) {\r\n // return this.santizer.bypassSecurityTrustResourceUrl(\"https://www.youtube.com/embed/\" + row.url + \"?autoplay=0\");\r\n //}\r\n\r\n onDataLoadSuccessful(videos: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (videos[0]) {\r\n\r\n this.rowsCache = [...videos[0]];\r\n\r\n this.rows = this.rowsCache.map(row => {\r\n // Generate a safe URL for each row's URL property\r\n const safeUrl: SafeResourceUrl = this.sanitizer.bypassSecurityTrustResourceUrl(\"https://www.youtube.com/embed/\" + row.url);\r\n\r\n // Create a new row object with the updated safe URL\r\n return { ...row, safeUrl, safeURL: safeUrl };\r\n });\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n } \r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.title, r.description));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n\r\n enableEditMethod(row: Video, i) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n console.log(i, row);\r\n }\r\n\r\n saveSegment(row: Video) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.editVideo(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.saveFailedHelper(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n private cancel() {\r\n this.isEditMode = false;\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n this.rows.forEach(p => {\r\n\r\n // this.sysproService.editVideo(p, p.title).subscribe(_response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n\r\n });\r\n\r\n }\r\n\r\n private saveSuccessHelper() {\r\n\r\n //this.savedLineCount++;\r\n //if (this.saveCount === this.savedLineCount) {\r\n // this.cartSaved = true;\r\n\r\n // this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.isSaving = false;\r\n this.isEditMode = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', ` Updated successfully`, MessageSeverity.success);\r\n\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n\r\n deleteRow(row: Video) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.title + ' - ' + row.description + '\\\"?', DialogType.confirm, () => this.deleteRowHelper(row));\r\n }\r\n\r\n deleteRowHelper(row: Video) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.deleteVideo(row.id).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.title + ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n videoModalHide() {\r\n this.videoDetail = new Video();\r\n this.videoModal.hide();\r\n }\r\n\r\n newVideo() {\r\n\r\n if (!this.videoModal) {\r\n setTimeout(() => {\r\n if (this.videoModal) {\r\n this.videoModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.videoModal.show();\r\n }\r\n\r\n }\r\n\r\n saveVideo() {\r\n //Validate save\r\n if (this.videoDetail) {\r\n if (this.videoDetail.title) {\r\n if (this.rowsCache.filter(x => x.title == this.videoDetail.title).length >= 1) {\r\n this.alertService.showMessage('Warning', `This title already exists`, MessageSeverity.warn);\r\n }\r\n else {\r\n if (this.videoDetail.sequence && this.videoDetail.url) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n this.videoDetail.createdBy = this.accountService.currentUser.email;\r\n this.videoDetail.detail = (this.videoDetail.detail ? this.videoDetail.detail : \"\");\r\n this.sysproService.newVideo(this.videoDetail).subscribe(x => this.onSaveSuccesful(), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Remeber to add sequence and url`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a title`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n onSaveSuccesful(): void {\r\n\r\n this.videoModalHide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHVyY2hhc2VvcmRlcnMvcHVyY2hhc2VvcmRlcnMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n@Component({\r\n selector: 'purchaseorders',\r\n templateUrl: './purchaseorders.component.html',\r\n styleUrls: ['./purchaseorders.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class PurchaseOrdersComponent {\r\n\r\n isListActivated = true;\r\n isViewActivated = false;\r\n isInvoiceViewActivated = false;\r\n isPurchaseOrderViewActivated = false;\r\n isCartViewActivated = false;\r\n\r\n isCollapsed = false;\r\n\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly purchaseordersListTab = 'purchaseorders';\r\n readonly salesordersViewTab = 'view';\r\n readonly invoiceViewTab = 'invoice';\r\n readonly purchaseorderTab = 'purchaseorder';\r\n readonly cartViewTab = 'cart';\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n isSearch: boolean;\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n id: any = \"\";\r\n cartId: string;\r\n salesorderId: string;\r\n invoiceNumber: string;\r\n purchaseorder: string;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private configurations: ConfigurationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let salesorderId = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n let invoiceNumber = sessionStorage.getItem(localStorageActions.InvoiceNumber);\r\n let purchaseorder = sessionStorage.getItem(localStorageActions.PurchaseOrder);\r\n this.salesorderId = salesorderId;\r\n this.invoiceNumber = invoiceNumber;\r\n this.purchaseorder = purchaseorder;\r\n\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n if (action) {\r\n this.id = action;\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor, this.id));\r\n } else {\r\n\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n //this.router.navigate(['purchaseorders']);\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n showContent(anchor: string, test?: any) {\r\n\r\n this.id = sessionStorage.getItem(localStorageActions.Customer);\r\n this.salesorderId = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n this.invoiceNumber = sessionStorage.getItem(localStorageActions.InvoiceNumber);\r\n this.purchaseorder = sessionStorage.getItem(localStorageActions.PurchaseOrder);\r\n \r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.purchaseordersListTab}Tab`);\r\n\r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isListActivated = activeTab == this.purchaseordersListTab;\r\n this.isViewActivated = activeTab == this.salesordersViewTab;\r\n this.isInvoiceViewActivated = activeTab == this.invoiceViewTab;\r\n this.isPurchaseOrderViewActivated = activeTab == this.purchaseorderTab;\r\n this.isCartViewActivated = activeTab == this.cartViewTab;\r\n\r\n this.router.navigate([], { fragment: activeTab, queryParams: { customer: this.id, salesorderId: this.salesorderId } });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isListActivated = activeTab == this.purchaseordersListTab;\r\n this.isViewActivated = activeTab == this.salesordersViewTab;\r\n this.isInvoiceViewActivated = activeTab == this.invoiceViewTab;\r\n this.isPurchaseOrderViewActivated = activeTab == this.purchaseorderTab;\r\n this.isCartViewActivated = activeTab == this.cartViewTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n get canViewCustomers() {\r\n return true;\r\n }\r\n\r\n get canViewMovements() {\r\n return true;//TODO: this.accountService.userHasPermission(Permission.viewCustomerMovementsPermission);\r\n }\r\n\r\n get canViewPayments() {\r\n return true;//TODO: this.accountService.userHasPermission(Permission.viewCustomerPaymentsPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

Authorization Required

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
The price does not exceed the specified margin
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n.datatable-header-cell {\\n display: flex !important;\\n align-items: center !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.banner {\\n top: 0px;\\n right: 0px;\\n transform: rotate(45deg);\\n filter: progid:DXImageTransform.Microsoft.Matrix(M11='0.7071067811865476', M12='-0.7071067811865475', M21='0.7071067811865475', M22='0.7071067811865476', sizingMethod='auto expand'); }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-image: linear-gradient(to right, #0e4597, #134aa0, #174ea8, #1b53b1, #1f58ba, #1e63c4, #1f6fcd, #227ad6, #308ee0, #45a1e8, #5db4ef, #78c7f6);\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #78C7F6; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9xdW90ZXMvY29weS1xdW90ZS9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHF1b3Rlc1xcY29weS1xdW90ZVxcY3VzdG9tZXJzLWNhcnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvcXVvdGVzL2NvcHktcXVvdGUvY3VzdG9tZXJzLWNhcnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsK0JBQStCLEVBQUE7O0FBRWpDO0VBQ0Usd0JBQXdCO0VBQ3hCLDhCQUE4QixFQUFBOztBQUVoQztFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLG1CQUFtQixFQUFBOztBQVB2QjtJQVdJLGdCQUFnQjtJQUNoQiwwQkFBMEIsRUFBQTs7QUFaOUI7SUFnQkksMEJBQTBCLEVBQUE7O0FBSTlCO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHckI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0UsUUFBUTtFQUNSLFVBQVU7RUFHVix3QkFBd0I7RUFDeEIscUxBQXFMLEVBQUE7O0FBR3ZMO0VBQ0UsdUpBQXVKO0VBQ3ZKOzs7b0hDWmtILEVEZUM7O0FBR3JIO0VBQ0UseUJBQXlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3F1b3Rlcy9jb3B5LXF1b3RlL2N1c3RvbWVycy1jYXJ0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG4uZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xyXG59XHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcbiAgLmJ0bi1saW5rLmdyaWQge1xyXG4gICAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgYS5ob3ZlciB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICB9XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgaGVpZ2h0OiAyNnB4O1xyXG4gIGZvbnQtc2l6ZTogMC43MDByZW07XHJcbn1cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gICAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogIzc3NztcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLmxvY2tlZC1vdXQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gICAgY29sb3I6IHdoaXRlc21va2U7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcblxyXG4uYmFubmVyIHtcclxuICB0b3A6IDBweDtcclxuICByaWdodDogMHB4O1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5NYXRyaXgoTTExPScwLjcwNzEwNjc4MTE4NjU0NzYnLCBNMTI9Jy0wLjcwNzEwNjc4MTE4NjU0NzUnLCBNMjE9JzAuNzA3MTA2NzgxMTg2NTQ3NScsIE0yMj0nMC43MDcxMDY3ODExODY1NDc2Jywgc2l6aW5nTWV0aG9kPSdhdXRvIGV4cGFuZCcpO1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzBlNDU5NywgIzEzNGFhMCwgIzE3NGVhOCwgIzFiNTNiMSwgIzFmNThiYSwgIzFlNjNjNCwgIzFmNmZjZCwgIzIyN2FkNiwgIzMwOGVlMCwgIzQ1YTFlOCwgIzVkYjRlZiwgIzc4YzdmNik7XHJcbiAgLypiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSkgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpOyovXHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM3OEM3RjY7XHJcbn1cclxuXHJcbiIsIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyB9XG5cbi5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7IH1cbiAgOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIC5idG4tbGluay5ncmlkIHtcbiAgICBmb250LXNpemU6IDAuNzAwcmVtOyB9XG4gIDpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCBhIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50OyB9XG4gIDpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCBhLmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDI2cHg7XG4gIGZvbnQtc2l6ZTogMC43MDByZW07IH1cblxuLnVzZXItcm9sZSB7XG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cblxuLmNvbnRyb2wtYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG5cbi5zZWFyY2gtYm94IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcbiAgcGFkZGluZy10b3A6IDNweDtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgbWluLXdpZHRoOiAxMDBweDsgfVxuXG4udXNlci1kaXNhYmxlZCB7XG4gIGNvbG9yOiAjNzc3O1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLmxvY2tlZC1vdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4uYmFubmVyIHtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5NYXRyaXgoTTExPScwLjcwNzEwNjc4MTE4NjU0NzYnLCBNMTI9Jy0wLjcwNzEwNjc4MTE4NjU0NzUnLCBNMjE9JzAuNzA3MTA2NzgxMTg2NTQ3NScsIE0yMj0nMC43MDcxMDY3ODExODY1NDc2Jywgc2l6aW5nTWV0aG9kPSdhdXRvIGV4cGFuZCcpOyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzBlNDU5NywgIzEzNGFhMCwgIzE3NGVhOCwgIzFiNTNiMSwgIzFmNThiYSwgIzFlNjNjNCwgIzFmNmZjZCwgIzIyN2FkNiwgIzMwOGVlMCwgIzQ1YTFlOCwgIzVkYjRlZiwgIzc4YzdmNik7XG4gIC8qYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKTsqLyB9XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhDN0Y2OyB9XG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Pipe, PipeTransform, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../../models/permission.model';\r\n//import { ArCustomer } from 'src/app/models/arcustomer.model';\r\n//import { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { validation } from 'src/app/services/validation.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { CoreCustomerPrices } from '../../../models/core-customer-prices.model';\r\nimport { CoreCustomer } from '../../../models/core-customer.model';\r\nimport { CoreCustomerRule } from '../../../models/core-customer-rule.model';\r\nimport { ArCustomer } from '../../../models/arcustomer.model';\r\n\r\n\r\n@Component({\r\n selector: 'customers-cart',\r\n templateUrl: './customers-cart.component.html',\r\n styleUrls: ['./customers-cart.component.scss']\r\n})\r\n\r\n \r\nexport class CustomerCartComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Inventory[] = [];\r\n rowsCache: Inventory[] = [];\r\n cartRows: CartDetail[] = [];\r\n //editedCustomer: ArCustomerEdit;\r\n //sourceCustomer: ArCustomerEdit;\r\n editingCustomerName: { customer: string };\r\n loadingIndicator: boolean;\r\n priceRows: CoreCustomerPrices[] = [];\r\n priceRowsCache: CoreCustomerPrices[] = [];\r\n\r\n @ViewChild('searchInput')\r\n searchInput: ElementRef;\r\n smartsearch: string = \"\";\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('orderQtyViewTemplate')\r\n orderQtyViewTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('sellpriceTemplate')\r\n sellpriceTemplate: TemplateRef;\r\n\r\n @ViewChild('unitCostTemplate')\r\n unitCostTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n inventoryList: Inventory[];\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n stockCode: string;\r\n\r\n\r\n @Input()\r\n isQuote: boolean;\r\n\r\n @Input()\r\n selectedCartNumber: string;\r\n\r\n @Input()\r\n selectedCustomerCode: string;\r\n\r\n id: string;\r\n cartId: string;\r\n customer: ArCustomer;\r\n stockCodedetail: Inventory;\r\n isNavigating: boolean;\r\n isSaving: boolean;\r\n cartSaved: boolean;\r\n cartlinenumber: number = 0;\r\n saveCount: number;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n isNavigatingTo: string;\r\n hasDataSheet: boolean;\r\n hasDataSheets: boolean\r\n hasAddDataSheets: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n savedLineCount: number;\r\n isReloading: boolean;\r\n src: string;\r\n searchTerm: string = \"\";\r\n\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n\r\n @ViewChild('authModal')\r\n authModal: ModalDirective;\r\n\r\n authorized: boolean;\r\n stringToCompare: string;\r\n\r\n chkShortDescription: boolean;\r\n chkLongDescription: boolean;\r\n chkAnyDescription: boolean;\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: Inventory[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n searchingOn: string;\r\n buyerResponsible: string;\r\n hasPricing: boolean;\r\n coreCustomer: CoreCustomer;\r\n applyDiscounts: boolean;\r\n hasDicounts: boolean;\r\n rowCustomerRulesCache: CoreCustomerRule[];\r\n rowCustomerRules: CoreCustomerRule[];\r\n applyGeneralDiscount: boolean;\r\n generalDiscountPerc: number;\r\n rowCustomerRulesSpecialPrice: CoreCustomerRule[];\r\n rowCustomerRulesSupplierDiscount: CoreCustomerRule[];\r\n rowCustomerRulesCategoryDiscount: CoreCustomerRule[];\r\n rowCustomerRulesGeneralDiscount: CoreCustomerRule;\r\n applyGeneralNett: boolean;\r\n quantityByStockCode: {};\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService, private reportService: ReportService, \r\n private router: Router, private route: ActivatedRoute, private numberPipe: CurrencyPipe) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n if (this.isQuote) {\r\n if (sessionStorage.getItem(localStorageActions.Customer) != this.selectedCustomerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, this.selectedCustomerCode);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.CartId) != this.selectedCartNumber) {\r\n sessionStorage.setItem(localStorageActions.CartId, this.selectedCartNumber);\r\n }\r\n\r\n this.SetDataGrid();\r\n this.authorized = false;\r\n this.loadData();\r\n }\r\n } \r\n \r\n private SetDataGrid() {\r\n\r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: 100, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 400, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n { prop: 'availQty', name: 'Qty On Hand', width: 50, cellClass: \"right\" },\r\n { prop: 'binLoc', name: 'Bin', width: 60, cellClass: \"right\" },\r\n { prop: 'orderQty', name: 'Order Qty', width: 60, cellTemplate: this.orderQtyTemplate, cellClass: \"right\" },\r\n { prop: 'uom', name: 'UOM', width: 50, cellClass: \"center\" },\r\n { prop: 'sellingPrice', name: 'Price (excl)', width: 100, cellTemplate: this.priceTemplate },\r\n { prop: 'discountpercentage1', name: 'Disc
(%)', width: 60, cellTemplate: this.discountTemplate },\r\n { prop: 'specialPrice', name: 'Nett Price (excl)', width: 80, cellTemplate: this.totalTemplate, cellClass: \"right\" },\r\n { prop: 'lineTotal', name: 'Total (excl)', width: 90, cellTemplate: this.totalTemplate, cellClass: \"right\" }\r\n ];\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n loadData() {\r\n\r\n this.hasPricing = false;\r\n this.applyDiscounts = false;\r\n\r\n if (this.selectedCartNumber) {\r\n this.cartId = this.selectedCartNumber;\r\n this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n if (this.selectedCustomerCode) {\r\n this.id = this.selectedCustomerCode;\r\n this.sysproService.getCustomerDetail(this.id).subscribe(x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n onCartDetailLoadSuccessful(cartDetail: any[]) {\r\n if (cartDetail[0]) {\r\n this.cartRows = cartDetail;\r\n this.cartlinenumber = cartDetail.length;\r\n }\r\n }\r\n \r\n onDataLoadSuccessful(customer: ArCustomer) {\r\n this.customer = customer;\r\n this.coreCustomer = new CoreCustomer();\r\n this.sysproService.getPricingCustomer(this.id, this.application).subscribe(x => this.onCoreCustomerLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onCoreCustomerLoadSuccessful(x: CoreCustomer[]): void {\r\n if (x && x.length == 1) {\r\n if (x[0].customerCode != \"\") {\r\n this.coreCustomer = x[0];\r\n this.applyDiscounts = (this.coreCustomer.enabled == true? true : false);\r\n if (this.applyDiscounts) {\r\n this.sysproService.getAllPricingCustomerRules(this.coreCustomer.id).subscribe(x => this.onPricingRulesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n this.sysproService.getAllPricingCustomerPricesForCustomerCodeInventorySelect(this.id, this.application).subscribe(x => this.onPricesLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n if (this.loadCache == true) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n onPricesLoadSuccessful(prices: CoreCustomerPrices[]): void {\r\n\r\n if (prices && prices.length > 0) {\r\n this.priceRows = prices;\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Success', 'Autmatic Pricing Applied',\r\n MessageSeverity.info);\r\n\r\n if (this.loadCache == true) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n onPricingRulesLoadSuccessful(x: CoreCustomerRule[][]): void {\r\n \r\n if (x && x.length >= 1) {\r\n var ruleList = x[0];\r\n this.hasDicounts = true;\r\n this.rowCustomerRules = ruleList;\r\n }\r\n }\r\n\r\n getOrderQty(stockCode: string): number {\r\n var qty = 0;\r\n qty = this.cartRows.filter(s => s.stockCode == stockCode).reduce((sum, current) => sum + current.orderQty, 0);\r\n\r\n return qty;\r\n }\r\n\r\n onStockLoadSuccessful(inventory: any[], initialLoad?: boolean) {\r\n\r\n if (initialLoad && this.inventoryList && this.inventoryList.length >= 1) {\r\n // We dont want to replace what we just searched for\r\n }\r\n else {\r\n var generalDiscountPerc = new CoreCustomerRule();\r\n this.inventoryList = inventory[0];\r\n\r\n //Filter inventory list to only load items that are currently in the cart\r\n const stockedItemCodes = this.cartRows\r\n .filter(c => c.lineType === \"1\")\r\n .map(item => item.stockCode);\r\n\r\n this.inventoryList = this.inventoryList.filter(item => stockedItemCodes.includes(item.stockCode));\r\n\r\n this.inventoryList.forEach((stockCode, index, inventory) => {\r\n\r\n (stockCode).index = index + 1;\r\n // (stockCode).lineTotal = 0;\r\n (stockCode).cartNumber = this.cartId;\r\n stockCode.description = stockCode.shortDescription + ' - ' + stockCode.longDescription;\r\n (stockCode).orderQty = this.getOrderQty(stockCode.stockCode);\r\n (stockCode).orderqty = this.getOrderQty(stockCode.stockCode);\r\n (stockCode).sellingPrice = Calculations.RoundAwayFromZero(stockCode.sellingPrice, 5);\r\n (stockCode).specialPrice = Calculations.RoundAwayFromZero((stockCode.sellingPrice / stockCode.priceConvFac), 5);\r\n\r\n if (this.applyDiscounts && this.rowCustomerRules && this.rowCustomerRules.length > 0) {\r\n\r\n //Apply Automatic Pricing\r\n this.hasPricing = true;\r\n generalDiscountPerc = this.rowCustomerRules.find(x => x.priority == 4);\r\n\r\n if (this.priceRows && this.priceRows.length >= 1) {\r\n\r\n let specialPrice = this.priceRows.find(x => x.stockCode == stockCode.stockCode);\r\n if (specialPrice) {\r\n if (specialPrice.priority == 1) {\r\n (stockCode).specialPrice = specialPrice.newPrice;\r\n (stockCode).discountpercentage1 = specialPrice.value;\r\n }\r\n else {\r\n if (stockCode.sysproNettPrice == false || this.coreCustomer.staffAccount == true) {\r\n (stockCode).specialPrice = specialPrice.newPrice;\r\n (stockCode).discountpercentage1 = specialPrice.value;\r\n }\r\n }\r\n }\r\n else {\r\n if (generalDiscountPerc && (stockCode.sysproNettPrice == false || this.coreCustomer.staffAccount == true)) {\r\n if (generalDiscountPerc.addValue > 0) {\r\n (stockCode).specialPrice = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, generalDiscountPerc.addValue, 0, stockCode.priceConvFac, 0);\r\n (stockCode).discountpercentage1 = 0;\r\n }\r\n if (generalDiscountPerc.value > 0) {\r\n (stockCode).discountpercentage1 = generalDiscountPerc.value;\r\n (stockCode).specialPrice = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, generalDiscountPerc.value, stockCode.priceConvFac, 0);\r\n }\r\n }\r\n } \r\n }\r\n \r\n else {\r\n if (generalDiscountPerc && (stockCode.sysproNettPrice == false || this.coreCustomer.staffAccount == true)) {\r\n if (generalDiscountPerc.addValue > 0) {\r\n (stockCode).specialPrice = Calculations.getSpecialPriceTotal(stockCode.unitCost, 0, generalDiscountPerc.addValue, 0, stockCode.priceConvFac, 0);\r\n (stockCode).discountpercentage1 = 0;\r\n }\r\n if (generalDiscountPerc.value > 0) {\r\n (stockCode).discountpercentage1 = generalDiscountPerc.value;\r\n (stockCode).specialPrice = Calculations.getSpecialPriceTotal(0, stockCode.sellingPrice, 0, generalDiscountPerc.value, stockCode.priceConvFac, 0);\r\n }\r\n }\r\n } \r\n }\r\n\r\n this.setLineTotal(stockCode);\r\n });\r\n \r\n this.rowsCache = [...this.inventoryList];\r\n this.rows = [...this.inventoryList];\r\n\r\n this.isReloading = false;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.authorized = false;\r\n\r\n //if (this.searchTerm.trim() != \"\") {\r\n // this.onSearchChanged(this.searchTerm);\r\n //}\r\n } \r\n }\r\n\r\n\r\n getSpecialPrice(stockCode: Inventory, generalDiscountPerc?: CoreCustomerRule): any {\r\n var specialPrice = this.priceRows.filter(x => x.stockCode == stockCode.stockCode);\r\n \r\n if (specialPrice && specialPrice[0]) {\r\n var priceToApply = specialPrice.sort(p => p.priority)[0];\r\n stockCode.specialPrice = priceToApply.newPrice;\r\n stockCode.discountpercentage1 = priceToApply.value;\r\n }\r\n \r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchTerm = \"\";\r\n this.inventoryList = null;\r\n this.searchingOn = (this.chkAnyDescription && this.searchType == \"description\" ? \"STOCK\" :\r\n this.chkLongDescription && this.searchType == \"description\" ? \"LONGDESCRIPTION\" :\r\n (this.chkShortDescription && this.searchType == \"description\" ? \"SHORTDESCRIPTION\" : this.searchType));\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchingOn, this.searchText.trim().replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => this.onStockLoadSuccessful([x], false), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onSpecificSearchSuccesful(x: Inventory[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n\r\n calcOrderQty(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.orderqty = val;\r\n let total = 0;\r\n let discount = (row.discountpercentage1 && row.discountpercentage1 >= 0 ? row.discountpercentage1 : 0);\r\n\r\n if (discount > 0) {\r\n total = Calculations.getGridLineTotal(row.orderqty, row.sellingPrice, row.priceConvFac, discount, total);\r\n }\r\n else {\r\n let specialUnit = row.specialPrice * row.priceConvFac;\r\n total = Calculations.getGridLineTotal(row.orderqty, specialUnit, row.priceConvFac, discount, total);\r\n }\r\n\r\n //(row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n\r\n row.lineTotal = total;\r\n }\r\n\r\n calcDisc(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.discountpercentage1 = val;\r\n let qty = (row.orderqty && row.orderqty >= 0 ? row.orderqty : 0);\r\n let total = 0;\r\n\r\n total = Calculations.getGridLineTotal(qty, row.sellingPrice, row.priceConvFac, row.discountpercentage1, total);\r\n row.specialPrice = Calculations.getGridLineTotal(1, row.sellingPrice, row.priceConvFac, row.discountpercentage1, total);\r\n\r\n //(row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n calcPrice(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n\r\n let discount = (row.discountpercentage1 && row.discountpercentage1 >= 0 ? row.discountpercentage1 : 0);\r\n let qty = (row.orderqty && row.orderqty >= 0 ? row.orderqty : 0);\r\n let total = 0;\r\n\r\n row.specialPrice = Calculations.getGridLineTotal(1, row.sellingPrice, row.priceConvFac, discount, total);\r\n\r\n total = Calculations.getGridLineTotal(qty, row.sellingPrice, row.priceConvFac, discount, total);\r\n\r\n\r\n //(row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n setLineTotal(row: Inventory) {\r\n let discount = (row.discountpercentage1 && row.discountpercentage1 >= 0 ? row.discountpercentage1 : 0);\r\n let qty = (row.orderQty && row.orderQty >= 0 ? row.orderQty : 0);\r\n let total = 0;\r\n row.specialPrice = Calculations.getGridLineTotal(1, row.sellingPrice, row.priceConvFac, discount, total);\r\n total = Calculations.getGridLineTotal(qty, row.sellingPrice, row.priceConvFac, discount, total);\r\n row.lineTotal = total;\r\n }\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n \r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return;}\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n //onSearchChanged(e: any) {\r\n // let test = e;\r\n // let value = this.smartsearch;\r\n // if (value.trim() != \"\") {\r\n // var filterValues = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.description, r.stockCode, r.warehouse, r.extraProductInform));\r\n // this.rows = this._sortByTerm(filterValues, \"description\", value.toUpperCase());\r\n // this.searchTerm = value;\r\n // }\r\n // else {\r\n // this.searchTerm = \"\";\r\n // this.rows = [...this.rowsCache];\r\n // }\r\n //}\r\n\r\n //_sortByTerm(data, key, term) {\r\n // return data.sort(function (a, b) {\r\n // return a[key].indexOf(term) < b[key].indexOf(term) ? -1 : 1;\r\n // });\r\n //}\r\n\r\n\r\n //viewCustomer() {\r\n // this.isNavigating = true;\r\n // this.isNavigatingTo = \"customer\";\r\n // this.save();\r\n // //this.cartlinenumber > 0 && \r\n // if (this.rowsCache.filter(x => x.orderqty > 0).length <= 0) {\r\n // this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n // }\r\n //}\r\n\r\n //goAddNSItems() {\r\n // this.isNavigating = true;\r\n // this.isNavigatingTo = \"nonstock\";\r\n // this.save();\r\n // //this.cartlinenumber > 0 && \r\n // if (this.rowsCache.filter(x => x.orderqty > 0).length <= 0) {\r\n // this.router.navigate(['../../orders'], { fragment: 'nonstock', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n // }\r\n //}\r\n\r\n //goSaveItems() {\r\n // this.isNavigating = true;\r\n // this.isNavigatingTo = \"cart\";\r\n // this.save();\r\n // //this.cartlinenumber > 0 && \r\n // if (this.rowsCache.filter(x => x.orderqty > 0).length <= 0) {\r\n // this.router.navigate(['../../orders'], { fragment: 'cart', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n // }\r\n //}\r\n\r\n deleteCartLine(cartLine) {\r\n this.fowkesService.cartDetailDelete(cartLine.cartNumber, cartLine.cartLineNumber).subscribe(\r\n _response => {\r\n // Handle successful deletion\r\n console.log(`Deleted line: ${cartLine.cartLineNumber} successfully`);\r\n },\r\n error => {\r\n this.saveFailedHelper(error);\r\n }\r\n );\r\n }\r\n\r\n goSaveUpdatedItems() {\r\n //First delete all stocked items then add them again\r\n var existingCart = this.cartRows.filter(c => c.lineType == \"1\");\r\n const handledLines = new Set();\r\n\r\n existingCart.forEach(cartLine => {\r\n if (!handledLines.has(cartLine.cartLineNumber)) {\r\n handledLines.add(cartLine.cartLineNumber);\r\n this.deleteCartLine(cartLine);\r\n }\r\n });\r\n //var existingCart = this.cartRows.filter(c => c.lineType == \"1\");\r\n //for (var cartLine of existingCart) {\r\n // this.fowkesService.cartDetailDelete(cartLine.cartNumber, cartLine.cartLineNumber).subscribe(_response => {}, error => this.saveFailedHelper(error));\r\n //}\r\n\r\n this.isNavigating = true;\r\n this.isNavigatingTo = \"cart\";\r\n this.save();\r\n\r\n ////If we are still busy saving but want to navigate, don't save again\r\n //if (this.isSaving || this.isReloading) {\r\n // return;\r\n //}\r\n //else {\r\n // //Do we have lines we want to save\r\n // const saveRows = this.rowsCache.filter(x => x.orderqty > 0);\r\n // this.saveCount = saveRows.length;\r\n\r\n // if (this.saveCount > 0) {\r\n\r\n // this.isSaving = true;\r\n // this.alertService.startLoadingMessage('Saving changes...');\r\n // this.savedLineCount = 0;\r\n\r\n // const saveRowsMap = new Map();\r\n // saveRows.forEach(item => {\r\n // if (!saveRowsMap.has(item.stockCode)) {\r\n // saveRowsMap.set(item.stockCode, item);\r\n // }\r\n // });\r\n // var existingCart = this.cartRows;\r\n // existingCart.forEach(line => {\r\n // if (line.lineType === \"1\" && saveRowsMap.has(line.stockCode)) {\r\n // const updatedLine = saveRowsMap.get(line.stockCode);\r\n\r\n // // Update the existing line with values from the mapped item\r\n // line.orderQty = updatedLine.orderqty;\r\n // line.unitCost = updatedLine.unitCost;\r\n // line.orderUom = updatedLine.uom;\r\n // line.discountPercentage1 = updatedLine.discountpercentage1;\r\n // line.sellingPrice = updatedLine.sellingPrice;\r\n // line.specialPrice = updatedLine.specialPrice;\r\n // line.nettPrice = Calculations.getGridNettLinePrice(updatedLine.orderqty, updatedLine.sellingPrice, updatedLine.priceConvFac, updatedLine.discountpercentage1, 0);\r\n // line.nettDiscount = 0;\r\n // line.gP = 0;\r\n\r\n // if (this.ValidateSave(line)) {\r\n // let newPrice = (updatedLine.discountpercentage1 > 0 ? line.sellingPrice : (updatedLine.specialPrice * updatedLine.priceConvFac));\r\n\r\n // line.originalPrice = updatedLine.sellingPrice;\r\n // if (updatedLine.discountpercentage1 == 0 && Math.floor(newPrice) < Math.floor(line.originalPrice)) {\r\n // line.discountPercentage1 = Calculations.calculateSpecialDiscountTotal(line.originalPrice, newPrice, 0);\r\n // line.originalDiscount = line.discountPercentage1;\r\n // }\r\n\r\n // this.fowkesService.cartDetail(line, line.cartNumber).subscribe(_response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n // this.savedLineCount++;\r\n // }\r\n // }\r\n // });\r\n\r\n // }\r\n //}\r\n }\r\n private save() {\r\n \r\n //If we are still busy saving but want to navigate, don't save again\r\n if (this.isSaving || this.isReloading) {\r\n return;\r\n }\r\n else {\r\n //Do we have lines we want to save\r\n const saveRows = this.rowsCache.filter(x => x.orderqty > 0);\r\n this.saveCount = saveRows.length;\r\n\r\n if (this.saveCount > 0) {\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.savedLineCount = 0;\r\n\r\n //Populate cart rows with selected input \r\n for (var product of saveRows) {\r\n this.cartlinenumber = this.GenerateUniqueCartLineNumber() + 1;\r\n product.discountpercentage1 = (product.discountpercentage1 && product.discountpercentage1 >= 0 ? product.discountpercentage1 : 0);\r\n const cartRow = new CartDetail;\r\n cartRow.cartNumber = this.cartId;\r\n cartRow.lineType = \"1\";\r\n cartRow.stockCode = product.stockCode;\r\n cartRow.cartLineNumber = this.cartlinenumber;\r\n cartRow.stockDescription = product.description.length > 50 ? product.description.substr(0, 50) : product.description;\r\n cartRow.warehouse = product.warehouse;\r\n cartRow.orderQty = product.orderqty;\r\n cartRow.unitCost = product.unitCost;\r\n cartRow.orderUom = product.uom;\r\n cartRow.discountPercentage1 = product.discountpercentage1;\r\n cartRow.discountValue = 0;\r\n cartRow.unitmass = 0;\r\n cartRow.unitvolume = 0;\r\n cartRow.comment = \"\";\r\n cartRow.commentFromLineNumber = 0;\r\n cartRow.commentType = \"\";\r\n cartRow.boSupplierName = \"\";\r\n cartRow.boSupplierInvoice = \"\";\r\n cartRow.boLineInfo = \"\";\r\n cartRow.boSupplierCode = \"\";\r\n cartRow.vatExempt = product.vatExempt;\r\n cartRow.sellingPrice = product.sellingPrice;// (product.specialPrice * product.priceConvFac);\r\n cartRow.originalDiscount = product.discountpercentage1;\r\n \r\n cartRow.specialPrice = (product.specialPrice);\r\n cartRow.nettPrice = Calculations.getGridNettLinePrice(product.orderqty, product.sellingPrice, product.priceConvFac, product.discountpercentage1, 0);\r\n cartRow.nettDiscount = 0;\r\n cartRow.gP = 0;\r\n \r\n if (this.ValidateSave(cartRow)) {\r\n let newPrice = (product.discountpercentage1 > 0 ? cartRow.sellingPrice : (product.specialPrice * product.priceConvFac));\r\n // cartRow.sellingPrice = (product.discountpercentage1 > 0 ? cartRow.sellingPrice : (product.specialPrice * product.priceConvFac));\r\n cartRow.originalPrice = product.sellingPrice;\r\n if (product.discountpercentage1 == 0 && Math.floor(newPrice) < Math.floor(cartRow.originalPrice)) {\r\n cartRow.discountPercentage1 = Calculations.calculateSpecialDiscountTotal(cartRow.originalPrice, newPrice, 0);\r\n cartRow.originalDiscount = cartRow.discountPercentage1;\r\n }\r\n this.fowkesService.cartDetail(cartRow).subscribe(_response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n this.cartRows.push(cartRow);\r\n this.savedLineCount++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n ValidateSave(row: CartDetail): boolean {\r\n let error = \"\";\r\n if (row.lineType !== \"6\") {\r\n if (!this.authorized) {\r\n error = validation.minSpecialPrice(row.unitCost, row.specialPrice, error);\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Error', error + 'For item ' + row.stockCode, MessageSeverity.error);\r\n this.authorized = false;\r\n this.authModal.show();\r\n return false;\r\n }\r\n else {\r\n this.authorized = true;\r\n }\r\n }\r\n if (this.authorized) {\r\n row.discountPercentage1 = (row.discountPercentage1 && row.discountPercentage1 >= 0 ? row.discountPercentage1 : 0);\r\n error = validation.stockCode(row.stockCode, error);\r\n error = validation.description(row.stockDescription, error);\r\n error = validation.qty(row.orderQty, error);\r\n error = validation.uom(row.orderUom, error);\r\n error = validation.price(row.sellingPrice, error);\r\n error = validation.discount(row.discountPercentage1, error);\r\n error = validation.cost(row.unitCost, error);\r\n // error = validation.minPrice(row.unitCost, row.sellingPrice, row.discountPercentage1, error);\r\n\r\n if (error.length > 1) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', error + 'For item ' + row.stockCode, MessageSeverity.error);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n //verifyAuth() {\r\n // this.alertService.startLoadingMessage(\"Verfiying...\");\r\n // this.loadingIndicator = true;\r\n // this.fowkesService.VerifyPassword(this.branchCode, \"PRICE\", encodeURIComponent(this.stringToCompare)).subscribe(x => this.onVerificationSuccess(), error => this.onVerificationFailed(error));\r\n\r\n //}\r\n //onVerificationSuccess(): void {\r\n // this.authorized = true;\r\n // this.alertService.stopLoadingMessage();\r\n // this.alertService.showMessage('Success', 'Authorized', MessageSeverity.success);\r\n // this.authModal.hide();\r\n // this.save();\r\n //}\r\n\r\n onVerificationFailed(error: any): void {\r\n this.authorized = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Error', 'Authorization Failed ', MessageSeverity.error);\r\n } \r\n\r\n GenerateUniqueCartLineNumber(): any {\r\n if (this.cartRows.length > 0) {\r\n const maxId = this.cartRows.reduce(\r\n (max, character) => (character.cartLineNumber > max ? character.cartLineNumber : max),\r\n this.cartRows[0].cartLineNumber\r\n );\r\n return maxId;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n \r\n private saveSuccessHelper(cart?: CartDetail) {\r\n\r\n this.cartSaved = true;\r\n\r\n //Check if all the lines have been saved\r\n if (this.saveCount == this.savedLineCount)\r\n {\r\n\r\n this.router.navigate(['../orders'], { fragment: 'cart', queryParams: { customer: this.selectedCustomerCode, cartId: this.selectedCartNumber } });\r\n\r\n }\r\n\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n }\r\n\r\n private refreshAll() {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.isReloading = true;\r\n this.alertService.startLoadingMessage(\"Reloading...\");\r\n this.sysproService.getCartDetail(this.cartId, this.branchCode).subscribe(x => this.onCartDetailLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n if (this.searchText.trim().length >= 1) {\r\n this.searchingOn = (this.chkAnyDescription && this.searchType == \"description\" ? \"STOCK\" :\r\n this.chkLongDescription && this.searchType == \"description\" ? \"LONGDESCRIPTION\" :\r\n (this.chkShortDescription && this.searchType == \"description\" ? \"SHORTDESCRIPTION\" : this.searchType));\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchingOn, this.searchText.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => this.onStockLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n //Check if all the lines have been saved\r\n if (this.saveCount == this.savedLineCount) {\r\n \r\n //Reload the inventory and cart details\r\n this.refreshAll();\r\n }\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n stockCodeModalHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n \r\n if (row.lineType != \"7\" && row.mapped) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.description;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.addSheetImage = row.addSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n this.stockCodedetail.onSpecialFowkes = row.onSpecialFowkes;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey && row.mapped) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.alternateKey;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n //this.sysproService.getStockCodeAvailableQuantities(row.alternateKey).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n openSpecials(row: Inventory) {\r\n if (this.application == \"MaxArcusOnline\") {\r\n window.open(\"https://www.maxarcus.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n else {\r\n //Updated \r\n window.open(\"https://www.fowkes.co.za/products?keyword=\" + encodeURIComponent(row.stockCode), \"_blank\");\r\n }\r\n\r\n //if (!!row.specialsImage && row.specialsImage != \"\") {\r\n // window.open(row.filePath + \"/SpecialImages/\" + row.specialsImage, \"_blank\");\r\n //}\r\n }\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n\r\n onEmailLoadSuccessful() {\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasAddDataSheets = false;\r\n this.hasSpecials = false;\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n this.hasAddDataSheets = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage.length >= 1);\r\n\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.specialsImage.length >= 1 && (this.stockCodedetail.onSpecial || this.stockCodedetail.onSpecialFowkes));\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"), this.branchCode, this.application).subscribe(x => this.emailModal.show(), error => this.onDataLoadFailed(error));\r\n\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.customer.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim();\r\n }\r\n if (this.hasAddDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc3 = this.stockCodedetail.addSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n titleCase(str) {\r\n str = str.toLowerCase();\r\n return str.replace(/\\w\\S/g, function (t) { return t.toUpperCase() });\r\n }\r\n\r\n\r\n viewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n console.log(this.emailObject);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.emailObject.AddDoc1 = (this.attachDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var stockCode = this.emailObject.Attachment.replace('/', '_').replace('+', '_').replace('%', '_');\r\n\r\n this.src = url;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = stockCode + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n \r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{value}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left; }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-image: linear-gradient(to right, #0e4597, #134aa0, #174ea8, #1b53b1, #1f58ba, #1e63c4, #1f6fcd, #227ad6, #308ee0, #45a1e8, #5db4ef, #78c7f6);\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n\\n:host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #78C7F6; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9xdW90ZXMvY29weS1xdW90ZS9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHF1b3Rlc1xcY29weS1xdW90ZVxcY3VzdG9tZXJzLXNlYXJjaC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9xdW90ZXMvY29weS1xdW90ZS9jdXN0b21lcnMtc2VhcmNoLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUlqQztFQUNFLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQU9JLGdCQUFnQixFQUFBOztBQUtwQjtFQUNFLHVKQUF1SjtFQUN2Sjs7O29IQ0hrSCxFRE1DOztBQUdySDtFQUNFLHlCQUF5QixFQUFBOztBQUczQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3F1b3Rlcy9jb3B5LXF1b3RlL2N1c3RvbWVycy1zZWFyY2guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gXHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMGU0NTk3LCAjMTM0YWEwLCAjMTc0ZWE4LCAjMWI1M2IxLCAjMWY1OGJhLCAjMWU2M2M0LCAjMWY2ZmNkLCAjMjI3YWQ2LCAjMzA4ZWUwLCAjNDVhMWU4LCAjNWRiNGVmLCAjNzhjN2Y2KTtcclxuICAvKmJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7Ki9cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4QzdGNjtcclxufVxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuXHJcbiIsIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyB9XG5cbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuICA6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwgYSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwZTQ1OTcsICMxMzRhYTAsICMxNzRlYTgsICMxYjUzYjEsICMxZjU4YmEsICMxZTYzYzQsICMxZjZmY2QsICMyMjdhZDYsICMzMDhlZTAsICM0NWExZTgsICM1ZGI0ZWYsICM3OGM3ZjYpO1xuICAvKmJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7Ki8gfVxuXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4QzdGNjsgfVxuXG4udXNlci1yb2xlIHtcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuXG4uY29udHJvbC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLnNlYXJjaC1ib3gge1xuICBtYXJnaW46IDA7IH1cblxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xuICBwYWRkaW5nLXRvcDogM3B4O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtaW4td2lkdGg6IDEwMHB4OyB9XG5cbi51c2VyLWRpc2FibGVkIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ubG9ja2VkLW91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcbiAgY29sb3I6IHdoaXRlc21va2U7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG4iXX0= */\"","\r\nimport { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n@Component({\r\n selector: 'customers-search',\r\n templateUrl: './customers-search.component.html',\r\n styleUrls: ['./customers-search.component.scss']\r\n})\r\nexport class CustomerSearchComponent implements OnInit, AfterViewInit {\r\n\r\n @Output() customerSelected = new EventEmitter();\r\n\r\n columns: any[] = [];\r\n rows: ArCustomer[] = [];\r\n rowsCache: ArCustomer[] = [];\r\n loadingIndicator: boolean;\r\n\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n \r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n isSearch: boolean;\r\n\r\n @Input()\r\n isQuote: boolean;\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService,\r\n private sysproService: SysproService, private configurations: ConfigurationService, \r\n private router: Router) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n let quoteId = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n\r\n if (quoteId && action) {\r\n\r\n }\r\n\r\n this.SetDataGrid();\r\n this.loadData();\r\n }\r\n\r\n continueCartHelper(): any {\r\n\r\n\r\n }\r\n\r\n clearCartHelper(): any {\r\n if (this.isCart) {\r\n sessionStorage.removeItem(localStorageActions.CartId);\r\n }\r\n }\r\n\r\n\r\n private SetDataGrid() {\r\n \r\n this.columns = [\r\n { prop: 'customer', name: 'Customer', width: 90, cellClass: \"center\", cellTemplate: this.actionsTemplate },\r\n { prop: 'customerName', name: 'Name', width: 220, cellClass: \"left\", cellTemplate: this.actionsTemplate },\r\n { prop: 'telephone', name: 'Tel', width: 110, cellClass: \"left\", cellTemplate: this.actionsTemplate },\r\n { prop: 'email', name: 'Email', width: 200, cellClass: \"left\", cellTemplate: this.actionsTemplate },\r\n { prop: 'addTelephone', name: 'Mobile', width: 110, cellClass: \"left\", cellTemplate: this.actionsTemplate },\r\n { prop: 'contact', name: 'Contact', width: 130, cellClass: \"left\", cellTemplate: this.actionsTemplate },\r\n { prop: 'branch', name: 'Branch', width: 50, cellClass: \"center\", cellTemplate: this.actionsTemplate },\r\n { prop: 'customerOnHold', name: 'On Hold', width: 50, cellClass: \"center\", cellTemplate: this.actionsTemplate }\r\n ];\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getCustomerSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: ArCustomer[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n\r\n }\r\n\r\n loadData() {\r\n\r\n this.searchType = \"customer\";\r\n \r\n if (this.loadCache == true) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getCustomers(this.branchCode).subscribe(x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n\r\n onDataLoadSuccessful(customers: ArCustomer[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = [...customers];\r\n this.rows = customers.slice(0,18);\r\n }\r\n\r\n \r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n var filterValues = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.customerName, r.customer, r.telephone, r.email, r.addTelephone, r.branch, r.contact, r.salesperson));\r\n this.rows = this._sortByTerm(filterValues, \"customerName\", value.toUpperCase());\r\n } \r\n }\r\n\r\n\r\n _sortByTerm(data, key, term) {\r\n return data.sort(function (a, b) {\r\n return a[key].indexOf(term) > b[key].indexOf(term) ? -1 : 1;\r\n });\r\n }\r\n\r\n selectCustomer(row: ArCustomerEdit) {\r\n // this.setLocalCustomer(row.customer);\r\n this.customerSelected.emit(row);\r\n\r\n }\r\n\r\n setCustomer(row: ArCustomerEdit) {\r\n this.setLocalCustomer(row.customer);\r\n \r\n }\r\n\r\n setLocalCustomer(customer: string) {\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n } \r\n }\r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\" class=\\\"row\\\">\\r\\n
\\r\\n
\\r\\n {{customer.customer}} has had a total of\\r\\n \\r\\n sales orders over the last 12 months.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Quote conversion to order =\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.customer}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.branch}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.customerName }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.area}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.telephone }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.salesperson}} - {{customer.salespersonName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.addTelephone }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.fax }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.termsDescription }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.email }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.currency }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.companyTaxNumber }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Vat number is required\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.buyersName }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.taxExemptNumber }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Customer is vat exempt\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.taxExemptNumber }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.buyersEmail }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
R {{customer.currentBalance1 | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.telex }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Too many characters (maximum of 10 allowed)\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.soldToAddr1 }}
\\r\\n
{{customer.soldToAddr2 }}
\\r\\n
{{customer.soldToAddr3 }}
\\r\\n
{{customer.soldToAddr4 }}
\\r\\n
{{customer.soldToAddr5 }}
\\r\\n
{{customer.soldPostalCode }}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Too many characters (maximum of 10 allowed)\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{customer.shipToAddr1 }}
\\r\\n
{{customer.shipToAddr2 }}
\\r\\n
{{customer.shipToAddr3 }}
\\r\\n
{{customer.shipToAddr4 }}
\\r\\n
{{customer.shipToAddr5 }}
\\r\\n
{{customer.shipPostalCode }}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Too many characters (maximum of 10 allowed)\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Notes:

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

DEBTORS AGEING:

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Credit Status:
\\r\\n
Credit Limit:
\\r\\n
Current Balance:
\\r\\n
Over Limit:
\\r\\n
\\r\\n
\\r\\n
{{customer.creditStatus }}
\\r\\n
R {{customer.creditLimit | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.currentBalance1 | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{overLimit | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Current:
\\r\\n
30 Days:
\\r\\n
60 Days:
\\r\\n
90 Days:
\\r\\n
120 Days:
\\r\\n
Balance:
\\r\\n
\\r\\n
\\r\\n
R {{customer.valCurrentInv | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.val30daysInv | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.val60daysInv | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.val90daysInv | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.val120daysInv | currency:' ':'symbol':'1.2'}}
\\r\\n
R {{customer.currentBalance1 | currency:' ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n
No. in Current:
\\r\\n
No. in 30 Days:
\\r\\n
No. in 60 Days:
\\r\\n
No. in 90 Days:
\\r\\n
No. in 120 Days:
\\r\\n
No. of balance:
\\r\\n
\\r\\n
\\r\\n
{{customer.numCurrentInv }}
\\r\\n
{{customer.num30daysInv }}
\\r\\n
{{customer.num60daysInv }}
\\r\\n
{{customer.num90daysInv }}
\\r\\n
{{customer.num120daysInv }}
\\r\\n
{{totalInvoiceCount}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .customerview .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px;\\n margin-left: 0; }\\n .control-label {\\n font-size: 13px;\\n font-weight: bold;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n /*\\r\\ninput.form-control {\\r\\n height: 18px;\\r\\n font-size: 0.600rem;\\r\\n}\\r\\n*/\\n .table th {\\n font-size: smaller; }\\n .table th, .table td {\\n padding: 5px; }\\n .table tr {\\n height: 20px; }\\n :host ::ng-deep .mat-progress-bar .mat-progress-bar-fill::after {\\n background-image: linear-gradient(to right, #0e4597, #134aa0, #174ea8, #1b53b1, #1f58ba, #1e63c4, #1f6fcd, #227ad6, #308ee0, #45a1e8, #5db4ef, #78c7f6);\\n /*background: -webkit-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%) !important;\\r\\n background: -o-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: -moz-linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);\\r\\n background: linear-gradient(60deg, rgb(255, 34, 0) 0%, rgb(223, 255, 0) 45%, #0000ff 65%, rgb(104, 213, 74) 80%);*/ }\\n :host ::ng-deep .mat-progress-bar .mat-progress-bar-buffer {\\n background-color: #78C7F6; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9xdW90ZXMvY29weS1xdW90ZS9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHF1b3Rlc1xcY29weS1xdW90ZVxcY3VzdG9tZXJzLXZpZXcuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvcXVvdGVzL2NvcHktcXVvdGUvY3VzdG9tZXJzLXZpZXcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7RUFDWiwwRUFBMEUsRUFBQTtFQVA1RTtJQVVJLDhCQUE4QjtJQUM5QixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLFVBQVU7SUFDVixXQUFXLEVBQUE7RUFJZixVQUFBO0VBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCO0VBQ3ZCLDZDQUEwQyxFQUFBO0VBSTVDO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixVQUFVLEVBQUE7RUFkZDtJQW1CSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0VBckJwQjtJQTBCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUdoQjtFQUVJLHNCQUFzQjtFQUN0Qiw0REFBaUc7RUFDakcsa0JBQWtCO0VBQ2xCLGNBQWMsRUFBQTtFQUlsQjtFQUNFLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksVUFBVSxFQUFBO0VBS2Q7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QixFQUFBO0VBRXpCO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCO21DQzFCK0I7SUQ0Qi9CLGlCQUFpQjtJQUNqQixZQUFZLEVBQUE7RUFiaEI7SUFpQkksa0JBQWtCO0lBQ2xCLGdCQUFnQixFQUFBO0VBbEJwQjtJQXNCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQixtQkFBQTtFQUNBO0VBQ0U7SUFDRSwrRkFBQTtJQUNBLDZCQUE2QixFQUFBLEVBQzlCO0VBR0gsa0JBQUE7RUFDQTtFQUNFO0lBQ0Usc0VBQUE7SUFDQSxzQkFBc0IsRUFBQSxFQUN2QjtFQUlIO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsV0FBVyxFQUFBO0VBR2I7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLE9BQU87RUFDUCxXQUFXLEVBQUE7RUFKYjtJQU9JLFlBQVksRUFBQTtFQUlkO0VBQ0UsZUFBZTtFQUNmLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsZUFBZTtFQUNmLGlDQUFpQyxFQUFBO0VBR25DO0VBQ0UsZUFBZSxFQUFBO0VBR2pCO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxjQUFjLEVBQUE7RUFHaEI7RUFDRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGlCQUFpQixFQUFBO0VBR25COztFQUVFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0U7SUFDRSxnQkFBZ0IsRUFBQSxFQUNqQjtFQUdMOzs7OztDQ2hEQztFRHVERDtFQUNFLGtCQUFrQixFQUFBO0VBR3BCO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSxZQUFZLEVBQUE7RUFJZDtFQUNFLHVKQUF1SjtFQUN2Sjs7O29IQ3ZEa0gsRUQwREM7RUFHckg7RUFDRSx5QkFBeUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcXVvdGVzL2NvcHktcXVvdGUvY3VzdG9tZXJzLXZpZXcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmFkZHJlc3MtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xyXG4gIHBhZGRpbmc6IDI1cHg7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xyXG5cclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyogTGFyZ2UgKi9cclxuLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xyXG4gIC8vaGVpZ2h0OiAyNXB4O1xyXG59XHJcblxyXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICBmbGV4OiBub25lO1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcbi5jdXN0b21lcnZpZXd7XHJcbiAgLnJvdyB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYigyNTUsIDI1NSwgMjU1KSwgcmdiKDI1NSwgMjU1LCAyNTUpIDEwJSwgcmdiKDI0NywgMjQ3LCAyNDcpKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbnRyb2wtbGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAzcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gIG1pbi13aWR0aDogMTcwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCB7XHJcbiAgcGFkZGluZzogOHB4O1xyXG5cclxuICAubmF2LWxpbmsge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xyXG4gIHBhZGRpbmc6IDJweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gIHBhZGRpbmc6IDVweCAxMHB4IDAgMTBweDtcclxufVxyXG5cclxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuc21hbGwtY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgd2lkdGg6IDEyMHB4O1xyXG4gIH1cclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLyogTWVkaXVtIHNjcmVlbnMgKi9cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcclxuICAuZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgICAvKiBXaGVuIG9uIG1lZGl1bSBzaXplZCBzY3JlZW5zLCB3ZSBjZW50ZXIgaXQgYnkgZXZlbmx5IGRpc3RyaWJ1dGluZyBlbXB0eSBzcGFjZSBhcm91bmQgaXRlbXMgKi9cclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gIH1cclxufVxyXG5cclxuLyogU21hbGwgc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5jb2x1bW4ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4OiAxO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG5cclxuICBsYWJlbCB7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogN3B4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxuICB9XHJcblxyXG4gIC5zdWJzZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDdweDtcclxuICB9XHJcblxyXG4gIC5mb3JtLWdyb3VwIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xyXG4gICAgbWluLWhlaWdodDogMDtcclxuICB9XHJcblxyXG4gIC5jaGVja2JveCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxuICB9XHJcblxyXG4gIC5jb2wtcmVzZXQtZGVmYXVsdCB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1zZXQtZGVmYXVsdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICB9XHJcblxyXG4gIC5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxyXG4gIC5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XHJcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuY29sLWZvcm0tbGFiZWwge1xyXG4gICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8qXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgaGVpZ2h0OiAxOHB4O1xyXG4gIGZvbnQtc2l6ZTogMC42MDByZW07XHJcbn1cclxuKi9cclxuXHJcbi50YWJsZSB0aCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcblxyXG4udGFibGUgdGgsIC50YWJsZSB0ZCB7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4udGFibGUgdHIge1xyXG4gIGhlaWdodDogMjBweDtcclxufVxyXG5cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMGU0NTk3LCAjMTM0YWEwLCAjMTc0ZWE4LCAjMWI1M2IxLCAjMWY1OGJhLCAjMWU2M2M0LCAjMWY2ZmNkLCAjMjI3YWQ2LCAjMzA4ZWUwLCAjNDVhMWU4LCAjNWRiNGVmLCAjNzhjN2Y2KTtcclxuICAvKmJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7Ki9cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4QzdGNjtcclxufVxyXG4iLCIuYWRkcmVzcy1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xuICBwYWRkaW5nOiAyNXB4O1xuICBtYXJnaW46IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XG4gIC5hZGRyZXNzLWNvbnRhaW5lciBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiBtZWRpdW0gbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLyogTGFyZ2UgKi9cbi5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4uY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBmbGV4OiBub25lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4LWdyb3c6IDI7XG4gICAgbWluLXdpZHRoOiAyMDBweDsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4uY3VzdG9tZXJ2aWV3IC5yb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlIDEwJSwgI2Y3ZjdmNyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWluLXdpZHRoOiAxNzBweDsgfVxuXG4uY29udHJvbC1kZXRhaWwge1xuICBwYWRkaW5nOiA4cHg7IH1cbiAgLmNvbnRyb2wtZGV0YWlsIC5uYXYtbGluayB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDEyMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBTbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5jb2x1bW4gbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDsgfVxuXG4uc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7IH1cblxuLnN1YnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5sYXN0LXNlcGFyYXRvci1ociB7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBtaW4taGVpZ2h0OiAwOyB9XG5cbi5jaGVja2JveCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmNvbC1zZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcbiAgbWluLXdpZHRoOiAxNTBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1mb3JtLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4OyB9IH1cblxuLypcclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBoZWlnaHQ6IDE4cHg7XHJcbiAgZm9udC1zaXplOiAwLjYwMHJlbTtcclxufVxyXG4qL1xuLnRhYmxlIHRoIHtcbiAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi50YWJsZSB0ciB7XG4gIGhlaWdodDogMjBweDsgfVxuXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwZTQ1OTcsICMxMzRhYTAsICMxNzRlYTgsICMxYjUzYjEsICMxZjU4YmEsICMxZTYzYzQsICMxZjZmY2QsICMyMjdhZDYsICMzMDhlZTAsICM0NWExZTgsICM1ZGI0ZWYsICM3OGM3ZjYpO1xuICAvKmJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDYwZGVnLCByZ2IoMjU1LCAzNCwgMCkgMCUsIHJnYigyMjMsIDI1NSwgMCkgNDUlLCAjMDAwMGZmIDY1JSwgcmdiKDEwNCwgMjEzLCA3NCkgODAlKSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoNjBkZWcsIHJnYigyNTUsIDM0LCAwKSAwJSwgcmdiKDIyMywgMjU1LCAwKSA0NSUsICMwMDAwZmYgNjUlLCByZ2IoMTA0LCAyMTMsIDc0KSA4MCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg2MGRlZywgcmdiKDI1NSwgMzQsIDApIDAlLCByZ2IoMjIzLCAyNTUsIDApIDQ1JSwgIzAwMDBmZiA2NSUsIHJnYigxMDQsIDIxMywgNzQpIDgwJSk7Ki8gfVxuXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXIgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4QzdGNjsgfVxuIl19 */\"","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ArNarration } from 'src/app/models/arnarration.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { ArCustomerEdit } from '../../../models/arcustomer-edit.model';\r\nimport { ArCustomer } from '../../../models/arcustomer.model';\r\nimport { CartHeader } from '../../../models/cart-header.model';\r\nimport { CoreCustomerRule } from '../../../models/core-customer-rule.model';\r\nimport { CoreCustomer } from '../../../models/core-customer.model';\r\nimport { CustomerSalesConversion } from '../../../models/customer-sales-conversion.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Role } from '../../../models/role.model';\r\nimport { SalesPerson } from '../../../models/salesperson.model';\r\nimport { User } from '../../../models/user.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n@Component({\r\n selector: 'customers-view',\r\n templateUrl: './customers-view.component.html',\r\n styleUrls: ['./customers-view.component.scss']\r\n})\r\nexport class CustomerViewComponent implements OnInit {\r\n\r\n\r\n @Output() cartNumberSelected = new EventEmitter();\r\n\r\n private isEditMode = false;\r\n private isSaving = false;\r\n private isNavigating = false;\r\n private showValidationErrors = false;\r\n private editingUserName: string;\r\n uniqueId: string = Utilities.uniqueId();\r\n private user: User = new User();\r\n customer: ArCustomer = new ArCustomer();\r\n private customerEdit: ArCustomerEdit;\r\n private cartEdit: CartHeader;\r\n private cartSwitch: CartHeader;\r\n columns: any[] = [];\r\n rows: ArNarration[] = [];\r\n rowsCache: ArNarration[] = [];\r\n private allSalesPersons: SalesPerson[] = [];\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isGeneralEditor = false;\r\n\r\n @Input()\r\n isQuote: boolean;\r\n\r\n @Input()\r\n selectedCustomerCode: string;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n // ViewChilds Required because ngIf hides template variables from global scope soldPostalCode\r\n @ViewChild('customerName')\r\n private customerName;\r\n\r\n @ViewChild('telex')\r\n private telex;\r\n\r\n @ViewChild('companyTaxNumber')\r\n private companyTaxNumber;\r\n\r\n @ViewChild('taxExemptNumber')\r\n private taxExemptNumber;\r\n\r\n @ViewChild('soldPostalCode')\r\n private soldPostalCode;\r\n\r\n @ViewChild('shipPostalCode')\r\n private shipPostalCode;\r\n \r\n @ViewChild('email')\r\n private email;\r\n\r\n @ViewChild('salespersons')\r\n private salespersons;\r\n\r\n @ViewChild('salespersonSelector')\r\n private salespersonSelector;\r\n\r\n @ViewChild('sysproOperator')\r\n private sysproOperator;\r\n\r\n @ViewChild('applications')\r\n private applications;\r\n\r\n @ViewChild('applicationsSelector')\r\n private applicationsSelector;\r\n\r\n\r\n @ViewChild('notesModal')\r\n notesModal: ModalDirective;\r\n \r\n @ViewChild('debtorsModal')\r\n debtorsModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n private customerAccountStatus: string = \"\"\r\n private sub: any;\r\n private id: any = \"\";\r\n customerNotes: ArNarration[];\r\n customerIsOnHoldText: string;\r\n totalInvoiceCount: number;\r\n cartSaved: boolean;\r\n\r\n cartId: string = \"\";\r\n cart: CartHeader = new CartHeader();\r\n isNavigatingTo: string;\r\n customerSalesConversion: CustomerSalesConversion;\r\n conversionMessage: string;\r\n customerSalesConversionPercentage: string;\r\n\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n\r\n @ViewChild('customerSelector')\r\n private customerSelector;\r\n\r\n\r\n @ViewChild('applyDiscountCheck')\r\n private applyDiscountCheck;\r\n\r\n customerSearch: ArCustomer[];\r\n customerHeading: ArCustomer = new ArCustomer();\r\n\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: ArCustomer[] = [];\r\n searchResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n loadingIndicator: boolean;\r\n overLimit: number;\r\n coreCustomer: CoreCustomer;\r\n currentDiscountId: number;\r\n rowCustomerRulesCache: CoreCustomerRule[];\r\n rowCustomerRules: CoreCustomerRule[];\r\n generalPriceRow: any;\r\n hasDicounts: boolean;\r\n applyDiscounts: boolean;\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService,\r\n private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.loadCurrentUserData();\r\n }\r\n\r\n private loadCurrentUserData() {\r\n\r\n if (this.isQuote) {\r\n this.alertService.startLoadingMessage();\r\n\r\n let cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n this.id = this.selectedCustomerCode;\r\n this.cartId = cartId;\r\n\r\n //Header should populate from the syspro customer\r\n this.sysproService.getCustomerDetail(this.id).subscribe(x => this.onDataLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n this.sysproService.getCustomerOrderConversion(this.id).subscribe(x => this.onSalesConversionSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n this.sysproService.getCustomerNotes(this.id).subscribe(x => this.onNotesLoadSuccessful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n this.sysproService.GetAllSalesPersons(this.branchCode).subscribe(x => this.onSalesPersonoadSuccessful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n } \r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n //loadCustomer() {\r\n // this.id = this.searchResultSelected.customer;\r\n // this.sysproService.getCustomerDetail(this.searchResultSelected.customer).subscribe(x => this.onDataLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n // }\r\n\r\n private onSalesPersonoadSuccessful(salesPersons: any[]) {\r\n this.allSalesPersons = salesPersons[0];\r\n console.log(this.allSalesPersons);\r\n }\r\n \r\n private onDataLoadSuccessful(customer: ArCustomer) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.customer = customer;\r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n let overLimit = parseFloat(customer.creditLimit) - parseFloat(customer.currentBalance1);\r\n\r\n if (customer.customerOnHold === \"Y\") {\r\n this.customerIsOnHoldText = \"Customer is on hold\";\r\n this.customerAccountStatus = (overLimit < 0 ? \"On hold and exceeded credit limit\" : \"Customer on hold\");\r\n }\r\n else {\r\n this.customerAccountStatus = (overLimit < 0 ? \"Customer exceeded credit limit\" : \"In Terms\");\r\n }\r\n\r\n // only show if over limit\r\n if (overLimit < 0) {\r\n this.overLimit = overLimit;\r\n }\r\n\r\n this.getTotalInvoices();\r\n this.hasDicounts = false;\r\n this.applyDiscounts = false;\r\n this.coreCustomer = new CoreCustomer();\r\n this.sysproService.getPricingCustomer(this.id, this.application).subscribe(x => this.onCoreCustomerLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.alertService.showMessage('Success', `Loaded Syspro Customer`, MessageSeverity.success); \r\n\r\n }\r\n\r\n onCoreCustomerLoadSuccessful(x: CoreCustomer[]): void {\r\n if (x && x.length == 1) {\r\n if (x[0].customerCode != \"\") {\r\n this.coreCustomer = x[0];\r\n this.applyDiscounts = this.coreCustomer.enabled;\r\n this.sysproService.getAllPricingCustomerRules(this.coreCustomer.id).subscribe(x => this.onPricingRulesLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n\r\n toggleDiscount() {\r\n this.coreCustomer.enabled = !this.coreCustomer.enabled;\r\n this.applyDiscounts = this.coreCustomer.enabled;\r\n this.isSaving = true;\r\n if (this.coreCustomer && this.coreCustomer.id > 0) {\r\n //Edit\r\n this.coreCustomer.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updatePricingCustomer(this.coreCustomer, this.coreCustomer.id).subscribe(x => {\r\n this.alertService.showStickyMessage('Success', 'Customer Updated',\r\n MessageSeverity.info);\r\n \r\n this.isSaving = false;\r\n }, error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n onPricingRulesLoadSuccessful(x: CoreCustomerRule[][]): void {\r\n this.currentDiscountId = 0;\r\n if (x && x.length >= 1) {\r\n var ruleList = x[0];\r\n this.hasDicounts = true;\r\n this.rowCustomerRulesCache = [...ruleList];\r\n this.rowCustomerRules = this.rowCustomerRulesCache; \r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n }\r\n\r\n onSalesConversionSuccessful(x: CustomerSalesConversion): void {\r\n if (x && x[0]) {\r\n this.customerSalesConversion = x[0];\r\n let conversionPercentage = 0;\r\n if (this.customerSalesConversion.numberOfSalesOrders > 0) {\r\n if (this.customerSalesConversion.numberOfQuotes > 0) {\r\n conversionPercentage = (this.customerSalesConversion.valueOfOrders / ((this.customerSalesConversion.valueOfQuotes + this.customerSalesConversion.valueOfOrders)\r\n - this.customerSalesConversion.convertedQuotes)) * 100;\r\n }\r\n else {\r\n conversionPercentage = 100;\r\n }\r\n this.customerSalesConversion.percentage = conversionPercentage;\r\n }\r\n }\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onCartHeaderLoadSuccessful(cart: CartHeader) {\r\n this.cart = cart;\r\n this.switchCustomer();\r\n \r\n if (this.cart.companyTaxNumber.length == 0 || (this.cart.taxStatus == \"E\" && this.cart.taxExemptNumber.length == 0)) {\r\n this.edit();\r\n }\r\n this.alertService.showMessage('Success', `Loaded Cart Header`, MessageSeverity.success);\r\n }\r\n\r\n private getTotalInvoices() {\r\n this.totalInvoiceCount = parseFloat(this.customer.numCurrentInv) + parseFloat(this.customer.num30daysInv) + parseFloat(this.customer.num60daysInv)\r\n + parseFloat(this.customer.num90daysInv) + parseFloat(this.customer.num120daysInv);\r\n }\r\n\r\n private onNotesLoadSuccessful(notes: any[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.customerNotes = notes;\r\n if (notes[0].length > 0) {\r\n this.notesModal.show();\r\n }\r\n }\r\n\r\n //Return the update cart to the Model for further processing\r\n reviewPricingItems() {\r\n\r\n this.isNavigating = false;\r\n this.showValidationErrors = false;\r\n //this.setCartHeader();\r\n //this.save();\r\n\r\n //Return the saved cart number for loading the details view\r\n this.cartNumberSelected.emit(this.cartEdit.cartNumber);\r\n\r\n }\r\n\r\n private onCurrentUserDataLoadSuccessful(user: User, roles: Role[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.user = user;\r\n }\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n this.user = new User();\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n private getSalesPersonByName(name: string) {\r\n return this.allSalesPersons.find((r) => r.salesperson == name);\r\n }\r\n \r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n \r\n private edit() {\r\n\r\n this.isEditMode = true;\r\n this.showValidationErrors = true;\r\n this.setCartHeader();\r\n }\r\n\r\n private switchCustomer() {\r\n\r\n this.cartEdit = new CartHeader();\r\n Object.assign(this.cartEdit, this.customer);\r\n this.cartEdit.userid = this.accountService.currentUser.id;\r\n this.cartEdit.cartNumber = this.cartId;\r\n this.cartEdit.branch_code = this.configurations.branchCode;\r\n this.cartEdit.customerPoNumber = (this.cart.customerPoNumber ? this.cart.customerPoNumber : \"\");\r\n this.cartEdit.shippingInstrs = (this.cart.shippingInstrs ? this.cart.shippingInstrs : \"\");\r\n this.cartEdit.specialInstrs = (this.cart.specialInstrs ? this.cart.specialInstrs : \"\");\r\n this.cartEdit.ordertype = \"\";\r\n this.cartEdit.orderdiscountpercentage = 0;\r\n this.cartEdit.quotedFrom = (this.cart.quotedFrom ? this.cart.quotedFrom : \"\");\r\n this.cartEdit.hasNettPrices = this.cart.hasNettPrices;\r\n this.cartEdit.userid = this.accountService.currentUser.id;\r\n this.cartEdit.specialPricesEnabled = this.applyDiscounts;\r\n \r\n this.save();\r\n\r\n }\r\n \r\n private setCartHeader() {\r\n\r\n this.cartEdit = new CartHeader();\r\n Object.assign(this.cartEdit, this.customer);\r\n this.cartEdit.userid = this.accountService.currentUser.id;\r\n this.cartEdit.specialPricesEnabled = this.applyDiscounts;\r\n if (!!this.cartId) {\r\n if (this.cart) {\r\n Object.assign(this.cartEdit, this.cart);\r\n }\r\n }\r\n else {\r\n let uniqueId = this.id + Math.random().toString(36).substring(2) + Date.now().toString(36);\r\n this.cartEdit.cartNumber = uniqueId;\r\n this.cartEdit.branch_code = this.configurations.branchCode;\r\n this.cartEdit.customerPoNumber = \"\";\r\n this.cartEdit.shippingInstrs = \"\";\r\n this.cartEdit.specialInstrs = \"\";\r\n this.cartEdit.ordertype = \"\";\r\n this.cartEdit.orderdiscountpercentage = 0;\r\n this.cartEdit.quotedFrom = \"\";\r\n this.cartEdit.hasNettPrices = false;\r\n this.cartEdit.specialPricesEnabled = this.applyDiscounts;\r\n console.log(\"CartNumber2\", this.cartEdit.cartNumber);\r\n }\r\n\r\n console.log(\"THIS IS WHAT I HAVE AFTER setCartHeader\", this.cartEdit);\r\n }\r\n\r\n setLocalCartId(cartId: string) {\r\n if (sessionStorage.getItem(localStorageActions.CartId) != cartId) {\r\n sessionStorage.setItem(localStorageActions.CartId, cartId);\r\n this.cartId = cartId;\r\n }\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.cartEdit.specialPricesEnabled = this.applyDiscounts;\r\n this.fowkesService.newCart(this.cartEdit).subscribe(_response => this.saveSuccessHelper(this.cartEdit.cartNumber), error => this.saveFailedHelper(error)); \r\n }\r\n\r\n\r\n private saveSuccessHelper(cartId: string) {\r\n\r\n this.setLocalCartId(cartId);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n this.isEditMode = false;\r\n\r\n this.alertService.showMessage('Success', `Updated successfully ` + cartId, MessageSeverity.success);\r\n\r\n }\r\n \r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback) {\r\n this.changesFailedCallback();\r\n }\r\n }\r\n \r\n \r\n private cancel() {\r\n //if (this.isGeneralEditor) {\r\n // //this.userEdit = this.user = new UserEdit();\r\n // this.customerEdit = this.customer = new ArCustomerEdit();\r\n //} else {\r\n // //this.userEdit = new UserEdit();\r\n // this.customerEdit = new ArCustomerEdit();\r\n // // Object.assign(this.cartEdit, this.customer);\r\n //}\r\n this.setCartHeader();\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.showMessage('Cancelled', 'Operation cancelled by user', MessageSeverity.default);\r\n this.alertService.resetStickyMessage();\r\n\r\n if (!this.isGeneralEditor) {\r\n this.isEditMode = false;\r\n }\r\n\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n\r\n private close() {\r\n // this.userEdit = this.user = new UserEdit();\r\n this.customerEdit = this.customer = new ArCustomerEdit();\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n this.isEditMode = false;\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n\r\n copySoldToShip() {\r\n this.cartEdit.shipToAddr1 = this.cartEdit.soldToAddr1;\r\n this.cartEdit.shipToAddr2 = this.cartEdit.soldToAddr2;\r\n this.cartEdit.shipToAddr3 = this.cartEdit.soldToAddr3;\r\n this.cartEdit.shipToAddr4 = this.cartEdit.soldToAddr4;\r\n this.cartEdit.shipToAddr5 = this.cartEdit.soldToAddr5;\r\n this.cartEdit.shipPostalCode = this.cartEdit.soldPostalCode;\r\n }\r\n\r\n copyShipToSold() {\r\n this.cartEdit.soldToAddr1 = this.cartEdit.shipToAddr1;\r\n this.cartEdit.soldToAddr2 = this.cartEdit.shipToAddr2;\r\n this.cartEdit.soldToAddr3 = this.cartEdit.shipToAddr3;\r\n this.cartEdit.soldToAddr4 = this.cartEdit.shipToAddr4;\r\n this.cartEdit.soldToAddr5 = this.cartEdit.shipToAddr5;\r\n this.cartEdit.soldPostalCode = this.cartEdit.shipPostalCode;\r\n }\r\n \r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n } else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n // search() {\r\n //// if (this.cartId) {\r\n\r\n // this.router.navigate(['../../orders'], { fragment: 'customers', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n // //}\r\n // //else {\r\n // // this.router.navigate(['../../customers'], { fragment: 'customers', queryParams: { customer: this.customer } });\r\n // //}\r\n // }\r\n\r\n //editCustomer(customer: ArCustomer, allSalesPersons: SalesPerson[]) {\r\n // if (customer) {\r\n // this.isGeneralEditor = true;\r\n\r\n // this.setSalesPerson(customer, allSalesPersons);\r\n // this.customer = new ArCustomer();\r\n // this.customerEdit = new ArCustomerEdit();\r\n // Object.assign(this.customer, customer);\r\n // Object.assign(this.customerEdit, customer);\r\n // this.edit();\r\n\r\n // console.log(this.customerEdit);\r\n // console.log(this.customer);\r\n // return this.customerEdit;\r\n // } \r\n //}\r\n\r\n\r\n //displayCustomer(customer: ArCustomer, allSalesPersons?: SalesPerson[]) {\r\n\r\n // this.customer = new ArCustomer();\r\n // Object.assign(this.customer, customer);\r\n // this.setSalesPerson(customer, allSalesPersons);\r\n // this.isEditMode = false;\r\n //}\r\n\r\n\r\n private setSalesPerson(customer: ArCustomer, allSalesPersons?: SalesPerson[]) {\r\n\r\n this.allSalesPersons = allSalesPersons ? [...allSalesPersons] : [];\r\n\r\n if (customer.salesperson) {\r\n if (!this.allSalesPersons.some(r => r.salesperson == customer.salesperson)) {\r\n this.allSalesPersons.unshift(new SalesPerson(customer.salesperson));\r\n }\r\n }\r\n\r\n if (allSalesPersons == null || this.allSalesPersons.length != allSalesPersons.length) {\r\n setTimeout(() => {\r\n if (this.salespersonSelector) {\r\n this.salespersonSelector.refresh();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n get canViewAllSalesPersons(){\r\n return true;\r\n }\r\n\r\n get canAssignSalesPersons() {\r\n return true;\r\n }\r\n\r\n get canViewAllBranches() {\r\n return true;\r\n }\r\n get canAssignBranches() {\r\n return true;\r\n }\r\n\r\n get canAssignApplications() {\r\n return true;\r\n }\r\n\r\n get canViewAllRoles() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n get canCreateCart() {\r\n return this.accountService.userHasPermission(Permission.placeOrderPermission);\r\n }\r\n\r\n\r\n get canMaintainPrices() {\r\n return this.accountService.userHasPermission(Permission.cartPricingPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'customers.tab.View' | translate}} : {{id}}

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

Customer : {{id}}

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

Customer : {{id}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcXVvdGVzL3F1b3Rlcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\n\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n@Component({\r\n selector: 'quotes',\r\n templateUrl: './quotes.component.html',\r\n styleUrls: ['./quotes.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class QuotesComponent {\r\n\r\n isListActivated = true;\r\n isViewActivated = false;\r\n isInventoryListActivated = false;\r\n isInventoryNSActivated = false;\r\n isQuoteViewActivated = false;\r\n isQuoteWebViewActivated = false;\r\n isWebInfoActivated = false;\r\n\r\n isCollapsed = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly quotesListTab = 'quotes';\r\n //readonly customerViewTab = 'view';\r\n readonly inventoryListTab = 'inventory';\r\n readonly inventoryNSTab = 'nonstock';\r\n readonly quoteViewTab = 'quote';\r\n readonly quoteWebViewTab = 'webquote';\r\n readonly quoteWebInfoTab = 'webinfo';\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n id: any = \"\";\r\n quoteId: string;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private configurations: ConfigurationService, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let quoteId = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n this.quoteId = quoteId;\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n\r\n if (action) {\r\n this.id = action;\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor, this.id));\r\n } else {\r\n\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n // this.router.navigate(['quotes']);\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n showContent(anchor: string, test?: any) {\r\n\r\n this.id = sessionStorage.getItem(localStorageActions.Customer);\r\n this.quoteId = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n \r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.quotesListTab}Tab`);\r\n\r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isListActivated = activeTab == this.quotesListTab;\r\n //this.isViewActivated = activeTab == this.customerViewTab;\r\n this.isInventoryListActivated = activeTab == this.inventoryListTab;\r\n this.isInventoryNSActivated = activeTab == this.inventoryNSTab;\r\n this.isQuoteViewActivated = activeTab == this.quoteViewTab;\r\n this.isQuoteWebViewActivated = activeTab == this.quoteWebViewTab;\r\n this.isWebInfoActivated = activeTab == this.quoteWebInfoTab;\r\n\r\n this.router.navigate([], { fragment: activeTab, queryParams: { customer: this.id, quoteId: this.quoteId } });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isListActivated = activeTab == this.quotesListTab;\r\n //this.isViewActivated = activeTab == this.customerViewTab;\r\n this.isInventoryListActivated = activeTab == this.inventoryListTab;\r\n this.isInventoryNSActivated = activeTab == this.inventoryNSTab;\r\n this.isQuoteViewActivated = activeTab == this.quoteViewTab;\r\n this.isQuoteWebViewActivated = activeTab == this.quoteWebViewTab;\r\n this.isWebInfoActivated = activeTab == this.quoteWebInfoTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n get canViewCustomers() {\r\n return true;\r\n }\r\n\r\n\r\n get canViewWebQuotes() {\r\n return this.accountService.userHasPermission(Permission.webQuotesPermission);\r\n }\r\n\r\n get canViewMovements() {\r\n return true;//TODO: this.accountService.userHasPermission(Permission.viewCustomerMovementsPermission);\r\n }\r\n\r\n get canViewPayments() {\r\n return true;//TODO: this.accountService.userHasPermission(Permission.viewCustomerPaymentsPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVwYWlycy9yZXBhaXJzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'repairs',\r\n templateUrl: './repairs.component.html',\r\n styleUrls: ['./repairs.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class RepairsComponent {\r\n\r\n isDashboardActivated = true;\r\n isReportsActivated = false;\r\n isToolrepairsActivated = false;\r\n isCollapsed = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly repairsDahboardTab = 'repairsdashboard';\r\n readonly repairsReportsTab = 'repairsreports';\r\n readonly customerToolrepairsTab = 'toolrepairs';\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private accountService: AccountService,\r\n private configurations: ConfigurationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n }\r\n \r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n showContent(anchor: string) {\r\n\r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.customerToolrepairsTab}Tab`);\r\n \r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isDashboardActivated = activeTab == this.repairsDahboardTab;\r\n this.isReportsActivated = activeTab == this.repairsReportsTab;\r\n this.isToolrepairsActivated = activeTab == this.customerToolrepairsTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isDashboardActivated = activeTab == this.repairsDahboardTab;\r\n this.isReportsActivated = activeTab == this.repairsReportsTab;\r\n this.isToolrepairsActivated = activeTab == this.customerToolrepairsTab;\r\n\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n \r\n\r\n get canViewToolrepairs() {\r\n return this.accountService.userHasPermission(Permission.viewRepairsPermission);\r\n }\r\n\r\n get canManageToolrepairs() {\r\n return this.accountService.userHasPermission(Permission.manageRepairsPermission);\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Tool Repairs Dashboard

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.customerCode}} : {{row.customerName}}\\r\\n \\r\\n \\r\\n \\r\\n {{value | currency:'R':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ value }} days\\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd'}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

\\r\\n \\r\\n {{ editJobCard ? 'Edit Job Card' : 'New Job Card' }}: \\r\\n {{jobCardDetail.jobCardNumber}}\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{jobCardDetail.customerCode}} : {{jobCardDetail.customerName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Invoice viewing is restricted to the matching application.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
3rd Party Suppliers
CodeSupplier NameSupplier EmailSupplier TelephoneRemoveDocument
{{supplier.supplierCode}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n *** Supplier Email is required.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n Invoice viewing is restricted to the matching application.\\r\\n \\r\\n
\\r\\n
= 7 && jobCardDetail.statusId != 7\\\" class=\\\"status-alert-banner\\\">\\r\\n

\\r\\n This job card's last status change was {{ jobCardDetail.daysSinceStatusChanged }} days ago.\\r\\n Please review or update the status if necessary.\\r\\n

\\r\\n \\r\\n
\\r\\n
0\\\" class=\\\"bg-gradient-info\\\">\\r\\n

\\r\\n This job card's last status change was {{ jobCardDetail.daysSinceStatusChanged }} days ago. \\r\\n

\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n Job Status History\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DateStatusDescription
{{history.changeDate | date: 'dd/MM/yyyy HH:mm'}}{{history.newStatus}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View Job Card Customer Slip : {{jobCardDetail.jobCardNumber}}

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

Search Quote for :   {{jobCardDetail.company}}/{{jobCardDetail.customerCode}}/{{jobCardDetail.jobCardNumber}}

\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
= 1\\\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email or View :

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

Search Invoice for :   {{jobCardDetail.customerCode}}/{{jobCardDetail.jobCardNumber}}

\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
= 1\\\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

ITS:

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

View Purchase Order for :   {{jobCardDetail.customerCode}}/{{jobCardDetail.jobCardNumber}}

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

POD List

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
CompanyReferenceFileNumberPrefixUploaded OnFilename
\\r\\n {{row.company}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.fileNumber}}\\r\\n \\r\\n {{row.prefix}}\\r\\n \\r\\n {{row.barcodeDate | date: 'dd MMM yyyy'}}\\r\\n \\r\\n \\r\\n {{row.fileName}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Search Invoice for :   {{jobCardDetail.customerCode}}/{{jobCardDetail.jobCardNumber}}

\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
= 1\\\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Email or View: \\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 3px !important;\\n /*white-space: normal !important;*/\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.field-label {\\n color: darkgrey;\\n margin: 0; }\\n\\n.customer-search {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: 20px;\\n /* Spacing above the section */\\n background-color: #f9f9f9;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.customer-search .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.customer-heading {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: 20px;\\n /* Spacing above the section */\\n background-color: #f0f8ff;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.customer-heading .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.supplier-search {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: 20px;\\n /* Spacing above the section */\\n background-color: #dee2e6;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 20px; }\\n\\n.supplier-search .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.supplier-section {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n background-color: white;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.supplier-section .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.job-card {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: -5px;\\n background-color: white;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.job-card .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n/deep/.highlight-row {\\n color: #d9230f !important;\\n /* red highlight color */ }\\n\\n.status-alert-banner {\\n background-color: #ffcc00;\\n /* Yellow for warning */\\n color: #333;\\n /*padding: 10px;*/\\n padding-top: 10px;\\n text-align: center;\\n font-weight: bold;\\n border: 1px solid #ff9900;\\n /*margin-bottom: 15px;*/ }\\n\\n.greyed-out {\\n position: relative;\\n pointer-events: none;\\n opacity: 0.5;\\n /* Grey-out effect */ }\\n\\n.modal-backdrop {\\n z-index: 1040 !important;\\n /* Default z-index for Bootstrap modals */ }\\n\\n.modal-content {\\n z-index: 1050 !important;\\n /* Ensure the modal content is above the backdrop */ }\\n\\n.quote-search-modal .modal-content {\\n z-index: 1060 !important;\\n /* Ensure the Quote Search modal is above everything */ }\\n\\n.html-preview {\\n border: 1px solid #ced4da;\\n border-radius: 4px;\\n padding: 8px;\\n min-height: 100px;\\n background-color: #f8f9fa;\\n overflow: auto; }\\n\\n.html-preview div {\\n white-space: pre-wrap;\\n /* To preserve line breaks */ }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBhaXJzL3Rvb2wtcmVwYWlycy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHJlcGFpcnNcXHRvb2wtcmVwYWlyc1xcdG9vbC1yZXBhaXJzLWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSxpQ0FBaUM7RUFDakMsa0NBQUE7RUFDQSxnQ0FBZ0M7RUFDaEMsMkJBQTJCLEVBQUE7O0FBSjdCO0lBT0ksbUJBQW1CO0lBQ25CLGdDQUFnQyxFQUFBOztBQVJwQztJQWFJLGdCQUFnQjtJQUNoQiwwQkFBMEIsRUFBQTs7QUFkOUI7SUFrQkkscUNBQXFDLEVBQUE7O0FBSXpDO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLFlBQVksRUFBQTs7QUFHZDtFQUNFLFlBQVk7RUFDWixnQkFBZ0IsRUFBQTs7QUFGbEI7SUFLSSxnQkFBZ0IsRUFBQTs7QUFNcEI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksU0FBUyxFQUFBOztBQUdiO0VBQ0ksZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBOztBQUdyQjtFQUNFLGVBQWU7RUFDZixTQUFTLEVBQUE7O0FBR1g7RUFDRSxzQkFBc0I7RUFBRSxzQkFBQTtFQUN4QixhQUFhO0VBQUUscUNBQUE7RUFDZixnQkFBZ0I7RUFBRSw4QkFBQTtFQUNsQix5QkFBeUI7RUFBRSx5Q0FBQTtFQUMzQixrQkFBa0I7RUFBRSxnQ0FBQTtFQUNwQixtQkFBbUIsRUFBQTs7QUFOckI7SUFTSSxtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFNBQVMsRUFBQTs7QUFLYjtFQUNFLHNCQUFzQjtFQUFFLHNCQUFBO0VBQ3hCLGFBQWE7RUFBRSxxQ0FBQTtFQUNmLGdCQUFnQjtFQUFFLDhCQUFBO0VBQ2xCLHlCQUF5QjtFQUFFLHlDQUFBO0VBQzNCLGtCQUFrQjtFQUFFLGdDQUFBO0VBQ3BCLG1CQUFtQixFQUFBOztBQU5yQjtJQVNJLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osU0FBUyxFQUFBOztBQUtiO0VBQ0Usc0JBQXNCO0VBQUUsc0JBQUE7RUFDeEIsYUFBYTtFQUFFLHFDQUFBO0VBQ2YsZ0JBQWdCO0VBQUUsOEJBQUE7RUFDbEIseUJBQXlCO0VBQUUseUNBQUE7RUFDM0Isa0JBQWtCO0VBQUUsZ0NBQUE7RUFDcEIsb0JBQW9CLEVBQUE7O0FBTnRCO0lBU0ksbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixTQUFTLEVBQUE7O0FBSWI7RUFDRSxzQkFBc0I7RUFBRSxzQkFBQTtFQUN4QixhQUFhO0VBQUUscUNBQUE7RUFFZix1QkFBdUI7RUFBRSx5Q0FBQTtFQUN6QixrQkFBa0I7RUFBRSxnQ0FBQTtFQUNwQixtQkFBbUIsRUFBQTs7QUFOckI7SUFTSSxtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFNBQVMsRUFBQTs7QUFJYjtFQUNFLHNCQUFzQjtFQUFFLHNCQUFBO0VBQ3hCLGFBQWE7RUFBRSxxQ0FBQTtFQUNmLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFBRSx5Q0FBQTtFQUN6QixrQkFBa0I7RUFBRSxnQ0FBQTtFQUNwQixtQkFBbUIsRUFBQTs7QUFOckI7SUFTSSxtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFNBQVMsRUFBQTs7QUFJYjtFQUVFLHlCQUF5QjtFQUFFLHdCQUFBLEVBQXlCOztBQUd0RDtFQUNFLHlCQUF5QjtFQUFFLHVCQUFBO0VBQzNCLFdBQVc7RUFDWCxpQkFBQTtFQUNBLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLHlCQUF5QjtFQUN6Qix1QkFBQSxFQUF3Qjs7QUFLMUI7RUFDRSxrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLFlBQVk7RUFBRSxvQkFBQSxFQUFxQjs7QUFHckM7RUFDRSx3QkFBd0I7RUFBRSx5Q0FBQSxFQUEwQzs7QUFHdEU7RUFDRSx3QkFBd0I7RUFBRSxtREFBQSxFQUFvRDs7QUFHaEY7RUFDRSx3QkFBd0I7RUFBRSxzREFBQSxFQUF1RDs7QUFHbkY7RUFDRSx5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLGNBQWMsRUFBQTs7QUFHaEI7RUFDRSxxQkFBcUI7RUFBRSw0QkFBQSxFQUE2QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVwYWlycy90b29sLXJlcGFpcnMvdG9vbC1yZXBhaXJzLWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMnB4IDVweCAwIDNweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICAvKndoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDsqL1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcbiAgLmJ0bi1saW5rLmdyaWQge1xyXG4gICAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODY4ZTk1O1xyXG4gICAgLy9jb2xvcjogI0Q5MjMwRjtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgYS5ob3ZlciB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBoZWlnaHQ6IDI2cHg7XHJcbiAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxufVxyXG5cclxuLnRhYmxlIHRoLCAudGFibGUgdGR7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4uY2hlY2tib3gge1xyXG4gIGhlaWdodDogMTBweDtcclxuICBwYWRkaW5nLXRvcDogM3B4O1xyXG5cclxuICAudG9nZ2xlLmJ0bi1zbSB7XHJcbiAgICBtaW4taGVpZ2h0OiAyN3B4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4udXNlci1yb2xlIHtcclxuICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogIzc3NztcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLmxvY2tlZC1vdXQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gICAgY29sb3I6IHdoaXRlc21va2U7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcblxyXG4uZmllbGQtbGFiZWwge1xyXG4gIGNvbG9yOiBkYXJrZ3JleTtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5jdXN0b21lci1zZWFyY2gge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IC8qIExpZ2h0IGdyZXkgYm9yZGVyICovXHJcbiAgcGFkZGluZzogMTVweDsgLyogUGFkZGluZyBpbnNpZGUgdGhlIGJvcmRlcmVkIGFyZWEgKi9cclxuICBtYXJnaW4tdG9wOiAyMHB4OyAvKiBTcGFjaW5nIGFib3ZlIHRoZSBzZWN0aW9uICovXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsgLyogU2xpZ2h0IGJhY2tncm91bmQgY29sb3IgZm9yIGNvbnRyYXN0ICovXHJcbiAgYm9yZGVyLXJhZGl1czogNXB4OyAvKiBSb3VuZGVkIGNvcm5lcnMgZm9yIHRoZSBib3ggKi9cclxuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG5cclxuICAuZmllbGQtbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiB4eC1zbWFsbDtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4uY3VzdG9tZXItaGVhZGluZyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgLyogTGlnaHQgZ3JleSBib3JkZXIgKi9cclxuICBwYWRkaW5nOiAxNXB4OyAvKiBQYWRkaW5nIGluc2lkZSB0aGUgYm9yZGVyZWQgYXJlYSAqL1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7IC8qIFNwYWNpbmcgYWJvdmUgdGhlIHNlY3Rpb24gKi9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmOGZmOyAvKiBTbGlnaHQgYmFja2dyb3VuZCBjb2xvciBmb3IgY29udHJhc3QgKi9cclxuICBib3JkZXItcmFkaXVzOiA1cHg7IC8qIFJvdW5kZWQgY29ybmVycyBmb3IgdGhlIGJveCAqL1xyXG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XHJcblxyXG4gIC5maWVsZC1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IHh4LXNtYWxsO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5zdXBwbGllci1zZWFyY2gge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IC8qIExpZ2h0IGdyZXkgYm9yZGVyICovXHJcbiAgcGFkZGluZzogMTVweDsgLyogUGFkZGluZyBpbnNpZGUgdGhlIGJvcmRlcmVkIGFyZWEgKi9cclxuICBtYXJnaW4tdG9wOiAyMHB4OyAvKiBTcGFjaW5nIGFib3ZlIHRoZSBzZWN0aW9uICovXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlZTJlNjsgLyogU2xpZ2h0IGJhY2tncm91bmQgY29sb3IgZm9yIGNvbnRyYXN0ICovXHJcbiAgYm9yZGVyLXJhZGl1czogNXB4OyAvKiBSb3VuZGVkIGNvcm5lcnMgZm9yIHRoZSBib3ggKi9cclxuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuXHJcbiAgLmZpZWxkLWxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogeHgtc21hbGw7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG59XHJcblxyXG4uc3VwcGxpZXItc2VjdGlvbiB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgLyogTGlnaHQgZ3JleSBib3JkZXIgKi9cclxuICBwYWRkaW5nOiAxNXB4OyAvKiBQYWRkaW5nIGluc2lkZSB0aGUgYm9yZGVyZWQgYXJlYSAqL1xyXG4gXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IC8qIFNsaWdodCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBjb250cmFzdCAqL1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDsgLyogUm91bmRlZCBjb3JuZXJzIGZvciB0aGUgYm94ICovXHJcbiAgcGFkZGluZy1ib3R0b206IDBweDtcclxuXHJcbiAgLmZpZWxkLWxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogeHgtc21hbGw7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG59XHJcblxyXG4uam9iLWNhcmQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IC8qIExpZ2h0IGdyZXkgYm9yZGVyICovXHJcbiAgcGFkZGluZzogMTVweDsgLyogUGFkZGluZyBpbnNpZGUgdGhlIGJvcmRlcmVkIGFyZWEgKi9cclxuICBtYXJnaW4tdG9wOiAtNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyAvKiBTbGlnaHQgYmFja2dyb3VuZCBjb2xvciBmb3IgY29udHJhc3QgKi9cclxuICBib3JkZXItcmFkaXVzOiA1cHg7IC8qIFJvdW5kZWQgY29ybmVycyBmb3IgdGhlIGJveCAqL1xyXG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XHJcblxyXG4gIC5maWVsZC1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IHh4LXNtYWxsO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxufVxyXG5cclxuL2RlZXAvLmhpZ2hsaWdodC1yb3cge1xyXG4gIC8vYmFja2dyb3VuZC1jb2xvcjogI2Q5MjMwZiAhaW1wb3J0YW50OyAvKiByZWQgaGlnaGxpZ2h0IGNvbG9yICovXHJcbiAgY29sb3I6ICNkOTIzMGYgIWltcG9ydGFudDsgLyogcmVkIGhpZ2hsaWdodCBjb2xvciAqL1xyXG59XHJcblxyXG4uc3RhdHVzLWFsZXJ0LWJhbm5lciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2MwMDsgLyogWWVsbG93IGZvciB3YXJuaW5nICovXHJcbiAgY29sb3I6ICMzMzM7XHJcbiAgLypwYWRkaW5nOiAxMHB4OyovXHJcbiAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZjk5MDA7XHJcbiAgLyptYXJnaW4tYm90dG9tOiAxNXB4OyovXHJcbn1cclxuXHJcblxyXG5cclxuLmdyZXllZC1vdXQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICBvcGFjaXR5OiAwLjU7IC8qIEdyZXktb3V0IGVmZmVjdCAqL1xyXG59XHJcblxyXG4ubW9kYWwtYmFja2Ryb3Age1xyXG4gIHotaW5kZXg6IDEwNDAgIWltcG9ydGFudDsgLyogRGVmYXVsdCB6LWluZGV4IGZvciBCb290c3RyYXAgbW9kYWxzICovXHJcbn1cclxuXHJcbi5tb2RhbC1jb250ZW50IHtcclxuICB6LWluZGV4OiAxMDUwICFpbXBvcnRhbnQ7IC8qIEVuc3VyZSB0aGUgbW9kYWwgY29udGVudCBpcyBhYm92ZSB0aGUgYmFja2Ryb3AgKi9cclxufVxyXG5cclxuLnF1b3RlLXNlYXJjaC1tb2RhbCAubW9kYWwtY29udGVudCB7XHJcbiAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50OyAvKiBFbnN1cmUgdGhlIFF1b3RlIFNlYXJjaCBtb2RhbCBpcyBhYm92ZSBldmVyeXRoaW5nICovXHJcbn1cclxuXHJcbi5odG1sLXByZXZpZXcge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjZWQ0ZGE7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICBtaW4taGVpZ2h0OiAxMDBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4uaHRtbC1wcmV2aWV3IGRpdiB7XHJcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyAvKiBUbyBwcmVzZXJ2ZSBsaW5lIGJyZWFrcyAqL1xyXG59XHJcblxyXG5cclxuIl19 */\"","\r\nimport { AfterViewInit, Component, ElementRef, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { ArCustomer } from '../../../models/arcustomer.model';\r\nimport { BarcodeReference } from '../../../models/barcode-reference.model';\r\nimport { CoreAudit } from '../../../models/core-audit.model';\r\nimport { CoreEmailTemplate } from '../../../models/email-template.model';\r\nimport { Email } from '../../../models/email.model';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { CoreJCStatus, JobCard, JobCardStatusHistory, JobCardSuppliers } from '../../../models/job-card.model';\r\nimport { PurchaseOrderList } from '../../../models/purchaseorder-list.model';\r\nimport { QuoteList } from '../../../models/quote-list.model';\r\nimport { SalesOrderList } from '../../../models/salesorder-list.model';\r\nimport { Supplier } from '../../../models/supplier.model';\r\nimport { SysproUser } from '../../../models/syspro-user.model';\r\nimport { User } from '../../../models/user.model';\r\nimport { OptIns, Outbox } from '../../../models/wapp-inbox.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n@Component({\r\n selector: 'tool-repairs-dashboard',\r\n templateUrl: './tool-repairs-dashboard.component.html',\r\n styleUrls: ['./tool-repairs-dashboard.component.scss']\r\n})\r\nexport class ToolRepairsDashboardComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Today': [moment().subtract(0, 'days'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n loadingIndicator: boolean;\r\n isHistoryPanelOpen: boolean = false;\r\n\r\n\r\n @ViewChild('searchInput')\r\n searchInput: ElementRef;\r\n searchValue: string = \"\";\r\n\r\n @Input() isViewOnly: boolean;\r\n\r\n auditObj = new CoreAudit();\r\n emailObject: Email = new Email();\r\n\r\n columns: any[] = [];\r\n rows: JobCard[] = [];\r\n rowsCache: JobCard[] = [];\r\n\r\n jobCard: JobCard;\r\n jobCardDetail: JobCard;\r\n\r\n @ViewChild('jobCardDetailModal') jobCardDetailModal: ModalDirective;\r\n\r\n statuses: CoreJCStatus[] = [];\r\n\r\n customersCache: ArCustomer[] = [];\r\n selectedCustomerCode: string = '';\r\n selectedCustomerName: string = '';\r\n\r\n @ViewChild('customers') private customers;\r\n @ViewChild('customerSelector') private customerSelector;\r\n\r\n @ViewChild('dateTemplate') dateTemplate: TemplateRef;\r\n @ViewChild('selectTemplate') selectTemplate: TemplateRef;\r\n @ViewChild('statusTemplate') statusTemplate: TemplateRef;\r\n @ViewChild('statusChangeTemplate') statusChangeTemplate: TemplateRef;\r\n @ViewChild('customerTemplate') customerTemplate: TemplateRef;\r\n @ViewChild('quoteTemplate') quoteTemplate: TemplateRef;\r\n @ViewChild('invoiceTemplate') invoiceTemplate: TemplateRef;\r\n @ViewChild('purchaseOrderTemplate') purchaseOrderTemplate: TemplateRef;\r\n @ViewChild('itsTemplate') itsTemplate: TemplateRef;\r\n\r\n @ViewChild('statusListSelector') private statusListSelector;\r\n selectedStatus: string = \"\";\r\n currentStatus: string;\r\n smartsearch: string = \"\";\r\n\r\n invoiceNumber: string;\r\n\r\n // Properties for search functionality\r\n searchCustomerType: string = 'customer'; // Default to customer code\r\n searchCustomerText: string = '';\r\n searchCustomerResults: ArCustomer[] = [];\r\n searchCustomerResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchByCustomerSelector') private searchByCustomerSelector;\r\n @ViewChild('customerSearchResultsSelector') private customerSearchResultsSelector;\r\n\r\n\r\n @ViewChild('quoteSearchModal') quoteSearchModal: ModalDirective;\r\n @Input() selectedQuote: string;\r\n showQuotePopup: boolean;\r\n\r\n @ViewChild('emailQuoteModal')\r\n emailQuoteModal: ModalDirective;\r\n showCustomerQuoteModal: boolean;\r\n\r\n searchQuoteType: string = 'customer'; // Default to customer code\r\n searchQuoteText: string = '';\r\n searchQuoteResults: QuoteList[] = [];\r\n searchQuoteResultSelected: QuoteList;\r\n quoteSearch: boolean;\r\n\r\n @ViewChild('searchByQuoteSelector')\r\n private searchByQuoteSelector;\r\n\r\n @ViewChild('QuoteSearchResultsSelector')\r\n private QuoteSearchResultsSelector;\r\n\r\n searchType: string;\r\n searchText: string;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n dateRows: JobCard[];\r\n\r\n @ViewChild('invoiceSearchModal')\r\n invoiceSearchModal: ModalDirective;\r\n\r\n @Input()\r\n selectedInvoice: string;\r\n showInvoicePopup: boolean;\r\n showITSPopup: boolean;\r\n hasTracking: boolean;\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n\r\n searchInvoiceType: string = 'customer'; // Default to customer code\r\n searchInvoiceText: string = '';\r\n searchInvoiceResults: SalesOrderList[] = [];\r\n searchInvoiceResultSelected: SalesOrderList;\r\n invoiceSearch: boolean;\r\n\r\n @ViewChild('searchByInvoiceSelector')\r\n private searchByInvoiceSelector;\r\n\r\n @ViewChild('InvoiceSearchResultsSelector')\r\n private InvoiceSearchResultsSelector;\r\n selectedSalesOrder: string;\r\n editJobCard: boolean;\r\n\r\n @ViewChild('supplierSelector') supplierSelector;\r\n @ViewChild('currentSupplier') currentSupplier: Supplier;\r\n @ViewChild('suppliers') private suppliers;\r\n suppliersCache: Supplier[] = [];\r\n selectedSupplier: Supplier;\r\n addselectedSupplier: Supplier;\r\n\r\n @ViewChild('salesPerson') private salesPerson;\r\n usersCache: SysproUser[] = [];\r\n selectedSalesPerson: User;\r\n\r\n jobCardStatusHistory: JobCardStatusHistory[];\r\n oldStatus: number; oldStatusId: number = null;\r\n\r\n @ViewChild('poTemplate')\r\n poTemplate: TemplateRef;\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('purchaseOrderList')\r\n purchaseOrderList: TemplateRef;\r\n\r\n @ViewChild('purchaseOrderListSelector')\r\n private purchaseOrderListSelector;\r\n\r\n private selectUndefinedPOOptionValue: string = \"Please Select\";\r\n showPurchaseOrderPopup: boolean;\r\n purchaseOrderSearch: boolean;\r\n\r\n @ViewChild('purchaseOrderSearchModal')\r\n purchaseOrderSearchModal: ModalDirective;\r\n\r\n @Input()\r\n selectedPurchaseOrder: string;\r\n\r\n selectedFilterStatus: number = 0;\r\n @ViewChild('statusFilter')\r\n private statusFilter;\r\n\r\n sysproUsers: SysproUser[];\r\n\r\n @ViewChild('operators') private operators;\r\n @ViewChild('operatorSelector') private operatorSelector;\r\n allOperators: SysproUser[] = [];\r\n selectedOperator: string;\r\n jobCardUsers: any;\r\n src: string;\r\n\r\n predefinedComments: any[] = [];\r\n selectedComment: string = '';\r\n customComment: any;\r\n selectedCompany: string;\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n showCustomerEmailModal: boolean;\r\n selectedSupplierIndex: number | null = null;\r\n\r\n @ViewChild('podModal') podModal: ModalDirective;\r\n\r\n hasPODs: boolean;\r\n referenceList: BarcodeReference[] = [];\r\n WhatsappEnabled: boolean;\r\n WhatsappNumber: string;\r\n outboxDetail: any;\r\n\r\n\r\n @ViewChild('salesorderSearchModal')\r\n salesorderSearchModal: ModalDirective;\r\n\r\n @Input()\r\n selectedSalesOrderInvoice: string;\r\n showSalesOrderPopup: boolean;\r\n\r\n searchSalesorderType: string = 'customer'; // Default to customer code\r\n searchSalesorderText: string = '';\r\n searchSalesorderResults: SalesOrderList[] = [];\r\n searchSalesorderResultSelected: SalesOrderList;\r\n salesorderSearch: boolean;\r\n\r\n selectedStatuses: number[] = []; // To track selected status IDs\r\n filteredRows: JobCard[] = []; // Rows filtered by the selected statuses\r\n\r\n\r\n @ViewChild('emailReminderModal')\r\n emailReminderModal: ModalDirective;\r\n showEmailReminderModalModal: boolean;\r\n followUpType: string;\r\n followUpMessage: string;\r\n chkAll: boolean;\r\n emailTemplates: CoreEmailTemplate[] = [];\r\n selectedEmailTemplate: CoreEmailTemplate;\r\n selectedTemplateNumber: number | null = null;\r\n selectedTemplateBody: string = '';\r\n isEditingEmailTemplate: boolean;\r\n fragment: string;\r\n cartId: string;\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router) {}\r\n\r\n // #region Lifecycle Hooks\r\n ngOnInit() {\r\n this.selectedCompany = (this.application == \"MaxArcusOnline\" ? \"M\" : \"F\");\r\n\r\n let defaultOperator = new SysproUser();\r\n defaultOperator.sysproOperator = this.selectUndefinedOptionValue;\r\n defaultOperator.fullName = \"\";\r\n\r\n this.allOperators.push(defaultOperator);\r\n this.loadUsersByCompany();\r\n\r\n this.selected = {\r\n startDate: moment('2024-11-01').startOf('month'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n };\r\n\r\n this.setData();\r\n this.loadData();\r\n this.loadPredefinedComments();\r\n\r\n //Check for wapp settings\r\n this.sysproService.GetUserTel(this.accountService.currentUser.userName).subscribe(x => this.onTelReceived(x), error => this.onOptinLoadFailed(error));\r\n\r\n }\r\n ngAfterViewInit() {\r\n this.setData();\r\n }\r\n // #endregion\r\n\r\n // #region Data Setup and Loading\r\n private setData() {\r\n this.columns = [\r\n { prop: 'id', name: '#', width: 30, cellClass: \"center\" },\r\n { prop: 'company', name: 'C', width: 30, cellClass: \"center\" },\r\n { prop: 'dateMachineReceived', name: 'Received Date', width: 90, cellTemplate: this.dateTemplate, cellClass: \"center\" },\r\n { prop: 'jobCardNumber', name: 'Job Card #', width: 90, cellTemplate: this.selectTemplate, cellClass: \"center\" },\r\n { prop: 'binNumber', name: 'Bin', width: 40, cellClass: \"center\" },\r\n { prop: 'statusId', name: 'Status', width: 210, cellTemplate: this.statusTemplate },\r\n //{ prop: 'daysSinceStatusChanged', name: 'Days Since', width: 50, cellTemplate: this.statusChangeTemplate },\r\n { prop: 'customerCode', name: 'Customer', width: 200, cellTemplate: this.customerTemplate },\r\n { prop: 'machineDescription', name: 'Machine Description', width: 200 },\r\n { prop: 'quoteNumber', name: 'Quote Number', width: 120, cellTemplate: this.quoteTemplate },\r\n { prop: 'salesOrderNumber', name: 'SalesOrder Number', width: 120, cellTemplate: this.invoiceTemplate },\r\n { prop: 'purchaseOrderNumber', name: 'Purchase Order Number', width: 150, cellTemplate: this.poTemplate },\r\n { prop: 'itsStatus', name: 'ITS', width: 100, cellClass: \"left\", cellTemplate: this.itsTemplate },\r\n { prop: 'assignedTechnician', name: 'Technician', width: 200 },\r\n { prop: 'customerContactInfo', name: 'Customer Contact Info', width: 250 },\r\n { prop: 'salespersonEmail', name: 'Sales Rep', width: 150 },\r\n { prop: 'completionDate', name: 'Completion Date', width: 150, cellTemplate: this.dateTemplate },\r\n { prop: 'costOfRepair', name: 'Cost of Repair (Incl Vat)', width: 120, cellTemplate: this.totalTemplate, cellClass: \"right\" },\r\n { prop: 'lastStatusChangeDate', name: 'Last Status Change', width: 90, cellTemplate: this.dateTemplate, cellClass: \"center\" }\r\n ];\r\n }\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.selectedStatuses = [];\r\n this.getStatuses();\r\n this.loadEmailTemplates();\r\n this.sysproService.getAllSuppliers().subscribe(\r\n x => this.onSupplierLoadSuccessful(x),\r\n error => this.onDataLoadFailed(error)\r\n );\r\n this.fowkesService.getJobCards().subscribe(\r\n x => this.onSearchSuccesful(x),\r\n error => {\r\n this.alertService.showStickyMessage('', 'No Job Cards found for your search', MessageSeverity.warn);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n );\r\n }\r\n getStatuses() {\r\n this.fowkesService.getJobCardStatuses()\r\n .subscribe((statuses: CoreJCStatus[]) => {\r\n this.statuses = statuses;\r\n }, error => {\r\n console.error(\"Error fetching statuses: \", error);\r\n });\r\n }\r\n onCompanyChange() {\r\n // Handle the event when the company is changed\r\n this.loadUsersByCompany();\r\n }\r\n loadUsersByCompany() {\r\n this.alertService.startLoadingMessage();\r\n this.sysproService.getSysproUserDetailListByCompany(this.selectedCompany).subscribe(\r\n (users) => {\r\n this.jobCardUsers = users;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n (error) => {\r\n this.onDataLoadFailed(error);\r\n }\r\n );\r\n }\r\n loadEmailTemplates(): void {\r\n this.fowkesService.getEmailTemplates().subscribe(\r\n (templates) => {\r\n this.emailTemplates = templates;\r\n },\r\n (error) => {\r\n console.error('Failed to load email templates', error);\r\n }\r\n );\r\n }\r\n selectSalesPerson() {\r\n const selected = this.jobCardUsers.find(\r\n operator => operator.sysproOperator === this.selectedOperator\r\n );\r\n\r\n if (selected) {\r\n this.jobCardDetail.salesPersonOperator = selected.sysproOperator;\r\n this.jobCardDetail.salesPersonName = selected.fullName;\r\n\r\n // Determine which email to use based on the selected company with a fallback\r\n this.jobCardDetail.salespersonEmail = selected.nextGenUser;\r\n }\r\n }\r\n onTelReceived(x: string): void {\r\n console.log(x);\r\n this.WhatsappEnabled = true;\r\n this.WhatsappNumber = x;\r\n\r\n }\r\n onOptinLoadFailed(error: any): void {\r\n this.WhatsappEnabled = false;\r\n }\r\n onUserWappLoadSuccesful(x: OptIns): void {\r\n if (x) {\r\n //this.WhatsappEnabled = x.optedIn;\r\n this.WhatsappEnabled = true;\r\n this.WhatsappNumber = x.phoneNumber;\r\n }\r\n }\r\n loadPredefinedComments() {\r\n\r\n this.fowkesService.getJobCardComments().subscribe(\r\n comments => this.predefinedComments = comments,\r\n error => this.alertService.showStickyMessage('Error', 'Failed to load comments', MessageSeverity.error)\r\n );\r\n\r\n }\r\n // #endregion\r\n\r\n // #region Job Card Grid\r\n onSearchSuccesful(jobCards: JobCard[]): void {\r\n if (this.statuses && this.statuses.length > 0) {\r\n jobCards.forEach(jobCard => {\r\n const status = this.statuses.find(s => s.statusId === jobCard.statusId);\r\n jobCard.statusName = status ? status.statusName : 'Unknown Status';\r\n\r\n if (status.statusId != 7) {\r\n this.selectedStatuses.push(status.statusId);\r\n }\r\n\r\n });\r\n this.chkAll = false;\r\n }\r\n jobCards.forEach(jobCard => { \r\n if (jobCard.statusId != 7 && jobCard.lastStatusChangeDate) {\r\n const currentDate = new Date();\r\n const lastStatusChangeDate = new Date(jobCard.lastStatusChangeDate);\r\n jobCard.daysSinceStatusChanged = Math.floor((currentDate.getTime() - lastStatusChangeDate.getTime()) / (1000 * 60 * 60 * 24));\r\n\r\n // Set isHighlight to true if more than 7 days have passed since the last status change\r\n jobCard.isHighlight = jobCard.daysSinceStatusChanged >= 7;\r\n } else {\r\n jobCard.isHighlight = false; // No status change, no highlight\r\n }\r\n\r\n //if (jobCard.quoteNumber != \"\" && jobCard.salesOrderNumber == \"\") {\r\n // this.sysproService.getQuoteNumberSearchByCriteriaByCompany(\"quoteNumber\", jobCard.quoteNumber, jobCard.company)\r\n // .subscribe(x => {\r\n // if (x && x.length == 1) {\r\n // var quote = x[0];\r\n // if (quote.convertedRef) {\r\n // jobCard.salesOrderNumber = quote.convertedRef;\r\n // jobCard.invoiceNumber = quote.convertedRef;\r\n // }\r\n // }\r\n // }, error => {});\r\n //}\r\n\r\n if (jobCard.salesOrderNumber && jobCard.purchaseOrderNumber) {\r\n this.sysproService.getPurchaseOrderSearchByCriteriaByCompany(\"SALESORDER\", jobCard.salesOrderNumber, jobCard.company)\r\n .subscribe(x => {\r\n jobCard.poNumbers = x;\r\n if (x && x.length > 0) {\r\n jobCard.purchaseOrderNumber = \"Please Select\";\r\n } else {\r\n jobCard.purchaseOrderNumber = '';\r\n }\r\n }, error => {\r\n console.error('Error loading purchase orders for sales order', error);\r\n });\r\n }\r\n });\r\n this.rows = jobCards;\r\n this.rowsCache = [...jobCards];\r\n\r\n this.applyFilters();\r\n \r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n getRowClass(row: JobCard): { [key: string]: boolean } {\r\n return {\r\n 'highlight-row': row.isHighlight\r\n };\r\n } \r\n // Called when the user changes the status from the dropdown in the grid\r\n onStatusChange(row: JobCard) {\r\n this.editJobCard = true;\r\n this.saveJobCard(row, true);\r\n }\r\n // Capture the old status when the user focuses on the status dropdown\r\n onStatusFocus(row: JobCard) {\r\n this.oldStatusId = row.statusId; // Save the current status before the user changes it\r\n }\r\n // #endregion Job Card Grid\r\n\r\n\r\n // #region Job Card Modal\r\n addNewJobCard() {\r\n //Firt refresh\r\n this.refresh();\r\n\r\n this.editJobCard = false;\r\n this.jobCardDetail = new JobCard();\r\n this.jobCardDetail.jobCardNumber = this.generateJobCardNumber();\r\n this.jobCardDetail.branchCode = this.branchCode;\r\n this.jobCardDetail.dateMachineReceived = this.getTodayDate();\r\n this.jobCardDetail.referenceNumber = \"\";\r\n this.jobCardDetail.customerCode = \"\";\r\n this.jobCardDetail.customerName = \"\";\r\n this.jobCardDetail.machineDescription = \"\";\r\n this.jobCardDetail.statusId = 1;\r\n this.jobCardDetail.assignedTechnician = \"\";\r\n this.jobCardDetail.completionDate = null;\r\n this.jobCardDetail.costOfRepair = 0;\r\n this.jobCardDetail.customerContactInfo = \"\";\r\n this.jobCardDetail.accessories = \"\";\r\n this.jobCardDetail.accessoriesList = [];\r\n this.jobCardDetail.warrantyRepair = \"\";\r\n this.jobCardDetail.warrantyRepairList = [];\r\n this.selectedCompany = this.application === 'MaxArcusOnline' ? 'M' : 'F';\r\n this.jobCardDetail.company = this.selectedCompany;\r\n this.selectedOperator = null;\r\n\r\n this.jobCardDetail.additionalSuppliers = [];\r\n\r\n this.selectedSupplier = null;\r\n\r\n if (!this.jobCardDetailModal) {\r\n setTimeout(() => {\r\n if (this.jobCardDetailModal) {\r\n this.jobCardDetailModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.jobCardDetailModal.show();\r\n }\r\n }\r\n viewJobCard(row: JobCard) {\r\n this.jobCardDetail = new JobCard();\r\n // Fetch the job card details based on jobCardNumber or id from the row\r\n this.fowkesService.getJobCardById(row.id).subscribe(\r\n (jobCard: JobCard) => {\r\n\r\n this.jobCardDetail = jobCard; // Assign the fetched job card to jobCardDetail\r\n this.editJobCard = true;\r\n\r\n // Load third-party suppliers if any\r\n this.fowkesService.getAdditionalSuppliers(this.jobCardDetail.id).subscribe(suppliers => {\r\n // Ensure no blank spaces in email or other fields\r\n this.jobCardDetail.additionalSuppliers = (suppliers || []).map(supplier => {\r\n return {\r\n ...supplier,\r\n supplierEmail: supplier.supplierEmail ? supplier.supplierEmail.trim() : '' // Trim whitespace or set to empty\r\n };\r\n });\r\n\r\n // Determine if repair is in-house or outsourced\r\n if (this.jobCardDetail.additionalSuppliers.length === 0) {\r\n // In-house repair\r\n this.selectedSupplier = new Supplier();\r\n this.selectedSupplier.supplier = \"FOWKES\";\r\n this.selectedSupplier.supplierName = \"Fowkes (In House Repair)\";\r\n this.jobCardDetail.assignedTechnician = this.selectedSupplier.supplier + \":\" + this.selectedSupplier.supplierName;\r\n\r\n } else {\r\n // Outsourced repair to third-party suppliers\r\n this.selectedSupplier = null; // Clear the in-house selection\r\n this.jobCardDetail.assignedTechnician = \"Outsourced Repair\"; // No in-house technician assignment\r\n }\r\n });\r\n\r\n this.jobCardDetail.accessoriesList = [];\r\n this.jobCardDetail.accessoriesList = JSON.parse(jobCard.accessories || '[]') as string[];\r\n\r\n this.jobCardDetail.warrantyRepairList = [];\r\n this.jobCardDetail.warrantyRepairList = JSON.parse(jobCard.warrantyRepair || '[]') as string[];\r\n\r\n //Search and assign job card customer\r\n this.searchCustomerResults = null;\r\n\r\n // Call the service to search by criteria\r\n this.sysproService.getCustomerSearchByCriteriaByCompany(\"Customer\", this.jobCardDetail.customerCode, this.jobCardDetail.company).subscribe(\r\n (customers) => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchCustomerResults = customers;\r\n this.searchCustomerResultSelected = customers[0]\r\n },\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n\r\n this.jobCardDetail.customerContactInfo = jobCard.customerContactInfo;\r\n this.jobCardDetail.jobContactName = jobCard.jobContactName;\r\n this.jobCardDetail.jobContactEmail = jobCard.jobContactEmail;\r\n this.jobCardDetail.jobContactTelephone = jobCard.jobContactTelephone;\r\n\r\n this.selectedCompany = jobCard.company || (this.application === 'MaxArcusOnline' ? 'M' : 'F');\r\n\r\n this.selectedOperator = jobCard.salesPersonOperator;\r\n\r\n if (jobCard.quoteNumber != \"\" && jobCard.salesOrderNumber == \"\") {\r\n this.sysproService.getQuoteNumberSearchByCriteriaByCompany(\"quoteNumber\", jobCard.quoteNumber, jobCard.company)\r\n .subscribe(x => {\r\n if (x && x.length == 1) {\r\n var quote = x[0];\r\n if (quote.convertedRef) {\r\n this.jobCardDetail.salesOrderNumber = quote.convertedRef;\r\n this.searchInvoiceType = \"salesorder\";\r\n this.searchInvoiceText = this.jobCardDetail.salesOrderNumber;\r\n\r\n //Add invoice if found\r\n this.sysproService.getSalesOrderSearchByCriteriaByCompany(this.searchInvoiceType, this.searchInvoiceText.trim(), this.selectedCompany).subscribe(\r\n (invoices) => this.onSpecificQuoteInvoiceSearchSuccesful(invoices),\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n }\r\n }\r\n else {\r\n this.jobCardDetail.salesOrderNumber = \"\";\r\n }\r\n }, error => { });\r\n }\r\n \r\n if (this.jobCardDetail.purchaseOrderNumber) {\r\n this.sysproService.getPurchaseOrderSearchByCriteriaByCompany(\"SALESORDER\", this.jobCardDetail.salesOrderNumber, this.jobCardDetail.company)\r\n .subscribe(x => {\r\n this.jobCardDetail.poNumbers = x; // Attach the PO numbers to the job card\r\n if (x && x.length > 0) {\r\n this.jobCardDetail.purchaseOrderNumber = \"Please Select\";\r\n } else {\r\n this.jobCardDetail.purchaseOrderNumber = ''; // Reset if no POs are found\r\n }\r\n }, error => {\r\n console.error('Error loading purchase orders for sales order', error);\r\n });\r\n }\r\n\r\n // Set the date in the calendar\r\n const today = new Date(this.jobCardDetail.dateMachineReceived);\r\n const year = today.getFullYear();\r\n const month = String(today.getMonth() + 1).padStart(2, '0'); // months are 0-based\r\n const day = String(today.getDate()).padStart(2, '0');\r\n\r\n // Set the dateMachineReceived to YYYY-MM-DD format\r\n this.jobCardDetail.dateMachineReceived = `${year}-${month}-${day}`;\r\n\r\n this.fowkesService.getJobCardStatusHistory(row.id).subscribe(\r\n (x: JobCardStatusHistory[]) => {\r\n // Filter to include entries with \"status\" updates or \"Job Created\" updateType and sort by ChangeDate in descending order\r\n this.jobCardStatusHistory = x\r\n .filter(history =>\r\n history.updateType &&\r\n (history.updateType.toLowerCase().includes('status') ||\r\n history.updateType.toLowerCase() === 'job created' ||\r\n history.notes.toLowerCase().includes('email sent') ||\r\n history.updateType.toLowerCase().includes('message sent') // Include email-related updates\r\n )\r\n )\r\n .sort((a, b) => {\r\n return new Date(b.changeDate).getTime() - new Date(a.changeDate).getTime(); // Sort by ChangeDate in descending order\r\n });\r\n },\r\n (error) => {\r\n console.error('Failed to load job card status history', error);\r\n }\r\n );\r\n\r\n // Calculate days since the last status change if date exists\r\n if (this.jobCardDetail.lastStatusChangeDate) {\r\n const lastChangeDate = new Date(jobCard.lastStatusChangeDate);\r\n const currentDate = new Date();\r\n const timeDiff = currentDate.getTime() - lastChangeDate.getTime();\r\n this.jobCardDetail.daysSinceStatusChanged = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n } else {\r\n this.jobCardDetail.daysSinceStatusChanged = null;\r\n }\r\n\r\n this.jobCardDetail.machineDescription = jobCard.machineDescription.toUpperCase();\r\n this.jobCardDetail.comments = jobCard.comments.toUpperCase();\r\n\r\n // Open the modal for editing the job card\r\n if (!this.jobCardDetailModal) {\r\n setTimeout(() => {\r\n if (this.jobCardDetailModal) {\r\n this.jobCardDetailModal.show();\r\n }\r\n });\r\n } else {\r\n this.jobCardDetailModal.show();\r\n }\r\n },\r\n (error) => {\r\n this.alertService.showStickyMessage('Load Error', 'Unable to load job card details', MessageSeverity.error, error);\r\n }\r\n );\r\n }\r\n setStatus() {}\r\n toggleAccessory(accessory: string): void {\r\n if (!this.jobCardDetail.accessoriesList) {\r\n this.jobCardDetail.accessoriesList = [];\r\n }\r\n\r\n const index = this.jobCardDetail.accessoriesList.indexOf(accessory);\r\n\r\n if (index === -1) {\r\n // Add the accessory if it isn't already selected\r\n this.jobCardDetail.accessoriesList.push(accessory);\r\n } else {\r\n // Remove the accessory if it's already selected\r\n this.jobCardDetail.accessoriesList.splice(index, 1);\r\n }\r\n }\r\n toggleWarranty(warranty: string): void {\r\n if (!this.jobCardDetail.warrantyRepairList) {\r\n this.jobCardDetail.warrantyRepairList = [];\r\n }\r\n\r\n const index = this.jobCardDetail.warrantyRepairList.indexOf(warranty);\r\n\r\n if (index === -1) {\r\n // Add the accessory if it isn't already selected\r\n this.jobCardDetail.warrantyRepairList.push(warranty);\r\n // Add a comment for the selected warranty\r\n const newComment = `${warranty}`;\r\n this.jobCardDetail.comments = this.jobCardDetail.comments\r\n ? `${this.jobCardDetail.comments}\\n${newComment}`\r\n : newComment;\r\n\r\n } else {\r\n // Remove the accessory if it's already selected\r\n this.jobCardDetail.warrantyRepairList.splice(index, 1);\r\n // Remove the corresponding comment for the deselected warranty\r\n const commentToRemove = `${warranty}`;\r\n this.jobCardDetail.comments = this.jobCardDetail.comments\r\n .split('\\n')\r\n .filter((comment) => comment.trim() !== commentToRemove)\r\n .join('\\n');\r\n }\r\n }\r\n\r\n addCommentToJobCard() {\r\n const commentsToAdd = [];\r\n\r\n // Add the pre-defined comment if selected\r\n if (this.selectedComment) {\r\n commentsToAdd.push(this.selectedComment.toUpperCase());\r\n this.selectedComment = '';\r\n }\r\n\r\n // Add the custom comment if entered\r\n if (this.customComment) {\r\n commentsToAdd.push(this.customComment.toUpperCase());\r\n this.customComment = '';\r\n }\r\n\r\n if (commentsToAdd.length > 0) {\r\n this.jobCardDetail.comments += `\\n${commentsToAdd.join('\\n')}`;\r\n } else {\r\n this.alertService.showStickyMessage('No Comment', 'Please select a pre-defined comment or enter a custom comment.', MessageSeverity.warn);\r\n }\r\n }\r\n\r\n // #region Customer Search and Set\r\n specificCustomerSearch() {\r\n if (this.searchCustomerType && this.searchCustomerText !== \"\") {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchCustomerResults = null;\r\n\r\n // Call the service to search by criteria\r\n this.sysproService.getCustomerSearchByCriteriaByCompany(this.searchCustomerType, this.searchCustomerText, this.selectedCompany).subscribe(\r\n (customers) => this.onSpecificCustomerSearchSuccesful(customers),\r\n (error) => this.alertService.showStickyMessage('No results', 'Please adjust your search criteria', MessageSeverity.warn)\r\n );\r\n } else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on', MessageSeverity.warn);\r\n }\r\n }\r\n onSpecificCustomerSearchSuccesful(customers: ArCustomer[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchCustomerResults = customers;\r\n\r\n // If only one customer is returned, automatically select it\r\n if (customers.length === 1) {\r\n this.selectCustomer(customers[0]);\r\n }\r\n }\r\n viewCustomerSelected() {\r\n if (this.searchCustomerResultSelected) {\r\n this.selectCustomer(this.searchCustomerResultSelected);\r\n }\r\n }\r\n selectCustomer(customer: ArCustomer) {\r\n this.searchCustomerResultSelected = customer;\r\n this.jobCardDetail.customerCode = customer.customer;\r\n this.jobCardDetail.customerName = customer.customerName;\r\n this.jobCardDetail.jobContactName = customer.contact;\r\n this.jobCardDetail.jobContactEmail = this.extractEmails(customer.email);\r\n this.jobCardDetail.jobContactTelephone = customer.telephone;\r\n this.jobCardDetail.customerContactInfo = customer.contact || \"\" + customer.addTelephone || \"\";\r\n }\r\n // #endregion\r\n\r\n // #region Supplier Search and Set\r\n onSupplierLoadSuccessful(suppliers: Supplier[]) {\r\n this.suppliersCache = suppliers;\r\n\r\n // Refresh dropdown if necessary\r\n setTimeout(() => {\r\n if (this.supplierSelector) {\r\n this.supplierSelector.refresh();\r\n }\r\n }, 100);\r\n }\r\n setSupplier() {\r\n if (this.selectedSupplier) {\r\n // Check if the selected supplier is not \"FOWKES\"\r\n if (this.selectedSupplier.supplier !== \"FOWKES\") {\r\n // Create a new object for the selected supplier to avoid reference issues\r\n const newSupplier = {\r\n id: 0, // Indicates a new supplier (will be assigned in the database)\r\n jobCardId: this.jobCardDetail.id,\r\n supplierCode: this.selectedSupplier.supplier,\r\n supplierName: this.selectedSupplier.supplierName,\r\n supplierEmail: this.selectedSupplier.email.trim(),\r\n supplierTelephone: this.selectedSupplier.telephone,\r\n addedDate: new Date(),\r\n // New fields with initial values\r\n originalInvoice: '', // Placeholder, can be updated later if needed\r\n originalInvoiceDate: null, // Set to null initially\r\n supplierSpecificPo: '', // Placeholder for supplier-specific PO\r\n completedDate: null, // Set to null initially\r\n supplierStatus: '' // Placeholder, can be updated based on status\r\n };\r\n\r\n // Add the new supplier to the additionalSuppliers array\r\n this.jobCardDetail.additionalSuppliers.push(newSupplier);\r\n this.jobCardDetail.assignedTechnician = \"Outsourced Repair\";\r\n }\r\n\r\n // Reset the selected supplier dropdown for the next input\r\n this.selectedSupplier = null;\r\n this.jobCardDetail.supplierCode = \"\";\r\n this.jobCardDetail.supplierName = \"\";\r\n this.jobCardDetail.assignedTechnician = \"\";\r\n this.jobCardDetail.ptrNumber = \"\";\r\n this.jobCardDetail.supplierContact = \"\";\r\n this.jobCardDetail.supplierEmail = \"\";\r\n this.jobCardDetail.supplierTelephone = \"\";\r\n \r\n } else {\r\n // Set default details for in-house repairs\r\n this.jobCardDetail.supplierCode = \"FOWKES\";\r\n this.jobCardDetail.supplierName = \"Fowkes (In House Repair)\";\r\n this.jobCardDetail.assignedTechnician = \"FOWKES:Fowkes (In House Repair)\";\r\n this.jobCardDetail.supplierContact = \"Mike\";\r\n this.jobCardDetail.supplierEmail = \"toolrepairs@fowkes.co.za\";\r\n this.jobCardDetail.supplierTelephone = \"\";\r\n }\r\n }\r\n trackByIndex(index: number, item: any): number {\r\n return index;\r\n }\r\n removeSupplier(index: number) {\r\n const supplier = this.jobCardDetail.additionalSuppliers[index];\r\n\r\n if (supplier.id) {\r\n // If the supplier exists in the database, call API to delete it\r\n this.fowkesService.deleteAdditionalSupplier(supplier.id).subscribe(\r\n () => {\r\n this.jobCardDetail.additionalSuppliers.splice(index, 1);\r\n this.alertService.showMessage('Success', 'Supplier removed successfully', MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.showStickyMessage('Delete Error', 'Unable to remove supplier.', MessageSeverity.error, error);\r\n }\r\n );\r\n } else {\r\n // Just remove the new supplier from the local list\r\n this.jobCardDetail.additionalSuppliers.splice(index, 1);\r\n }\r\n }\r\n // #endregion Supplier Search and Set\r\n\r\n // #region Assign Quote / Sales Order / Invoice / Purchase Order\r\n addQuoteNumber() {\r\n\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.selectedCompany != currentCompanyCode) {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n this.showQuotePopup = true;\r\n this.quoteSearch = true;\r\n this.searchQuoteText = this.jobCardDetail.customerCode;\r\n\r\n this.specificQuoteSearch();\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.quoteSearchModal) {\r\n setTimeout(() => {\r\n if (this.quoteSearchModal) {\r\n this.quoteSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.quoteSearchModal.show();\r\n }\r\n }\r\n specificQuoteSearch() {\r\n if (this.searchQuoteType && this.searchQuoteText !== \"\") {\r\n this.searchQuoteResults = null;\r\n // Call the service to search by criteria\r\n this.sysproService.getQuoteNumberSearchByCriteriaByCompany(this.searchQuoteType, this.searchQuoteText, this.selectedCompany).subscribe(\r\n (quotes) => this.onSpecificQuoteSearchSuccesful(quotes),\r\n (error) => this.alertService.showStickyMessage('No results', 'Please adjust your search criteria', MessageSeverity.warn)\r\n );\r\n } else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on', MessageSeverity.warn);\r\n }\r\n }\r\n onSpecificQuoteSearchSuccesful(quotes: any): void {\r\n this.searchQuoteResults = quotes;\r\n\r\n // If only one quote is returned, automatically select it\r\n if (quotes.length === 1) {\r\n this.searchQuoteResultSelected = quotes[0];\r\n this.selectQuote(this.searchQuoteResultSelected);\r\n }\r\n }\r\n viewQuoteSelected() {\r\n if (this.searchQuoteResultSelected) {\r\n this.selectQuote(this.searchQuoteResultSelected);\r\n }\r\n }\r\n selectQuote(quote: QuoteList) {\r\n this.selectedQuote = quote.quoteNumber;\r\n this.jobCardDetail.quoteNumber = this.selectedQuote;\r\n this.jobCardDetail.costOfRepair = quote.totalIncl;\r\n\r\n // Store quote details in session storage\r\n sessionStorage.setItem(localStorageActions.Customer, this.jobCardDetail.customerCode);\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, this.selectedQuote);\r\n\r\n // Check for a converted reference (invoice) and fetch invoice if it exists\r\n if (quote.convertedRef) {\r\n this.jobCardDetail.salesOrderNumber = quote.convertedRef;\r\n this.searchInvoiceType = \"salesorder\";\r\n this.searchInvoiceText = this.jobCardDetail.salesOrderNumber;\r\n\r\n // Fetch the invoice associated with this quote\r\n this.sysproService.getSalesOrderSearchByCriteriaByCompany(this.searchInvoiceType, this.searchInvoiceText.trim(), this.selectedCompany)\r\n .subscribe(\r\n invoices => this.onSpecificInvoiceSearchSuccessful(invoices),\r\n error => this.onDataLoadFailed(error)\r\n );\r\n }\r\n else {\r\n this.jobCardDetail.salesOrderNumber = \"\";\r\n this.jobCardDetail.invoiceNumber = \"\";\r\n }\r\n //this.quoteSearchModalHide(); // Close the quote modal after selection\r\n }\r\n onSpecificInvoiceSearchSuccessful(invoices: SalesOrderList[]): void {\r\n if (invoices && invoices.length > 0) {\r\n const selectedInvoice = invoices[0];\r\n this.jobCardDetail.invoiceNumber = selectedInvoice.invoiceNumber;\r\n this.jobCardDetail.salesOrderNumber = selectedInvoice.salesOrderNumber;\r\n\r\n // Fetch associated purchase orders for the selected invoice\r\n this.SetPONumbers(selectedInvoice);\r\n } else {\r\n // Reset if no invoice is found\r\n this.jobCardDetail.invoiceNumber = '';\r\n this.jobCardDetail.salesOrderNumber = '';\r\n }\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n saveQuoteNumber(quote: string) {\r\n this.jobCardDetail.quoteNumber = quote;\r\n this.jobCardDetail.costOfRepair = this.searchQuoteResultSelected.totalIncl;\r\n\r\n if (this.searchQuoteResultSelected.convertedRef && this.searchQuoteResultSelected.convertedRef != \"\") {\r\n this.jobCardDetail.salesOrderNumber = this.searchQuoteResultSelected.convertedRef;\r\n\r\n this.searchInvoiceType = \"salesorder\";\r\n this.searchInvoiceText = this.jobCardDetail.salesOrderNumber;\r\n\r\n //Add invoice if found\r\n this.sysproService.getSalesOrderSearchByCriteriaByCompany(this.searchInvoiceType, this.searchInvoiceText.trim(), this.selectedCompany).subscribe(\r\n (invoices) => this.onSpecificQuoteInvoiceSearchSuccesful(invoices),\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n }\r\n this.quoteSearchModalHide();\r\n }\r\n selectInvoice(invoice: SalesOrderList) {\r\n this.selectedInvoice = invoice.invoiceNumber;\r\n this.selectedSalesOrder = invoice.salesOrderNumber;\r\n\r\n this.jobCardDetail.invoiceNumber = invoice.salesOrderNumber;\r\n this.jobCardDetail.salesOrderNumber = invoice.salesOrderNumber;\r\n\r\n if (invoice.poNumber != \"\" && invoice.poNumber != \"NA\") {\r\n invoice.poNumber = \"Please Select\";\r\n this.SetPONumbers(invoice);\r\n }\r\n }\r\n SetPONumbers(salesOrder: SalesOrderList) {\r\n this.sysproService.getPurchaseOrderSearchByCriteriaByCompany(\"SALESORDER\", salesOrder.salesOrderNumber, this.selectedCompany).\r\n subscribe(x => this.POSearchSuccesful(salesOrder, x), error => { });\r\n }\r\n POSearchSuccesful(salesOrder: SalesOrderList, x: PurchaseOrderList[]): void {\r\n let poList = x;\r\n x.forEach((poNumber, index, x) => {\r\n (poNumber).index = index + 1;\r\n });\r\n\r\n if (poList && poList.length > 0) {\r\n // Concatenate all the purchase order numbers into a single string\r\n salesOrder.poNumbers = x;\r\n this.jobCardDetail.poNumbers = x;\r\n //this.jobCardDetail.purchaseOrderNumber = x[0].purchaseOrder;\r\n this.jobCardDetail.purchaseOrderNumber = x.map(po => po.purchaseOrder).join(', ');\r\n } else {\r\n // If no POs are found, reset the purchase order number\r\n this.jobCardDetail.purchaseOrderNumber = '';\r\n }\r\n }\r\n quoteSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showQuotePopup = false;\r\n this.quoteSearch = false;\r\n this.searchQuoteText = \"\";\r\n this.searchQuoteResultSelected = null;\r\n this.selectedQuote = \"\";\r\n if (this.quoteSearchModal) {\r\n this.quoteSearchModal.hide();\r\n }\r\n }\r\n previewQuote(jobCardDetail: JobCard) {\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.jobCardDetail.company != currentCompanyCode)\r\n {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n\r\n this.showQuotePopup = true;\r\n this.quoteSearch = false;\r\n this.selectedQuote = jobCardDetail.quoteNumber;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.QuoteNumber) != jobCardDetail.quoteNumber) {\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, jobCardDetail.quoteNumber);\r\n }\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.quoteSearchModal) {\r\n setTimeout(() => {\r\n if (this.quoteSearchModal) {\r\n this.quoteSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.quoteSearchModal.show();\r\n }\r\n }\r\n\r\n goCreateSalesOrder(jobCardDetail: JobCard) {\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.selectedCompany != currentCompanyCode) {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n return;\r\n }\r\n //First make sure job card is saved\r\n this.saveJobCard(this.jobCardDetail, true);\r\n\r\n this.CopyQuote();\r\n }\r\n\r\n CopyQuote() {\r\n var uniqueId = this.jobCardDetail.customerCode + Math.random().toString(36).substring(2) + Date.now().toString(36);\r\n this.cartId = uniqueId;\r\n this.fragment = 'cart';\r\n sessionStorage.removeItem(localStorageActions.CartId);\r\n sessionStorage.setItem(localStorageActions.CartId, this.cartId);\r\n this.sysproService.getCartFromQuote(this.jobCardDetail.quoteNumber, this.cartId, this.branchCode).subscribe(_response => this.saveSuccessHelper(_response), error => this.saveFailedHelper(error));\r\n\r\n } \r\n saveSuccessHelper(res?: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.router.navigate(['../../orders'], { fragment: this.fragment, queryParams: { customer: this.jobCardDetail.customerCode, cartId: this.cartId } }); \r\n }\r\n saveFailedHelper(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n // #endregion Assign Quote\r\n\r\n // #region Save Job Card\r\n saveJobCard(jobCardDetail: JobCard, row: boolean) {\r\n\r\n if (!this.jobCardValid(jobCardDetail)) { return; }\r\n\r\n jobCardDetail.referenceNumber = jobCardDetail.customerCode + \"/\" + jobCardDetail.jobCardNumber + \"/\" + jobCardDetail.ptrNumber + \"/\" + jobCardDetail.assignedTechnician;\r\n jobCardDetail.customerContactInfo = `${jobCardDetail.jobContactName || ''} ${jobCardDetail.jobContactEmail ? `| ${jobCardDetail.jobContactEmail}` : ''} ${jobCardDetail.jobContactTelephone ? `| ${jobCardDetail.jobContactTelephone}` : ''}`;\r\n jobCardDetail.modifiedBy = this.accountService.currentUser.email;\r\n jobCardDetail.machineDescription = jobCardDetail.machineDescription.toUpperCase();\r\n jobCardDetail.comments = jobCardDetail.comments.toUpperCase();\r\n\r\n if (!row) {\r\n\r\n jobCardDetail.accessories = JSON.stringify(jobCardDetail.accessoriesList || []);\r\n jobCardDetail.warrantyRepair = JSON.stringify(jobCardDetail.warrantyRepairList || []);\r\n\r\n //Update the po number(s)\r\n if (jobCardDetail.poNumbers && jobCardDetail.poNumbers.length > 0) {\r\n // Concatenate all the purchase order numbers into a single string\r\n jobCardDetail.purchaseOrderNumber = jobCardDetail.poNumbers.map(po => po.poNumber).join(', ');\r\n } else {\r\n // If no POs are found, reset the purchase order number\r\n jobCardDetail.purchaseOrderNumber = '';\r\n }\r\n }\r\n else {\r\n if ((!jobCardDetail.accessories || jobCardDetail.accessories == \"\") && (jobCardDetail.accessoriesList && jobCardDetail.accessoriesList.length >= 1)) {\r\n jobCardDetail.accessories = JSON.stringify(jobCardDetail.accessoriesList || []);\r\n }\r\n //if ((!jobCardDetail.warrantyRepair || jobCardDetail.warrantyRepair == \"\") && (jobCardDetail.warrantyRepairList && jobCardDetail.warrantyRepairList.length >= 1)) {\r\n // jobCardDetail.warrantyRepair = JSON.stringify(jobCardDetail.warrantyRepairList || []);\r\n //}\r\n if (jobCardDetail.warrantyRepairList && jobCardDetail.warrantyRepairList.length >= 1) {\r\n jobCardDetail.warrantyRepair = JSON.stringify(jobCardDetail.warrantyRepairList || []);\r\n }\r\n }\r\n\r\n jobCardDetail.company = this.selectedCompany;\r\n this.alertService.startLoadingMessage('Saving Job Card...');\r\n this.loadingIndicator = true;\r\n\r\n // Call the service to save or update the job card\r\n if (this.editJobCard) {\r\n this.fowkesService.updateJobCard(jobCardDetail).subscribe(\r\n () => this.handleJobCardSaveSuccess(row, jobCardDetail),\r\n error => this.handleJobCardSaveError(error)\r\n );\r\n } else {\r\n this.fowkesService.createJobCard(jobCardDetail).subscribe(\r\n response => {\r\n this.editJobCard = true; // After creation, set editJobCard to true for future updates\r\n jobCardDetail.id = response.id;\r\n jobCardDetail.jobCardNumber = response.jobCardNumber;\r\n this.handleJobCardSaveSuccess(row, jobCardDetail);\r\n },\r\n error => this.handleJobCardSaveError(error)\r\n );\r\n }\r\n }\r\n handleJobCardSaveSuccess(row: boolean, jobCardDetail: JobCard) {\r\n // Check if the repair is in-house or with external suppliers\r\n if (jobCardDetail.additionalSuppliers && jobCardDetail.additionalSuppliers.length > 0) {\r\n let suppliersToUpdate = jobCardDetail.additionalSuppliers;\r\n let completedRequests = 0;\r\n\r\n // Iterate through each supplier and handle add or update logic\r\n suppliersToUpdate.forEach(supplierToUpdate => {\r\n supplierToUpdate.jobCardId = jobCardDetail.id;\r\n if (supplierToUpdate.id) {\r\n // Update existing supplier\r\n this.fowkesService.updateAdditionalSupplier(supplierToUpdate.id, supplierToUpdate).subscribe(\r\n response => this.checkIfAllSuppliersProcessed(++completedRequests, suppliersToUpdate.length, row, jobCardDetail),\r\n error => this.handleJobCardSaveError(error)\r\n );\r\n } else {\r\n // Add new supplier\r\n this.fowkesService.addAdditionalSupplier(supplierToUpdate).subscribe(\r\n response => this.checkIfAllSuppliersProcessed(++completedRequests, suppliersToUpdate.length, row, jobCardDetail),\r\n error => this.handleJobCardSaveError(error)\r\n );\r\n }\r\n });\r\n } else {\r\n // Directly finalize the save if no additional suppliers\r\n this.finalizeJobCardSave(row, jobCardDetail);\r\n }\r\n }\r\n checkIfAllSuppliersProcessed(completedRequests: number, totalRequests: number, row: boolean, jobCardDetail: JobCard) {\r\n if (completedRequests === totalRequests) {\r\n this.finalizeJobCardSave(row, jobCardDetail);\r\n }\r\n }\r\n finalizeJobCardSave(row: boolean, jobCardDetail: JobCard): any {\r\n\r\n if (!row) {\r\n this.jobCardDetailModalHide();\r\n this.loadData();\r\n } else {\r\n this.jobCardDetail = jobCardDetail;\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n handleJobCardSaveError(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Save Error', 'An error occurred while saving the Job Card.', MessageSeverity.error, error);\r\n }\r\n // #endregion Save Job Card\r\n\r\n openInvoiceSearchModal(index: number) {\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = true;\r\n this.searchInvoiceType = \"salesorder\";\r\n this.searchInvoiceText = \"\";\r\n this.specificInvoiceSearch();\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.invoiceSearchModal) {\r\n setTimeout(() => {\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.invoiceSearchModal.show();\r\n }\r\n }\r\n specificInvoiceSearch() {\r\n if (this.searchInvoiceText && this.searchInvoiceText !== \"\") {\r\n this.searchInvoiceResults = null;\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n // Call the service to search by criteria\r\n this.sysproService.getSalesOrderSearchByCriteriaByCompany(this.searchInvoiceType, this.searchInvoiceText.trim(), this.selectedCompany).subscribe(\r\n (invoices) => this.onSpecificInvoiceSearchSuccesful(invoices),\r\n (error) => this.alertService.showStickyMessage('No results', 'Please adjust your search criteria', MessageSeverity.warn)\r\n );\r\n } else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on', MessageSeverity.warn);\r\n }\r\n }\r\n onSpecificQuoteInvoiceSearchSuccesful(invoices: SalesOrderList[]): void {\r\n this.searchInvoiceResults = invoices;\r\n\r\n // If only one invoice is returned, automatically select it\r\n if (invoices.length === 1) {\r\n this.searchInvoiceResultSelected = invoices[0];\r\n this.selectInvoice(this.searchInvoiceResultSelected);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n onSpecificInvoiceSearchSuccesful(invoices: SalesOrderList[]): void {\r\n this.searchInvoiceResults = invoices;\r\n\r\n // If only one invoice is returned, automatically select it\r\n if (invoices.length === 1) {\r\n this.searchInvoiceResultSelected = invoices[0];\r\n this.selectSupplierInvoice(this.searchInvoiceResultSelected);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n selectSupplierInvoice(invoice: SalesOrderList) {\r\n this.selectedInvoice = invoice.invoiceNumber;\r\n this.selectedSalesOrder = invoice.salesOrderNumber;\r\n\r\n this.jobCardDetail.originalInvoice = invoice.salesOrderNumber;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != this.jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, this.jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n this.sysproService.getPODByInvoice(this.selectedInvoice)\r\n .subscribe(\r\n response => this.onBarcodesLoadSuccessful(response),\r\n error => {\r\n this.hasPODs = false;\r\n this.referenceList = [];\r\n this.jobCardDetail.originalInvoiceHasPODs = false;\r\n this.jobCardDetail.originalInvoiceDetails = \"\";\r\n }\r\n );\r\n }\r\n onBarcodesLoadSuccessful(scannedDocs: BarcodeReference[]) {\r\n if (scannedDocs && scannedDocs.length > 0) {\r\n this.hasPODs = true;\r\n this.referenceList = scannedDocs;\r\n this.jobCardDetail.originalInvoiceHasPODs = true;\r\n this.jobCardDetail.originalInvoiceDetails = scannedDocs.map(pod => pod.fileName).join(', ');\r\n } else {\r\n this.hasPODs = false;\r\n this.referenceList = [];\r\n this.jobCardDetail.originalInvoiceHasPODs = false;\r\n this.jobCardDetail.originalInvoiceDetails = \"\";\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n podModalShow() {\r\n\r\n if (this.jobCardDetail.originalInvoice) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getPODByInvoice(this.jobCardDetail.originalInvoice)\r\n .subscribe(\r\n response => this.onBarcodesLoadSuccessful(response),\r\n error => {\r\n this.hasPODs = false;\r\n this.referenceList = [];\r\n this.jobCardDetail.originalInvoiceHasPODs = false;\r\n this.jobCardDetail.originalInvoiceDetails = \"\";\r\n }\r\n );\r\n\r\n if (!this.podModal) {\r\n setTimeout(() => {\r\n if (this.podModal) {\r\n this.podModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.podModal.show();\r\n }\r\n }\r\n }\r\n podModalHide() {\r\n this.podModal.hide();\r\n }\r\n viewPOD(row: BarcodeReference) {\r\n this.sysproService.getFileStream(row.fileName, row.fileNumber).subscribe(x => this.onViewPODSuccessful(x, row.fileName), error => this.onDataLoadFailed(error));\r\n }\r\n onViewPODSuccessful(x: Blob, fileName: string): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n saveSupplierInvoiceNumber(invoiceNumber: string, invoiceDate: Date) {\r\n this.jobCardDetail.originalInvoice = invoiceNumber;\r\n this.jobCardDetail.originalInvoiceDate = invoiceDate;\r\n\r\n this.invoiceSearchModalHide();\r\n }\r\n viewInvoiceSelected() {\r\n if (this.searchInvoiceResultSelected) {\r\n this.selectInvoice(this.searchInvoiceResultSelected);\r\n }\r\n }\r\n viewSupplierInvoiceSelected() {\r\n if (this.searchInvoiceResultSelected) {\r\n this.selectSupplierInvoice(this.searchInvoiceResultSelected);\r\n }\r\n }\r\n saveInvoiceNumber(invoiceNumber: string, invoiceDate: Date) {\r\n this.jobCardDetail.originalInvoice = invoiceNumber;\r\n this.jobCardDetail.originalInvoiceDate = invoiceDate;\r\n \r\n this.invoiceSearchModalHide();\r\n }\r\n previewSupplierInvoice(jobCardDetail: JobCard) {\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n if (!this.isJobCardCompanyMatch()) {\r\n alert('You can only view invoices within the current application.');\r\n return;\r\n }\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = true;\r\n this.selectedInvoice = this.jobCardDetail.originalInvoice;\r\n this.selectedSalesOrder = this.jobCardDetail.originalInvoice;\r\n\r\n this.searchInvoiceType = \"salesorder\";\r\n this.searchInvoiceText = this.selectedSalesOrder\r\n this.specificInvoiceSearch();\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n } \r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.invoiceSearchModal) {\r\n setTimeout(() => {\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.invoiceSearchModal.show();\r\n }\r\n }\r\n previewInvoice(jobCardDetail: JobCard) {\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.jobCardDetail.company != currentCompanyCode) {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = false;\r\n\r\n this.selectedInvoice = jobCardDetail.invoiceNumber;\r\n this.selectedSalesOrder = jobCardDetail.salesOrderNumber;\r\n\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.invoiceSearchModal) {\r\n setTimeout(() => {\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.invoiceSearchModal.show();\r\n }\r\n }\r\n\r\n\r\n previewITS(jobCardDetail: JobCard) {\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = false;\r\n\r\n this.selectedInvoice = jobCardDetail.invoiceNumber;\r\n this.selectedSalesOrder = jobCardDetail.salesOrderNumber;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n this.showITSPopup = true;\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n\r\n viewTracking() {\r\n\r\n this.showITSPopup = true;\r\n\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n itsModalHide() {\r\n\r\n this.showITSPopup = false;\r\n\r\n if (this.itsModal) {\r\n this.itsModal.hide();\r\n }\r\n }\r\n\r\n\r\n gotToITS() {\r\n //this.router.navigate(['../../reports'], { fragment: 'invoicestatus', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n invoiceSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showInvoicePopup = false;\r\n this.invoiceSearch = false;\r\n this.searchInvoiceText = \"\";\r\n this.searchInvoiceResultSelected = null;\r\n this.selectedInvoice = \"\";\r\n this.selectedSalesOrder = \"\";\r\n this.selectedSupplierIndex = null;\r\n this.hasPODs = false;\r\n this.referenceList = [];\r\n\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.hide();\r\n }\r\n\r\n\r\n }\r\n previewPurchaseOrderDetail(jobCardDetail: JobCard, po: PurchaseOrderList) {\r\n this.showPurchaseOrderPopup = true;\r\n this.purchaseOrderSearch = false;\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.jobCardDetail.company != currentCompanyCode) {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n\r\n this.selectedInvoice = jobCardDetail.invoiceNumber;\r\n this.selectedSalesOrder = jobCardDetail.salesOrderNumber;\r\n\r\n if (po && po.purchaseOrder) {\r\n\r\n this.selectedPurchaseOrder = po.purchaseOrder;\r\n }\r\n else {\r\n this.selectedPurchaseOrder = this.jobCardDetail.purchaseOrderNumber;\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.PurchaseOrder) != this.selectedPurchaseOrder) {\r\n sessionStorage.setItem(localStorageActions.PurchaseOrder, this.selectedPurchaseOrder);\r\n }\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.purchaseOrderSearchModal) {\r\n setTimeout(() => {\r\n if (this.purchaseOrderSearchModal) {\r\n this.purchaseOrderSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.purchaseOrderSearchModal.show();\r\n }\r\n }\r\n purchaseOrderSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showPurchaseOrderPopup = false;\r\n this.purchaseOrderSearch = false;\r\n this.selectedInvoice = \"\";\r\n this.selectedSalesOrder = \"\";\r\n this.selectedPurchaseOrder = \"\";\r\n\r\n if (this.purchaseOrderSearchModal) {\r\n this.purchaseOrderSearchModal.hide();\r\n }\r\n }\r\n \r\n\r\n //Go straigh to cart\r\n goCreateCart(jobCardDetail: JobCard) {\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.selectedCompany != currentCompanyCode) {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n return;\r\n }\r\n //First make sure job card is saved\r\n this.saveJobCard(this.jobCardDetail, true);\r\n \r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n \r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: jobCardDetail.customerCode } });\r\n }\r\n\r\n jobCardDetailModalHide() {\r\n this.jobCardDetail = null;\r\n this.searchCustomerText = \"\";\r\n this.searchCustomerResults = null;\r\n this.searchCustomerResultSelected = null;\r\n this.jobCardStatusHistory = null;\r\n this.isHistoryPanelOpen = false;\r\n\r\n if (this.jobCardDetailModal) {\r\n this.jobCardDetailModal.hide();\r\n }\r\n }\r\n\r\n // #region Customer Documents\r\n onCustomerEmailLoadSuccessful() {\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n return;\r\n }\r\n //First make sure job card is saved\r\n this.saveJobCard(this.jobCardDetail, true);\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n this.alertService.startLoadingMessage(\"Loading Email...\");\r\n this.loadingIndicator = true;\r\n this.emailObject.RecepientName = this.jobCardDetail.jobContactName;\r\n this.emailObject.RecepientEmail = this.jobCardDetail.jobContactEmail;//this.purchaseOrder.buyerEmail;\r\n this.emailObject.CC = (this.jobCardDetail.salespersonEmail ? this.jobCardDetail.salespersonEmail : \"\");\r\n this.emailObject.BCC = this.accountService.currentUser.email;\r\n this.emailObject.Subject = \"Power Tool Repairs - Job Card Reference : \" + this.jobCardDetail.jobCardNumber;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.jobCardDetail.company;\r\n this.emailObject.Attachment = this.jobCardDetail.jobCardNumber;\r\n this.emailObject.EmailType = \"JobCard_Customer\";\r\n this.emailObject.Bod = \"Please find attached document that can be viewed with any standard PDF reader. \";\r\n\r\n this.showCustomerEmailModal = true;\r\n if (!this.emailModal) {\r\n setTimeout(() => {\r\n if (this.emailModal) {\r\n this.emailModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.emailModal.show();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n getCustomerPDF(): void {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.saveJobCard(this.jobCardDetail, true); // Ensure job card is saved\r\n\r\n this.fowkesService.getJobCardCustomerPDF(this.jobCardDetail.jobCardNumber, this.jobCardDetail.company, true)\r\n .subscribe(\r\n x => {\r\n this.onCustomerFileSuccessful(x, false, this.jobCardDetail.jobCardNumber);\r\n this.updateHistoryForPDFGeneration(this.jobCardDetail, 'Customer');\r\n },\r\n error => this.onDataLoadFailed(error)\r\n );\r\n }\r\n onCustomerFileSuccessful(x: Blob, preview: boolean, jobCardNumber: string): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = jobCardNumber + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n emailCustomerPDF() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.getJobCardCustomerPDF(this.jobCardDetail.jobCardNumber, this.jobCardDetail.company, false).subscribe(x => this.emailCustomerJobCard(), error => this.onDataLoadFailed(error));\r\n }\r\n emailCustomerJobCard() {\r\n this.updateHistoryForEmailSent(this.jobCardDetail, this.emailObject.Subject, this.emailObject.RecepientEmail);\r\n this.fowkesService.sendjobCardEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n\r\n this.emailModalHide();\r\n }\r\n emailModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n\r\n this.showCustomerEmailModal = false;\r\n\r\n this.emailObject = new Email();\r\n \r\n if (this.emailModal) {\r\n this.emailModal.hide();\r\n }\r\n }\r\n // #endregion Customer Documents\r\n\r\n // #region Customer Quotes Email\r\n onQuoteEmailLoadSuccessful() {\r\n if (this.selectedQuote) {\r\n const quoteNumber = this.selectedQuote;\r\n\r\n this.alertService.startLoadingMessage(\"Loading Email...\");\r\n this.loadingIndicator = true;\r\n this.emailObject.RecepientName = this.jobCardDetail.jobContactName;\r\n this.emailObject.RecepientEmail = this.jobCardDetail.jobContactEmail;//this.purchaseOrder.buyerEmail;\r\n this.emailObject.CC = (this.jobCardDetail.salespersonEmail ? this.jobCardDetail.salespersonEmail : \"\");\r\n this.emailObject.BCC = this.accountService.currentUser.email;\r\n this.emailObject.Subject = \"Power Tool Repairs - Job Card Reference : \" + this.jobCardDetail.jobCardNumber;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.jobCardDetail.company;\r\n this.emailObject.Attachment = quoteNumber;\r\n this.emailObject.Bod = \"Thank you for allowing us to submit our quotation. Please find attached PDF that can be viewed with any standard PDF reader. If you decide to accept please reference this quote number.\";\r\n\r\n\r\n this.reportService.getQuotePDF(quoteNumber, this.application).subscribe(x => {\r\n this.emailQuoteModal.show(),\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }, error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n viewQuotePDF() {\r\n this.reportService.getFileStream(this.selectedQuote).subscribe(x => this.onQuoteFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n sendQuoteWappMessage() {\r\n this.outboxDetail = new Outbox();\r\n\r\n this.outboxDetail.toPhoneNumber = this.WhatsappNumber;\r\n this.outboxDetail.content = \"Template\";\r\n this.outboxDetail.headerMediaFileId = this.selectedQuote;\r\n this.outboxDetail.nextGenUser = this.accountService.currentUser.userName;\r\n\r\n this.sysproService.sendTemplateWithFile(this.outboxDetail.headerMediaFileId, \"QUOTE\", this.outboxDetail.toPhoneNumber, this.outboxDetail.nextGenUser,\r\n this.outboxDetail.headerMediaFileId).subscribe(x => this.onWhatsappSentSuccesful(x), error => this.WhatsappSentFailed(error));\r\n }\r\n WhatsappSentFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Error', `Something went wrong: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n onWhatsappSentSuccesful(x: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('', `\"${x.message}\"`, MessageSeverity.info);\r\n\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: this.jobCardDetail.id,\r\n updateType: `Message sent`,\r\n newStatus: \"Quotation Whatsapp Sent\",\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `${x.message}`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`${x.message}`),\r\n (error) => console.error('Error updating history for PDF generation', error)\r\n );\r\n\r\n this.emailQuoteModal.hide();\r\n\r\n }\r\n onMessageSentSuccesful(): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Message sent successfully`, MessageSeverity.success);\r\n this.emailQuoteModal.hide();\r\n }\r\n previewQuotePDF() {\r\n this.reportService.getFileStream(this.selectedQuote).subscribe(x => this.onQuoteFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n emailQuotePDF() {\r\n if (this.emailObject.RecepientEmail && this.emailObject.RecepientEmail.trim().length >= 1) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onQuoteEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: this.jobCardDetail.id,\r\n updateType: `Email Sent`,\r\n newStatus: \"Quotation Email Sent\",\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `Quotation email sent to ${this.emailObject.RecepientEmail}`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`Quotation email sent to ${this.emailObject.RecepientEmail}`),\r\n (error) => console.error('Error updating history for PDF generation', error)\r\n );\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Remeber to add email address for recepient`, MessageSeverity.warn);\r\n }\r\n\r\n }\r\n onQuoteEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n \r\n this.emailQuoteModal.hide();\r\n }\r\n getQuotePDF(x: Blob, quoteNumber: string): void {\r\n this.reportService.getFileStream(quoteNumber).subscribe(x => this.onQuoteFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n onQuoteFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n \r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data; \r\n\r\n link.download = this.selectedQuote + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n // #endregion Customer Quotes Email PDF\r\n\r\n // #region Supplier PDF\r\n getSupplierPDF(row: JobCardSuppliers): void {\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n return;\r\n }\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.saveJobCard(this.jobCardDetail, true); // Ensure job card is saved\r\n\r\n // Delay for 2 seconds before attempting to generate the PDF\r\n setTimeout(() => {\r\n this.fowkesService.getJobCardSupplierPDF(this.jobCardDetail.jobCardNumber, this.jobCardDetail.company, row.supplierCode)\r\n .subscribe(\r\n x => {\r\n this.onSupplierFileSuccessful(x, false, this.jobCardDetail.jobCardNumber, row.supplierCode);\r\n this.updateHistoryForPDFGeneration(this.jobCardDetail, 'Supplier');\r\n },\r\n error => this.onDataLoadFailed(error)\r\n );\r\n }, 2000); // 2-second delay\r\n }\r\n //saveJobCardSupplier(row: JobCardSuppliers): void {\r\n // if (!this.jobCardValid(this.jobCardDetail)) {\r\n // this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n // return;\r\n // }\r\n\r\n // this.alertService.startLoadingMessage();\r\n // this.loadingIndicator = true;\r\n\r\n // this.saveJobCard(this.jobCardDetail, true); // Ensure job card is saved \r\n \r\n //}\r\n onSupplierFileSuccessful(x: Blob, preview: boolean, jobCardNumber: string, supplierCode: string): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = jobCardNumber + \"_\" + supplierCode + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n // #endregion Supplier PDF\r\n\r\n //#region Master Jobcard PDF\r\n getMasterPDF(jobCard: JobCard): void {\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n return;\r\n }\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.saveJobCard(this.jobCardDetail, true); // Ensure job card is saved\r\n\r\n var quoteNumber = \"\";\r\n if (!jobCard.quoteNumber || jobCard.quoteNumber == \"\") {\r\n quoteNumber = \"none\";\r\n }\r\n else {\r\n quoteNumber = jobCard.quoteNumber;\r\n } \r\n \r\n // Delay for 2 seconds before attempting to generate the PDF\r\n setTimeout(() => {\r\n this.fowkesService.getJobCardMasterPDF(this.jobCardDetail.jobCardNumber, this.jobCardDetail.company, quoteNumber)\r\n .subscribe(\r\n x => {\r\n this.onMasterFileSuccessful(x, false, this.jobCardDetail.jobCardNumber);\r\n this.updateHistoryForPDFGeneration(this.jobCardDetail, 'Master');\r\n },\r\n error => this.onDataLoadFailed(error)\r\n );\r\n\r\n }, 2000); // 2-second delay\r\n }\r\n onMasterFileSuccessful(x: Blob, preview: boolean, jobCardNumber: string): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = jobCardNumber + \"_Master.pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n //#endregion Master Jobcard PDF\r\n\r\n // #region audit trail - History update\r\n updateHistoryForPDFGeneration(jobCardDetail: JobCard, documentType: string): void {\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: jobCardDetail.id,\r\n updateType: `Generated ${documentType} PDF`,\r\n newStatus: jobCardDetail.statusName,\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `
${documentType}
PDF generated for Job Card ${jobCardDetail.jobCardNumber}`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`${documentType} PDF generation recorded in history.`),\r\n (error) => console.error('Error updating history for PDF generation', error)\r\n );\r\n }\r\n\r\n updateHistoryForEmailSent(jobCardDetail: JobCard, documentType: string, emailTo: string): void {\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: jobCardDetail.id,\r\n updateType: `Emailed Customer Receipt`,\r\n newStatus: null,\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `Customer Receipt Email sent to ${emailTo}`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`${documentType} email sent recorded in history.`),\r\n (error) => console.error('Error updating history for PDF generation', error)\r\n );\r\n }\r\n\r\n updateHistoryForStatusChange(jobCardDetail: JobCard, newStatus: string): void {\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: jobCardDetail.id,\r\n updateType: `Status Change`,\r\n newStatus: newStatus,\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `Status updated to '${newStatus}' for Job Card ${jobCardDetail.jobCardNumber} by ${this.accountService.currentUser.userName}.`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`Status change to '${newStatus}' recorded in history.`),\r\n (error) => console.error('Error updating history for status change', error)\r\n );\r\n }\r\n // #endregion audit trail\r\n\r\n // #region Working functions\r\n\r\n //TODO: Add additional fields\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\r\n \"Id\",\r\n \"Received Date\",\r\n \"Job Card Number\",\r\n \"Bin\",\r\n \"Status\",\r\n \"Cust\",\r\n \"Name\",\r\n \"Machine Description\",\r\n \"Quote Number\",\r\n \"Invoice Number\",\r\n \"Purchase Order Number\",\r\n \"Technician\",\r\n \"Customer Contact Info\",\r\n \"Sales Rep\",\r\n \"Completion Date\",\r\n \"Cost of Repair\",\r\n \"ITS Status\",\r\n \"Comments\"\r\n ]\r\n };\r\n\r\n var filename = \"JobCards\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n\r\n for (var row of selectRows) {\r\n let dateReceived = row.dateMachineReceived ? new Date(row.dateMachineReceived).toISOString().split('T')[0] : '';\r\n let completionDate = row.completionDate ? new Date(row.completionDate).toISOString().split('T')[0] : '';\r\n let sanitizedComments = row.comments\r\n ? row.comments.replace(/(\\r\\n|\\n|\\r)/gm, ' | ').replace(/\"/g, '\"\"')\r\n : '';\r\n\r\n exportRows.push({\r\n Id: row.id,\r\n \"Received Date\": dateReceived,\r\n \"Job Card Number\": row.jobCardNumber,\r\n \"Bin\": row.binNumber,\r\n \"Status\": row.statusName,\r\n \"Cust\": row.customerCode,\r\n \"Name\": row.customerName,\r\n \"Machine Description\": row.machineDescription,\r\n \"Quote Number\": row.quoteNumber,\r\n \"Invoice Number\": row.invoiceNumber,\r\n \"Purchase Order Number\": row.purchaseOrderNumber,\r\n \"Technician\": row.assignedTechnician,\r\n \"Customer Contact Info\": row.customerContactInfo,\r\n \"Sales Rep\": row.salespersonEmail,\r\n \"Completion Date\": completionDate,\r\n \"Cost of Repair\": row.costOfRepair,\r\n \"ITS Status\": row.itsStatus,\r\n \"Comments\": sanitizedComments\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n isJobCardCompanyMatch(): boolean {\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n return currentCompanyCode === this.selectedCompany;\r\n }\r\n isRowCompanyMatch(row: JobCard): boolean {\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n return currentCompanyCode === row.company;\r\n }\r\n toggleHistoryPanel() {\r\n this.isHistoryPanelOpen = !this.isHistoryPanelOpen;\r\n }\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n generateJobCardNumber(): string {\r\n const prefix = 'JC';\r\n let newNumber = 1;\r\n\r\n // Check if there are existing job cards in the grid cache\r\n if (this.rowsCache && this.rowsCache.length > 0) {\r\n // Sort by jobCardNumber and get the last entry\r\n const lastJobCard = this.rowsCache\r\n .sort((a, b) => parseInt(a.jobCardNumber.replace(prefix, ''), 10) - parseInt(b.jobCardNumber.replace(prefix, ''), 10))\r\n .pop();\r\n\r\n // Extract the numeric part from the last job card number and increment it\r\n if (lastJobCard && lastJobCard.jobCardNumber) {\r\n const lastNumber = parseInt(lastJobCard.jobCardNumber.replace(prefix, ''), 10);\r\n newNumber = lastNumber + 1;\r\n }\r\n }\r\n\r\n // Format the new number with leading zeros (e.g., '000001')\r\n const formattedNumber = newNumber.toString().padStart(6, '0');\r\n\r\n // Combine the prefix and the formatted number\r\n return `${prefix}${formattedNumber}`;\r\n }\r\n getTodayDate(): string {\r\n const today = new Date();\r\n const year = today.getFullYear();\r\n const month = String(today.getMonth() + 1).padStart(2, '0');\r\n const day = String(today.getDate()).padStart(2, '0');\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n // #region Validation\r\n // TODO: Supplier Email\r\n jobCardValid(jobCardDetail: JobCard) {\r\n if (!jobCardDetail) {\r\n this.alertService.showStickyMessage('Error', 'No job card details provided.', MessageSeverity.error);\r\n return false;\r\n }\r\n\r\n let missingFields = [];\r\n\r\n if (!jobCardDetail.jobCardNumber || jobCardDetail.jobCardNumber === 'JC') {\r\n missingFields.push('Job Card Number');\r\n }\r\n\r\n if (!jobCardDetail.salesPersonOperator) {\r\n missingFields.push('Sales Person');\r\n return;\r\n }\r\n\r\n if (!jobCardDetail.customerCode) {\r\n missingFields.push('Customer Code');\r\n }\r\n\r\n if (!jobCardDetail.machineDescription) {\r\n missingFields.push('Machine Description');\r\n }\r\n\r\n if (!jobCardDetail.dateMachineReceived) {\r\n missingFields.push('Date Machine Received');\r\n }\r\n\r\n if (!jobCardDetail.jobContactName) {\r\n missingFields.push('Job Contact Name');\r\n }\r\n\r\n // If there are missing fields, show a specific error message\r\n if (missingFields.length > 0) {\r\n const message = `Please fill in the following fields: ${missingFields.join(', ')}`;\r\n this.alertService.showStickyMessage('Invalid Data', message, MessageSeverity.warn);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n\r\n }\r\n\r\n extractEmails(rawEmails: string): string {\r\n if (!rawEmails) {\r\n return '';\r\n }\r\n\r\n // Regex to match valid email addresses\r\n const emailRegex = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/g;\r\n\r\n // Find all email matches in the string\r\n const matches = rawEmails.match(emailRegex);\r\n\r\n // Return the cleaned and joined email addresses, separated by semicolons\r\n return matches ? matches.map(email => email.trim().toLowerCase()).join('; ') : '';\r\n }\r\n // #endregion Validation\r\n\r\n // #region Page Date Selection and Filters\r\n refresh() {\r\n this.selected = {\r\n startDate: moment('2024-11-01').startOf('month'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n };\r\n this.loadData();\r\n }\r\n toggle() {\r\n this.show = true;\r\n }\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n filterChanged() {\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n // Filter rowsCache by the date range\r\n this.dateRows = this.rowsCache.filter(d => {\r\n const createdDate = new Date(d.createdDate);\r\n return createdDate >= startD && createdDate <= endD;\r\n });\r\n\r\n this.applySmartSearch();\r\n }\r\n\r\n // Smart Search filter\r\n applySmartSearch() {\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n // Filter rowsCache by the date range\r\n this.dateRows = this.rowsCache.filter(d => {\r\n const createdDate = new Date(d.createdDate);\r\n return createdDate >= startD && createdDate <= endD;\r\n });\r\n\r\n let value = this.smartsearch.trim().toLowerCase();\r\n\r\n // Step 3: Filter dateRows based on the smart search\r\n let filteredRows = this.dateRows.filter(r => {\r\n return Utilities.searchArray(value,\r\n false, r.machineDescription, r.binNumber, r.quoteNumber, r.customerCode, r.customerName, r.customerContactInfo, r.invoiceNumber,\r\n r.jobCardNumber, r.assignedTechnician, r.salesPersonName, r.salespersonEmail, r.itsStatus, r.comments);\r\n });\r\n\r\n // Update the rows to display based on all filters\r\n this.rows = filteredRows;\r\n }\r\n \r\n onSearchChanged(e: any) {\r\n this.applySmartSearch();\r\n }\r\n\r\n onStatusFilterChange(event: any): void {\r\n const statusId = +event.target.value;\r\n // Add or remove the statusId from selectedStatuses\r\n if (event.target.checked) {\r\n this.selectedStatuses.push(statusId);\r\n } else {\r\n this.selectedStatuses = this.selectedStatuses.filter(id => id !== statusId);\r\n }\r\n\r\n // Apply the filter\r\n this.applyFilters();\r\n }\r\n\r\n applyFilters(): void {\r\n if (this.selectedStatuses.length > 0) {\r\n this.rows = this.rowsCache.filter(row => this.selectedStatuses.includes(row.statusId));\r\n }\r\n else {\r\n this.rows = null;// [...this.rowsCache]; // Show all rows if no filters are applied\r\n }\r\n }\r\n\r\n filterchkAll(event: any): void {\r\n if (event.target.checked) {\r\n // If \"Select All\" is checked, select all statuses\r\n this.selectedStatuses = this.statuses.map(status => status.statusId);\r\n this.chkAll = true;\r\n } else {\r\n // If \"Select All\" is unchecked, clear all selected statuses\r\n this.selectedStatuses = [];\r\n this.chkAll = false;\r\n }\r\n this.applyFilters(); // Reapply filters based on the new selection\r\n }\r\n // #endregion Filters\r\n // #endregion Working functions\r\n\r\n // #region Reminder Follow Up Email Templates - revise / free text / rethink\r\n onEmailTemplateSelect(): void {\r\n\r\n const template = this.emailTemplates.find(t => t.id === Number(this.selectedTemplateNumber));\r\n if (template) {\r\n const placeholders = {\r\n QuoteRequestDate: (this.jobCardDetail.lastStatusChangeDate instanceof Date)\r\n ? new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long', day: 'numeric' }).format(this.jobCardDetail.lastStatusChangeDate)\r\n : new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long', day: 'numeric' }).format(new Date(this.jobCardDetail.lastStatusChangeDate)) || 'N/A',\r\n\r\n\r\n ToolDescription: this.jobCardDetail.machineDescription || 'Tool',\r\n CustomerName: this.jobCardDetail.jobContactName || 'Customer',\r\n JobCardNumber: this.jobCardDetail.jobCardNumber || '0000'\r\n };\r\n\r\n this.selectedEmailTemplate = template;\r\n this.selectedTemplateBody = this.replacePlaceholders(template.body, placeholders);\r\n }\r\n }\r\n replacePlaceholders(templateBody: string, placeholders: { [key: string]: string }): string {\r\n let result = templateBody;\r\n for (const key in placeholders) {\r\n result = result.replace(new RegExp(`{${key}}`, 'g'), placeholders[key]);\r\n }\r\n return result;\r\n }\r\n sendFollowUp(jobCard: JobCard): void {\r\n\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before proceeding.', MessageSeverity.warn);\r\n return;\r\n }\r\n //First make sure job card is saved\r\n this.saveJobCard(this.jobCardDetail, true);\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n this.alertService.startLoadingMessage(\"Loading Email...\");\r\n this.loadingIndicator = true;\r\n\r\n this.followUpType = \"\";\r\n this.followUpMessage = \"\";\r\n this.isEditingEmailTemplate = false;\r\n\r\n switch (jobCard.statusId) {\r\n case 3: // Quote Sent To Customer\r\n this.followUpType = \"Customer\";\r\n this.emailObject.RecepientName = this.jobCardDetail.jobContactName;\r\n this.emailObject.RecepientEmail = this.jobCardDetail.jobContactEmail;\r\n this.selectedTemplateNumber = 1;\r\n this.onEmailTemplateSelect();\r\n break;\r\n case 2: // Awaiting Supplier Assessment\r\n this.followUpType = \"Supplier\";\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = ((this.jobCardDetail.additionalSuppliers && this.jobCardDetail.additionalSuppliers.length >= 1) ? this.jobCardDetail.additionalSuppliers[0].supplierEmail : \"\");\r\n this.selectedTemplateNumber = 2;\r\n this.onEmailTemplateSelect();\r\n break;\r\n case 4: // Awaiting Spare Parts\r\n this.followUpType = \"Supplier\";\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = ((this.jobCardDetail.additionalSuppliers && this.jobCardDetail.additionalSuppliers.length >= 1) ? this.jobCardDetail.additionalSuppliers[0].supplierEmail : \"\");\r\n this.selectedTemplateNumber = 5;\r\n this.onEmailTemplateSelect();\r\n break;\r\n case 6: // Ready for Pick-Up\r\n this.followUpType = \"Customer\";\r\n this.emailObject.RecepientName = this.jobCardDetail.jobContactName;\r\n this.emailObject.RecepientEmail = this.jobCardDetail.jobContactEmail;\r\n this.selectedTemplateNumber = 3;\r\n this.onEmailTemplateSelect();\r\n break;\r\n default:\r\n this.followUpType = \"SalesPerson\";\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = \"\";\r\n this.selectedEmailTemplate = new CoreEmailTemplate();\r\n }\r\n\r\n\r\n this.emailObject.CC = (this.jobCardDetail.salespersonEmail ? this.jobCardDetail.salespersonEmail : \"\");\r\n this.emailObject.BCC = this.accountService.currentUser.email;\r\n this.emailObject.Subject = \"Power Tool Repairs - Job Card Reference : \" + this.jobCardDetail.jobCardNumber;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.jobCardDetail.company;\r\n this.emailObject.Attachment = this.jobCardDetail.jobCardNumber;\r\n this.emailObject.EmailType = \"JobCardReminder\";\r\n this.emailObject.Bod = this.selectedTemplateBody;\r\n\r\n this.showEmailReminderModalModal = true;\r\n if (!this.emailReminderModal) {\r\n setTimeout(() => {\r\n if (this.emailReminderModal) {\r\n this.emailReminderModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.emailReminderModal.show();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n emailFollowUpJobCard() {\r\n this.emailObject.Bod = this.selectedTemplateBody;\r\n\r\n if (!this.emailObject.Bod || this.emailObject.Bod.trim() === '') {\r\n this.alertService.showMessage('Invalid Email', 'Email body cannot be empty.', MessageSeverity.warn);\r\n return;\r\n }\r\n\r\n if (!this.emailObject.RecepientEmail || this.emailObject.RecepientEmail.trim() === '') {\r\n this.alertService.showMessage('Invalid Email', 'Email recipient cannot be empty.', MessageSeverity.warn);\r\n return;\r\n }\r\n\r\n if (!this.emailObject.SenderEmail || this.emailObject.SenderEmail.trim() === '') {\r\n this.alertService.showMessage('Invalid Email', 'Email sender cannot be empty.', MessageSeverity.warn);\r\n return;\r\n }\r\n\r\n this.updateHistoryForReminderEmailSent(this.jobCardDetail, this.emailObject.Subject, this.emailObject.RecepientEmail, this.selectedEmailTemplate);\r\n this.fowkesService.sendjobCardEmail(this.emailObject).subscribe(x => this.onReminderEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n updateHistoryForReminderEmailSent(jobCardDetail: JobCard, documentType: string, emailTo: string, emailTemplate: CoreEmailTemplate): void {\r\n\r\n var name = (emailTemplate && emailTemplate.name ? emailTemplate.name : \"generic\");\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: jobCardDetail.id,\r\n updateType: \"Email Sent\",\r\n newStatus: name,\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `Follow Up email sent to ${emailTo}`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`${documentType} email sent recorded in history.`),\r\n (error) => console.error('Error updating history for PDF generation', error)\r\n );\r\n }\r\n onReminderEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n\r\n this.emailReminderHide();\r\n this.viewJobCard(this.jobCardDetail);\r\n }\r\n emailReminderHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n\r\n this.showEmailReminderModalModal = false;\r\n\r\n this.emailObject = new Email();\r\n this.selectedEmailTemplate = new CoreEmailTemplate();\r\n this.selectedTemplateNumber = 0;\r\n\r\n if (this.emailReminderModal) {\r\n this.emailReminderModal.hide();\r\n }\r\n }\r\n\r\n toggleEmailTemplateEdit(): void {\r\n this.isEditingEmailTemplate = !this.isEditingEmailTemplate;\r\n\r\n if (!this.isEditingEmailTemplate) {\r\n // Handle any cleanup or save logic here, if necessary\r\n console.log('Template saved:', this.selectedTemplateBody);\r\n }\r\n }\r\n\r\n // #endregion Email Templates\r\n\r\n // #region Archives\r\n // #region job card invoice only sales order\r\n\r\n generateEmailTemplate(templateType: string, placeholders: any): string {\r\n const templates = {\r\n supplierReminder: `\r\n \r\n \r\n
\r\n
Dear {0},
\r\n
\r\n
\r\n

We are reaching out to follow up on our repairs request sent on {LastUpdateDate} regarding the repair or parts for {ToolDescription}. We understand that preparing quotations can take time, and we greatly appreciate your assistance with this.

\r\n

If you have any questions or need further information to expedite the quotation, please feel free to contact us. We look forward to receiving your quote so we can proceed with the repair on our end.

\r\n

Thank you again for your attention to this matter. We look forward to hearing from you soon.

\r\n

Kind regards,
The Fowkes Bros Team

\r\n
\r\n \r\n \r\n `,\r\n customerReminder: `\r\n \r\n \r\n
\r\n
Dear {0},
\r\n
\r\n
\r\n

We hope this message finds you well. We wanted to follow up regarding the quotation we sent on {LastUpdateDate} for the repair of your {ToolDescription}.

\r\n

At your convenience, please review the quotation and let us know if you'd like us to proceed with the repair. Accepting the quotation will allow us to move forward and get your tool back to you as soon as possible.

\r\n

If you have any questions about the quotation or need further clarification, please feel free to reach out to us directly.

\r\n

Thank you for choosing Fowkes Bros for your tool repair needs. We look forward to hearing from you soon.

\r\n

Kind regards,
The Fowkes Bros Tool Repair Team

\r\n
\r\n

\r\n \r\n \r\n `\r\n };\r\n\r\n let template = templates[templateType] || \"\";\r\n for (const key in placeholders) {\r\n template = template.replace(`{${key}}`, placeholders[key]);\r\n }\r\n return template;\r\n }\r\n addSalesOrderInvoiceOnly() {\r\n this.showSalesOrderPopup = true;\r\n this.salesorderSearch = true;\r\n this.searchSalesorderType = \"salesorder\";\r\n this.searchSalesorderText = \"\";\r\n this.specificSalesorderSearch();\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.salesorderSearchModal) {\r\n setTimeout(() => {\r\n if (this.salesorderSearchModal) {\r\n this.salesorderSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.salesorderSearchModal.show();\r\n }\r\n }\r\n specificSalesorderSearch() {\r\n if (this.searchSalesorderText && this.searchSalesorderText !== \"\") {\r\n this.searchSalesorderResults = null;\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n // Call the service to search by criteria\r\n this.sysproService.getSalesOrderSearchByCriteriaByCompany(this.searchSalesorderType, this.searchSalesorderText.trim(), this.selectedCompany).subscribe(\r\n (invoices) => this.onSpecificSalesOrderInvoiceSearchSuccesful(invoices),\r\n (error) => this.alertService.showStickyMessage('No results', 'Please adjust your search criteria', MessageSeverity.warn)\r\n );\r\n } else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on', MessageSeverity.warn);\r\n }\r\n }\r\n onSpecificSalesOrderInvoiceSearchSuccesful(invoices: SalesOrderList[]): void {\r\n this.searchSalesorderResults = invoices;\r\n\r\n // If only one invoice is returned, automatically select it\r\n if (invoices.length === 1) {\r\n this.searchSalesorderResultSelected = invoices[0];\r\n this.selectSalesOrderInvoice(this.searchSalesorderResultSelected);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n selectSalesOrderInvoice(searchSalesorderResultSelected: SalesOrderList) {\r\n this.selectedSalesOrderInvoice = searchSalesorderResultSelected.invoiceNumber;\r\n\r\n this.jobCardDetail.invoiceNumber = this.selectedSalesOrderInvoice;\r\n this.jobCardDetail.salesOrderNumber = this.selectedSalesOrderInvoice;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != this.jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, this.jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrderInvoice) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrderInvoice);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedSalesOrderInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedSalesOrderInvoice);\r\n }\r\n\r\n if (searchSalesorderResultSelected.poNumber != \"\" && searchSalesorderResultSelected.poNumber != \"NA\") {\r\n searchSalesorderResultSelected.poNumber = \"Please Select\";\r\n this.SetPONumbers(searchSalesorderResultSelected);\r\n }\r\n }\r\n viewSalesorderInvoiceSelected() {\r\n if (this.searchSalesorderResultSelected) {\r\n this.selectSalesOrderInvoice(this.searchSalesorderResultSelected);\r\n }\r\n }\r\n saveSalesorderInvoiceNumber(invoiceNumber: string, invoiceDate: Date) {\r\n this.jobCardDetail.invoiceNumber = invoiceNumber;\r\n this.jobCardDetail.salesOrderNumber = invoiceNumber;\r\n //this.jobCardDetail.originalInvoiceDate = invoiceDate;\r\n\r\n this.salesorderSearchModalHide();\r\n }\r\n salesorderSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showSalesOrderPopup = false;\r\n this.salesorderSearch = false;\r\n this.searchSalesorderText = \"\";\r\n this.searchSalesorderResultSelected = null;\r\n this.selectedSalesOrderInvoice = \"\";\r\n if (this.salesorderSearchModal) {\r\n this.salesorderSearchModal.hide();\r\n }\r\n }\r\n // #endregion\r\n // #endregion Archives\r\n}\r\n\r\n","module.exports = \"
\\r\\n
\\r\\n

Job Card Insights

\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Total Job Cards
\\r\\n

{{ jobCardSummary?.total || 0 }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Open Jobs
\\r\\n

{{ jobCardSummary?.open || 0 }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Closed Jobs
\\r\\n

{{ jobCardSummary?.closed || 0 }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Avg. Close Time (Days)
\\r\\n

\\r\\n {{ (jobCardSummary?.avgCloseTime) ? jobCardSummary?.avgCloseTime : 'N/A' }}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
Status Distribution
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ status.statusName }}\\r\\n {{ status.count }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Warranty Repairs\\r\\n
\\r\\n
\\r\\n
\\r\\n

Total Warranty Jobs:

\\r\\n {{ jobCardSummary?.warrantyVsNonWarranty?.warrantyJobs || 0 }}\\r\\n
\\r\\n
\\r\\n

In-House Repairs:

\\r\\n {{ jobCardSummary?.warrantyVsNonWarranty?.warrantyInHouse || 0 }}\\r\\n
\\r\\n
\\r\\n

Third-Party Repairs:

\\r\\n {{ jobCardSummary?.warrantyVsNonWarranty?.warrantyThirdParty || 0 }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Non-Warranty Repairs\\r\\n
\\r\\n
\\r\\n
\\r\\n

Total Non-Warranty Jobs:

\\r\\n {{ jobCardSummary?.warrantyVsNonWarranty?.nonWarrantyJobs || 0 }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Job Cards Over Time\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
MonthJob Cards
{{ entry.key | date:'MMMM yyyy' }}\\r\\n {{ entry.value }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Most Common Repairs\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n {{ repair[0] }}\\r\\n {{ repair[1] }} times\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Most Common Machines Repaired\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n {{ machine[0] }}\\r\\n {{ machine[1] }} times\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Top Technicians\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n \\r\\n {{ tech[0] }}\\r\\n 🏆\\r\\n \\r\\n {{ tech[1] }} completed jobs\\r\\n
  • \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 3px !important;\\n /*white-space: normal !important;*/\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.field-label {\\n color: darkgrey;\\n margin: 0; }\\n\\n.customer-search {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: 20px;\\n /* Spacing above the section */\\n background-color: #f9f9f9;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.customer-search .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.customer-heading {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: 20px;\\n /* Spacing above the section */\\n background-color: #f0f8ff;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.customer-heading .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.supplier-search {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: 20px;\\n /* Spacing above the section */\\n background-color: #dee2e6;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 20px; }\\n\\n.supplier-search .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.supplier-section {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n background-color: white;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.supplier-section .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n.job-card {\\n border: 1px solid #ccc;\\n /* Light grey border */\\n padding: 15px;\\n /* Padding inside the bordered area */\\n margin-top: -5px;\\n background-color: white;\\n /* Slight background color for contrast */\\n border-radius: 5px;\\n /* Rounded corners for the box */\\n padding-bottom: 0px; }\\n\\n.job-card .field-label {\\n font-size: xx-small;\\n color: black;\\n margin: 0; }\\n\\n/deep/.highlight-row {\\n color: #d9230f !important;\\n /* red highlight color */ }\\n\\n.status-alert-banner {\\n background-color: #ffcc00;\\n /* Yellow for warning */\\n color: #333;\\n /*padding: 10px;*/\\n padding-top: 10px;\\n text-align: center;\\n font-weight: bold;\\n border: 1px solid #ff9900;\\n /*margin-bottom: 15px;*/ }\\n\\n.greyed-out {\\n position: relative;\\n pointer-events: none;\\n opacity: 0.5;\\n /* Grey-out effect */ }\\n\\n.modal-backdrop {\\n z-index: 1040 !important;\\n /* Default z-index for Bootstrap modals */ }\\n\\n.modal-content {\\n z-index: 1050 !important;\\n /* Ensure the modal content is above the backdrop */ }\\n\\n.quote-search-modal .modal-content {\\n z-index: 1060 !important;\\n /* Ensure the Quote Search modal is above everything */ }\\n\\n.html-preview {\\n border: 1px solid #ced4da;\\n border-radius: 4px;\\n padding: 8px;\\n min-height: 100px;\\n background-color: #f8f9fa;\\n overflow: auto; }\\n\\n.html-preview div {\\n white-space: pre-wrap;\\n /* To preserve line breaks */ }\\n\\n.job-card-summary {\\n background-color: #f9f9f9;\\n padding: 20px;\\n border-radius: 8px;\\n box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1); }\\n\\n.job-card-summary h3 {\\n margin-bottom: 20px; }\\n\\n.job-card-summary ul {\\n list-style-type: none;\\n padding: 0; }\\n\\n.job-card-summary ul li {\\n margin-bottom: 5px; }\\n\\n.table-bordered {\\n background-color: white; }\\n\\n.status-item {\\n background-color: #f8f9fa;\\n border-radius: 5px;\\n padding: 10px;\\n margin: 5px 0;\\n font-weight: 500;\\n display: flex;\\n justify-content: space-between;\\n align-items: center; }\\n\\n.status-label {\\n font-weight: bold; }\\n\\n.badge {\\n font-size: 1rem; }\\n\\n/* Different Colors for Statuses */\\n\\n.awaiting-supplier {\\n background-color: #f9c74f;\\n color: #000; }\\n\\n.unassessed {\\n background-color: #D9230F;\\n color: #fff; }\\n\\n.closed {\\n background-color: #43aa50;\\n color: #fff; }\\n\\n.repair-in-progress {\\n background-color: #007bff;\\n color: #fff; }\\n\\n.ready-for-pickup {\\n background-color: #90be6d;\\n color: #fff; }\\n\\n.quote-sent {\\n background-color: #17a2b8;\\n color: #fff; }\\n\\n.awaiting-spare-parts {\\n background-color: #f47c36;\\n color: #fff; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBhaXJzL3Rvb2wtcmVwYWlycy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHJlcGFpcnNcXHRvb2wtcmVwYWlyc1xcdG9vbC1yZXBhaXJzLXJlcG9ydC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSxpQ0FBaUM7RUFDakMsa0NBQUE7RUFDQSxnQ0FBZ0M7RUFDaEMsMkJBQTJCLEVBQUE7O0FBSjdCO0lBT0ksbUJBQW1CO0lBQ25CLGdDQUFnQyxFQUFBOztBQVJwQztJQWFJLGdCQUFnQjtJQUNoQiwwQkFBMEIsRUFBQTs7QUFkOUI7SUFrQkkscUNBQXFDLEVBQUE7O0FBSXpDO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLFlBQVksRUFBQTs7QUFHZDtFQUNFLFlBQVk7RUFDWixnQkFBZ0IsRUFBQTs7QUFGbEI7SUFLSSxnQkFBZ0IsRUFBQTs7QUFNcEI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksU0FBUyxFQUFBOztBQUdiO0VBQ0ksZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBOztBQUdyQjtFQUNFLGVBQWU7RUFDZixTQUFTLEVBQUE7O0FBR1g7RUFDRSxzQkFBc0I7RUFBRSxzQkFBQTtFQUN4QixhQUFhO0VBQUUscUNBQUE7RUFDZixn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QixXQUFXLEVBQUE7O0FBSWI7RUFDRSx5QkFBeUI7RUFDekIsV0FBVyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yZXBhaXJzL3Rvb2wtcmVwYWlycy90b29sLXJlcGFpcnMtcmVwb3J0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAycHggNXB4IDAgM3B4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIC8qd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50OyovXHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4NjhlOTU7XHJcbiAgICAvL2NvbG9yOiAjRDkyMzBGO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgsIC50YWJsZSB0ZHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcblxyXG4gIC50b2dnbGUuYnRuLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5maWVsZC1sYWJlbCB7XHJcbiAgY29sb3I6IGRhcmtncmV5O1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmN1c3RvbWVyLXNlYXJjaCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgLyogTGlnaHQgZ3JleSBib3JkZXIgKi9cclxuICBwYWRkaW5nOiAxNXB4OyAvKiBQYWRkaW5nIGluc2lkZSB0aGUgYm9yZGVyZWQgYXJlYSAqL1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7IC8qIFNwYWNpbmcgYWJvdmUgdGhlIHNlY3Rpb24gKi9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyAvKiBTbGlnaHQgYmFja2dyb3VuZCBjb2xvciBmb3IgY29udHJhc3QgKi9cclxuICBib3JkZXItcmFkaXVzOiA1cHg7IC8qIFJvdW5kZWQgY29ybmVycyBmb3IgdGhlIGJveCAqL1xyXG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XHJcblxyXG4gIC5maWVsZC1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IHh4LXNtYWxsO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5jdXN0b21lci1oZWFkaW5nIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyAvKiBMaWdodCBncmV5IGJvcmRlciAqL1xyXG4gIHBhZGRpbmc6IDE1cHg7IC8qIFBhZGRpbmcgaW5zaWRlIHRoZSBib3JkZXJlZCBhcmVhICovXHJcbiAgbWFyZ2luLXRvcDogMjBweDsgLyogU3BhY2luZyBhYm92ZSB0aGUgc2VjdGlvbiAqL1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGY4ZmY7IC8qIFNsaWdodCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBjb250cmFzdCAqL1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDsgLyogUm91bmRlZCBjb3JuZXJzIGZvciB0aGUgYm94ICovXHJcbiAgcGFkZGluZy1ib3R0b206IDBweDtcclxuXHJcbiAgLmZpZWxkLWxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogeHgtc21hbGw7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnN1cHBsaWVyLXNlYXJjaCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgLyogTGlnaHQgZ3JleSBib3JkZXIgKi9cclxuICBwYWRkaW5nOiAxNXB4OyAvKiBQYWRkaW5nIGluc2lkZSB0aGUgYm9yZGVyZWQgYXJlYSAqL1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7IC8qIFNwYWNpbmcgYWJvdmUgdGhlIHNlY3Rpb24gKi9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlMmU2OyAvKiBTbGlnaHQgYmFja2dyb3VuZCBjb2xvciBmb3IgY29udHJhc3QgKi9cclxuICBib3JkZXItcmFkaXVzOiA1cHg7IC8qIFJvdW5kZWQgY29ybmVycyBmb3IgdGhlIGJveCAqL1xyXG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG5cclxuICAuZmllbGQtbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiB4eC1zbWFsbDtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbn1cclxuXHJcbi5zdXBwbGllci1zZWN0aW9uIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyAvKiBMaWdodCBncmV5IGJvcmRlciAqL1xyXG4gIHBhZGRpbmc6IDE1cHg7IC8qIFBhZGRpbmcgaW5zaWRlIHRoZSBib3JkZXJlZCBhcmVhICovXHJcbiBcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgLyogU2xpZ2h0IGJhY2tncm91bmQgY29sb3IgZm9yIGNvbnRyYXN0ICovXHJcbiAgYm9yZGVyLXJhZGl1czogNXB4OyAvKiBSb3VuZGVkIGNvcm5lcnMgZm9yIHRoZSBib3ggKi9cclxuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG5cclxuICAuZmllbGQtbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiB4eC1zbWFsbDtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbn1cclxuXHJcbi5qb2ItY2FyZCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgLyogTGlnaHQgZ3JleSBib3JkZXIgKi9cclxuICBwYWRkaW5nOiAxNXB4OyAvKiBQYWRkaW5nIGluc2lkZSB0aGUgYm9yZGVyZWQgYXJlYSAqL1xyXG4gIG1hcmdpbi10b3A6IC01cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IC8qIFNsaWdodCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBjb250cmFzdCAqL1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDsgLyogUm91bmRlZCBjb3JuZXJzIGZvciB0aGUgYm94ICovXHJcbiAgcGFkZGluZy1ib3R0b206IDBweDtcclxuXHJcbiAgLmZpZWxkLWxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogeHgtc21hbGw7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vZGVlcC8uaGlnaGxpZ2h0LXJvdyB7XHJcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAjZDkyMzBmICFpbXBvcnRhbnQ7IC8qIHJlZCBoaWdobGlnaHQgY29sb3IgKi9cclxuICBjb2xvcjogI2Q5MjMwZiAhaW1wb3J0YW50OyAvKiByZWQgaGlnaGxpZ2h0IGNvbG9yICovXHJcbn1cclxuXHJcbi5zdGF0dXMtYWxlcnQtYmFubmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjYzAwOyAvKiBZZWxsb3cgZm9yIHdhcm5pbmcgKi9cclxuICBjb2xvcjogIzMzMztcclxuICAvKnBhZGRpbmc6IDEwcHg7Ki9cclxuICBwYWRkaW5nLXRvcDogMTBweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmOTkwMDtcclxuICAvKm1hcmdpbi1ib3R0b206IDE1cHg7Ki9cclxufVxyXG5cclxuXHJcblxyXG4uZ3JleWVkLW91dCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIG9wYWNpdHk6IDAuNTsgLyogR3JleS1vdXQgZWZmZWN0ICovXHJcbn1cclxuXHJcbi5tb2RhbC1iYWNrZHJvcCB7XHJcbiAgei1pbmRleDogMTA0MCAhaW1wb3J0YW50OyAvKiBEZWZhdWx0IHotaW5kZXggZm9yIEJvb3RzdHJhcCBtb2RhbHMgKi9cclxufVxyXG5cclxuLm1vZGFsLWNvbnRlbnQge1xyXG4gIHotaW5kZXg6IDEwNTAgIWltcG9ydGFudDsgLyogRW5zdXJlIHRoZSBtb2RhbCBjb250ZW50IGlzIGFib3ZlIHRoZSBiYWNrZHJvcCAqL1xyXG59XHJcblxyXG4ucXVvdGUtc2VhcmNoLW1vZGFsIC5tb2RhbC1jb250ZW50IHtcclxuICB6LWluZGV4OiAxMDYwICFpbXBvcnRhbnQ7IC8qIEVuc3VyZSB0aGUgUXVvdGUgU2VhcmNoIG1vZGFsIGlzIGFib3ZlIGV2ZXJ5dGhpbmcgKi9cclxufVxyXG5cclxuLmh0bWwtcHJldmlldyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2NlZDRkYTtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgcGFkZGluZzogOHB4O1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuXHJcbi5odG1sLXByZXZpZXcgZGl2IHtcclxuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IC8qIFRvIHByZXNlcnZlIGxpbmUgYnJlYWtzICovXHJcbn1cclxuXHJcblxyXG4uam9iLWNhcmQtc3VtbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcclxuICBwYWRkaW5nOiAyMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICBib3gtc2hhZG93OiAwcHggMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbn1cclxuXHJcbi5qb2ItY2FyZC1zdW1tYXJ5IGgzIHtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4uam9iLWNhcmQtc3VtbWFyeSB1bCB7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5qb2ItY2FyZC1zdW1tYXJ5IHVsIGxpIHtcclxuICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi50YWJsZS1ib3JkZXJlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5zdGF0dXMtaXRlbSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBtYXJnaW46IDVweCAwO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLnN0YXR1cy1sYWJlbCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5iYWRnZSB7XHJcbiAgZm9udC1zaXplOiAxcmVtO1xyXG59XHJcblxyXG4vKiBEaWZmZXJlbnQgQ29sb3JzIGZvciBTdGF0dXNlcyAqL1xyXG4uYXdhaXRpbmctc3VwcGxpZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWM3NGY7XHJcbiAgY29sb3I6ICMwMDA7XHJcbn1cclxuXHJcbi51bmFzc2Vzc2VkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDkyMzBGO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4uY2xvc2VkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDNhYTUwO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4ucmVwYWlyLWluLXByb2dyZXNzIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4ucmVhZHktZm9yLXBpY2t1cCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkwYmU2ZDtcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuXHJcbi5xdW90ZS1zZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTdhMmI4O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG5cclxuLmF3YWl0aW5nLXNwYXJlLXBhcnRzIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ3YzM2O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcbiJdfQ== */\"","\r\nimport { AfterViewInit, Component, ElementRef, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { ArCustomer } from '../../../models/arcustomer.model';\r\nimport { BarcodeReference } from '../../../models/barcode-reference.model';\r\nimport { CoreAudit } from '../../../models/core-audit.model';\r\nimport { CoreEmailTemplate } from '../../../models/email-template.model';\r\nimport { Email } from '../../../models/email.model';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { CoreJCStatus, JobCard, JobCardStatusHistory, JobCardSummaryViewModel, JobCardSuppliers } from '../../../models/job-card.model';\r\nimport { PurchaseOrderList } from '../../../models/purchaseorder-list.model';\r\nimport { QuoteList } from '../../../models/quote-list.model';\r\nimport { SalesOrderList } from '../../../models/salesorder-list.model';\r\nimport { Supplier } from '../../../models/supplier.model';\r\nimport { SysproUser } from '../../../models/syspro-user.model';\r\nimport { User } from '../../../models/user.model';\r\nimport { OptIns, Outbox } from '../../../models/wapp-inbox.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n@Component({\r\n selector: 'tool-repairs-report',\r\n templateUrl: './tool-repairs-report.component.html',\r\n styleUrls: ['./tool-repairs-report.component.scss']\r\n})\r\nexport class ToolRepairsReportComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Today': [moment().subtract(0, 'days'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n loadingIndicator: boolean;\r\n isHistoryPanelOpen: boolean = false;\r\n\r\n\r\n @ViewChild('searchInput')\r\n searchInput: ElementRef;\r\n searchValue: string = \"\";\r\n\r\n @Input() isViewOnly: boolean;\r\n\r\n auditObj = new CoreAudit();\r\n emailObject: Email = new Email();\r\n\r\n columns: any[] = [];\r\n rows: JobCard[] = [];\r\n rowsCache: JobCard[] = [];\r\n\r\n jobCards: JobCard[] = [];\r\n jobCardSummaries: JobCardSummaryViewModel[] = [];\r\n jobCardSummary: any = {};\r\n\r\n jobCard: JobCard;\r\n jobCardDetail: JobCard;\r\n\r\n @ViewChild('jobCardDetailModal') jobCardDetailModal: ModalDirective;\r\n\r\n statuses: CoreJCStatus[] = [];\r\n\r\n customersCache: ArCustomer[] = [];\r\n selectedCustomerCode: string = '';\r\n selectedCustomerName: string = '';\r\n\r\n @ViewChild('customers') private customers;\r\n @ViewChild('customerSelector') private customerSelector;\r\n\r\n @ViewChild('dateTemplate') dateTemplate: TemplateRef;\r\n @ViewChild('selectTemplate') selectTemplate: TemplateRef;\r\n @ViewChild('statusTemplate') statusTemplate: TemplateRef;\r\n @ViewChild('statusChangeTemplate') statusChangeTemplate: TemplateRef;\r\n @ViewChild('customerTemplate') customerTemplate: TemplateRef;\r\n @ViewChild('quoteTemplate') quoteTemplate: TemplateRef;\r\n @ViewChild('invoiceTemplate') invoiceTemplate: TemplateRef;\r\n @ViewChild('purchaseOrderTemplate') purchaseOrderTemplate: TemplateRef;\r\n @ViewChild('itsTemplate') itsTemplate: TemplateRef;\r\n\r\n @ViewChild('statusListSelector') private statusListSelector;\r\n selectedStatus: string = \"\";\r\n currentStatus: string;\r\n smartsearch: string = \"\";\r\n\r\n invoiceNumber: string;\r\n\r\n // Properties for search functionality\r\n searchCustomerType: string = 'customer'; // Default to customer code\r\n searchCustomerText: string = '';\r\n searchCustomerResults: ArCustomer[] = [];\r\n searchCustomerResultSelected: ArCustomer;\r\n\r\n @ViewChild('searchByCustomerSelector') private searchByCustomerSelector;\r\n @ViewChild('customerSearchResultsSelector') private customerSearchResultsSelector;\r\n\r\n\r\n @ViewChild('quoteSearchModal') quoteSearchModal: ModalDirective;\r\n @Input() selectedQuote: string;\r\n showQuotePopup: boolean;\r\n\r\n @ViewChild('emailQuoteModal')\r\n emailQuoteModal: ModalDirective;\r\n showCustomerQuoteModal: boolean;\r\n\r\n searchQuoteType: string = 'customer'; // Default to customer code\r\n searchQuoteText: string = '';\r\n searchQuoteResults: QuoteList[] = [];\r\n searchQuoteResultSelected: QuoteList;\r\n quoteSearch: boolean;\r\n\r\n @ViewChild('searchByQuoteSelector')\r\n private searchByQuoteSelector;\r\n\r\n @ViewChild('QuoteSearchResultsSelector')\r\n private QuoteSearchResultsSelector;\r\n\r\n searchType: string;\r\n searchText: string;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n dateRows: JobCard[];\r\n\r\n @ViewChild('invoiceSearchModal')\r\n invoiceSearchModal: ModalDirective;\r\n\r\n @Input()\r\n selectedInvoice: string;\r\n showInvoicePopup: boolean;\r\n showITSPopup: boolean;\r\n hasTracking: boolean;\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n\r\n searchInvoiceType: string = 'customer'; // Default to customer code\r\n searchInvoiceText: string = '';\r\n searchInvoiceResults: SalesOrderList[] = [];\r\n searchInvoiceResultSelected: SalesOrderList;\r\n invoiceSearch: boolean;\r\n\r\n @ViewChild('searchByInvoiceSelector')\r\n private searchByInvoiceSelector;\r\n\r\n @ViewChild('InvoiceSearchResultsSelector')\r\n private InvoiceSearchResultsSelector;\r\n selectedSalesOrder: string;\r\n editJobCard: boolean;\r\n\r\n @ViewChild('supplierSelector') supplierSelector;\r\n @ViewChild('currentSupplier') currentSupplier: Supplier;\r\n @ViewChild('suppliers') private suppliers;\r\n suppliersCache: Supplier[] = [];\r\n selectedSupplier: Supplier;\r\n addselectedSupplier: Supplier;\r\n\r\n @ViewChild('salesPerson') private salesPerson;\r\n usersCache: SysproUser[] = [];\r\n selectedSalesPerson: User;\r\n\r\n jobCardStatusHistory: JobCardStatusHistory[];\r\n oldStatus: number; oldStatusId: number = null;\r\n\r\n @ViewChild('poTemplate')\r\n poTemplate: TemplateRef;\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('purchaseOrderList')\r\n purchaseOrderList: TemplateRef;\r\n\r\n @ViewChild('purchaseOrderListSelector')\r\n private purchaseOrderListSelector;\r\n\r\n private selectUndefinedPOOptionValue: string = \"Please Select\";\r\n showPurchaseOrderPopup: boolean;\r\n purchaseOrderSearch: boolean;\r\n\r\n @ViewChild('purchaseOrderSearchModal')\r\n purchaseOrderSearchModal: ModalDirective;\r\n\r\n @Input()\r\n selectedPurchaseOrder: string;\r\n\r\n selectedFilterStatus: number = 0;\r\n @ViewChild('statusFilter')\r\n private statusFilter;\r\n\r\n sysproUsers: SysproUser[];\r\n\r\n @ViewChild('operators') private operators;\r\n @ViewChild('operatorSelector') private operatorSelector;\r\n allOperators: SysproUser[] = [];\r\n selectedOperator: string;\r\n jobCardUsers: any;\r\n src: string;\r\n\r\n predefinedComments: any[] = [];\r\n selectedComment: string = '';\r\n customComment: any;\r\n selectedCompany: string;\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n showCustomerEmailModal: boolean;\r\n selectedSupplierIndex: number | null = null;\r\n\r\n @ViewChild('podModal') podModal: ModalDirective;\r\n\r\n hasPODs: boolean;\r\n referenceList: BarcodeReference[] = [];\r\n WhatsappEnabled: boolean;\r\n WhatsappNumber: string;\r\n outboxDetail: any;\r\n\r\n\r\n @ViewChild('salesorderSearchModal')\r\n salesorderSearchModal: ModalDirective;\r\n\r\n @Input()\r\n selectedSalesOrderInvoice: string;\r\n showSalesOrderPopup: boolean;\r\n\r\n searchSalesorderType: string = 'customer'; // Default to customer code\r\n searchSalesorderText: string = '';\r\n searchSalesorderResults: SalesOrderList[] = [];\r\n searchSalesorderResultSelected: SalesOrderList;\r\n salesorderSearch: boolean;\r\n\r\n selectedStatuses: number[] = []; // To track selected status IDs\r\n filteredRows: JobCard[] = []; // Rows filtered by the selected statuses\r\n\r\n\r\n @ViewChild('emailReminderModal')\r\n emailReminderModal: ModalDirective;\r\n showEmailReminderModalModal: boolean;\r\n followUpType: string;\r\n followUpMessage: string;\r\n chkAll: boolean;\r\n emailTemplates: CoreEmailTemplate[] = [];\r\n selectedEmailTemplate: CoreEmailTemplate;\r\n selectedTemplateNumber: number | null = null;\r\n selectedTemplateBody: string = '';\r\n isEditingEmailTemplate: boolean;\r\n fragment: string;\r\n cartId: string;\r\n warrantyJobs: number = 0;\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router) {}\r\n\r\n // #region Lifecycle Hooks\r\n ngOnInit() {\r\n this.selectedCompany = (this.application == \"MaxArcusOnline\" ? \"M\" : \"F\");\r\n\r\n let defaultOperator = new SysproUser();\r\n defaultOperator.sysproOperator = this.selectUndefinedOptionValue;\r\n defaultOperator.fullName = \"\";\r\n\r\n this.allOperators.push(defaultOperator);\r\n this.loadUsersByCompany();\r\n\r\n this.selected = {\r\n startDate: moment('2024-11-01').startOf('month'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n };\r\n\r\n this.setData();\r\n this.loadData();\r\n this.loadPredefinedComments();\r\n\r\n //Check for wapp settings\r\n this.sysproService.GetUserTel(this.accountService.currentUser.userName).subscribe(x => this.onTelReceived(x), error => this.onOptinLoadFailed(error));\r\n\r\n }\r\n ngAfterViewInit() {\r\n this.setData();\r\n }\r\n // #endregion\r\n\r\n // #region Data Setup and Loading\r\n private setData() {\r\n this.columns = [\r\n { prop: 'id', name: '#', width: 30, cellClass: \"center\" },\r\n { prop: 'company', name: 'C', width: 30, cellClass: \"center\" },\r\n { prop: 'dateMachineReceived', name: 'Received Date', width: 90, cellTemplate: this.dateTemplate, cellClass: \"center\" },\r\n { prop: 'jobCardNumber', name: 'Job Card #', width: 90, cellTemplate: this.selectTemplate, cellClass: \"center\" },\r\n { prop: 'binNumber', name: 'Bin', width: 40, cellClass: \"center\" },\r\n { prop: 'statusId', name: 'Status', width: 210, cellTemplate: this.statusTemplate },\r\n //{ prop: 'daysSinceStatusChanged', name: 'Days Since', width: 50, cellTemplate: this.statusChangeTemplate },\r\n { prop: 'customerCode', name: 'Customer', width: 200, cellTemplate: this.customerTemplate },\r\n { prop: 'machineDescription', name: 'Machine Description', width: 200 },\r\n { prop: 'quoteNumber', name: 'Quote Number', width: 120, cellTemplate: this.quoteTemplate },\r\n { prop: 'salesOrderNumber', name: 'SalesOrder Number', width: 120, cellTemplate: this.invoiceTemplate },\r\n { prop: 'purchaseOrderNumber', name: 'Purchase Order Number', width: 150, cellTemplate: this.poTemplate },\r\n { prop: 'itsStatus', name: 'ITS', width: 100, cellClass: \"left\", cellTemplate: this.itsTemplate },\r\n { prop: 'assignedTechnician', name: 'Technician', width: 200 },\r\n { prop: 'customerContactInfo', name: 'Customer Contact Info', width: 250 },\r\n { prop: 'salespersonEmail', name: 'Sales Rep', width: 150 },\r\n { prop: 'completionDate', name: 'Completion Date', width: 150, cellTemplate: this.dateTemplate },\r\n { prop: 'costOfRepair', name: 'Cost of Repair (Incl Vat)', width: 120, cellTemplate: this.totalTemplate, cellClass: \"right\" },\r\n { prop: 'lastStatusChangeDate', name: 'Last Status Change', width: 90, cellTemplate: this.dateTemplate, cellClass: \"center\" }\r\n ];\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.selectedStatuses = [];\r\n this.getStatuses();\r\n this.loadEmailTemplates();\r\n\r\n this.sysproService.getAllSuppliers().subscribe(\r\n x => this.onSupplierLoadSuccessful(x),\r\n error => this.onDataLoadFailed(error)\r\n );\r\n\r\n this.fowkesService.getJobCards().subscribe(jobCards => {\r\n if (!jobCards || jobCards.length === 0) {\r\n this.alertService.showStickyMessage('', 'No job cards found.', MessageSeverity.warn);\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n return;\r\n }\r\n\r\n // Fetch status for each job card\r\n if (this.statuses && this.statuses.length > 0) {\r\n this.selectedStatuses = []; // Reset before updating\r\n\r\n jobCards.forEach(jobCard => {\r\n const status = this.statuses.find(s => s.statusId === jobCard.statusId);\r\n jobCard.statusName = status ? status.statusName : 'Unknown Status';\r\n\r\n // Only push if status is valid and not closed\r\n if (status && status.statusId !== 7) {\r\n if (!this.selectedStatuses.includes(status.statusId)) {\r\n this.selectedStatuses.push(status.statusId);\r\n }\r\n }\r\n });\r\n\r\n this.chkAll = false;\r\n }\r\n\r\n // Fetch status history for each job card\r\n const jobCardRequests = jobCards.map(jobCard =>\r\n this.fowkesService.getJobCardStatusHistory(jobCard.id).pipe(\r\n map(statusHistory => new JobCardSummaryViewModel(jobCard, statusHistory || [])) // Ensure no null values\r\n )\r\n );\r\n\r\n // ✅ Fix: Ensure all observables emit at least one value to avoid `forkJoin` issues\r\n forkJoin(jobCardRequests).subscribe(\r\n summaries => {\r\n this.jobCardSummaries = summaries;\r\n this.calculateSummary();\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n console.error('Failed to load job card status history', error);\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n }\r\n );\r\n });\r\n }\r\n\r\n\r\n\r\n \r\n // #endregion\r\n\r\n // #region Job Card Grid\r\n \r\n\r\n onSearchSuccessful(jobCards: JobCard[]) {\r\n this.jobCards = jobCards;\r\n\r\n if (!this.jobCards || this.jobCards.length === 0) {\r\n this.alertService.showStickyMessage('', 'No job cards found.', MessageSeverity.warn);\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n return;\r\n }\r\n\r\n this.calculateSummary();\r\n }\r\n calculateSummary() {\r\n\r\n const jobCards = this.jobCardSummaries || [];\r\n\r\n // Ensure we have job cards before proceeding\r\n if (!jobCards.length) {\r\n this.alertService.showStickyMessage('', 'No job cards found.', MessageSeverity.warn);\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n return;\r\n }\r\n\r\n\r\n // 🔹 Total Counts\r\n const total = jobCards.length;\r\n const open = jobCards.filter(jc => jc.statusName !== \"Closed\").length;\r\n const closed = jobCards.filter(jc => jc.statusName === \"Closed\").length;\r\n\r\n // 🔹 Pending Quotes\r\n const pendingQuotes = jobCards.filter(jc => jc.statusName === \"Quote Sent To Customer\").length;\r\n\r\n // 🔹 Average Close Time (days)\r\n const avgCloseTime = jobCards\r\n .filter(jc => jc.statusId === 7 && jc.completionDate && jc.dateMachineReceived)\r\n .map(jc => {\r\n const receivedDate = new Date(jc.dateMachineReceived);\r\n const completedDate = new Date(jc.completionDate);\r\n return (completedDate.getTime() - receivedDate.getTime()) / (1000 * 60 * 60 * 24);\r\n })\r\n .reduce((a, b) => a + b, 0) / closed || 0;\r\n\r\n // 🔹 Status Distribution\r\n const statusCounts = jobCards.reduce((acc, jc) => {\r\n acc[jc.statusName] = (acc[jc.statusName] || 0) + 1;\r\n return acc;\r\n }, {});\r\n\r\n // Convert statusCounts object to an array and sort by statusId\r\n const orderedStatusCounts = Object.entries(statusCounts)\r\n .map(([statusName, count]) => {\r\n const statusObj = this.statuses.find(s => s.statusName === statusName);\r\n return {\r\n statusId: statusObj ? statusObj.statusId : 999, // Default to 999 if not found\r\n statusName,\r\n count\r\n };\r\n })\r\n .sort((a, b) => a.statusId - b.statusId); // Sort by statusId\r\n\r\n this.jobCardSummary.statusCounts = orderedStatusCounts;\r\n\r\n\r\n console.log(\"Job Cards: \", jobCards);\r\n console.log(\"First JobCard Comments: \", jobCards.length > 0 ? jobCards[0].comments : \"No JobCards Available\");\r\n\r\n\r\n // 🔹 Most Common Repair Types (Fixing `.flatMap()` issue)\r\n const repairTypes = jobCards\r\n .map(jc => jc.comments ? jc.comments.split(/[\\n;]/).map(comment => comment.trim().toUpperCase()) : [])\r\n .reduce((acc, val) => acc.concat(val), []); // Replacing `.flatMap()`\r\n\r\n // Warranty vs Non-Warranty Repairs Breakdown\r\n this.warrantyJobs = jobCards.filter(jc =>\r\n jc.comments && jc.comments.toLowerCase().includes(\"warranty\")\r\n ).length;\r\n\r\n const warrantyInHouse = jobCards.filter(jc =>\r\n jc.comments && jc.comments.toLowerCase().includes(\"warranty repair (fowkes)\")\r\n ).length;\r\n\r\n const warrantyThirdParty = jobCards.filter(jc =>\r\n jc.comments && jc.comments.toLowerCase().includes(\"warranty repair (3rd party)\")\r\n ).length;\r\n\r\n const nonWarrantyJobs = total - this.warrantyJobs;\r\n\r\n // 🔹 Technician Performance\r\n const technicianPerformance = jobCards\r\n .filter(jc => jc.assignedTechnician)\r\n .reduce((acc, jc) => {\r\n acc[jc.assignedTechnician] = (acc[jc.assignedTechnician] || 0) + (jc.statusName === \"Closed\" ? 1 : 0);\r\n return acc;\r\n }, {});\r\n\r\n // 🔹 Initialize `jobCardsOverTime` and group data\r\n const jobCardsOverTime: { [key: string]: number } = {};\r\n\r\n jobCards.forEach(jc => {\r\n if (jc.dateMachineReceived) {\r\n const date = new Date(jc.dateMachineReceived);\r\n const monthYearKey = date.toISOString().slice(0, 7); // Format: YYYY-MM (e.g., \"2024-01\")\r\n jobCardsOverTime[monthYearKey] = (jobCardsOverTime[monthYearKey] || 0) + 1;\r\n }\r\n });\r\n\r\n // 🔹 Convert to an array, sort chronologically, and store in a new sorted object\r\n const sortedJobCardsOverTime = Object.entries(jobCardsOverTime)\r\n .map(([monthYearKey, count]) => ({\r\n key: monthYearKey, // Example: \"2024-01\"\r\n value: count,\r\n date: new Date(`${monthYearKey}-01`) // Convert \"YYYY-MM\" to \"YYYY-MM-01\" (first day of month)\r\n }))\r\n .sort((a, b) => a.date.getTime() - b.date.getTime()) // Sort by date\r\n .reduce((acc, obj) => {\r\n acc[obj.key] = obj.value; // Convert back to object\r\n return acc;\r\n }, {} as { [key: string]: number });\r\n\r\n // 🔹 Extract repair types from job card comments\r\n const repairTypesMap: { [key: string]: number } = {};\r\n\r\n jobCards.forEach(jc => {\r\n if (jc.comments) {\r\n jc.comments\r\n .split(/[\\n;]+/) // Split by new lines and semicolons\r\n .map(comment => comment.trim().toUpperCase()) // Normalize case\r\n .filter(comment => comment) // Remove empty values\r\n .forEach(comment => {\r\n repairTypesMap[comment] = (repairTypesMap[comment] || 0) + 1;\r\n });\r\n }\r\n });\r\n\r\n // 🔹 Convert to an array, sort, and pick the top 5\r\n const topRepairTypes = Object.entries(repairTypesMap)\r\n .sort((a, b) => b[1] - a[1]) // Sort by count (descending)\r\n .slice(0, 5); // Keep top 5\r\n\r\n // 🔹 Extract machine descriptions and count occurrences\r\n const machineTypesMap: { [key: string]: number } = {};\r\n\r\n jobCards.forEach(jc => {\r\n if (jc.machineDescription) {\r\n const machine = jc.machineDescription.trim().toUpperCase(); // Normalize case\r\n machineTypesMap[machine] = (machineTypesMap[machine] || 0) + 1;\r\n }\r\n });\r\n\r\n // 🔹 Convert to array, sort, and pick the top 5\r\n const topMachineTypes = Object.entries(machineTypesMap)\r\n .sort((a, b) => b[1] - a[1]) // Sort by frequency\r\n .slice(0, 5); // Keep only top 5\r\n\r\n // 🔹 Calculate technician performance (Completed Jobs)\r\n const technicianPerformanceMap: { [key: string]: number } = {};\r\n\r\n jobCards.forEach(jc => {\r\n if (jc.assignedTechnician && jc.statusName === \"Closed\") {\r\n const tech = jc.assignedTechnician.trim().toUpperCase(); // Normalize case\r\n technicianPerformanceMap[tech] = (technicianPerformanceMap[tech] || 0) + 1;\r\n }\r\n });\r\n\r\n // 🔹 Convert to array, sort, and take top 5 technicians\r\n const topTechnicians = Object.entries(technicianPerformanceMap)\r\n .sort((a, b) => b[1] - a[1]) // Sort by completed jobs\r\n .slice(0, 5); // Keep top 5\r\n\r\n\r\n // 🔹 Assign summary data\r\n this.jobCardSummary = {\r\n total,\r\n open,\r\n closed,\r\n pendingQuotes,\r\n avgCloseTime: Math.round(avgCloseTime),\r\n jobCardsOverTime,\r\n statusCounts,\r\n //warrantyVsNonWarranty: { nonWarrantyJobs, nonWarrantyJobs },\r\n technicianPerformance, // Keep existing properties\r\n topMachineTypes\r\n };\r\n\r\n\r\n this.jobCardSummary = {\r\n ...this.jobCardSummary,\r\n statusCounts: orderedStatusCounts,\r\n warrantyVsNonWarranty: {\r\n warrantyJobs: this.warrantyJobs || 0,\r\n nonWarrantyJobs: nonWarrantyJobs || 0,\r\n warrantyInHouse: warrantyInHouse || 0,\r\n warrantyThirdParty: warrantyThirdParty || 0\r\n },\r\n sortedJobCardsOverTime: sortedJobCardsOverTime || {},\r\n topRepairTypes: topRepairTypes || [],\r\n topMachineTypes: topMachineTypes || [],\r\n topTechnicians: topTechnicians || []\r\n };\r\n\r\n\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n }\r\n\r\n getStatusClass(statusId: number): string {\r\n switch (statusId) {\r\n case 1: return 'unassessed';\r\n case 2: return 'awaiting-supplier';\r\n case 3: return 'quote-sent';\r\n case 4: return 'awaiting-spare-parts';\r\n case 5: return 'repair-in-progress';\r\n case 6: return 'ready-for-pickup';\r\n case 7: return 'closed';\r\n default: return 'default-status';\r\n }\r\n }\r\n\r\n\r\n getRowClass(row: JobCard): { [key: string]: boolean } {\r\n return {\r\n 'highlight-row': row.isHighlight\r\n };\r\n } \r\n // Called when the user changes the status from the dropdown in the grid\r\n onStatusChange(row: JobCard) {\r\n this.editJobCard = true;\r\n this.saveJobCard(row, true);\r\n }\r\n // Capture the old status when the user focuses on the status dropdown\r\n onStatusFocus(row: JobCard) {\r\n this.oldStatusId = row.statusId; // Save the current status before the user changes it\r\n }\r\n // #endregion Job Card Grid\r\n\r\n\r\n // #region Job Card Modal\r\n addNewJobCard() {\r\n //Firt refresh\r\n this.refresh();\r\n\r\n this.editJobCard = false;\r\n this.jobCardDetail = new JobCard();\r\n this.jobCardDetail.jobCardNumber = this.generateJobCardNumber();\r\n this.jobCardDetail.branchCode = this.branchCode;\r\n this.jobCardDetail.dateMachineReceived = this.getTodayDate();\r\n this.jobCardDetail.referenceNumber = \"\";\r\n this.jobCardDetail.customerCode = \"\";\r\n this.jobCardDetail.customerName = \"\";\r\n this.jobCardDetail.machineDescription = \"\";\r\n this.jobCardDetail.statusId = 1;\r\n this.jobCardDetail.assignedTechnician = \"\";\r\n this.jobCardDetail.completionDate = null;\r\n this.jobCardDetail.costOfRepair = 0;\r\n this.jobCardDetail.customerContactInfo = \"\";\r\n this.jobCardDetail.accessories = \"\";\r\n this.jobCardDetail.accessoriesList = [];\r\n this.jobCardDetail.warrantyRepair = \"\";\r\n this.jobCardDetail.warrantyRepairList = [];\r\n this.selectedCompany = this.application === 'MaxArcusOnline' ? 'M' : 'F';\r\n this.jobCardDetail.company = this.selectedCompany;\r\n this.selectedOperator = null;\r\n\r\n this.jobCardDetail.additionalSuppliers = [];\r\n\r\n this.selectedSupplier = null;\r\n\r\n if (!this.jobCardDetailModal) {\r\n setTimeout(() => {\r\n if (this.jobCardDetailModal) {\r\n this.jobCardDetailModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.jobCardDetailModal.show();\r\n }\r\n }\r\n viewJobCard(row: JobCard) {\r\n this.jobCardDetail = new JobCard();\r\n // Fetch the job card details based on jobCardNumber or id from the row\r\n this.fowkesService.getJobCardById(row.id).subscribe(\r\n (jobCard: JobCard) => {\r\n\r\n this.jobCardDetail = jobCard; // Assign the fetched job card to jobCardDetail\r\n this.editJobCard = true;\r\n\r\n // Load third-party suppliers if any\r\n this.fowkesService.getAdditionalSuppliers(this.jobCardDetail.id).subscribe(suppliers => {\r\n // Ensure no blank spaces in email or other fields\r\n this.jobCardDetail.additionalSuppliers = (suppliers || []).map(supplier => {\r\n return {\r\n ...supplier,\r\n supplierEmail: supplier.supplierEmail ? supplier.supplierEmail.trim() : '' // Trim whitespace or set to empty\r\n };\r\n });\r\n\r\n // Determine if repair is in-house or outsourced\r\n if (this.jobCardDetail.additionalSuppliers.length === 0) {\r\n // In-house repair\r\n this.selectedSupplier = new Supplier();\r\n this.selectedSupplier.supplier = \"FOWKES\";\r\n this.selectedSupplier.supplierName = \"Fowkes (In House Repair)\";\r\n this.jobCardDetail.assignedTechnician = this.selectedSupplier.supplier + \":\" + this.selectedSupplier.supplierName;\r\n\r\n } else {\r\n // Outsourced repair to third-party suppliers\r\n this.selectedSupplier = null; // Clear the in-house selection\r\n this.jobCardDetail.assignedTechnician = \"Outsourced Repair\"; // No in-house technician assignment\r\n }\r\n });\r\n\r\n this.jobCardDetail.accessoriesList = [];\r\n this.jobCardDetail.accessoriesList = JSON.parse(jobCard.accessories || '[]') as string[];\r\n\r\n this.jobCardDetail.warrantyRepairList = [];\r\n this.jobCardDetail.warrantyRepairList = JSON.parse(jobCard.warrantyRepair || '[]') as string[];\r\n\r\n //Search and assign job card customer\r\n this.searchCustomerResults = null;\r\n\r\n // Call the service to search by criteria\r\n this.sysproService.getCustomerSearchByCriteriaByCompany(\"Customer\", this.jobCardDetail.customerCode, this.jobCardDetail.company).subscribe(\r\n (customers) => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchCustomerResults = customers;\r\n this.searchCustomerResultSelected = customers[0]\r\n },\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n\r\n this.jobCardDetail.customerContactInfo = jobCard.customerContactInfo;\r\n this.jobCardDetail.jobContactName = jobCard.jobContactName;\r\n this.jobCardDetail.jobContactEmail = jobCard.jobContactEmail;\r\n this.jobCardDetail.jobContactTelephone = jobCard.jobContactTelephone;\r\n\r\n this.selectedCompany = jobCard.company || (this.application === 'MaxArcusOnline' ? 'M' : 'F');\r\n\r\n this.selectedOperator = jobCard.salesPersonOperator;\r\n\r\n if (jobCard.quoteNumber != \"\" && jobCard.salesOrderNumber == \"\") {\r\n this.sysproService.getQuoteNumberSearchByCriteriaByCompany(\"quoteNumber\", jobCard.quoteNumber, jobCard.company)\r\n .subscribe(x => {\r\n if (x && x.length == 1) {\r\n var quote = x[0];\r\n if (quote.convertedRef) {\r\n this.jobCardDetail.salesOrderNumber = quote.convertedRef;\r\n this.searchInvoiceType = \"salesorder\";\r\n this.searchInvoiceText = this.jobCardDetail.salesOrderNumber;\r\n\r\n //Add invoice if found\r\n this.sysproService.getSalesOrderSearchByCriteriaByCompany(this.searchInvoiceType, this.searchInvoiceText.trim(), this.selectedCompany).subscribe(\r\n (invoices) => this.onSpecificQuoteInvoiceSearchSuccesful(invoices),\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n }\r\n }\r\n else {\r\n this.jobCardDetail.salesOrderNumber = \"\";\r\n }\r\n }, error => { });\r\n }\r\n \r\n if (this.jobCardDetail.purchaseOrderNumber) {\r\n this.sysproService.getPurchaseOrderSearchByCriteriaByCompany(\"SALESORDER\", this.jobCardDetail.salesOrderNumber, this.jobCardDetail.company)\r\n .subscribe(x => {\r\n this.jobCardDetail.poNumbers = x; // Attach the PO numbers to the job card\r\n if (x && x.length > 0) {\r\n this.jobCardDetail.purchaseOrderNumber = \"Please Select\";\r\n } else {\r\n this.jobCardDetail.purchaseOrderNumber = ''; // Reset if no POs are found\r\n }\r\n }, error => {\r\n console.error('Error loading purchase orders for sales order', error);\r\n });\r\n }\r\n\r\n // Set the date in the calendar\r\n const today = new Date(this.jobCardDetail.dateMachineReceived);\r\n const year = today.getFullYear();\r\n const month = String(today.getMonth() + 1).padStart(2, '0'); // months are 0-based\r\n const day = String(today.getDate()).padStart(2, '0');\r\n\r\n // Set the dateMachineReceived to YYYY-MM-DD format\r\n this.jobCardDetail.dateMachineReceived = `${year}-${month}-${day}`;\r\n\r\n this.fowkesService.getJobCardStatusHistory(row.id).subscribe(\r\n (x: JobCardStatusHistory[]) => {\r\n // Filter to include entries with \"status\" updates or \"Job Created\" updateType and sort by ChangeDate in descending order\r\n this.jobCardStatusHistory = x\r\n .filter(history =>\r\n history.updateType &&\r\n (history.updateType.toLowerCase().includes('status') ||\r\n history.updateType.toLowerCase() === 'job created' ||\r\n history.notes.toLowerCase().includes('email sent') ||\r\n history.updateType.toLowerCase().includes('message sent') // Include email-related updates\r\n )\r\n )\r\n .sort((a, b) => {\r\n return new Date(b.changeDate).getTime() - new Date(a.changeDate).getTime(); // Sort by ChangeDate in descending order\r\n });\r\n },\r\n (error) => {\r\n console.error('Failed to load job card status history', error);\r\n }\r\n );\r\n\r\n // Calculate days since the last status change if date exists\r\n if (this.jobCardDetail.lastStatusChangeDate) {\r\n const lastChangeDate = new Date(jobCard.lastStatusChangeDate);\r\n const currentDate = new Date();\r\n const timeDiff = currentDate.getTime() - lastChangeDate.getTime();\r\n this.jobCardDetail.daysSinceStatusChanged = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n } else {\r\n this.jobCardDetail.daysSinceStatusChanged = null;\r\n }\r\n\r\n this.jobCardDetail.machineDescription = jobCard.machineDescription.toUpperCase();\r\n this.jobCardDetail.comments = jobCard.comments.toUpperCase();\r\n\r\n // Open the modal for editing the job card\r\n if (!this.jobCardDetailModal) {\r\n setTimeout(() => {\r\n if (this.jobCardDetailModal) {\r\n this.jobCardDetailModal.show();\r\n }\r\n });\r\n } else {\r\n this.jobCardDetailModal.show();\r\n }\r\n },\r\n (error) => {\r\n this.alertService.showStickyMessage('Load Error', 'Unable to load job card details', MessageSeverity.error, error);\r\n }\r\n );\r\n }\r\n setStatus() {}\r\n toggleAccessory(accessory: string): void {\r\n if (!this.jobCardDetail.accessoriesList) {\r\n this.jobCardDetail.accessoriesList = [];\r\n }\r\n\r\n const index = this.jobCardDetail.accessoriesList.indexOf(accessory);\r\n\r\n if (index === -1) {\r\n // Add the accessory if it isn't already selected\r\n this.jobCardDetail.accessoriesList.push(accessory);\r\n } else {\r\n // Remove the accessory if it's already selected\r\n this.jobCardDetail.accessoriesList.splice(index, 1);\r\n }\r\n }\r\n toggleWarranty(warranty: string): void {\r\n if (!this.jobCardDetail.warrantyRepairList) {\r\n this.jobCardDetail.warrantyRepairList = [];\r\n }\r\n\r\n const index = this.jobCardDetail.warrantyRepairList.indexOf(warranty);\r\n\r\n if (index === -1) {\r\n // Add the accessory if it isn't already selected\r\n this.jobCardDetail.warrantyRepairList.push(warranty);\r\n // Add a comment for the selected warranty\r\n const newComment = `${warranty}`;\r\n this.jobCardDetail.comments = this.jobCardDetail.comments\r\n ? `${this.jobCardDetail.comments}\\n${newComment}`\r\n : newComment;\r\n\r\n } else {\r\n // Remove the accessory if it's already selected\r\n this.jobCardDetail.warrantyRepairList.splice(index, 1);\r\n // Remove the corresponding comment for the deselected warranty\r\n const commentToRemove = `${warranty}`;\r\n this.jobCardDetail.comments = this.jobCardDetail.comments\r\n .split('\\n')\r\n .filter((comment) => comment.trim() !== commentToRemove)\r\n .join('\\n');\r\n }\r\n }\r\n\r\n addCommentToJobCard() {\r\n const commentsToAdd = [];\r\n\r\n // Add the pre-defined comment if selected\r\n if (this.selectedComment) {\r\n commentsToAdd.push(this.selectedComment.toUpperCase());\r\n this.selectedComment = '';\r\n }\r\n\r\n // Add the custom comment if entered\r\n if (this.customComment) {\r\n commentsToAdd.push(this.customComment.toUpperCase());\r\n this.customComment = '';\r\n }\r\n\r\n if (commentsToAdd.length > 0) {\r\n this.jobCardDetail.comments += `\\n${commentsToAdd.join('\\n')}`;\r\n } else {\r\n this.alertService.showStickyMessage('No Comment', 'Please select a pre-defined comment or enter a custom comment.', MessageSeverity.warn);\r\n }\r\n }\r\n\r\n // #region Customer Search and Set\r\n specificCustomerSearch() {\r\n if (this.searchCustomerType && this.searchCustomerText !== \"\") {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchCustomerResults = null;\r\n\r\n // Call the service to search by criteria\r\n this.sysproService.getCustomerSearchByCriteriaByCompany(this.searchCustomerType, this.searchCustomerText, this.selectedCompany).subscribe(\r\n (customers) => this.onSpecificCustomerSearchSuccesful(customers),\r\n (error) => this.alertService.showStickyMessage('No results', 'Please adjust your search criteria', MessageSeverity.warn)\r\n );\r\n } else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on', MessageSeverity.warn);\r\n }\r\n }\r\n onSpecificCustomerSearchSuccesful(customers: ArCustomer[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchCustomerResults = customers;\r\n\r\n // If only one customer is returned, automatically select it\r\n if (customers.length === 1) {\r\n this.selectCustomer(customers[0]);\r\n }\r\n }\r\n viewCustomerSelected() {\r\n if (this.searchCustomerResultSelected) {\r\n this.selectCustomer(this.searchCustomerResultSelected);\r\n }\r\n }\r\n selectCustomer(customer: ArCustomer) {\r\n this.searchCustomerResultSelected = customer;\r\n this.jobCardDetail.customerCode = customer.customer;\r\n this.jobCardDetail.customerName = customer.customerName;\r\n this.jobCardDetail.jobContactName = customer.contact;\r\n this.jobCardDetail.jobContactEmail = this.extractEmails(customer.email);\r\n this.jobCardDetail.jobContactTelephone = customer.telephone;\r\n this.jobCardDetail.customerContactInfo = customer.contact || \"\" + customer.addTelephone || \"\";\r\n }\r\n // #endregion\r\n\r\n // #region Supplier Search and Set\r\n onSupplierLoadSuccessful(suppliers: Supplier[]) {\r\n this.suppliersCache = suppliers;\r\n\r\n // Refresh dropdown if necessary\r\n setTimeout(() => {\r\n if (this.supplierSelector) {\r\n this.supplierSelector.refresh();\r\n }\r\n }, 100);\r\n }\r\n setSupplier() {\r\n if (this.selectedSupplier) {\r\n // Check if the selected supplier is not \"FOWKES\"\r\n if (this.selectedSupplier.supplier !== \"FOWKES\") {\r\n // Create a new object for the selected supplier to avoid reference issues\r\n const newSupplier = {\r\n id: 0, // Indicates a new supplier (will be assigned in the database)\r\n jobCardId: this.jobCardDetail.id,\r\n supplierCode: this.selectedSupplier.supplier,\r\n supplierName: this.selectedSupplier.supplierName,\r\n supplierEmail: this.selectedSupplier.email.trim(),\r\n supplierTelephone: this.selectedSupplier.telephone,\r\n addedDate: new Date(),\r\n // New fields with initial values\r\n originalInvoice: '', // Placeholder, can be updated later if needed\r\n originalInvoiceDate: null, // Set to null initially\r\n supplierSpecificPo: '', // Placeholder for supplier-specific PO\r\n completedDate: null, // Set to null initially\r\n supplierStatus: '' // Placeholder, can be updated based on status\r\n };\r\n\r\n // Add the new supplier to the additionalSuppliers array\r\n this.jobCardDetail.additionalSuppliers.push(newSupplier);\r\n this.jobCardDetail.assignedTechnician = \"Outsourced Repair\";\r\n }\r\n\r\n // Reset the selected supplier dropdown for the next input\r\n this.selectedSupplier = null;\r\n this.jobCardDetail.supplierCode = \"\";\r\n this.jobCardDetail.supplierName = \"\";\r\n this.jobCardDetail.assignedTechnician = \"\";\r\n this.jobCardDetail.ptrNumber = \"\";\r\n this.jobCardDetail.supplierContact = \"\";\r\n this.jobCardDetail.supplierEmail = \"\";\r\n this.jobCardDetail.supplierTelephone = \"\";\r\n \r\n } else {\r\n // Set default details for in-house repairs\r\n this.jobCardDetail.supplierCode = \"FOWKES\";\r\n this.jobCardDetail.supplierName = \"Fowkes (In House Repair)\";\r\n this.jobCardDetail.assignedTechnician = \"FOWKES:Fowkes (In House Repair)\";\r\n this.jobCardDetail.supplierContact = \"Mike\";\r\n this.jobCardDetail.supplierEmail = \"toolrepairs@fowkes.co.za\";\r\n this.jobCardDetail.supplierTelephone = \"\";\r\n }\r\n }\r\n trackByIndex(index: number, item: any): number {\r\n return index;\r\n }\r\n removeSupplier(index: number) {\r\n const supplier = this.jobCardDetail.additionalSuppliers[index];\r\n\r\n if (supplier.id) {\r\n // If the supplier exists in the database, call API to delete it\r\n this.fowkesService.deleteAdditionalSupplier(supplier.id).subscribe(\r\n () => {\r\n this.jobCardDetail.additionalSuppliers.splice(index, 1);\r\n this.alertService.showMessage('Success', 'Supplier removed successfully', MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.showStickyMessage('Delete Error', 'Unable to remove supplier.', MessageSeverity.error, error);\r\n }\r\n );\r\n } else {\r\n // Just remove the new supplier from the local list\r\n this.jobCardDetail.additionalSuppliers.splice(index, 1);\r\n }\r\n }\r\n // #endregion Supplier Search and Set\r\n\r\n // #region Assign Quote / Sales Order / Invoice / Purchase Order\r\n addQuoteNumber() {\r\n\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.selectedCompany != currentCompanyCode) {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n this.showQuotePopup = true;\r\n this.quoteSearch = true;\r\n this.searchQuoteText = this.jobCardDetail.customerCode;\r\n\r\n this.specificQuoteSearch();\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.quoteSearchModal) {\r\n setTimeout(() => {\r\n if (this.quoteSearchModal) {\r\n this.quoteSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.quoteSearchModal.show();\r\n }\r\n }\r\n specificQuoteSearch() {\r\n if (this.searchQuoteType && this.searchQuoteText !== \"\") {\r\n this.searchQuoteResults = null;\r\n // Call the service to search by criteria\r\n this.sysproService.getQuoteNumberSearchByCriteriaByCompany(this.searchQuoteType, this.searchQuoteText, this.selectedCompany).subscribe(\r\n (quotes) => this.onSpecificQuoteSearchSuccesful(quotes),\r\n (error) => this.alertService.showStickyMessage('No results', 'Please adjust your search criteria', MessageSeverity.warn)\r\n );\r\n } else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on', MessageSeverity.warn);\r\n }\r\n }\r\n onSpecificQuoteSearchSuccesful(quotes: any): void {\r\n this.searchQuoteResults = quotes;\r\n\r\n // If only one quote is returned, automatically select it\r\n if (quotes.length === 1) {\r\n this.searchQuoteResultSelected = quotes[0];\r\n this.selectQuote(this.searchQuoteResultSelected);\r\n }\r\n }\r\n viewQuoteSelected() {\r\n if (this.searchQuoteResultSelected) {\r\n this.selectQuote(this.searchQuoteResultSelected);\r\n }\r\n }\r\n selectQuote(quote: QuoteList) {\r\n this.selectedQuote = quote.quoteNumber;\r\n this.jobCardDetail.quoteNumber = this.selectedQuote;\r\n this.jobCardDetail.costOfRepair = quote.totalIncl;\r\n\r\n // Store quote details in session storage\r\n sessionStorage.setItem(localStorageActions.Customer, this.jobCardDetail.customerCode);\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, this.selectedQuote);\r\n\r\n // Check for a converted reference (invoice) and fetch invoice if it exists\r\n if (quote.convertedRef) {\r\n this.jobCardDetail.salesOrderNumber = quote.convertedRef;\r\n this.searchInvoiceType = \"salesorder\";\r\n this.searchInvoiceText = this.jobCardDetail.salesOrderNumber;\r\n\r\n // Fetch the invoice associated with this quote\r\n this.sysproService.getSalesOrderSearchByCriteriaByCompany(this.searchInvoiceType, this.searchInvoiceText.trim(), this.selectedCompany)\r\n .subscribe(\r\n invoices => this.onSpecificInvoiceSearchSuccessful(invoices),\r\n error => this.onDataLoadFailed(error)\r\n );\r\n }\r\n else {\r\n this.jobCardDetail.salesOrderNumber = \"\";\r\n this.jobCardDetail.invoiceNumber = \"\";\r\n }\r\n //this.quoteSearchModalHide(); // Close the quote modal after selection\r\n }\r\n onSpecificInvoiceSearchSuccessful(invoices: SalesOrderList[]): void {\r\n if (invoices && invoices.length > 0) {\r\n const selectedInvoice = invoices[0];\r\n this.jobCardDetail.invoiceNumber = selectedInvoice.invoiceNumber;\r\n this.jobCardDetail.salesOrderNumber = selectedInvoice.salesOrderNumber;\r\n\r\n // Fetch associated purchase orders for the selected invoice\r\n this.SetPONumbers(selectedInvoice);\r\n } else {\r\n // Reset if no invoice is found\r\n this.jobCardDetail.invoiceNumber = '';\r\n this.jobCardDetail.salesOrderNumber = '';\r\n }\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n saveQuoteNumber(quote: string) {\r\n this.jobCardDetail.quoteNumber = quote;\r\n this.jobCardDetail.costOfRepair = this.searchQuoteResultSelected.totalIncl;\r\n\r\n if (this.searchQuoteResultSelected.convertedRef && this.searchQuoteResultSelected.convertedRef != \"\") {\r\n this.jobCardDetail.salesOrderNumber = this.searchQuoteResultSelected.convertedRef;\r\n\r\n this.searchInvoiceType = \"salesorder\";\r\n this.searchInvoiceText = this.jobCardDetail.salesOrderNumber;\r\n\r\n //Add invoice if found\r\n this.sysproService.getSalesOrderSearchByCriteriaByCompany(this.searchInvoiceType, this.searchInvoiceText.trim(), this.selectedCompany).subscribe(\r\n (invoices) => this.onSpecificQuoteInvoiceSearchSuccesful(invoices),\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n }\r\n this.quoteSearchModalHide();\r\n }\r\n selectInvoice(invoice: SalesOrderList) {\r\n this.selectedInvoice = invoice.invoiceNumber;\r\n this.selectedSalesOrder = invoice.salesOrderNumber;\r\n\r\n this.jobCardDetail.invoiceNumber = invoice.salesOrderNumber;\r\n this.jobCardDetail.salesOrderNumber = invoice.salesOrderNumber;\r\n\r\n if (invoice.poNumber != \"\" && invoice.poNumber != \"NA\") {\r\n invoice.poNumber = \"Please Select\";\r\n this.SetPONumbers(invoice);\r\n }\r\n }\r\n SetPONumbers(salesOrder: SalesOrderList) {\r\n this.sysproService.getPurchaseOrderSearchByCriteriaByCompany(\"SALESORDER\", salesOrder.salesOrderNumber, this.selectedCompany).\r\n subscribe(x => this.POSearchSuccesful(salesOrder, x), error => { });\r\n }\r\n POSearchSuccesful(salesOrder: SalesOrderList, x: PurchaseOrderList[]): void {\r\n let poList = x;\r\n x.forEach((poNumber, index, x) => {\r\n (poNumber).index = index + 1;\r\n });\r\n\r\n if (poList && poList.length > 0) {\r\n // Concatenate all the purchase order numbers into a single string\r\n salesOrder.poNumbers = x;\r\n this.jobCardDetail.poNumbers = x;\r\n //this.jobCardDetail.purchaseOrderNumber = x[0].purchaseOrder;\r\n this.jobCardDetail.purchaseOrderNumber = x.map(po => po.purchaseOrder).join(', ');\r\n } else {\r\n // If no POs are found, reset the purchase order number\r\n this.jobCardDetail.purchaseOrderNumber = '';\r\n }\r\n }\r\n quoteSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showQuotePopup = false;\r\n this.quoteSearch = false;\r\n this.searchQuoteText = \"\";\r\n this.searchQuoteResultSelected = null;\r\n this.selectedQuote = \"\";\r\n if (this.quoteSearchModal) {\r\n this.quoteSearchModal.hide();\r\n }\r\n }\r\n previewQuote(jobCardDetail: JobCard) {\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.jobCardDetail.company != currentCompanyCode)\r\n {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n\r\n this.showQuotePopup = true;\r\n this.quoteSearch = false;\r\n this.selectedQuote = jobCardDetail.quoteNumber;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.QuoteNumber) != jobCardDetail.quoteNumber) {\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, jobCardDetail.quoteNumber);\r\n }\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.quoteSearchModal) {\r\n setTimeout(() => {\r\n if (this.quoteSearchModal) {\r\n this.quoteSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.quoteSearchModal.show();\r\n }\r\n }\r\n\r\n goCreateSalesOrder(jobCardDetail: JobCard) {\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.selectedCompany != currentCompanyCode) {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n return;\r\n }\r\n //First make sure job card is saved\r\n this.saveJobCard(this.jobCardDetail, true);\r\n\r\n this.CopyQuote();\r\n }\r\n\r\n CopyQuote() {\r\n var uniqueId = this.jobCardDetail.customerCode + Math.random().toString(36).substring(2) + Date.now().toString(36);\r\n this.cartId = uniqueId;\r\n this.fragment = 'cart';\r\n sessionStorage.removeItem(localStorageActions.CartId);\r\n sessionStorage.setItem(localStorageActions.CartId, this.cartId);\r\n this.sysproService.getCartFromQuote(this.jobCardDetail.quoteNumber, this.cartId, this.branchCode).subscribe(_response => this.saveSuccessHelper(_response), error => this.saveFailedHelper(error));\r\n\r\n } \r\n saveSuccessHelper(res?: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.router.navigate(['../../orders'], { fragment: this.fragment, queryParams: { customer: this.jobCardDetail.customerCode, cartId: this.cartId } }); \r\n }\r\n saveFailedHelper(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n // #endregion Assign Quote\r\n\r\n // #region Save Job Card\r\n saveJobCard(jobCardDetail: JobCard, row: boolean) {\r\n\r\n if (!this.jobCardValid(jobCardDetail)) { return; }\r\n\r\n jobCardDetail.referenceNumber = jobCardDetail.customerCode + \"/\" + jobCardDetail.jobCardNumber + \"/\" + jobCardDetail.ptrNumber + \"/\" + jobCardDetail.assignedTechnician;\r\n jobCardDetail.customerContactInfo = `${jobCardDetail.jobContactName || ''} ${jobCardDetail.jobContactEmail ? `| ${jobCardDetail.jobContactEmail}` : ''} ${jobCardDetail.jobContactTelephone ? `| ${jobCardDetail.jobContactTelephone}` : ''}`;\r\n jobCardDetail.modifiedBy = this.accountService.currentUser.email;\r\n jobCardDetail.machineDescription = jobCardDetail.machineDescription.toUpperCase();\r\n jobCardDetail.comments = jobCardDetail.comments.toUpperCase();\r\n\r\n if (!row) {\r\n\r\n jobCardDetail.accessories = JSON.stringify(jobCardDetail.accessoriesList || []);\r\n jobCardDetail.warrantyRepair = JSON.stringify(jobCardDetail.warrantyRepairList || []);\r\n\r\n //Update the po number(s)\r\n if (jobCardDetail.poNumbers && jobCardDetail.poNumbers.length > 0) {\r\n // Concatenate all the purchase order numbers into a single string\r\n jobCardDetail.purchaseOrderNumber = jobCardDetail.poNumbers.map(po => po.poNumber).join(', ');\r\n } else {\r\n // If no POs are found, reset the purchase order number\r\n jobCardDetail.purchaseOrderNumber = '';\r\n }\r\n }\r\n else {\r\n if ((!jobCardDetail.accessories || jobCardDetail.accessories == \"\") && (jobCardDetail.accessoriesList && jobCardDetail.accessoriesList.length >= 1)) {\r\n jobCardDetail.accessories = JSON.stringify(jobCardDetail.accessoriesList || []);\r\n }\r\n //if ((!jobCardDetail.warrantyRepair || jobCardDetail.warrantyRepair == \"\") && (jobCardDetail.warrantyRepairList && jobCardDetail.warrantyRepairList.length >= 1)) {\r\n // jobCardDetail.warrantyRepair = JSON.stringify(jobCardDetail.warrantyRepairList || []);\r\n //}\r\n if (jobCardDetail.warrantyRepairList && jobCardDetail.warrantyRepairList.length >= 1) {\r\n jobCardDetail.warrantyRepair = JSON.stringify(jobCardDetail.warrantyRepairList || []);\r\n }\r\n }\r\n\r\n jobCardDetail.company = this.selectedCompany;\r\n this.alertService.startLoadingMessage('Saving Job Card...');\r\n this.loadingIndicator = true;\r\n\r\n // Call the service to save or update the job card\r\n if (this.editJobCard) {\r\n this.fowkesService.updateJobCard(jobCardDetail).subscribe(\r\n () => this.handleJobCardSaveSuccess(row, jobCardDetail),\r\n error => this.handleJobCardSaveError(error)\r\n );\r\n } else {\r\n this.fowkesService.createJobCard(jobCardDetail).subscribe(\r\n response => {\r\n this.editJobCard = true; // After creation, set editJobCard to true for future updates\r\n jobCardDetail.id = response.id;\r\n jobCardDetail.jobCardNumber = response.jobCardNumber;\r\n this.handleJobCardSaveSuccess(row, jobCardDetail);\r\n },\r\n error => this.handleJobCardSaveError(error)\r\n );\r\n }\r\n }\r\n handleJobCardSaveSuccess(row: boolean, jobCardDetail: JobCard) {\r\n // Check if the repair is in-house or with external suppliers\r\n if (jobCardDetail.additionalSuppliers && jobCardDetail.additionalSuppliers.length > 0) {\r\n let suppliersToUpdate = jobCardDetail.additionalSuppliers;\r\n let completedRequests = 0;\r\n\r\n // Iterate through each supplier and handle add or update logic\r\n suppliersToUpdate.forEach(supplierToUpdate => {\r\n supplierToUpdate.jobCardId = jobCardDetail.id;\r\n if (supplierToUpdate.id) {\r\n // Update existing supplier\r\n this.fowkesService.updateAdditionalSupplier(supplierToUpdate.id, supplierToUpdate).subscribe(\r\n response => this.checkIfAllSuppliersProcessed(++completedRequests, suppliersToUpdate.length, row, jobCardDetail),\r\n error => this.handleJobCardSaveError(error)\r\n );\r\n } else {\r\n // Add new supplier\r\n this.fowkesService.addAdditionalSupplier(supplierToUpdate).subscribe(\r\n response => this.checkIfAllSuppliersProcessed(++completedRequests, suppliersToUpdate.length, row, jobCardDetail),\r\n error => this.handleJobCardSaveError(error)\r\n );\r\n }\r\n });\r\n } else {\r\n // Directly finalize the save if no additional suppliers\r\n this.finalizeJobCardSave(row, jobCardDetail);\r\n }\r\n }\r\n checkIfAllSuppliersProcessed(completedRequests: number, totalRequests: number, row: boolean, jobCardDetail: JobCard) {\r\n if (completedRequests === totalRequests) {\r\n this.finalizeJobCardSave(row, jobCardDetail);\r\n }\r\n }\r\n finalizeJobCardSave(row: boolean, jobCardDetail: JobCard): any {\r\n\r\n if (!row) {\r\n this.jobCardDetailModalHide();\r\n this.loadData();\r\n } else {\r\n this.jobCardDetail = jobCardDetail;\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n handleJobCardSaveError(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Save Error', 'An error occurred while saving the Job Card.', MessageSeverity.error, error);\r\n }\r\n // #endregion Save Job Card\r\n\r\n openInvoiceSearchModal(index: number) {\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = true;\r\n this.searchInvoiceType = \"salesorder\";\r\n this.searchInvoiceText = \"\";\r\n this.specificInvoiceSearch();\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.invoiceSearchModal) {\r\n setTimeout(() => {\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.invoiceSearchModal.show();\r\n }\r\n }\r\n specificInvoiceSearch() {\r\n if (this.searchInvoiceText && this.searchInvoiceText !== \"\") {\r\n this.searchInvoiceResults = null;\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n // Call the service to search by criteria\r\n this.sysproService.getSalesOrderSearchByCriteriaByCompany(this.searchInvoiceType, this.searchInvoiceText.trim(), this.selectedCompany).subscribe(\r\n (invoices) => this.onSpecificInvoiceSearchSuccesful(invoices),\r\n (error) => this.alertService.showStickyMessage('No results', 'Please adjust your search criteria', MessageSeverity.warn)\r\n );\r\n } else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on', MessageSeverity.warn);\r\n }\r\n }\r\n onSpecificQuoteInvoiceSearchSuccesful(invoices: SalesOrderList[]): void {\r\n this.searchInvoiceResults = invoices;\r\n\r\n // If only one invoice is returned, automatically select it\r\n if (invoices.length === 1) {\r\n this.searchInvoiceResultSelected = invoices[0];\r\n this.selectInvoice(this.searchInvoiceResultSelected);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n onSpecificInvoiceSearchSuccesful(invoices: SalesOrderList[]): void {\r\n this.searchInvoiceResults = invoices;\r\n\r\n // If only one invoice is returned, automatically select it\r\n if (invoices.length === 1) {\r\n this.searchInvoiceResultSelected = invoices[0];\r\n this.selectSupplierInvoice(this.searchInvoiceResultSelected);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n selectSupplierInvoice(invoice: SalesOrderList) {\r\n this.selectedInvoice = invoice.invoiceNumber;\r\n this.selectedSalesOrder = invoice.salesOrderNumber;\r\n\r\n this.jobCardDetail.originalInvoice = invoice.salesOrderNumber;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != this.jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, this.jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n this.sysproService.getPODByInvoice(this.selectedInvoice)\r\n .subscribe(\r\n response => this.onBarcodesLoadSuccessful(response),\r\n error => {\r\n this.hasPODs = false;\r\n this.referenceList = [];\r\n this.jobCardDetail.originalInvoiceHasPODs = false;\r\n this.jobCardDetail.originalInvoiceDetails = \"\";\r\n }\r\n );\r\n }\r\n onBarcodesLoadSuccessful(scannedDocs: BarcodeReference[]) {\r\n if (scannedDocs && scannedDocs.length > 0) {\r\n this.hasPODs = true;\r\n this.referenceList = scannedDocs;\r\n this.jobCardDetail.originalInvoiceHasPODs = true;\r\n this.jobCardDetail.originalInvoiceDetails = scannedDocs.map(pod => pod.fileName).join(', ');\r\n } else {\r\n this.hasPODs = false;\r\n this.referenceList = [];\r\n this.jobCardDetail.originalInvoiceHasPODs = false;\r\n this.jobCardDetail.originalInvoiceDetails = \"\";\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n podModalShow() {\r\n\r\n if (this.jobCardDetail.originalInvoice) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getPODByInvoice(this.jobCardDetail.originalInvoice)\r\n .subscribe(\r\n response => this.onBarcodesLoadSuccessful(response),\r\n error => {\r\n this.hasPODs = false;\r\n this.referenceList = [];\r\n this.jobCardDetail.originalInvoiceHasPODs = false;\r\n this.jobCardDetail.originalInvoiceDetails = \"\";\r\n }\r\n );\r\n\r\n if (!this.podModal) {\r\n setTimeout(() => {\r\n if (this.podModal) {\r\n this.podModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.podModal.show();\r\n }\r\n }\r\n }\r\n podModalHide() {\r\n this.podModal.hide();\r\n }\r\n viewPOD(row: BarcodeReference) {\r\n this.sysproService.getFileStream(row.fileName, row.fileNumber).subscribe(x => this.onViewPODSuccessful(x, row.fileName), error => this.onDataLoadFailed(error));\r\n }\r\n onViewPODSuccessful(x: Blob, fileName: string): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n saveSupplierInvoiceNumber(invoiceNumber: string, invoiceDate: Date) {\r\n this.jobCardDetail.originalInvoice = invoiceNumber;\r\n this.jobCardDetail.originalInvoiceDate = invoiceDate;\r\n\r\n this.invoiceSearchModalHide();\r\n }\r\n viewInvoiceSelected() {\r\n if (this.searchInvoiceResultSelected) {\r\n this.selectInvoice(this.searchInvoiceResultSelected);\r\n }\r\n }\r\n viewSupplierInvoiceSelected() {\r\n if (this.searchInvoiceResultSelected) {\r\n this.selectSupplierInvoice(this.searchInvoiceResultSelected);\r\n }\r\n }\r\n saveInvoiceNumber(invoiceNumber: string, invoiceDate: Date) {\r\n this.jobCardDetail.originalInvoice = invoiceNumber;\r\n this.jobCardDetail.originalInvoiceDate = invoiceDate;\r\n \r\n this.invoiceSearchModalHide();\r\n }\r\n previewSupplierInvoice(jobCardDetail: JobCard) {\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n if (!this.isJobCardCompanyMatch()) {\r\n alert('You can only view invoices within the current application.');\r\n return;\r\n }\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = true;\r\n this.selectedInvoice = this.jobCardDetail.originalInvoice;\r\n this.selectedSalesOrder = this.jobCardDetail.originalInvoice;\r\n\r\n this.searchInvoiceType = \"salesorder\";\r\n this.searchInvoiceText = this.selectedSalesOrder\r\n this.specificInvoiceSearch();\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n } \r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.invoiceSearchModal) {\r\n setTimeout(() => {\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.invoiceSearchModal.show();\r\n }\r\n }\r\n previewInvoice(jobCardDetail: JobCard) {\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.jobCardDetail.company != currentCompanyCode) {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = false;\r\n\r\n this.selectedInvoice = jobCardDetail.invoiceNumber;\r\n this.selectedSalesOrder = jobCardDetail.salesOrderNumber;\r\n\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.invoiceSearchModal) {\r\n setTimeout(() => {\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.invoiceSearchModal.show();\r\n }\r\n }\r\n\r\n\r\n previewITS(jobCardDetail: JobCard) {\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n this.showInvoicePopup = true;\r\n this.invoiceSearch = false;\r\n\r\n this.selectedInvoice = jobCardDetail.invoiceNumber;\r\n this.selectedSalesOrder = jobCardDetail.salesOrderNumber;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.selectedInvoice);\r\n }\r\n\r\n this.showITSPopup = true;\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n\r\n viewTracking() {\r\n\r\n this.showITSPopup = true;\r\n\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n itsModalHide() {\r\n\r\n this.showITSPopup = false;\r\n\r\n if (this.itsModal) {\r\n this.itsModal.hide();\r\n }\r\n }\r\n\r\n\r\n gotToITS() {\r\n //this.router.navigate(['../../reports'], { fragment: 'invoicestatus', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n invoiceSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showInvoicePopup = false;\r\n this.invoiceSearch = false;\r\n this.searchInvoiceText = \"\";\r\n this.searchInvoiceResultSelected = null;\r\n this.selectedInvoice = \"\";\r\n this.selectedSalesOrder = \"\";\r\n this.selectedSupplierIndex = null;\r\n this.hasPODs = false;\r\n this.referenceList = [];\r\n\r\n if (this.invoiceSearchModal) {\r\n this.invoiceSearchModal.hide();\r\n }\r\n\r\n\r\n }\r\n previewPurchaseOrderDetail(jobCardDetail: JobCard, po: PurchaseOrderList) {\r\n this.showPurchaseOrderPopup = true;\r\n this.purchaseOrderSearch = false;\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.jobCardDetail.company != currentCompanyCode) {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n\r\n this.selectedInvoice = jobCardDetail.invoiceNumber;\r\n this.selectedSalesOrder = jobCardDetail.salesOrderNumber;\r\n\r\n if (po && po.purchaseOrder) {\r\n\r\n this.selectedPurchaseOrder = po.purchaseOrder;\r\n }\r\n else {\r\n this.selectedPurchaseOrder = this.jobCardDetail.purchaseOrderNumber;\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrder);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedInvoice);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.PurchaseOrder) != this.selectedPurchaseOrder) {\r\n sessionStorage.setItem(localStorageActions.PurchaseOrder, this.selectedPurchaseOrder);\r\n }\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.purchaseOrderSearchModal) {\r\n setTimeout(() => {\r\n if (this.purchaseOrderSearchModal) {\r\n this.purchaseOrderSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.purchaseOrderSearchModal.show();\r\n }\r\n }\r\n purchaseOrderSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showPurchaseOrderPopup = false;\r\n this.purchaseOrderSearch = false;\r\n this.selectedInvoice = \"\";\r\n this.selectedSalesOrder = \"\";\r\n this.selectedPurchaseOrder = \"\";\r\n\r\n if (this.purchaseOrderSearchModal) {\r\n this.purchaseOrderSearchModal.hide();\r\n }\r\n }\r\n \r\n\r\n //Go straigh to cart\r\n goCreateCart(jobCardDetail: JobCard) {\r\n\r\n this.jobCardDetail = jobCardDetail;\r\n\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n if (this.selectedCompany != currentCompanyCode) {\r\n alert('You can only view documents within the current application.');\r\n return;\r\n }\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n return;\r\n }\r\n //First make sure job card is saved\r\n this.saveJobCard(this.jobCardDetail, true);\r\n \r\n if (sessionStorage.getItem(localStorageActions.Customer) != jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, jobCardDetail.customerCode);\r\n }\r\n \r\n this.router.navigate(['../../orders'], { fragment: 'view', queryParams: { customer: jobCardDetail.customerCode } });\r\n }\r\n\r\n jobCardDetailModalHide() {\r\n this.jobCardDetail = null;\r\n this.searchCustomerText = \"\";\r\n this.searchCustomerResults = null;\r\n this.searchCustomerResultSelected = null;\r\n this.jobCardStatusHistory = null;\r\n this.isHistoryPanelOpen = false;\r\n\r\n if (this.jobCardDetailModal) {\r\n this.jobCardDetailModal.hide();\r\n }\r\n }\r\n\r\n // #region Customer Documents\r\n onCustomerEmailLoadSuccessful() {\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n return;\r\n }\r\n //First make sure job card is saved\r\n this.saveJobCard(this.jobCardDetail, true);\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n this.alertService.startLoadingMessage(\"Loading Email...\");\r\n this.loadingIndicator = true;\r\n this.emailObject.RecepientName = this.jobCardDetail.jobContactName;\r\n this.emailObject.RecepientEmail = this.jobCardDetail.jobContactEmail;//this.purchaseOrder.buyerEmail;\r\n this.emailObject.CC = (this.jobCardDetail.salespersonEmail ? this.jobCardDetail.salespersonEmail : \"\");\r\n this.emailObject.BCC = this.accountService.currentUser.email;\r\n this.emailObject.Subject = \"Power Tool Repairs - Job Card Reference : \" + this.jobCardDetail.jobCardNumber;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.jobCardDetail.company;\r\n this.emailObject.Attachment = this.jobCardDetail.jobCardNumber;\r\n this.emailObject.EmailType = \"JobCard_Customer\";\r\n this.emailObject.Bod = \"Please find attached document that can be viewed with any standard PDF reader. \";\r\n\r\n this.showCustomerEmailModal = true;\r\n if (!this.emailModal) {\r\n setTimeout(() => {\r\n if (this.emailModal) {\r\n this.emailModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.emailModal.show();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n getCustomerPDF(): void {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.saveJobCard(this.jobCardDetail, true); // Ensure job card is saved\r\n\r\n this.fowkesService.getJobCardCustomerPDF(this.jobCardDetail.jobCardNumber, this.jobCardDetail.company, true)\r\n .subscribe(\r\n x => {\r\n this.onCustomerFileSuccessful(x, false, this.jobCardDetail.jobCardNumber);\r\n this.updateHistoryForPDFGeneration(this.jobCardDetail, 'Customer');\r\n },\r\n error => this.onDataLoadFailed(error)\r\n );\r\n }\r\n onCustomerFileSuccessful(x: Blob, preview: boolean, jobCardNumber: string): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = jobCardNumber + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n emailCustomerPDF() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.getJobCardCustomerPDF(this.jobCardDetail.jobCardNumber, this.jobCardDetail.company, false).subscribe(x => this.emailCustomerJobCard(), error => this.onDataLoadFailed(error));\r\n }\r\n emailCustomerJobCard() {\r\n this.updateHistoryForEmailSent(this.jobCardDetail, this.emailObject.Subject, this.emailObject.RecepientEmail);\r\n this.fowkesService.sendjobCardEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n\r\n this.emailModalHide();\r\n }\r\n emailModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n\r\n this.showCustomerEmailModal = false;\r\n\r\n this.emailObject = new Email();\r\n \r\n if (this.emailModal) {\r\n this.emailModal.hide();\r\n }\r\n }\r\n // #endregion Customer Documents\r\n\r\n // #region Customer Quotes Email\r\n onQuoteEmailLoadSuccessful() {\r\n if (this.selectedQuote) {\r\n const quoteNumber = this.selectedQuote;\r\n\r\n this.alertService.startLoadingMessage(\"Loading Email...\");\r\n this.loadingIndicator = true;\r\n this.emailObject.RecepientName = this.jobCardDetail.jobContactName;\r\n this.emailObject.RecepientEmail = this.jobCardDetail.jobContactEmail;//this.purchaseOrder.buyerEmail;\r\n this.emailObject.CC = (this.jobCardDetail.salespersonEmail ? this.jobCardDetail.salespersonEmail : \"\");\r\n this.emailObject.BCC = this.accountService.currentUser.email;\r\n this.emailObject.Subject = \"Power Tool Repairs - Job Card Reference : \" + this.jobCardDetail.jobCardNumber;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.jobCardDetail.company;\r\n this.emailObject.Attachment = quoteNumber;\r\n this.emailObject.Bod = \"Thank you for allowing us to submit our quotation. Please find attached PDF that can be viewed with any standard PDF reader. If you decide to accept please reference this quote number.\";\r\n\r\n\r\n this.reportService.getQuotePDF(quoteNumber, this.application).subscribe(x => {\r\n this.emailQuoteModal.show(),\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }, error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n viewQuotePDF() {\r\n this.reportService.getFileStream(this.selectedQuote).subscribe(x => this.onQuoteFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n sendQuoteWappMessage() {\r\n this.outboxDetail = new Outbox();\r\n\r\n this.outboxDetail.toPhoneNumber = this.WhatsappNumber;\r\n this.outboxDetail.content = \"Template\";\r\n this.outboxDetail.headerMediaFileId = this.selectedQuote;\r\n this.outboxDetail.nextGenUser = this.accountService.currentUser.userName;\r\n\r\n this.sysproService.sendTemplateWithFile(this.outboxDetail.headerMediaFileId, \"QUOTE\", this.outboxDetail.toPhoneNumber, this.outboxDetail.nextGenUser,\r\n this.outboxDetail.headerMediaFileId).subscribe(x => this.onWhatsappSentSuccesful(x), error => this.WhatsappSentFailed(error));\r\n }\r\n WhatsappSentFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Error', `Something went wrong: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n onWhatsappSentSuccesful(x: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('', `\"${x.message}\"`, MessageSeverity.info);\r\n\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: this.jobCardDetail.id,\r\n updateType: `Message sent`,\r\n newStatus: \"Quotation Whatsapp Sent\",\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `${x.message}`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`${x.message}`),\r\n (error) => console.error('Error updating history for PDF generation', error)\r\n );\r\n\r\n this.emailQuoteModal.hide();\r\n\r\n }\r\n onMessageSentSuccesful(): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Message sent successfully`, MessageSeverity.success);\r\n this.emailQuoteModal.hide();\r\n }\r\n previewQuotePDF() {\r\n this.reportService.getFileStream(this.selectedQuote).subscribe(x => this.onQuoteFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n emailQuotePDF() {\r\n if (this.emailObject.RecepientEmail && this.emailObject.RecepientEmail.trim().length >= 1) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onQuoteEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: this.jobCardDetail.id,\r\n updateType: `Email Sent`,\r\n newStatus: \"Quotation Email Sent\",\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `Quotation email sent to ${this.emailObject.RecepientEmail}`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`Quotation email sent to ${this.emailObject.RecepientEmail}`),\r\n (error) => console.error('Error updating history for PDF generation', error)\r\n );\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Remeber to add email address for recepient`, MessageSeverity.warn);\r\n }\r\n\r\n }\r\n onQuoteEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n \r\n this.emailQuoteModal.hide();\r\n }\r\n getQuotePDF(x: Blob, quoteNumber: string): void {\r\n this.reportService.getFileStream(quoteNumber).subscribe(x => this.onQuoteFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n onQuoteFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n \r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data; \r\n\r\n link.download = this.selectedQuote + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n // #endregion Customer Quotes Email PDF\r\n\r\n // #region Supplier PDF\r\n getSupplierPDF(row: JobCardSuppliers): void {\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n return;\r\n }\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.saveJobCard(this.jobCardDetail, true); // Ensure job card is saved\r\n\r\n // Delay for 2 seconds before attempting to generate the PDF\r\n setTimeout(() => {\r\n this.fowkesService.getJobCardSupplierPDF(this.jobCardDetail.jobCardNumber, this.jobCardDetail.company, row.supplierCode)\r\n .subscribe(\r\n x => {\r\n this.onSupplierFileSuccessful(x, false, this.jobCardDetail.jobCardNumber, row.supplierCode);\r\n this.updateHistoryForPDFGeneration(this.jobCardDetail, 'Supplier');\r\n },\r\n error => this.onDataLoadFailed(error)\r\n );\r\n }, 2000); // 2-second delay\r\n }\r\n //saveJobCardSupplier(row: JobCardSuppliers): void {\r\n // if (!this.jobCardValid(this.jobCardDetail)) {\r\n // this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n // return;\r\n // }\r\n\r\n // this.alertService.startLoadingMessage();\r\n // this.loadingIndicator = true;\r\n\r\n // this.saveJobCard(this.jobCardDetail, true); // Ensure job card is saved \r\n \r\n //}\r\n onSupplierFileSuccessful(x: Blob, preview: boolean, jobCardNumber: string, supplierCode: string): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = jobCardNumber + \"_\" + supplierCode + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n // #endregion Supplier PDF\r\n\r\n //#region Master Jobcard PDF\r\n getMasterPDF(jobCard: JobCard): void {\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before generating the PDF.', MessageSeverity.warn);\r\n return;\r\n }\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.saveJobCard(this.jobCardDetail, true); // Ensure job card is saved\r\n\r\n var quoteNumber = \"\";\r\n if (!jobCard.quoteNumber || jobCard.quoteNumber == \"\") {\r\n quoteNumber = \"none\";\r\n }\r\n else {\r\n quoteNumber = jobCard.quoteNumber;\r\n } \r\n \r\n // Delay for 2 seconds before attempting to generate the PDF\r\n setTimeout(() => {\r\n this.fowkesService.getJobCardMasterPDF(this.jobCardDetail.jobCardNumber, this.jobCardDetail.company, quoteNumber)\r\n .subscribe(\r\n x => {\r\n this.onMasterFileSuccessful(x, false, this.jobCardDetail.jobCardNumber);\r\n this.updateHistoryForPDFGeneration(this.jobCardDetail, 'Master');\r\n },\r\n error => this.onDataLoadFailed(error)\r\n );\r\n\r\n }, 2000); // 2-second delay\r\n }\r\n onMasterFileSuccessful(x: Blob, preview: boolean, jobCardNumber: string): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = jobCardNumber + \"_Master.pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n //#endregion Master Jobcard PDF\r\n\r\n // #region audit trail - History update\r\n updateHistoryForPDFGeneration(jobCardDetail: JobCard, documentType: string): void {\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: jobCardDetail.id,\r\n updateType: `Generated ${documentType} PDF`,\r\n newStatus: jobCardDetail.statusName,\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `
${documentType}
PDF generated for Job Card ${jobCardDetail.jobCardNumber}`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`${documentType} PDF generation recorded in history.`),\r\n (error) => console.error('Error updating history for PDF generation', error)\r\n );\r\n }\r\n\r\n updateHistoryForEmailSent(jobCardDetail: JobCard, documentType: string, emailTo: string): void {\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: jobCardDetail.id,\r\n updateType: `Emailed Customer Receipt`,\r\n newStatus: null,\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `Customer Receipt Email sent to ${emailTo}`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`${documentType} email sent recorded in history.`),\r\n (error) => console.error('Error updating history for PDF generation', error)\r\n );\r\n }\r\n\r\n updateHistoryForStatusChange(jobCardDetail: JobCard, newStatus: string): void {\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: jobCardDetail.id,\r\n updateType: `Status Change`,\r\n newStatus: newStatus,\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `Status updated to '${newStatus}' for Job Card ${jobCardDetail.jobCardNumber} by ${this.accountService.currentUser.userName}.`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`Status change to '${newStatus}' recorded in history.`),\r\n (error) => console.error('Error updating history for status change', error)\r\n );\r\n }\r\n // #endregion audit trail\r\n\r\n // #region Working functions\r\n\r\n //TODO: Add additional fields\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\r\n \"Id\",\r\n \"Received Date\",\r\n \"Job Card Number\",\r\n \"Bin\",\r\n \"Status\",\r\n \"Cust\",\r\n \"Name\",\r\n \"Machine Description\",\r\n \"Quote Number\",\r\n \"Invoice Number\",\r\n \"Purchase Order Number\",\r\n \"Technician\",\r\n \"Customer Contact Info\",\r\n \"Sales Rep\",\r\n \"Completion Date\",\r\n \"Cost of Repair\",\r\n \"ITS Status\",\r\n \"Comments\"\r\n ]\r\n };\r\n\r\n var filename = \"JobCards\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n\r\n for (var row of selectRows) {\r\n let dateReceived = row.dateMachineReceived ? new Date(row.dateMachineReceived).toISOString().split('T')[0] : '';\r\n let completionDate = row.completionDate ? new Date(row.completionDate).toISOString().split('T')[0] : '';\r\n let sanitizedComments = row.comments\r\n ? row.comments.replace(/(\\r\\n|\\n|\\r)/gm, ' | ').replace(/\"/g, '\"\"')\r\n : '';\r\n\r\n exportRows.push({\r\n Id: row.id,\r\n \"Received Date\": dateReceived,\r\n \"Job Card Number\": row.jobCardNumber,\r\n \"Bin\": row.binNumber,\r\n \"Status\": row.statusName,\r\n \"Cust\": row.customerCode,\r\n \"Name\": row.customerName,\r\n \"Machine Description\": row.machineDescription,\r\n \"Quote Number\": row.quoteNumber,\r\n \"Invoice Number\": row.invoiceNumber,\r\n \"Purchase Order Number\": row.purchaseOrderNumber,\r\n \"Technician\": row.assignedTechnician,\r\n \"Customer Contact Info\": row.customerContactInfo,\r\n \"Sales Rep\": row.salespersonEmail,\r\n \"Completion Date\": completionDate,\r\n \"Cost of Repair\": row.costOfRepair,\r\n \"ITS Status\": row.itsStatus,\r\n \"Comments\": sanitizedComments\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n isJobCardCompanyMatch(): boolean {\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n return currentCompanyCode === this.selectedCompany;\r\n }\r\n isRowCompanyMatch(row: JobCard): boolean {\r\n const currentCompanyCode = this.configurations.applicationName === \"MaxArcusOnline\" ? \"M\" : \"F\";\r\n return currentCompanyCode === row.company;\r\n }\r\n toggleHistoryPanel() {\r\n this.isHistoryPanelOpen = !this.isHistoryPanelOpen;\r\n }\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n generateJobCardNumber(): string {\r\n const prefix = 'JC';\r\n let newNumber = 1;\r\n\r\n // Check if there are existing job cards in the grid cache\r\n if (this.rowsCache && this.rowsCache.length > 0) {\r\n // Sort by jobCardNumber and get the last entry\r\n const lastJobCard = this.rowsCache\r\n .sort((a, b) => parseInt(a.jobCardNumber.replace(prefix, ''), 10) - parseInt(b.jobCardNumber.replace(prefix, ''), 10))\r\n .pop();\r\n\r\n // Extract the numeric part from the last job card number and increment it\r\n if (lastJobCard && lastJobCard.jobCardNumber) {\r\n const lastNumber = parseInt(lastJobCard.jobCardNumber.replace(prefix, ''), 10);\r\n newNumber = lastNumber + 1;\r\n }\r\n }\r\n\r\n // Format the new number with leading zeros (e.g., '000001')\r\n const formattedNumber = newNumber.toString().padStart(6, '0');\r\n\r\n // Combine the prefix and the formatted number\r\n return `${prefix}${formattedNumber}`;\r\n }\r\n getTodayDate(): string {\r\n const today = new Date();\r\n const year = today.getFullYear();\r\n const month = String(today.getMonth() + 1).padStart(2, '0');\r\n const day = String(today.getDate()).padStart(2, '0');\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n // #region Validation\r\n // TODO: Supplier Email\r\n jobCardValid(jobCardDetail: JobCard) {\r\n if (!jobCardDetail) {\r\n this.alertService.showStickyMessage('Error', 'No job card details provided.', MessageSeverity.error);\r\n return false;\r\n }\r\n\r\n let missingFields = [];\r\n\r\n if (!jobCardDetail.jobCardNumber || jobCardDetail.jobCardNumber === 'JC') {\r\n missingFields.push('Job Card Number');\r\n }\r\n\r\n if (!jobCardDetail.salesPersonOperator) {\r\n missingFields.push('Sales Person');\r\n return;\r\n }\r\n\r\n if (!jobCardDetail.customerCode) {\r\n missingFields.push('Customer Code');\r\n }\r\n\r\n if (!jobCardDetail.machineDescription) {\r\n missingFields.push('Machine Description');\r\n }\r\n\r\n if (!jobCardDetail.dateMachineReceived) {\r\n missingFields.push('Date Machine Received');\r\n }\r\n\r\n if (!jobCardDetail.jobContactName) {\r\n missingFields.push('Job Contact Name');\r\n }\r\n\r\n // If there are missing fields, show a specific error message\r\n if (missingFields.length > 0) {\r\n const message = `Please fill in the following fields: ${missingFields.join(', ')}`;\r\n this.alertService.showStickyMessage('Invalid Data', message, MessageSeverity.warn);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n\r\n }\r\n\r\n extractEmails(rawEmails: string): string {\r\n if (!rawEmails) {\r\n return '';\r\n }\r\n\r\n // Regex to match valid email addresses\r\n const emailRegex = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/g;\r\n\r\n // Find all email matches in the string\r\n const matches = rawEmails.match(emailRegex);\r\n\r\n // Return the cleaned and joined email addresses, separated by semicolons\r\n return matches ? matches.map(email => email.trim().toLowerCase()).join('; ') : '';\r\n }\r\n // #endregion Validation\r\n\r\n // #region Page Date Selection and Filters\r\n refresh() {\r\n //this.selected = {\r\n // startDate: moment('2024-11-01').startOf('month'),\r\n // endDate: moment().subtract(0, 'month').endOf('month')\r\n //};\r\n this.alertService.showMessage(\"Refreshing Data\", \"Reloading job card insights...\", MessageSeverity.info);\r\n this.loadData(); // Calls the existing function to reload job cards and refresh insights\r\n\r\n }\r\n toggle() {\r\n this.show = true;\r\n }\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n filterChanged() {\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n // Filter rowsCache by the date range\r\n this.dateRows = this.rowsCache.filter(d => {\r\n const createdDate = new Date(d.createdDate);\r\n return createdDate >= startD && createdDate <= endD;\r\n });\r\n\r\n this.applySmartSearch();\r\n }\r\n\r\n // Smart Search filter\r\n applySmartSearch() {\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n // Filter rowsCache by the date range\r\n this.dateRows = this.rowsCache.filter(d => {\r\n const createdDate = new Date(d.createdDate);\r\n return createdDate >= startD && createdDate <= endD;\r\n });\r\n\r\n let value = this.smartsearch.trim().toLowerCase();\r\n\r\n // Step 3: Filter dateRows based on the smart search\r\n let filteredRows = this.dateRows.filter(r => {\r\n return Utilities.searchArray(value,\r\n false, r.machineDescription, r.binNumber, r.quoteNumber, r.customerCode, r.customerName, r.customerContactInfo, r.invoiceNumber,\r\n r.jobCardNumber, r.assignedTechnician, r.salesPersonName, r.salespersonEmail, r.itsStatus, r.comments);\r\n });\r\n\r\n // Update the rows to display based on all filters\r\n this.rows = filteredRows;\r\n }\r\n \r\n onSearchChanged(e: any) {\r\n this.applySmartSearch();\r\n }\r\n\r\n onStatusFilterChange(event: any): void {\r\n const statusId = +event.target.value;\r\n // Add or remove the statusId from selectedStatuses\r\n if (event.target.checked) {\r\n this.selectedStatuses.push(statusId);\r\n } else {\r\n this.selectedStatuses = this.selectedStatuses.filter(id => id !== statusId);\r\n }\r\n\r\n // Apply the filter\r\n this.applyFilters();\r\n }\r\n\r\n applyFilters(): void {\r\n if (this.selectedStatuses.length > 0) {\r\n this.rows = this.rowsCache.filter(row => this.selectedStatuses.includes(row.statusId));\r\n }\r\n else {\r\n this.rows = null;// [...this.rowsCache]; // Show all rows if no filters are applied\r\n }\r\n }\r\n\r\n filterchkAll(event: any): void {\r\n if (event.target.checked) {\r\n // If \"Select All\" is checked, select all statuses\r\n this.selectedStatuses = this.statuses.map(status => status.statusId);\r\n this.chkAll = true;\r\n } else {\r\n // If \"Select All\" is unchecked, clear all selected statuses\r\n this.selectedStatuses = [];\r\n this.chkAll = false;\r\n }\r\n this.applyFilters(); // Reapply filters based on the new selection\r\n }\r\n // #endregion Filters\r\n // #endregion Working functions\r\n\r\n // #region Reminder Follow Up Email Templates - revise / free text / rethink\r\n onEmailTemplateSelect(): void {\r\n\r\n const template = this.emailTemplates.find(t => t.id === Number(this.selectedTemplateNumber));\r\n if (template) {\r\n const placeholders = {\r\n QuoteRequestDate: (this.jobCardDetail.lastStatusChangeDate instanceof Date)\r\n ? new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long', day: 'numeric' }).format(this.jobCardDetail.lastStatusChangeDate)\r\n : new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long', day: 'numeric' }).format(new Date(this.jobCardDetail.lastStatusChangeDate)) || 'N/A',\r\n\r\n\r\n ToolDescription: this.jobCardDetail.machineDescription || 'Tool',\r\n CustomerName: this.jobCardDetail.jobContactName || 'Customer',\r\n JobCardNumber: this.jobCardDetail.jobCardNumber || '0000'\r\n };\r\n\r\n this.selectedEmailTemplate = template;\r\n this.selectedTemplateBody = this.replacePlaceholders(template.body, placeholders);\r\n }\r\n }\r\n replacePlaceholders(templateBody: string, placeholders: { [key: string]: string }): string {\r\n let result = templateBody;\r\n for (const key in placeholders) {\r\n result = result.replace(new RegExp(`{${key}}`, 'g'), placeholders[key]);\r\n }\r\n return result;\r\n }\r\n sendFollowUp(jobCard: JobCard): void {\r\n\r\n if (!this.jobCardValid(this.jobCardDetail)) {\r\n this.alertService.showMessage('Invalid Job Card', 'Please complete all required fields before proceeding.', MessageSeverity.warn);\r\n return;\r\n }\r\n //First make sure job card is saved\r\n this.saveJobCard(this.jobCardDetail, true);\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n this.alertService.startLoadingMessage(\"Loading Email...\");\r\n this.loadingIndicator = true;\r\n\r\n this.followUpType = \"\";\r\n this.followUpMessage = \"\";\r\n this.isEditingEmailTemplate = false;\r\n\r\n switch (jobCard.statusId) {\r\n case 3: // Quote Sent To Customer\r\n this.followUpType = \"Customer\";\r\n this.emailObject.RecepientName = this.jobCardDetail.jobContactName;\r\n this.emailObject.RecepientEmail = this.jobCardDetail.jobContactEmail;\r\n this.selectedTemplateNumber = 1;\r\n this.onEmailTemplateSelect();\r\n break;\r\n case 2: // Awaiting Supplier Assessment\r\n this.followUpType = \"Supplier\";\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = ((this.jobCardDetail.additionalSuppliers && this.jobCardDetail.additionalSuppliers.length >= 1) ? this.jobCardDetail.additionalSuppliers[0].supplierEmail : \"\");\r\n this.selectedTemplateNumber = 2;\r\n this.onEmailTemplateSelect();\r\n break;\r\n case 4: // Awaiting Spare Parts\r\n this.followUpType = \"Supplier\";\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = ((this.jobCardDetail.additionalSuppliers && this.jobCardDetail.additionalSuppliers.length >= 1) ? this.jobCardDetail.additionalSuppliers[0].supplierEmail : \"\");\r\n this.selectedTemplateNumber = 5;\r\n this.onEmailTemplateSelect();\r\n break;\r\n case 6: // Ready for Pick-Up\r\n this.followUpType = \"Customer\";\r\n this.emailObject.RecepientName = this.jobCardDetail.jobContactName;\r\n this.emailObject.RecepientEmail = this.jobCardDetail.jobContactEmail;\r\n this.selectedTemplateNumber = 3;\r\n this.onEmailTemplateSelect();\r\n break;\r\n default:\r\n this.followUpType = \"SalesPerson\";\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = \"\";\r\n this.selectedEmailTemplate = new CoreEmailTemplate();\r\n }\r\n\r\n\r\n this.emailObject.CC = (this.jobCardDetail.salespersonEmail ? this.jobCardDetail.salespersonEmail : \"\");\r\n this.emailObject.BCC = this.accountService.currentUser.email;\r\n this.emailObject.Subject = \"Power Tool Repairs - Job Card Reference : \" + this.jobCardDetail.jobCardNumber;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.jobCardDetail.company;\r\n this.emailObject.Attachment = this.jobCardDetail.jobCardNumber;\r\n this.emailObject.EmailType = \"JobCardReminder\";\r\n this.emailObject.Bod = this.selectedTemplateBody;\r\n\r\n this.showEmailReminderModalModal = true;\r\n if (!this.emailReminderModal) {\r\n setTimeout(() => {\r\n if (this.emailReminderModal) {\r\n this.emailReminderModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.emailReminderModal.show();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n emailFollowUpJobCard() {\r\n this.emailObject.Bod = this.selectedTemplateBody;\r\n\r\n if (!this.emailObject.Bod || this.emailObject.Bod.trim() === '') {\r\n this.alertService.showMessage('Invalid Email', 'Email body cannot be empty.', MessageSeverity.warn);\r\n return;\r\n }\r\n\r\n if (!this.emailObject.RecepientEmail || this.emailObject.RecepientEmail.trim() === '') {\r\n this.alertService.showMessage('Invalid Email', 'Email recipient cannot be empty.', MessageSeverity.warn);\r\n return;\r\n }\r\n\r\n if (!this.emailObject.SenderEmail || this.emailObject.SenderEmail.trim() === '') {\r\n this.alertService.showMessage('Invalid Email', 'Email sender cannot be empty.', MessageSeverity.warn);\r\n return;\r\n }\r\n\r\n this.updateHistoryForReminderEmailSent(this.jobCardDetail, this.emailObject.Subject, this.emailObject.RecepientEmail, this.selectedEmailTemplate);\r\n this.fowkesService.sendjobCardEmail(this.emailObject).subscribe(x => this.onReminderEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n updateHistoryForReminderEmailSent(jobCardDetail: JobCard, documentType: string, emailTo: string, emailTemplate: CoreEmailTemplate): void {\r\n\r\n var name = (emailTemplate && emailTemplate.name ? emailTemplate.name : \"generic\");\r\n const historyEntry = {\r\n id: 0,\r\n jobCardId: jobCardDetail.id,\r\n updateType: \"Email Sent\",\r\n newStatus: name,\r\n changedBy: this.accountService.currentUser.userName,\r\n changeDate: new Date(),\r\n notes: `Follow Up email sent to ${emailTo}`\r\n };\r\n\r\n this.fowkesService.addJobCardHistory(historyEntry).subscribe(\r\n () => console.log(`${documentType} email sent recorded in history.`),\r\n (error) => console.error('Error updating history for PDF generation', error)\r\n );\r\n }\r\n onReminderEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n\r\n this.emailReminderHide();\r\n this.viewJobCard(this.jobCardDetail);\r\n }\r\n emailReminderHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n\r\n this.showEmailReminderModalModal = false;\r\n\r\n this.emailObject = new Email();\r\n this.selectedEmailTemplate = new CoreEmailTemplate();\r\n this.selectedTemplateNumber = 0;\r\n\r\n if (this.emailReminderModal) {\r\n this.emailReminderModal.hide();\r\n }\r\n }\r\n\r\n toggleEmailTemplateEdit(): void {\r\n this.isEditingEmailTemplate = !this.isEditingEmailTemplate;\r\n\r\n if (!this.isEditingEmailTemplate) {\r\n // Handle any cleanup or save logic here, if necessary\r\n console.log('Template saved:', this.selectedTemplateBody);\r\n }\r\n }\r\n\r\n // #endregion Email Templates\r\n\r\n // #region Archives\r\n // #region job card invoice only sales order\r\n\r\n generateEmailTemplate(templateType: string, placeholders: any): string {\r\n const templates = {\r\n supplierReminder: `\r\n \r\n \r\n
\r\n
Dear {0},
\r\n
\r\n
\r\n

We are reaching out to follow up on our repairs request sent on {LastUpdateDate} regarding the repair or parts for {ToolDescription}. We understand that preparing quotations can take time, and we greatly appreciate your assistance with this.

\r\n

If you have any questions or need further information to expedite the quotation, please feel free to contact us. We look forward to receiving your quote so we can proceed with the repair on our end.

\r\n

Thank you again for your attention to this matter. We look forward to hearing from you soon.

\r\n

Kind regards,
The Fowkes Bros Team

\r\n
\r\n \r\n \r\n `,\r\n customerReminder: `\r\n \r\n \r\n
\r\n
Dear {0},
\r\n
\r\n
\r\n

We hope this message finds you well. We wanted to follow up regarding the quotation we sent on {LastUpdateDate} for the repair of your {ToolDescription}.

\r\n

At your convenience, please review the quotation and let us know if you'd like us to proceed with the repair. Accepting the quotation will allow us to move forward and get your tool back to you as soon as possible.

\r\n

If you have any questions about the quotation or need further clarification, please feel free to reach out to us directly.

\r\n

Thank you for choosing Fowkes Bros for your tool repair needs. We look forward to hearing from you soon.

\r\n

Kind regards,
The Fowkes Bros Tool Repair Team

\r\n
\r\n

\r\n \r\n \r\n `\r\n };\r\n\r\n let template = templates[templateType] || \"\";\r\n for (const key in placeholders) {\r\n template = template.replace(`{${key}}`, placeholders[key]);\r\n }\r\n return template;\r\n }\r\n addSalesOrderInvoiceOnly() {\r\n this.showSalesOrderPopup = true;\r\n this.salesorderSearch = true;\r\n this.searchSalesorderType = \"salesorder\";\r\n this.searchSalesorderText = \"\";\r\n this.specificSalesorderSearch();\r\n\r\n // Add grey-out effect to the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.add('greyed-out');\r\n }\r\n\r\n if (!this.salesorderSearchModal) {\r\n setTimeout(() => {\r\n if (this.salesorderSearchModal) {\r\n this.salesorderSearchModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.salesorderSearchModal.show();\r\n }\r\n }\r\n specificSalesorderSearch() {\r\n if (this.searchSalesorderText && this.searchSalesorderText !== \"\") {\r\n this.searchSalesorderResults = null;\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n // Call the service to search by criteria\r\n this.sysproService.getSalesOrderSearchByCriteriaByCompany(this.searchSalesorderType, this.searchSalesorderText.trim(), this.selectedCompany).subscribe(\r\n (invoices) => this.onSpecificSalesOrderInvoiceSearchSuccesful(invoices),\r\n (error) => this.alertService.showStickyMessage('No results', 'Please adjust your search criteria', MessageSeverity.warn)\r\n );\r\n } else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on', MessageSeverity.warn);\r\n }\r\n }\r\n onSpecificSalesOrderInvoiceSearchSuccesful(invoices: SalesOrderList[]): void {\r\n this.searchSalesorderResults = invoices;\r\n\r\n // If only one invoice is returned, automatically select it\r\n if (invoices.length === 1) {\r\n this.searchSalesorderResultSelected = invoices[0];\r\n this.selectSalesOrderInvoice(this.searchSalesorderResultSelected);\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n selectSalesOrderInvoice(searchSalesorderResultSelected: SalesOrderList) {\r\n this.selectedSalesOrderInvoice = searchSalesorderResultSelected.invoiceNumber;\r\n\r\n this.jobCardDetail.invoiceNumber = this.selectedSalesOrderInvoice;\r\n this.jobCardDetail.salesOrderNumber = this.selectedSalesOrderInvoice;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != this.jobCardDetail.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, this.jobCardDetail.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != this.selectedSalesOrderInvoice) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.selectedSalesOrderInvoice);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.InvoiceNumber) != this.selectedSalesOrderInvoice) {\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.selectedSalesOrderInvoice);\r\n }\r\n\r\n if (searchSalesorderResultSelected.poNumber != \"\" && searchSalesorderResultSelected.poNumber != \"NA\") {\r\n searchSalesorderResultSelected.poNumber = \"Please Select\";\r\n this.SetPONumbers(searchSalesorderResultSelected);\r\n }\r\n }\r\n viewSalesorderInvoiceSelected() {\r\n if (this.searchSalesorderResultSelected) {\r\n this.selectSalesOrderInvoice(this.searchSalesorderResultSelected);\r\n }\r\n }\r\n saveSalesorderInvoiceNumber(invoiceNumber: string, invoiceDate: Date) {\r\n this.jobCardDetail.invoiceNumber = invoiceNumber;\r\n this.jobCardDetail.salesOrderNumber = invoiceNumber;\r\n //this.jobCardDetail.originalInvoiceDate = invoiceDate;\r\n\r\n this.salesorderSearchModalHide();\r\n }\r\n salesorderSearchModalHide() {\r\n // Remove grey-out effect from the Job Card modal\r\n const modalContent = document.querySelector('.job-card-modal .modal-content');\r\n if (modalContent) {\r\n modalContent.classList.remove('greyed-out');\r\n }\r\n this.showSalesOrderPopup = false;\r\n this.salesorderSearch = false;\r\n this.searchSalesorderText = \"\";\r\n this.searchSalesorderResultSelected = null;\r\n this.selectedSalesOrderInvoice = \"\";\r\n if (this.salesorderSearchModal) {\r\n this.salesorderSearchModal.hide();\r\n }\r\n }\r\n // #endregion\r\n // #endregion Archives\r\n\r\n getStatuses() {\r\n this.fowkesService.getJobCardStatuses()\r\n .subscribe((statuses: CoreJCStatus[]) => {\r\n this.statuses = statuses;\r\n }, error => {\r\n console.error(\"Error fetching statuses: \", error);\r\n });\r\n }\r\n onCompanyChange() {\r\n // Handle the event when the company is changed\r\n this.loadUsersByCompany();\r\n }\r\n loadUsersByCompany() {\r\n this.alertService.startLoadingMessage();\r\n this.sysproService.getSysproUserDetailListByCompany(this.selectedCompany).subscribe(\r\n (users) => {\r\n this.jobCardUsers = users;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n (error) => {\r\n this.onDataLoadFailed(error);\r\n }\r\n );\r\n }\r\n loadEmailTemplates(): void {\r\n this.fowkesService.getEmailTemplates().subscribe(\r\n (templates) => {\r\n this.emailTemplates = templates;\r\n },\r\n (error) => {\r\n console.error('Failed to load email templates', error);\r\n }\r\n );\r\n }\r\n selectSalesPerson() {\r\n const selected = this.jobCardUsers.find(\r\n operator => operator.sysproOperator === this.selectedOperator\r\n );\r\n\r\n if (selected) {\r\n this.jobCardDetail.salesPersonOperator = selected.sysproOperator;\r\n this.jobCardDetail.salesPersonName = selected.fullName;\r\n\r\n // Determine which email to use based on the selected company with a fallback\r\n this.jobCardDetail.salespersonEmail = selected.nextGenUser;\r\n }\r\n }\r\n onTelReceived(x: string): void {\r\n console.log(x);\r\n this.WhatsappEnabled = true;\r\n this.WhatsappNumber = x;\r\n\r\n }\r\n onOptinLoadFailed(error: any): void {\r\n this.WhatsappEnabled = false;\r\n }\r\n onUserWappLoadSuccesful(x: OptIns): void {\r\n if (x) {\r\n //this.WhatsappEnabled = x.optedIn;\r\n this.WhatsappEnabled = true;\r\n this.WhatsappNumber = x.phoneNumber;\r\n }\r\n }\r\n loadPredefinedComments() {\r\n\r\n this.fowkesService.getJobCardComments().subscribe(\r\n comments => this.predefinedComments = comments,\r\n error => this.alertService.showStickyMessage('Error', 'Failed to load comments', MessageSeverity.error)\r\n );\r\n\r\n }\r\n\r\n //onSearchSuccesful(jobCards: JobCard[]): void {\r\n // if (this.statuses && this.statuses.length > 0) {\r\n // jobCards.forEach(jobCard => {\r\n // const status = this.statuses.find(s => s.statusId === jobCard.statusId);\r\n // jobCard.statusName = status ? status.statusName : 'Unknown Status';\r\n\r\n // if (status.statusId != 7) {\r\n // this.selectedStatuses.push(status.statusId);\r\n // }\r\n\r\n // });\r\n // this.chkAll = false;\r\n // }\r\n // jobCards.forEach(jobCard => { \r\n // if (jobCard.statusId != 7 && jobCard.lastStatusChangeDate) {\r\n // const currentDate = new Date();\r\n // const lastStatusChangeDate = new Date(jobCard.lastStatusChangeDate);\r\n // jobCard.daysSinceStatusChanged = Math.floor((currentDate.getTime() - lastStatusChangeDate.getTime()) / (1000 * 60 * 60 * 24));\r\n\r\n // // Set isHighlight to true if more than 7 days have passed since the last status change\r\n // jobCard.isHighlight = jobCard.daysSinceStatusChanged >= 7;\r\n // } else {\r\n // jobCard.isHighlight = false; // No status change, no highlight\r\n // }\r\n\r\n // //if (jobCard.quoteNumber != \"\" && jobCard.salesOrderNumber == \"\") {\r\n // // this.sysproService.getQuoteNumberSearchByCriteriaByCompany(\"quoteNumber\", jobCard.quoteNumber, jobCard.company)\r\n // // .subscribe(x => {\r\n // // if (x && x.length == 1) {\r\n // // var quote = x[0];\r\n // // if (quote.convertedRef) {\r\n // // jobCard.salesOrderNumber = quote.convertedRef;\r\n // // jobCard.invoiceNumber = quote.convertedRef;\r\n // // }\r\n // // }\r\n // // }, error => {});\r\n // //}\r\n\r\n // if (jobCard.salesOrderNumber && jobCard.purchaseOrderNumber) {\r\n // this.sysproService.getPurchaseOrderSearchByCriteriaByCompany(\"SALESORDER\", jobCard.salesOrderNumber, jobCard.company)\r\n // .subscribe(x => {\r\n // jobCard.poNumbers = x;\r\n // if (x && x.length > 0) {\r\n // jobCard.purchaseOrderNumber = \"Please Select\";\r\n // } else {\r\n // jobCard.purchaseOrderNumber = '';\r\n // }\r\n // }, error => {\r\n // console.error('Error loading purchase orders for sales order', error);\r\n // });\r\n // }\r\n // });\r\n // this.rows = jobCards;\r\n // this.rowsCache = [...jobCards];\r\n\r\n // this.applyFilters();\r\n\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n //}\r\n}\r\n\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n /*font-weight: bold;*/\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtY3JlZGl0LW5vdGVzLXNhbGVzLWNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1jcmVkaXQtbm90ZXMtc2FsZXMtY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7RUFDWiwwRUFBMEUsRUFBQTtFQVA1RTtJQVVJLDhCQUE4QjtJQUM5QixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLFVBQVU7SUFDVixXQUFXLEVBQUE7RUFJZixVQUFBO0VBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCO0VBQ3ZCLDZDQUEwQyxFQUFBO0VBSTVDO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixVQUFVLEVBQUE7RUFkZDtJQW1CSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0VBckJwQjtJQTBCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQjtFQUNFLHNCQUFzQjtFQUN0Qiw0REFBaUc7RUFDakcsa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSxlQUFlO0VBQ2YscUJBQUE7RUFDQSxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsWUFBWSxFQUFBO0VBRGQ7SUFJSSxVQUFVLEVBQUE7RUFLZDtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0Usd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCLEVBQUE7RUFFekI7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDJCQUEyQjtFQUMzQixxQkFBcUIsRUFBQTtFQUx2QjtJQVFJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEI7bUNDekIrQjtJRDJCL0IsaUJBQWlCO0lBQ2pCLFlBQVksRUFBQTtFQWJoQjtJQWlCSSxrQkFBa0I7SUFDbEIsZ0JBQWdCLEVBQUE7RUFsQnBCO0lBc0JJLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsWUFBWSxFQUFBO0VBSWhCLG1CQUFBO0VBQ0E7RUFDRTtJQUNFLCtGQUFBO0lBQ0EsNkJBQTZCLEVBQUEsRUFDOUI7RUFHSCxrQkFBQTtFQUNBO0VBQ0U7SUFDRSxzRUFBQTtJQUNBLHNCQUFzQixFQUFBLEVBQ3ZCO0VBSUg7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixXQUFXLEVBQUE7RUFHYjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsT0FBTztFQUNQLFdBQVcsRUFBQTtFQUpiO0lBT0ksWUFBWSxFQUFBO0VBSWQ7RUFDRSxlQUFlO0VBQ2Ysd0JBQXdCLEVBQUE7RUFHMUI7RUFDRSxlQUFlO0VBQ2YsaUNBQWlDLEVBQUE7RUFHbkM7RUFDRSxlQUFlLEVBQUE7RUFHakI7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxhQUFhLEVBQUE7RUFHZjtFQUNFLGNBQWMsRUFBQTtFQUdoQjtFQUNFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsaUJBQWlCLEVBQUE7RUFHbkI7O0VBRUUsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRTtJQUNFLGdCQUFnQixFQUFBLEVBQ2pCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL3JlcG9ydHMtY3JlZGl0LW5vdGVzLXNhbGVzLWNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5hZGRyZXNzLWNvbnRhaW5lciB7XHJcbiAgbWF4LXdpZHRoOiA0MDBweDtcclxuICB3aWR0aDogMTAwJTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZDogI0Y5RjlGOTtcclxuICBwYWRkaW5nOiAyNXB4O1xyXG4gIG1hcmdpbjogMTBweDtcclxuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI0KTtcclxuXHJcbiAgZmllbGRzZXQge1xyXG4gICAgYm9yZGVyOiBtZWRpdW0gbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luOiAwIDAgMTBweDtcclxuICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi8qIExhcmdlICovXHJcbi5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtcclxuICAvL2hlaWdodDogMjVweDtcclxufVxyXG5cclxuLmZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuXHJcbiAgLmNvbnRyb2wtbGFiZWwge1xyXG4gICAgcGFkZGluZzogLjEwcmVtIC41MHJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgZmxleDogbm9uZTtcclxuXHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gICAgbWluLXdpZHRoOiAyMDBweDtcclxuXHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLnJvdyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiKDI1NSwgMjU1LCAyNTUpLCByZ2IoMjU1LCAyNTUsIDI1NSkgMTAlLCByZ2IoMjQ3LCAyNDcsIDI0NykpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxufVxyXG5cclxuLmNvbnRyb2wtbGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICAvKmZvbnQtd2VpZ2h0OiBib2xkOyovXHJcbiAgcGFkZGluZzogM3B4O1xyXG4gIG1hcmdpbi1ib3R0b206IDBweDtcclxuICBtaW4td2lkdGg6IDE3MHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwge1xyXG4gIHBhZGRpbmc6IDhweDtcclxuXHJcbiAgLm5hdi1saW5rIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAycHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7XHJcbn1cclxuXHJcbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG59XHJcbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xyXG4gICAgcGFkZGluZzogLjA1cmVtIC4yNXJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdpZHRoOiAxMjBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gIH1cclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleDogMztcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICB9XHJcbn1cclxuXHJcbi8qIE1lZGl1bSBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICB9XHJcbn1cclxuXHJcbi8qIFNtYWxsIHNjcmVlbnMgKi9cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcclxuICAuZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgICAvKiBPbiBzbWFsbCBzY3JlZW5zLCB3ZSBhcmUgbm8gbG9uZ2VyIHVzaW5nIHJvdyBkaXJlY3Rpb24gYnV0IGNvbHVtbiAqL1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4ucm93IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uY29sdW1uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZmxleDogMTtcclxuICBmbG9hdDogbGVmdDtcclxuXHJcbiAgbGFiZWwge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDdweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbiAgfVxyXG5cclxuICAuc3Vic2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogN3B4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA3cHg7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1ncm91cCB7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAuY2hlY2tib3gge1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgfVxyXG5cclxuICAuY29sLXJlc2V0LWRlZmF1bHQge1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICB9XHJcblxyXG4gIC5jb2wtc2V0LWRlZmF1bHQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgfVxyXG5cclxuICAuY29sLXJlc2V0LWRlZmF1bHQgLmJ0bixcclxuICAuY29sLXNldC1kZWZhdWx0IC5idG4ge1xyXG4gICAgbWluLXdpZHRoOiAxNTBweDtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgIH1cclxuICB9XHJcbiIsIi5hZGRyZXNzLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIG1hcmdpbjogMTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLmFkZHJlc3MtY29udGFpbmVyIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4vKiBMYXJnZSAqL1xuLmZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGZsZXg6IG5vbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXgtZ3JvdzogMjtcbiAgICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi5yb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlIDEwJSwgI2Y3ZjdmNyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4uY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgLypmb250LXdlaWdodDogYm9sZDsqL1xuICBwYWRkaW5nOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWluLXdpZHRoOiAxNzBweDsgfVxuXG4uY29udHJvbC1kZXRhaWwge1xuICBwYWRkaW5nOiA4cHg7IH1cbiAgLmNvbnRyb2wtZGV0YWlsIC5uYXYtbGluayB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDEyMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBTbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5jb2x1bW4gbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDsgfVxuXG4uc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7IH1cblxuLnN1YnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5sYXN0LXNlcGFyYXRvci1ociB7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBtaW4taGVpZ2h0OiAwOyB9XG5cbi5jaGVja2JveCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmNvbC1zZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcbiAgbWluLXdpZHRoOiAxNTBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1mb3JtLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4OyB9IH1cbiJdfQ== */\"","import { Component, OnInit, ViewChild, Input, TemplateRef } from '@angular/core';\r\n//import { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\n//import { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n//import { User } from '../../models/user.model';\r\n//import { UserEdit } from '../../models/user-edit.model';\r\n//import { Role } from '../../models/role.model';\r\nimport { Branch } from '../../../models/branch.model';\r\n\r\nimport { CreditNoteSalesReport } from '../../../models/creditnote-report.model';\r\n\r\n//import { ArCustomer } from '../../models/arcustomer.model';\r\n//import { CartHeader } from '../../models/cart-header.model';\r\n//import { ArCustomerEdit } from '../../models/arcustomer-edit.model';\r\n//import { SalesPerson } from '../../models/salesperson.model';\r\nimport { AspnetApplications } from '../../../models/applications.model';\r\n//import { Permission } from '../../models/permission.model';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { ngxCsv } from 'ngx-csv';\r\n\r\n//import { ArNarration } from 'src/app/models/arnarration.model';\r\n//import { localStorageActions } from 'src/app/models/enums';\r\n//import { ConfigurationService } from 'src/app/services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'reports-credit-notes-sales',\r\n templateUrl: './reports-credit-notes-sales-component.html',\r\n styleUrls: ['./reports-credit-notes-sales-component.scss']\r\n})\r\nexport class ReportsCreditNotesSalesComponent implements OnInit {\r\n\r\n private isEditMode = false;\r\n\r\n allBranches: Branch[] = [];\r\n\r\n allApplications: AspnetApplications[] = [];\r\n\r\n rowsCreditNoteSales: CreditNoteSalesReport[] = [];\r\n\r\n columnsCreditNoteSales: any[] = [];\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n searchType: string = \"ALL\";\r\n\r\n applicationType: string = \"00000000-0000-0000-0000-000000000000\";\r\n\r\n private loadingIndicatorCreditNotesSales: boolean;\r\n\r\n show: boolean;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('searchBy-search')\r\n private branchSelector;\r\n branchSelected: Branch;\r\n private selectUndefinedOptionValue: string = \"All\";\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n constructor(private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute, private fowkesOnline: FowkesOnlineService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.columnsCreditNoteSales = [\r\n { prop: 'operator', name: 'Operator', width: 200, cellClass: \"left\" },\r\n { prop: 'role', name: 'Role', width: 120, cellClass: \"left\" },\r\n //{ prop: 'startDate', name: 'Start Date', width: 200, cellClass: \"left\" },\r\n //{ prop: 'endDate', name: 'End Date', width: 200, cellClass: \"left\" },\r\n { prop: 'company', name: 'Company', width: 120, cellClass: \"left\" },\r\n { prop: 'branch', name: 'Branch', width: 50, cellClass: \"left\" },\r\n { prop: 'getFormattedTotalCreditNotesValue', name: 'Total Credit Notes Value', width: 120, cellClass: \"right\" },\r\n { prop: 'getFormattedTotalDiscountValue', name: 'Total Discount Given', width: 120, cellClass: \"right\" },\r\n { prop: 'getFormattedTotalMerchValue', name: 'Total Merch Value', width: 120, cellClass: \"right\" },\r\n { prop: 'getFormattedTotalCost', name: 'Total Cost', width: 120, cellClass: \"right\" },\r\n { prop: 'getFormattedTotalProfit', name: 'Total Profit', width: 120, cellClass: \"right\" }\r\n\r\n ];\r\n\r\n this.allBranches.push(new Branch(\"ALL\"));\r\n\r\n let app: AspnetApplications;\r\n\r\n app = new AspnetApplications();\r\n\r\n app.applicationName = \"ALL\";\r\n\r\n app.applicationId = \"00000000-0000-0000-0000-000000000000\";\r\n\r\n this.allApplications.push(app);\r\n\r\n this.selected = {\r\n startDate: moment().subtract(2, 'year').startOf('year'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n\r\n this.getAllBranches();\r\n\r\n this.getAllCompanies();\r\n }\r\n\r\n getAllBranches() {\r\n this.alertService.startLoadingMessage();\r\n \r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n }\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n\r\n console.log(\"Branches\", this.allBranches);\r\n\r\n this.getCreditNotesSalesData();\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n //this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n getAllCompanies() {\r\n this.alertService.startLoadingMessage();\r\n\r\n this.fowkesOnline.getApplications().subscribe(x => this.onAppLoadSuccessful(x), error => this.onAppDataLoadFailed(error));\r\n\r\n }\r\n\r\n onAppLoadSuccessful(applications: AspnetApplications[]) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.allApplications = [...this.allApplications, ...applications];\r\n\r\n console.log(\"allApplications\", this.allApplications);\r\n }\r\n\r\n onAppDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve company data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n getCreditNotesSalesData() {\r\n\r\n this.loadingIndicatorCreditNotesSales = true;\r\n\r\n this.show = false;\r\n\r\n this.alertService.startLoadingMessage();\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.sysproService.getCreditNoteSales(startD.toJSON(), endD.toJSON(), this.searchType, this.applicationType).subscribe(x => this.onCreditNoteSalesDataLoadSuccessful([x]), error => this.onCreditNoteSalesDataLoadFailed(error));\r\n\r\n }\r\n\r\n onCreditNoteSalesDataLoadSuccessful(sales: any[]) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.rowsCreditNoteSales = sales[0];\r\n\r\n this.loadingIndicatorCreditNotesSales = false;\r\n\r\n this.alertService.stopLoadingMessage();\r\n }\r\n\r\n onCreditNoteSalesDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicatorCreditNotesSales = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve credit note sales data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n\r\n }\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n //dateQuoteSalesFilterChanged() {\r\n\r\n //var start = new Date(this.selected.startDate.toString());\r\n\r\n //var end = new Date(this.selected.endDate.toString());\r\n\r\n //this.rowsQuoteSales = this.rowsQuoteSalesCache.filter(m => new Date(m.startDate) >= new Date(start) && new Date(m.startDate) <= new Date(end));\r\n //}\r\n\r\n //dateCreditNoteSalesFilterChanged() {\r\n\r\n //var start = new Date(this.selected.startDate.toString());\r\n\r\n //var end = new Date(this.selected.endDate.toString());\r\n\r\n //this.rowsCreditNoteSales = this.rowsCreditNoteSalesCache.filter(m => new Date(m.startDate) >= new Date(start) && new Date(m.startDate) <= new Date(end));\r\n //}\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n let dateDiff: any = moment().subtract(2, 'year').startOf('month');\r\n\r\n if (this.selected.startDate < dateDiff) {\r\n this.alertService.showMessage('', `Date range further than 2 years`, MessageSeverity.warn);\r\n\r\n return;\r\n }\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.sysproService.getCreditNoteSales(startD.toJSON(), endD.toJSON(), this.searchType, this.applicationType).subscribe(x => this.onCreditNoteSalesDataLoadSuccessful([x]), error => this.onCreditNoteSalesDataLoadFailed(error));\r\n\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n let dateDiff: any = moment().subtract(2, 'year').startOf('month');\r\n\r\n if (this.selected.startDate < dateDiff) {\r\n this.alertService.showMessage('', `Date range further than 2 years`, MessageSeverity.warn);\r\n\r\n return;\r\n }\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.sysproService.getCreditNoteSales(startD.toJSON(), endD.toJSON(), this.searchType, this.applicationType).subscribe(x => this.onCreditNoteSalesDataLoadSuccessful([x]), error => this.onCreditNoteSalesDataLoadFailed(error));\r\n\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n //this.dateQuoteSalesFilterChanged();\r\n\r\n //this.dateCreditNoteSalesFilterChanged();\r\n\r\n this.show = false;\r\n }\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Operator\", \"Role\", \"Company\", \"Branch\", \"TotalCreditNotesValue\",\r\n \"TotalDiscountValue\", \"TotalMerchValue\", \"TotalCost\",\r\n \"TotalProfit\"]\r\n };\r\n\r\n var filename = \"CreditNotesSales\";\r\n var selectRows = [...this.rowsCreditNoteSales];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Operator: row.operator, Role: row.role, Company: row.company, Branch: row.branch,\r\n TotalCreditNotesValue: row.getFormattedTotalCreditNotesValue, TotalDiscountValue: row.getFormattedTotalDiscountValue,\r\n TotalMerchValue: row.getFormattedTotalMerchValue, TotalCost: row.getFormattedTotalCost,\r\n TotalProfit: row.getFormattedTotalProfit\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
= 1\\\" class=\\\"row\\\" style=\\\"margin: 2px 0 2px 0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n = 5 ? 'red' : ''}\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
OperatorName# Invoices # CreditNotes Lines Invoiced Lines Credited % Lines Credited View
{{detail.operator}}{{detail.originalOperatorName}}{{detail.invoiceCount}}{{detail.creditNoteCount}}{{detail.invoicedLines}}{{detail.creditedLines}}{{detail.percentageLinesCredited | currency:' ':'symbol':'1.2'}} %\\r\\n \\r\\n View Details\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Details for {{ selectedOperator }}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Invoiced
Invoiced DateCustomerInvoiceStock CodeStock DescriptionLine Qty
{{ detail.invoiceDate | date:'dd MMM yyyy' }}{{ detail.customer }}\\r\\n \\r\\n {{ detail.invoice }}\\r\\n {{ detail.stockCode }}{{ detail.stockDescription }}{{ detail.lineQTY }}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Credited
Credited DateCustomerCredit Note (Invoice)Stock CodeStock DescriptionLine Qty
{{ detail.invoiceDate | date:'dd MMM yyyy' }}{{ detail.customer }}{{ detail.invoice }} ({{ detail.creditedInvoice }}){{ detail.stockCode }}{{ detail.stockDescription }}{{ detail.lineQTY }}
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

SALES ORDER:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n .first-header-row {\\n height: 33px !important;\\n margin-left: 0px;\\n margin-right: 5px;\\n padding-top: 9px;\\n color: #463e3e;\\n font-size: 13px; }\\n .bg-gradient-grey {\\n background: #73797c47 linear-gradient(180deg, #dddddd, #eeeeee) repeat-x !important; }\\n .bg-gradient-overdue {\\n background: #73797c47 linear-gradient(180deg, #dddddd, #eeeeee) repeat-x !important;\\n color: #74150c; }\\n .second-header-row {\\n height: 33px !important;\\n margin-left: 0px;\\n padding-top: 9px;\\n color: #463e3e;\\n font-size: 13px;\\n width: 100%; }\\n .blue {\\n text-decoration: underline !important;\\n color: cornflowerblue !important; }\\n #invoiceDetail {\\n width: 99%; }\\n #invoiceDetail thead {\\n display: table;\\n width: 98%;\\n table-layout: fixed; }\\n #invoiceDetail tbody {\\n display: block;\\n max-height: 500px;\\n /* set height as required */\\n overflow-y: auto;\\n width: 100%;\\n table-layout: fixed; }\\n #invoiceDetail tr {\\n display: table;\\n width: 100%;\\n table-layout: fixed; }\\n #invoiceDetail tbody tr {\\n height: 15px;\\n /* setting the row height */ }\\n /*\\r\\n.page-container {\\r\\n height: calc(100vh - 200px);\\r\\n overflow-y: scroll;\\r\\n overflow-x: hidden;\\r\\n margin-right: 3px;\\r\\n width: 98%;\\r\\n}*/\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtY3JlZGl0b3JzLWNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1jcmVkaXRvcnMtY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7RUFDWiwwRUFBMEUsRUFBQTtFQVA1RTtJQVVJLDhCQUE4QjtJQUM5QixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLFVBQVU7SUFDVixXQUFXLEVBQUE7RUFJZixVQUFBO0VBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCO0VBQ3ZCLDZDQUEwQyxFQUFBO0VBSTVDO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixVQUFVLEVBQUE7RUFkZDtJQW1CSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0VBckJwQjtJQTBCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQjtFQUNFLHNCQUFzQjtFQUN0Qiw0REFBaUc7RUFDakcsa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSxlQUFlO0VBRWYsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksVUFBVSxFQUFBO0VBS2Q7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QixFQUFBO0VBRXpCO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCO21DQzFCK0I7SUQ0Qi9CLGlCQUFpQjtJQUNqQixZQUFZLEVBQUE7RUFiaEI7SUFpQkksa0JBQWtCO0lBQ2xCLGdCQUFnQixFQUFBO0VBbEJwQjtJQXNCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQixtQkFBQTtFQUNBO0VBQ0U7SUFDRSwrRkFBQTtJQUNBLDZCQUE2QixFQUFBLEVBQzlCO0VBR0gsa0JBQUE7RUFDQTtFQUNFO0lBQ0Usc0VBQUE7SUFDQSxzQkFBc0IsRUFBQSxFQUN2QjtFQUlIO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsV0FBVyxFQUFBO0VBR2I7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLE9BQU87RUFDUCxXQUFXLEVBQUE7RUFKYjtJQU9JLFlBQVksRUFBQTtFQUlkO0VBQ0UsZUFBZTtFQUNmLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsZUFBZTtFQUNmLGlDQUFpQyxFQUFBO0VBR25DO0VBQ0UsZUFBZSxFQUFBO0VBR2pCO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxjQUFjLEVBQUE7RUFHaEI7RUFDRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGlCQUFpQixFQUFBO0VBR25COztFQUVFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0U7SUFDRSxnQkFBZ0IsRUFBQSxFQUNqQjtFQUlMO0VBQ0UsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCxlQUFlLEVBQUE7RUFHakI7RUFFRSxtRkFBbUYsRUFBQTtFQUlyRjtFQUdFLG1GQUFtRjtFQUNuRixjQUFjLEVBQUE7RUFHaEI7RUFDRSx1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsZUFBZTtFQUNmLFdBQ0YsRUFBQTtFQUVBO0VBQ0UscUNBQXFDO0VBQ3JDLGdDQUFnQyxFQUFBO0VBR2xDO0VBQ0UsVUFBVSxFQUFBO0VBR1o7RUFDRSxjQUFjO0VBQ2QsVUFBVTtFQUNWLG1CQUFtQixFQUFBO0VBR3JCO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtFQUFFLDJCQUFBO0VBQ25CLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsbUJBQW1CLEVBQUE7RUFHckI7RUFDRSxjQUFjO0VBQ2QsV0FBVztFQUNYLG1CQUFtQixFQUFBO0VBR3JCO0VBQ0UsWUFBWTtFQUFFLDJCQUFBLEVBQTRCO0VBSTVDOzs7Ozs7O0VDNURFIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL3JlcG9ydHMtY3JlZGl0b3JzLWNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5hZGRyZXNzLWNvbnRhaW5lciB7XHJcbiAgbWF4LXdpZHRoOiA0MDBweDtcclxuICB3aWR0aDogMTAwJTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZDogI0Y5RjlGOTtcclxuICBwYWRkaW5nOiAyNXB4O1xyXG4gIG1hcmdpbjogMTBweDtcclxuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI0KTtcclxuXHJcbiAgZmllbGRzZXQge1xyXG4gICAgYm9yZGVyOiBtZWRpdW0gbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luOiAwIDAgMTBweDtcclxuICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi8qIExhcmdlICovXHJcbi5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtcclxuICAvL2hlaWdodDogMjVweDtcclxufVxyXG5cclxuLmZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuXHJcbiAgLmNvbnRyb2wtbGFiZWwge1xyXG4gICAgcGFkZGluZzogLjEwcmVtIC41MHJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgZmxleDogbm9uZTtcclxuXHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gICAgbWluLXdpZHRoOiAyMDBweDtcclxuXHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLnJvdyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiKDI1NSwgMjU1LCAyNTUpLCByZ2IoMjU1LCAyNTUsIDI1NSkgMTAlLCByZ2IoMjQ3LCAyNDcsIDI0NykpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxufVxyXG5cclxuLmNvbnRyb2wtbGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuIC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMnB4O1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4gIH1cclxuXHJcbiAgLnN1YnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDdweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogN3B4O1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tZ3JvdXAge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmNoZWNrYm94IHtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAuY29sLXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbiAgLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcclxuICAgIG1pbi13aWR0aDogMTUwcHg7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbi5maXJzdC1oZWFkZXItcm93IHtcclxuICBoZWlnaHQ6IDMzcHggIWltcG9ydGFudDtcclxuICBtYXJnaW4tbGVmdDogMHB4O1xyXG4gIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gIHBhZGRpbmctdG9wOiA5cHg7XHJcbiAgY29sb3I6ICM0NjNlM2U7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblxyXG4uYmctZ3JhZGllbnQtZ3JleSB7XHJcbiAgLy8gYmFja2dyb3VuZDogIzczNzk3YyBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjYTNhOGFkLCAjOWVhNmFmKSByZXBlYXQteCAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6ICM3Mzc5N2M0NyBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZGRkZGRkLCAjZWVlZWVlKSByZXBlYXQteCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuLmJnLWdyYWRpZW50LW92ZXJkdWUge1xyXG4gIC8vYmFja2dyb3VuZDogI2NkODE3YSBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjYzMzNTFlLCAjYzM0MjNjKSByZXBlYXQteCAhaW1wb3J0YW50O1xyXG5cclxuICBiYWNrZ3JvdW5kOiAjNzM3OTdjNDcgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2RkZGRkZCwgI2VlZWVlZSkgcmVwZWF0LXggIWltcG9ydGFudDtcclxuICBjb2xvcjogIzc0MTUwYztcclxufVxyXG5cclxuLnNlY29uZC1oZWFkZXItcm93IHtcclxuICBoZWlnaHQ6IDMzcHggIWltcG9ydGFudDtcclxuICBtYXJnaW4tbGVmdDogMHB4O1xyXG4gIHBhZGRpbmctdG9wOiA5cHg7XHJcbiAgY29sb3I6ICM0NjNlM2U7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIHdpZHRoOiAxMDAlXHJcbn1cclxuXHJcbi5ibHVlIHtcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiBjb3JuZmxvd2VyYmx1ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jaW52b2ljZURldGFpbCB7XHJcbiAgd2lkdGg6IDk5JTtcclxufVxyXG5cclxuI2ludm9pY2VEZXRhaWwgdGhlYWQge1xyXG4gIGRpc3BsYXk6IHRhYmxlO1xyXG4gIHdpZHRoOiA5OCU7XHJcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcclxufVxyXG5cclxuI2ludm9pY2VEZXRhaWwgdGJvZHkge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1heC1oZWlnaHQ6IDUwMHB4OyAvKiBzZXQgaGVpZ2h0IGFzIHJlcXVpcmVkICovXHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICB3aWR0aDogMTAwJTtcclxuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xyXG59XHJcblxyXG4jaW52b2ljZURldGFpbCB0ciB7XHJcbiAgZGlzcGxheTogdGFibGU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcclxufVxyXG5cclxuI2ludm9pY2VEZXRhaWwgdGJvZHkgdHIge1xyXG4gIGhlaWdodDogMTVweDsgLyogc2V0dGluZyB0aGUgcm93IGhlaWdodCAqL1xyXG59XHJcblxyXG5cclxuLypcclxuLnBhZ2UtY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxuICB3aWR0aDogOTglO1xyXG59Ki9cclxuIiwiLmFkZHJlc3MtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI0Y5RjlGOTtcbiAgcGFkZGluZzogMjVweDtcbiAgbWFyZ2luOiAxMHB4O1xuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI0KTsgfVxuICAuYWRkcmVzcy1jb250YWluZXIgZmllbGRzZXQge1xuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi8qIExhcmdlICovXG4uZmxleC1kaXN0cmlidXRlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLmZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDEwcHg7IH1cblxuLmNvbnRyb2wtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZzogLjEwcmVtIC41MHJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgZmxleDogbm9uZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleC1ncm93OiAyO1xuICAgIG1pbi13aWR0aDogMjAwcHg7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleDogMztcbiAgICBmbGV4LWdyb3c6IDI7IH1cblxuLnJvdyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh3aGl0ZSwgd2hpdGUgMTAlLCAjZjdmN2Y3KTtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbi5jb250cm9sLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWluLXdpZHRoOiAxNzBweDsgfVxuXG4uY29udHJvbC1kZXRhaWwge1xuICBwYWRkaW5nOiA4cHg7IH1cbiAgLmNvbnRyb2wtZGV0YWlsIC5uYXYtbGluayB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDEyMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBTbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5jb2x1bW4gbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDsgfVxuXG4uc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7IH1cblxuLnN1YnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5sYXN0LXNlcGFyYXRvci1ociB7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBtaW4taGVpZ2h0OiAwOyB9XG5cbi5jaGVja2JveCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmNvbC1zZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcbiAgbWluLXdpZHRoOiAxNTBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1mb3JtLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4OyB9IH1cblxuLmZpcnN0LWhlYWRlci1yb3cge1xuICBoZWlnaHQ6IDMzcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIHBhZGRpbmctdG9wOiA5cHg7XG4gIGNvbG9yOiAjNDYzZTNlO1xuICBmb250LXNpemU6IDEzcHg7IH1cblxuLmJnLWdyYWRpZW50LWdyZXkge1xuICBiYWNrZ3JvdW5kOiAjNzM3OTdjNDcgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2RkZGRkZCwgI2VlZWVlZSkgcmVwZWF0LXggIWltcG9ydGFudDsgfVxuXG4uYmctZ3JhZGllbnQtb3ZlcmR1ZSB7XG4gIGJhY2tncm91bmQ6ICM3Mzc5N2M0NyBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZGRkZGRkLCAjZWVlZWVlKSByZXBlYXQteCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzc0MTUwYzsgfVxuXG4uc2Vjb25kLWhlYWRlci1yb3cge1xuICBoZWlnaHQ6IDMzcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgcGFkZGluZy10b3A6IDlweDtcbiAgY29sb3I6ICM0NjNlM2U7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmJsdWUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICBjb2xvcjogY29ybmZsb3dlcmJsdWUgIWltcG9ydGFudDsgfVxuXG4jaW52b2ljZURldGFpbCB7XG4gIHdpZHRoOiA5OSU7IH1cblxuI2ludm9pY2VEZXRhaWwgdGhlYWQge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDk4JTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDsgfVxuXG4jaW52b2ljZURldGFpbCB0Ym9keSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgLyogc2V0IGhlaWdodCBhcyByZXF1aXJlZCAqL1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDsgfVxuXG4jaW52b2ljZURldGFpbCB0ciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDsgfVxuXG4jaW52b2ljZURldGFpbCB0Ym9keSB0ciB7XG4gIGhlaWdodDogMTVweDtcbiAgLyogc2V0dGluZyB0aGUgcm93IGhlaWdodCAqLyB9XG5cbi8qXHJcbi5wYWdlLWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgd2lkdGg6IDk4JTtcclxufSovXG4iXX0= */\"","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { MatAccordion } from '@angular/material';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { count } from 'console';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { empty } from 'rxjs';\r\nimport { groupBy } from 'rxjs/operators';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { CreditNoteDataModel } from '../../../models/credit-note-data.model';\r\nimport { CreditNoteSummaryModel } from '../../../models/credit-note-summary.model';\r\nimport { CreditNoteReportDetailData } from '../../../models/creditnote-report-detail-data.model';\r\nimport { DebtorsReleaseData } from '../../../models/debtors-release-data.model';\r\nimport { DebtorsReleaseOverview, ICompanyTotals, ICustomerTotals, IDataDetails, IOperator } from '../../../models/debtors-release-overview.model';\r\nimport { DebtorsReleaseSummary } from '../../../models/debtors-release-summary.model';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { SysproUser } from '../../../models/syspro-user.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'reports-creditors',\r\n templateUrl: './reports-creditors-component.html',\r\n styleUrls: ['./reports-creditors-component.scss']\r\n})\r\nexport class ReportsCreditorsComponent implements OnInit {\r\n\r\n\r\n private loadingIndicator: boolean;\r\n\r\n columns: any[] = [];\r\n rows: CreditNoteReportDetailData[] = [];\r\n rowsCache: CreditNoteReportDetailData[] = [];\r\n\r\n rowsSummary: CreditNoteSummaryModel[] = [];\r\n rowsCacheSummary: CreditNoteSummaryModel[] = [];\r\n\r\n @ViewChild('netTemplate')\r\n netTemplate: TemplateRef;\r\n\r\n @ViewChild('totalNetMerchandiseCell') totalNetMerchandiseCell: TemplateRef;\r\n\r\n @ViewChild('gpTemplate')\r\n gpTemplate: TemplateRef;\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n operatorModel: IOperator;\r\n consolidatedDataSet: IOperator[] = [];\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 6 Months': [moment().subtract(6, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n @ViewChild('accordion') Accordion: MatAccordion;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n\r\n @ViewChild('salesOrderModal')\r\n salesOrderModal: ModalDirective;\r\n\r\n\r\n @ViewChild('creditDetailsModal')\r\n creditDetailsModal: ModalDirective;\r\n\r\n @ViewChild('operators')\r\n private operators;\r\n\r\n @ViewChild('operatorSelector')\r\n private operatorSelector;\r\n allOperators: SysproUser[] = [];\r\n\r\n selectedBranch: string;\r\n selectedOperator: string;\r\n selectedCompany: string;\r\n selectedDocumentType: string;\r\n totalNetMerchandiseSumm: number;\r\n totalInvoiceCostSumm: string;\r\n totalInvoiceSumm: string;\r\n uniqueListOfOperators: DebtorsReleaseSummary[];\r\n public isCollapsed: boolean = true;\r\n consolidatedDataSetCache: IOperator[];\r\n\r\n selectedSalesOrder: string;\r\n reportTotalSales: number;\r\n reportTotalCount: number;\r\n totalInvoicedLines: number;\r\n totalCreditedLines: number;\r\n overallPercentageCredited: number;\r\n filteredDetails: CreditNoteReportDetailData[];\r\n \r\n\r\n constructor(private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute, private fowkesOnline: FowkesOnlineService) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.columns = [\r\n { prop: 'operator', name: 'Operator', width: 100, cellClass: \"left\" },\r\n { prop: 'company', name: 'Comp.', width: 100, cellClass: \"left\" },\r\n { prop: 'customer', name: 'Customer', width: 100, cellClass: \"left\" },\r\n { prop: 'customerName', name: 'Name', width: 200, cellClass: \"left\" },\r\n //{ prop: 'branch', name: 'Branch', width: 50, cellClass: \"left\", summaryFunc: () => null, summaryTemplate: this.totalNetMerchandiseCell },\r\n { prop: 'invoiceCount', name: 'Invoices', width: 80, cellClass: \"center\" },\r\n { prop: 'netSales', name: 'Total Net', width: 140, cellClass: \"right\", cellTemplate: this.netTemplate, summaryFunc: cells => this.summaryTotal(cells) }\r\n\r\n ];\r\n\r\n }\r\n\r\n summaryTotal(cells: number[]): string {\r\n const filteredCells = cells.filter(cell => !!cell);\r\n return filteredCells.reduce((sum, cell) => (sum += cell), 0).toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.selected = {\r\n startDate: moment().startOf('month'),\r\n endDate: moment().endOf('month')\r\n }\r\n\r\n\r\n this.columns = [\r\n { prop: 'operator', name: 'Operator', width: 100, cellClass: \"left\" },\r\n { prop: 'company', name: 'Comp.', width: 100, cellClass: \"left\" },\r\n { prop: 'customer', name: 'Customer', width: 100, cellClass: \"right\" },\r\n { prop: 'customerName', name: 'Name', width: 100, cellClass: \"right\" },\r\n { prop: 'invoiceCount', name: 'Invoices', width: 80, cellClass: \"left\" },\r\n { prop: 'netSales', name: 'Total Net', width: 140, cellClass: \"right\", cellTemplate: this.netTemplate, summaryFunc: cells => this.summaryTotal(cells) }\r\n\r\n ];\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n //this.allBranches = [];\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.rowsCache = null;\r\n this.rows = null;\r\n\r\n //this.consolidatedDataSet = [];\r\n\r\n //let defaultBranch = new Branch();\r\n //defaultBranch.branch = this.selectUndefinedOptionValue;\r\n //this.allBranches.push(defaultBranch);\r\n //this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n this.sysproService.getCreditNoteReportSummary(startD.toJSON(), endD.toJSON()).subscribe(x => this.onSummarySuccesful(x), error => this.onDataLoadFailed(error));\r\n this.sysproService.getCreditNoteReportData(startD.toJSON(), endD.toJSON()).subscribe(x => this.onDataSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n //Reload() {\r\n // if (this.selectedCompany && this.selectedCompany != \"ALL\") {\r\n\r\n // this.rows = this.rowsCache.filter(x => x.company == this.selectedCompany);\r\n // // this.rowsSummary = this.rowsCacheSummary.filter(x => x.company == this.selectedCompany); \r\n\r\n // }\r\n // else {\r\n // this.rows = this.rowsCache;\r\n // this.rowsSummary = this.rowsCacheSummary;\r\n // }\r\n\r\n // if (this.selectedBranch && this.selectedBranch != \"ALL\") {\r\n\r\n // this.rows = this.rows.filter(x => x.branch == this.selectedBranch);\r\n // // this.rowsSummary = this.rowsSummary.filter(x => x.branch == this.selectedBranch);\r\n\r\n // }\r\n // else {\r\n // this.rows = this.rows;\r\n // this.rowsSummary = this.rowsSummary;\r\n // }\r\n\r\n // //this.formatData();\r\n //}\r\n\r\n onSummarySuccesful(x: CreditNoteSummaryModel[]): void {\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n //details.forEach((line, index, details) => {\r\n // (line).index = index + 1;\r\n //});\r\n\r\n this.rowsCacheSummary = [...details];\r\n\r\n //if (this.selectedCompany && this.selectedCompany != \"ALL\") {\r\n\r\n // //this.rowsSummary = this.rowsCacheSummary.filter(x => x.company == this.selectedCompany);\r\n\r\n //}\r\n //else {\r\n // this.rowsSummary = this.rowsCacheSummary;\r\n //}\r\n\r\n //if (this.selectedBranch && this.selectedBranch != \"ALL\") {\r\n\r\n // //this.rowsSummary = this.rowsSummary.filter(x => x.branch == this.selectedBranch);\r\n\r\n //}\r\n //else {\r\n // this.rowsSummary = this.rowsSummary;\r\n //}\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onDataSuccesful(x: CreditNoteReportDetailData[]): void {\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...details];\r\n this.rows = this.rowsCache;\r\n\r\n //if (this.selectedCompany && this.selectedCompany != \"ALL\") {\r\n\r\n // this.rows = this.rowsCache.filter(x => x.company == this.selectedCompany);\r\n\r\n //}\r\n //else {\r\n // this.rows = this.rowsCache;\r\n //}\r\n\r\n //if (this.selectedBranch && this.selectedBranch != \"ALL\") {\r\n\r\n // this.rows = this.rows.filter(x => x.branch == this.selectedBranch);\r\n\r\n //}\r\n //else {\r\n // this.rows = this.rows;\r\n //}\r\n\r\n this.formatData();\r\n\r\n }\r\n else {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n private formatData() {\r\n if (!this.rowsCacheSummary || !this.rowsCache) {\r\n console.error(\"Data arrays are not initialized.\");\r\n return;\r\n }\r\n\r\n const updatedSummary = this.rowsCacheSummary;\r\n const detailEntities = this.rowsCache;\r\n\r\n const invoiceToOperatorMap: { [invoice: string]: string } = {};\r\n\r\n detailEntities.forEach(detail => {\r\n if (detail.documentType !== 'C') {\r\n invoiceToOperatorMap[detail.invoice] = detail.operator;\r\n }\r\n });\r\n\r\n detailEntities.forEach(detail => {\r\n if (detail.documentType === 'C' && invoiceToOperatorMap[detail.creditedInvoice]) {\r\n detail.operator = invoiceToOperatorMap[detail.creditedInvoice];\r\n }\r\n });\r\n\r\n\r\n const invoicedLinesPerOperator = detailEntities.reduce((accumulator, currentInvoice) => {\r\n if (currentInvoice.documentType != 'C') {\r\n if (accumulator[currentInvoice.operator]) {\r\n accumulator[currentInvoice.operator]++;\r\n } else {\r\n accumulator[currentInvoice.operator] = 1;\r\n }\r\n }\r\n return accumulator;\r\n }, {});\r\n\r\n const creditedLinesPerOperator = detailEntities.reduce((accumulator, currentInvoice) => {\r\n if (currentInvoice.documentType == 'C') {\r\n if (accumulator[currentInvoice.operator]) {\r\n accumulator[currentInvoice.operator]++;\r\n } else {\r\n accumulator[currentInvoice.operator] = 1;\r\n }\r\n }\r\n return accumulator;\r\n }, {});\r\n\r\n const invoicesPerOperator = detailEntities.reduce((accumulator, currentInvoice) => {\r\n if (currentInvoice.documentType !== 'C') {\r\n accumulator[currentInvoice.operator] = accumulator[currentInvoice.operator] || new Set();\r\n accumulator[currentInvoice.operator].add(currentInvoice.invoice);\r\n }\r\n return accumulator;\r\n }, {});\r\n\r\n const creditNotesPerOperator = detailEntities.reduce((accumulator, currentInvoice) => {\r\n if (currentInvoice.documentType === 'C') {\r\n accumulator[currentInvoice.operator] = accumulator[currentInvoice.operator] || new Set();\r\n accumulator[currentInvoice.operator].add(currentInvoice.invoice);\r\n }\r\n return accumulator;\r\n }, {});\r\n\r\n updatedSummary.forEach(summary => {\r\n if (invoicedLinesPerOperator[summary.operator]) {\r\n summary.invoicedLines = invoicedLinesPerOperator[summary.operator];\r\n } else {\r\n summary.invoicedLines = 0;\r\n }\r\n\r\n if (creditedLinesPerOperator[summary.operator]) {\r\n summary.creditedLines = creditedLinesPerOperator[summary.operator];\r\n } else {\r\n summary.creditedLines = 0;\r\n }\r\n\r\n const totalLines = (summary.invoicedLines || 0) + (summary.creditedLines || 0);\r\n summary.percentageLinesCredited = totalLines > 0\r\n ? (summary.creditedLines || 0) / totalLines * 100\r\n : 0;\r\n\r\n if (invoicesPerOperator[summary.operator]) {\r\n summary.invoiceCount = invoicesPerOperator[summary.operator].size;\r\n } else {\r\n summary.invoiceCount = 0;\r\n }\r\n\r\n if (creditNotesPerOperator[summary.operator]) {\r\n summary.creditNoteCount = creditNotesPerOperator[summary.operator].size;\r\n } else {\r\n summary.creditNoteCount = 0;\r\n }\r\n\r\n });\r\n\r\n // Sort updatedSummary by percentage in descending order\r\n updatedSummary.sort((a, b) => b.creditedLines - a.creditedLines);\r\n\r\n // Calculate totals after updating the summary\r\n //this.totalInvoicedLines = updatedSummary.reduce((total, current) => total + current.invoicedLines, 0);\r\n //this.totalCreditedLines = updatedSummary.reduce((total, current) => total + current.creditedLines, 0);\r\n //this.overallPercentageCredited = (this.totalInvoicedLines + this.totalCreditedLines) > 0 ?\r\n // (this.totalCreditedLines / (this.totalInvoicedLines + this.totalCreditedLines) * 100) :\r\n // 0;\r\n\r\n this.rowsSummary = updatedSummary;\r\n\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n\r\n }\r\n\r\n\r\n //onSearchChanged(value: string) {\r\n // if (value != \"\") {\r\n // this.consolidatedDataSet = this.consolidatedDataSetCache.filter(r => Utilities.searchArray(value, false, r.operator)); \r\n // }\r\n // else {\r\n // this.consolidatedDataSet = this.consolidatedDataSetCache;\r\n // }\r\n //}\r\n\r\n\r\n //onSearchChangedCustomer(value: string) {\r\n // if (value != \"\") {\r\n // this.consolidatedDataSet = this.consolidatedDataSetCache.filter(\r\n // (x) =>\r\n // x.companyTotals.find(\r\n // (y) => y.customerTotals.find(\r\n // (z) => z.customer.toLowerCase().indexOf(value.toLowerCase()) > -1\r\n // )\r\n // )\r\n // );\r\n // }\r\n // else {\r\n // this.consolidatedDataSet = this.consolidatedDataSetCache;\r\n // }\r\n //}\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n //onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n // this.allBranches = [...this.allBranches, ...branches];\r\n // setTimeout(() => {\r\n // this.branchesListSelector.refresh();\r\n // });\r\n //}\r\n\r\n //onBranchDataLoadFailed(error: any) {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n // this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n //}\r\n\r\n\r\n //onOperatorsLoadSuccessful(operators: SysproUser[]): void {\r\n\r\n // this.allOperators = [...this.allOperators, ...operators];\r\n // setTimeout(() => {\r\n // this.operatorSelector.refresh();\r\n // });\r\n //}\r\n\r\n\r\n onAppDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve company data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n\r\n this.loadData();\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.show = false;\r\n\r\n this.loadData();\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n\r\n this.loadData();\r\n }\r\n\r\n exportSummary() {\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n // Format dates to \"YYYY-MM-DD\"\r\n let formattedStartDate = `${startD.getFullYear()}-${(startD.getMonth() + 1).toString().padStart(2, '0')}-${startD.getDate().toString().padStart(2, '0')}`;\r\n let formattedEndDate = `${endD.getFullYear()}-${(endD.getMonth() + 1).toString().padStart(2, '0')}-${endD.getDate().toString().padStart(2, '0')}`;\r\n\r\n // Create filename with date range\r\n var filename = `CreditedSummary_${formattedStartDate}_to_${formattedEndDate}`;\r\n\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Operator\", \"OperatorName\", \"LinesInvoiced\", \"LinesCredited\", \"Percentage\"]\r\n };\r\n\r\n var selectRows = [...this.rowsSummary];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Operator: row.operator, OperatorName: row.originalOperatorName, LinesInvoiced: row.invoicedLines, LinesCredited: row.creditedLines, Percentage: row.percentageLinesCredited.toFixed(2) + \"%\"\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n exportDetails() {\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n // Format dates to \"YYYY-MM-DD\"\r\n let formattedStartDate = `${startD.getFullYear()}-${(startD.getMonth() + 1).toString().padStart(2, '0')}-${startD.getDate().toString().padStart(2, '0')}`;\r\n let formattedEndDate = `${endD.getFullYear()}-${(endD.getMonth() + 1).toString().padStart(2, '0')}-${endD.getDate().toString().padStart(2, '0')}`;\r\n\r\n // Create filename with date range\r\n var filename = `CreditedDetails_${formattedStartDate}_to_${formattedEndDate}`;\r\n\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Operator\", \"Customer\", \"Invoice\", \"QTY\", \"StockCode\", \"Description\", \"CreditedInvoice\", \"DocumentType\"]\r\n };\r\n\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Operator: row.operator, Customer: row.customer, Invoice: row.invoice, QTY: row.lineQTY, StockCode: row.stockCode, Description: row.stockDescription, CreditedInvoice: row.creditedInvoice, DocumentType: row.documentType\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n exportOperatorLines() {\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n // Format dates to \"YYYY-MM-DD\"\r\n let formattedStartDate = `${startD.getFullYear()}-${(startD.getMonth() + 1).toString().padStart(2, '0')}-${startD.getDate().toString().padStart(2, '0')}`;\r\n let formattedEndDate = `${endD.getFullYear()}-${(endD.getMonth() + 1).toString().padStart(2, '0')}-${endD.getDate().toString().padStart(2, '0')}`;\r\n\r\n // Create filename with date range\r\n var filename = `${this.selectedOperator}_${formattedStartDate}_to_${formattedEndDate}`;\r\n\r\n\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Operator\", \"Customer\", \"Invoice\", \"QTY\", \"StockCode\", \"Description\", \"CreditedInvoice\", \"DocumentType\"]\r\n };\r\n\r\n var selectRows = [...this.filteredDetails];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Operator: row.operator, Customer: row.customer, Invoice: row.invoice, QTY: row.lineQTY, StockCode: row.stockCode, Description: row.stockDescription, CreditedInvoice: row.creditedInvoice, DocumentType: row.documentType\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n\r\n viewDetails(operator: string) {\r\n\r\n this.filteredDetails = null;\r\n this.selectedOperator = operator;\r\n\r\n //Get all invoice and credit note details for the operator\r\n this.filteredDetails = this.rowsCache.filter(detail => detail.operator === operator);\r\n\r\n this.filteredDetails.sort((a, b) => {\r\n return new Date(a.invoiceDate).valueOf() - new Date(b.invoiceDate).valueOf();\r\n });\r\n\r\n\r\n if (!!this.selectedOperator) {\r\n if (!this.creditDetailsModal) {\r\n setTimeout(() => {\r\n if (this.creditDetailsModal) {\r\n this.creditDetailsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.creditDetailsModal.show();\r\n }\r\n }\r\n }\r\n\r\n\r\n creditDetailsModalHide() {\r\n this.creditDetailsModal.hide();\r\n }\r\n\r\n previewSalesOrder(invoice: string, customer: string) {\r\n\r\n this.selectedSalesOrder = invoice;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != invoice) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, invoice);\r\n }\r\n\r\n if (!!this.selectedSalesOrder) {\r\n if (!this.salesOrderModal) {\r\n setTimeout(() => {\r\n if (this.salesOrderModal) {\r\n this.salesOrderModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.salesOrderModal.show();\r\n }\r\n }\r\n }\r\n\r\n salesOrderModalHide() {\r\n this.salesOrderModal.hide();\r\n }\r\n\r\n\r\n viewSalesOrder() {\r\n\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
= 1\\\" class=\\\"row\\\" style=\\\"margin: 2px 0 2px 0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
OperatorCustomer Sales Ex Vat
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Totals:
\\r\\n
{{reportTotalCount}}
\\r\\n
{{reportTotalSales | currency:'R ':'symbol':'1.2'}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

SALES ORDER:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n .first-header-row {\\n height: 33px !important;\\n margin-left: 0px;\\n margin-right: 5px;\\n padding-top: 9px;\\n color: #463e3e;\\n font-size: 13px; }\\n .bg-gradient-grey {\\n background: #73797c47 linear-gradient(180deg, #dddddd, #eeeeee) repeat-x !important; }\\n .bg-gradient-overdue {\\n background: #73797c47 linear-gradient(180deg, #dddddd, #eeeeee) repeat-x !important;\\n color: #74150c; }\\n .second-header-row {\\n height: 33px !important;\\n margin-left: 0px;\\n padding-top: 9px;\\n color: #463e3e;\\n font-size: 13px;\\n width: 100%; }\\n .blue {\\n text-decoration: underline !important;\\n color: cornflowerblue !important; }\\n /*\\r\\n.page-container {\\r\\n height: calc(100vh - 200px);\\r\\n overflow-y: scroll;\\r\\n overflow-x: hidden;\\r\\n margin-right: 3px;\\r\\n width: 98%;\\r\\n}*/\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtZGVidG9ycy1yZWxlYXNlLWNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1kZWJ0b3JzLXJlbGVhc2UtY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7RUFDWiwwRUFBMEUsRUFBQTtFQVA1RTtJQVVJLDhCQUE4QjtJQUM5QixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLFVBQVU7SUFDVixXQUFXLEVBQUE7RUFJZixVQUFBO0VBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCO0VBQ3ZCLDZDQUEwQyxFQUFBO0VBSTVDO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixVQUFVLEVBQUE7RUFkZDtJQW1CSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0VBckJwQjtJQTBCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQjtFQUNFLHNCQUFzQjtFQUN0Qiw0REFBaUc7RUFDakcsa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSxlQUFlO0VBRWYsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksVUFBVSxFQUFBO0VBS2Q7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QixFQUFBO0VBRXpCO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCO21DQzFCK0I7SUQ0Qi9CLGlCQUFpQjtJQUNqQixZQUFZLEVBQUE7RUFiaEI7SUFpQkksa0JBQWtCO0lBQ2xCLGdCQUFnQixFQUFBO0VBbEJwQjtJQXNCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQixtQkFBQTtFQUNBO0VBQ0U7SUFDRSwrRkFBQTtJQUNBLDZCQUE2QixFQUFBLEVBQzlCO0VBR0gsa0JBQUE7RUFDQTtFQUNFO0lBQ0Usc0VBQUE7SUFDQSxzQkFBc0IsRUFBQSxFQUN2QjtFQUlIO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsV0FBVyxFQUFBO0VBR2I7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLE9BQU87RUFDUCxXQUFXLEVBQUE7RUFKYjtJQU9JLFlBQVksRUFBQTtFQUlkO0VBQ0UsZUFBZTtFQUNmLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsZUFBZTtFQUNmLGlDQUFpQyxFQUFBO0VBR25DO0VBQ0UsZUFBZSxFQUFBO0VBR2pCO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxjQUFjLEVBQUE7RUFHaEI7RUFDRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGlCQUFpQixFQUFBO0VBR25COztFQUVFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0U7SUFDRSxnQkFBZ0IsRUFBQSxFQUNqQjtFQUlMO0VBQ0UsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCxlQUFlLEVBQUE7RUFHakI7RUFFRSxtRkFBbUYsRUFBQTtFQUlyRjtFQUdFLG1GQUFtRjtFQUNuRixjQUFjLEVBQUE7RUFHaEI7RUFDRSx1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsZUFBZTtFQUNmLFdBQ0YsRUFBQTtFQUVBO0VBQ0UscUNBQXFDO0VBQ3JDLGdDQUFnQyxFQUFBO0VBR2xDOzs7Ozs7O0VDeERFIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL3JlcG9ydHMtZGVidG9ycy1yZWxlYXNlLWNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5hZGRyZXNzLWNvbnRhaW5lciB7XHJcbiAgbWF4LXdpZHRoOiA0MDBweDtcclxuICB3aWR0aDogMTAwJTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZDogI0Y5RjlGOTtcclxuICBwYWRkaW5nOiAyNXB4O1xyXG4gIG1hcmdpbjogMTBweDtcclxuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI0KTtcclxuXHJcbiAgZmllbGRzZXQge1xyXG4gICAgYm9yZGVyOiBtZWRpdW0gbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luOiAwIDAgMTBweDtcclxuICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi8qIExhcmdlICovXHJcbi5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtcclxuICAvL2hlaWdodDogMjVweDtcclxufVxyXG5cclxuLmZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuXHJcbiAgLmNvbnRyb2wtbGFiZWwge1xyXG4gICAgcGFkZGluZzogLjEwcmVtIC41MHJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgZmxleDogbm9uZTtcclxuXHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gICAgbWluLXdpZHRoOiAyMDBweDtcclxuXHJcbiAgfVxyXG5cclxuICAuY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLnJvdyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiKDI1NSwgMjU1LCAyNTUpLCByZ2IoMjU1LCAyNTUsIDI1NSkgMTAlLCByZ2IoMjQ3LCAyNDcsIDI0NykpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxufVxyXG5cclxuLmNvbnRyb2wtbGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuIC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMnB4O1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4gIH1cclxuXHJcbiAgLnN1YnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDdweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogN3B4O1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tZ3JvdXAge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmNoZWNrYm94IHtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAuY29sLXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbiAgLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcclxuICAgIG1pbi13aWR0aDogMTUwcHg7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbi5maXJzdC1oZWFkZXItcm93IHtcclxuICBoZWlnaHQ6IDMzcHggIWltcG9ydGFudDtcclxuICBtYXJnaW4tbGVmdDogMHB4O1xyXG4gIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gIHBhZGRpbmctdG9wOiA5cHg7XHJcbiAgY29sb3I6ICM0NjNlM2U7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblxyXG4uYmctZ3JhZGllbnQtZ3JleSB7XHJcbiAgLy8gYmFja2dyb3VuZDogIzczNzk3YyBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjYTNhOGFkLCAjOWVhNmFmKSByZXBlYXQteCAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6ICM3Mzc5N2M0NyBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZGRkZGRkLCAjZWVlZWVlKSByZXBlYXQteCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuLmJnLWdyYWRpZW50LW92ZXJkdWUge1xyXG4gIC8vYmFja2dyb3VuZDogI2NkODE3YSBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjYzMzNTFlLCAjYzM0MjNjKSByZXBlYXQteCAhaW1wb3J0YW50O1xyXG5cclxuICBiYWNrZ3JvdW5kOiAjNzM3OTdjNDcgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2RkZGRkZCwgI2VlZWVlZSkgcmVwZWF0LXggIWltcG9ydGFudDtcclxuICBjb2xvcjogIzc0MTUwYztcclxufVxyXG5cclxuLnNlY29uZC1oZWFkZXItcm93IHtcclxuICBoZWlnaHQ6IDMzcHggIWltcG9ydGFudDtcclxuICBtYXJnaW4tbGVmdDogMHB4O1xyXG4gIHBhZGRpbmctdG9wOiA5cHg7XHJcbiAgY29sb3I6ICM0NjNlM2U7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIHdpZHRoOiAxMDAlXHJcbn1cclxuXHJcbi5ibHVlIHtcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiBjb3JuZmxvd2VyYmx1ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4vKlxyXG4ucGFnZS1jb250YWluZXIge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG4gIHdpZHRoOiA5OCU7XHJcbn0qL1xyXG4iLCIuYWRkcmVzcy1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xuICBwYWRkaW5nOiAyNXB4O1xuICBtYXJnaW46IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XG4gIC5hZGRyZXNzLWNvbnRhaW5lciBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiBtZWRpdW0gbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLyogTGFyZ2UgKi9cbi5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4uY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBmbGV4OiBub25lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4LWdyb3c6IDI7XG4gICAgbWluLXdpZHRoOiAyMDBweDsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4ucm93IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSAxMCUsICNmN2Y3ZjcpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuLmNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBtaW4td2lkdGg6IDE3MHB4OyB9XG5cbi5jb250cm9sLWRldGFpbCB7XG4gIHBhZGRpbmc6IDhweDsgfVxuICAuY29udHJvbC1kZXRhaWwgLm5hdi1saW5rIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XG4gIHBhZGRpbmc6IDJweDsgfVxuXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDAgMTBweDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZzogLjA1cmVtIC4yNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7Ki9cbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aWR0aDogMTIwcHg7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIG1pbi13aWR0aDogMTAwcHg7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleDogMztcbiAgICBmbGV4LWdyb3c6IDI7IH1cblxuLyogTWVkaXVtIHNjcmVlbnMgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgICAvKiBXaGVuIG9uIG1lZGl1bSBzaXplZCBzY3JlZW5zLCB3ZSBjZW50ZXIgaXQgYnkgZXZlbmx5IGRpc3RyaWJ1dGluZyBlbXB0eSBzcGFjZSBhcm91bmQgaXRlbXMgKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfSB9XG5cbi8qIFNtYWxsIHNjcmVlbnMgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgICAvKiBPbiBzbWFsbCBzY3JlZW5zLCB3ZSBhcmUgbm8gbG9uZ2VyIHVzaW5nIHJvdyBkaXJlY3Rpb24gYnV0IGNvbHVtbiAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuXG4ucm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uY29sdW1uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmNvbHVtbiBsYWJlbCB7XG4gICAgcGFkZGluZzogNXB4OyB9XG5cbi5zZXBhcmF0b3ItaHIge1xuICBtYXJnaW46IDdweCA1cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDsgfVxuXG4uc3Vic2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luLXRvcDogN3B4OyB9XG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XG4gIG1pbi1oZWlnaHQ6IDA7IH1cblxuLmNoZWNrYm94IHtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLmNvbC1yZXNldC1kZWZhdWx0IHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uY29sLXNldC1kZWZhdWx0IHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cblxuLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXG4uY29sLXNldC1kZWZhdWx0IC5idG4ge1xuICBtaW4td2lkdGg6IDE1MHB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sLWZvcm0tbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiA1cHg7IH0gfVxuXG4uZmlyc3QtaGVhZGVyLXJvdyB7XG4gIGhlaWdodDogMzNweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgcGFkZGluZy10b3A6IDlweDtcbiAgY29sb3I6ICM0NjNlM2U7XG4gIGZvbnQtc2l6ZTogMTNweDsgfVxuXG4uYmctZ3JhZGllbnQtZ3JleSB7XG4gIGJhY2tncm91bmQ6ICM3Mzc5N2M0NyBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZGRkZGRkLCAjZWVlZWVlKSByZXBlYXQteCAhaW1wb3J0YW50OyB9XG5cbi5iZy1ncmFkaWVudC1vdmVyZHVlIHtcbiAgYmFja2dyb3VuZDogIzczNzk3YzQ3IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNkZGRkZGQsICNlZWVlZWUpIHJlcGVhdC14ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNzQxNTBjOyB9XG5cbi5zZWNvbmQtaGVhZGVyLXJvdyB7XG4gIGhlaWdodDogMzNweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICBwYWRkaW5nLXRvcDogOXB4O1xuICBjb2xvcjogIzQ2M2UzZTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYmx1ZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBjb3JuZmxvd2VyYmx1ZSAhaW1wb3J0YW50OyB9XG5cbi8qXHJcbi5wYWdlLWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgd2lkdGg6IDk4JTtcclxufSovXG4iXX0= */\"","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { MatAccordion } from '@angular/material';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { count } from 'console';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { empty } from 'rxjs';\r\nimport { groupBy } from 'rxjs/operators';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { DebtorsReleaseData } from '../../../models/debtors-release-data.model';\r\nimport { DebtorsReleaseOverview, ICompanyTotals, ICustomerTotals, IDataDetails, IOperator } from '../../../models/debtors-release-overview.model';\r\nimport { DebtorsReleaseSummary } from '../../../models/debtors-release-summary.model';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { SysproUser } from '../../../models/syspro-user.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'reports-debtors-release',\r\n templateUrl: './reports-debtors-release-component.html',\r\n styleUrls: ['./reports-debtors-release-component.scss']\r\n})\r\nexport class ReportsDebtorsReleaseComponent implements OnInit {\r\n\r\n\r\n private loadingIndicator: boolean;\r\n\r\n columns: any[] = [];\r\n rows: DebtorsReleaseData[] = [];\r\n rowsCache: DebtorsReleaseData[] = [];\r\n\r\n rowsSummary: DebtorsReleaseSummary[] = [];\r\n rowsCacheSummary: DebtorsReleaseSummary[] = [];\r\n\r\n @ViewChild('netTemplate')\r\n netTemplate: TemplateRef;\r\n\r\n @ViewChild('totalNetMerchandiseCell') totalNetMerchandiseCell: TemplateRef;\r\n\r\n @ViewChild('gpTemplate')\r\n gpTemplate: TemplateRef;\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n operatorModel: IOperator;\r\n consolidatedDataSet: IOperator[] = [];\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n @ViewChild('accordion') Accordion: MatAccordion;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n\r\n @ViewChild('salesOrderModal')\r\n salesOrderModal: ModalDirective;\r\n\r\n @ViewChild('operators')\r\n private operators;\r\n\r\n @ViewChild('operatorSelector')\r\n private operatorSelector;\r\n allOperators: SysproUser[] = [];\r\n\r\n selectedBranch: string;\r\n selectedOperator: string;\r\n selectedCompany: string;\r\n selectedDocumentType: string;\r\n totalNetMerchandiseSumm: number;\r\n totalInvoiceCostSumm: string;\r\n totalInvoiceSumm: string;\r\n uniqueListOfOperators: DebtorsReleaseSummary[];\r\n public isCollapsed: boolean = true;\r\n consolidatedDataSetCache: IOperator[];\r\n\r\n selectedSalesOrder: string;\r\n reportTotalSales: number;\r\n reportTotalCount: number;\r\n \r\n\r\n constructor(private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute, private fowkesOnline: FowkesOnlineService) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.columns = [\r\n { prop: 'operator', name: 'Operator', width: 100, cellClass: \"left\" },\r\n { prop: 'company', name: 'Comp.', width: 100, cellClass: \"left\" },\r\n { prop: 'customer', name: 'Customer', width: 100, cellClass: \"left\" },\r\n { prop: 'customerName', name: 'Name', width: 200, cellClass: \"left\" },\r\n //{ prop: 'branch', name: 'Branch', width: 50, cellClass: \"left\", summaryFunc: () => null, summaryTemplate: this.totalNetMerchandiseCell },\r\n { prop: 'invoiceCount', name: 'Invoices', width: 80, cellClass: \"center\" },\r\n { prop: 'netSales', name: 'Total Net', width: 140, cellClass: \"right\", cellTemplate: this.netTemplate, summaryFunc: cells => this.summaryTotal(cells) }\r\n\r\n ];\r\n\r\n }\r\n\r\n summaryTotal(cells: number[]): string {\r\n const filteredCells = cells.filter(cell => !!cell);\r\n return filteredCells.reduce((sum, cell) => (sum += cell), 0).toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.selected = {\r\n startDate: moment().subtract(1, 'week').startOf('week'),\r\n endDate: moment().subtract(0, 'week').endOf('week')\r\n }\r\n\r\n\r\n this.columns = [\r\n { prop: 'operator', name: 'Operator', width: 100, cellClass: \"left\" },\r\n { prop: 'company', name: 'Comp.', width: 100, cellClass: \"left\" },\r\n { prop: 'customer', name: 'Customer', width: 100, cellClass: \"right\" },\r\n { prop: 'customerName', name: 'Name', width: 100, cellClass: \"right\" },\r\n //{ prop: 'branch', name: 'Branch', width: 50, cellClass: \"left\", summaryFunc: () => null, summaryTemplate: this.totalNetMerchandiseCell },\r\n { prop: 'invoiceCount', name: 'Invoices', width: 80, cellClass: \"left\" },\r\n { prop: 'netSales', name: 'Total Net', width: 140, cellClass: \"right\", cellTemplate: this.netTemplate, summaryFunc: cells => this.summaryTotal(cells) }\r\n\r\n ];\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.allBranches = [];\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.consolidatedDataSet = [];\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n this.sysproService.getDebtorsReleaseSummary(startD.toJSON(), endD.toJSON()).subscribe(x => this.onSummarySuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.getDebtorsReleaseData(startD.toJSON(), endD.toJSON()).subscribe(x => this.onDataSuccesful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n Reload() {\r\n if (this.selectedCompany && this.selectedCompany != \"ALL\") {\r\n\r\n this.rows = this.rowsCache.filter(x => x.company == this.selectedCompany);\r\n this.rowsSummary = this.rowsCacheSummary.filter(x => x.company == this.selectedCompany); \r\n\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n this.rowsSummary = this.rowsCacheSummary;\r\n }\r\n\r\n if (this.selectedBranch && this.selectedBranch != \"ALL\") {\r\n\r\n this.rows = this.rows.filter(x => x.branch == this.selectedBranch);\r\n this.rowsSummary = this.rowsSummary.filter(x => x.branch == this.selectedBranch);\r\n\r\n }\r\n else {\r\n this.rows = this.rows;\r\n this.rowsSummary = this.rowsSummary;\r\n }\r\n\r\n this.formatData();\r\n }\r\n \r\n\r\n onDataSuccesful(x: DebtorsReleaseData[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...details];\r\n\r\n if (this.selectedCompany && this.selectedCompany != \"ALL\") {\r\n\r\n this.rows = this.rowsCache.filter(x => x.company == this.selectedCompany);\r\n\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n\r\n if (this.selectedBranch && this.selectedBranch != \"ALL\") {\r\n\r\n this.rows = this.rows.filter(x => x.branch == this.selectedBranch);\r\n\r\n }\r\n else {\r\n this.rows = this.rows;\r\n }\r\n\r\n this.formatData();\r\n\r\n }\r\n else {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n private formatData() {\r\n\r\n this.consolidatedDataSet = [];\r\n var id = 0;\r\n var index = 0;\r\n\r\n this.reportTotalCount = this.rows.length;\r\n this.reportTotalSales = 0;\r\n this.rows.forEach(z => this.reportTotalSales += z.netMerchandise);\r\n\r\n var distinctOprators = Array.from(new Set(this.rows.map((item: any) => item.operator)));\r\n\r\n\r\n for (const operator of distinctOprators) {\r\n\r\n let emptyOperator: IOperator = {\r\n id: 0,\r\n operator: \"\",\r\n invoiceCountOperator: 0,\r\n username: \"\",\r\n invoiceValueOperator: 0,\r\n companyTotals: []\r\n };\r\n\r\n var totalOperator = 0;\r\n id++;\r\n emptyOperator.id = id;\r\n emptyOperator.operator = operator;\r\n\r\n var operatorDetailList = this.rows.filter(o => o.operator == operator);\r\n\r\n emptyOperator.invoiceCountOperator = operatorDetailList.length;\r\n operatorDetailList.forEach(o => totalOperator += o.netMerchandise);\r\n emptyOperator.invoiceValueOperator = totalOperator;\r\n\r\n var companyIndex = 0;\r\n // var distinctCompaniesForOperator = Array.from(new Set(operatorDetailList.map((item: any) => item.company)));\r\n const uniqueCompaniesForOperator = [...new Set(operatorDetailList.map(item => item.company))];\r\n\r\n for (var c = 0; c < uniqueCompaniesForOperator.length; c++) {\r\n\r\n var totalOperatorCompany = 0;\r\n var company = uniqueCompaniesForOperator[c];\r\n var companyDetailList = operatorDetailList.filter(o => o.company == company);\r\n let emptyCompany: ICompanyTotals = {\r\n company: \"\",\r\n companyInvoiceCount: 0,\r\n companySalesValue: 0,\r\n customerTotals: [],\r\n isCollapsed: true\r\n };\r\n\r\n emptyCompany.company = company;\r\n emptyCompany.companyInvoiceCount = companyDetailList.length;\r\n\r\n companyDetailList.forEach(a => totalOperatorCompany += a.netMerchandise);\r\n emptyCompany.companySalesValue = totalOperatorCompany;\r\n emptyCompany.isCollapsed = true;\r\n var customerIndex = 0;\r\n //var distictCustomersForCompany = Array.from(new Set(companyDetailList.map((c: any) => c.customer)));\r\n const uniqueCustomersForCompany = [...new Set(companyDetailList.map(item => item.customer))];\r\n\r\n\r\n for (var cust = 0; cust < uniqueCustomersForCompany.length; cust++) {\r\n var totalCustomerSales = 0;\r\n var customer = uniqueCustomersForCompany[cust];\r\n var customerDetailList = companyDetailList.filter(o => o.customer == customer);\r\n var firstRowForCustomer = customerDetailList[0];\r\n\r\n let emptyCustomer: ICustomerTotals = {\r\n customer: \"\",\r\n customerAvgSales: 0,\r\n customercreditLimit: 0,\r\n customercurrentBalance: 0,\r\n customercustomerOnHold: \"\",\r\n customerInvoiceCount: 0,\r\n customerName: \"\",\r\n masterAccount: \"\",\r\n customerOverLimit: 0,\r\n customerSalesValue: 0,\r\n isCollapsed: true,\r\n dataDetails: []\r\n };\r\n\r\n emptyCustomer.customer = customer;\r\n emptyCustomer.customerName = firstRowForCustomer.customerName;\r\n emptyCustomer.customercreditLimit = firstRowForCustomer.creditLimit;\r\n emptyCustomer.customerOverLimit = firstRowForCustomer.overLimit;\r\n emptyCustomer.customercurrentBalance = firstRowForCustomer.currentBalance;\r\n emptyCustomer.customercustomerOnHold = firstRowForCustomer.customerOnHold;\r\n emptyCustomer.customerAvgSales = firstRowForCustomer.avgSales3M;\r\n emptyCustomer.masterAccount = firstRowForCustomer.masterAccount;\r\n\r\n emptyCustomer.customerInvoiceCount = customerDetailList.length;\r\n customerDetailList.forEach(b => totalCustomerSales += b.netMerchandise);\r\n emptyCustomer.customerSalesValue = totalCustomerSales;\r\n\r\n var invoiceIndex = 0;\r\n\r\n emptyCustomer.dataDetails = [];\r\n for (var invoice of customerDetailList) {\r\n emptyCustomer.dataDetails.push({\r\n branch: invoice.branch,\r\n invoice: invoice.invoice,\r\n invoiceSalesValue: invoice.netMerchandise,\r\n invoiceDate: invoice.createDate\r\n });\r\n\r\n invoiceIndex++;\r\n }\r\n\r\n\r\n customerIndex++;\r\n emptyCompany.customerTotals.push(emptyCustomer);\r\n }\r\n emptyCompany.customerTotals.sort((a, b) => b.customerSalesValue - a.customerSalesValue);\r\n companyIndex++;\r\n emptyOperator.companyTotals.push(emptyCompany);\r\n }\r\n this.consolidatedDataSet.push(emptyOperator);\r\n index++;\r\n }\r\n\r\n this.consolidatedDataSetCache = this.consolidatedDataSet;\r\n }\r\n\r\n closeAllPanels() {\r\n this.Accordion.closeAll();\r\n }\r\n openAllPanels() {\r\n this.Accordion.openAll();\r\n }\r\n\r\n onSummarySuccesful(x: DebtorsReleaseSummary[]): void {\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.rowsCacheSummary = [...details];\r\n\r\n if (this.selectedCompany && this.selectedCompany != \"ALL\") {\r\n\r\n this.rowsSummary = this.rowsCacheSummary.filter(x => x.company == this.selectedCompany);\r\n\r\n }\r\n else {\r\n this.rowsSummary = this.rowsCacheSummary;\r\n }\r\n\r\n if (this.selectedBranch && this.selectedBranch != \"ALL\") {\r\n\r\n this.rowsSummary = this.rowsSummary.filter(x => x.branch == this.selectedBranch);\r\n\r\n }\r\n else {\r\n this.rowsSummary = this.rowsSummary;\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.consolidatedDataSet = this.consolidatedDataSetCache.filter(r => Utilities.searchArray(value, false, r.operator)); \r\n }\r\n else {\r\n this.consolidatedDataSet = this.consolidatedDataSetCache;\r\n }\r\n }\r\n\r\n\r\n //onSearchChangedCustomer(value: string) {\r\n // if (value != \"\") {\r\n // this.consolidatedDataSet = this.consolidatedDataSetCache.filter(\r\n // (x) =>\r\n // x.companyTotals.find(\r\n // (y) => y.customerTotals.find(\r\n // (z) => z.customer.toLowerCase().indexOf(value.toLowerCase()) > -1\r\n // )\r\n // )\r\n // );\r\n // }\r\n // else {\r\n // this.consolidatedDataSet = this.consolidatedDataSetCache;\r\n // }\r\n //}\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onOperatorsLoadSuccessful(operators: SysproUser[]): void {\r\n\r\n this.allOperators = [...this.allOperators, ...operators];\r\n setTimeout(() => {\r\n this.operatorSelector.refresh();\r\n });\r\n }\r\n\r\n\r\n onAppDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve company data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n\r\n this.loadData();\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.show = false;\r\n\r\n this.loadData();\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n\r\n this.loadData();\r\n }\r\n\r\n exportSummary() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Debtor\", \"Company\", \"Customer\", \"CustomerName\", \"Invoices\", \"Sales Ex Vat\",\r\n \"Customer Credit Limit\", \"Customer Current Balance\", \"Customer Avg Sales\"]\r\n };\r\n\r\n var filename = \"DebtorsSummary\";\r\n var selectRows = [...this.rowsSummary];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Debtor: row.operator, Company: row.company, Customer: row.customer, FullName: row.customerName,\r\n Invoices: row.invoiceCount, Sales: row.netSales, CreditLimit: row.creditLimit, Balance: row.currentBalance, AVG: row.avgSales3M\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n exportDetails() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Debtor\", \"Company\", \"Customer\", \"CustomerName\", \"Branch\", \"SalesRep\", \"RepName\", \"CreditLimit\", \"Date\", \"Invoice\", \"Sales Ex Vat\"]\r\n };\r\n\r\n var filename = \"DebtorsOrderDetails\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Debtor: row.operator, Company: row.company, Customer: row.customer, FullName: row.customerName, Branch: row.branch, SalesRep: row.salesRep, RepName: row.salesPersonName, CreditLimit: row.creditLimit,\r\n Date: row.createDate,\r\n Invoice: row.invoice, Sales: row.netMerchandise\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n previewSalesOrder(invoice: string, customer: string) {\r\n\r\n this.selectedSalesOrder = invoice;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != invoice) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, invoice);\r\n }\r\n\r\n if (!!this.selectedSalesOrder) {\r\n if (!this.salesOrderModal) {\r\n setTimeout(() => {\r\n if (this.salesOrderModal) {\r\n this.salesOrderModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.salesOrderModal.show();\r\n }\r\n }\r\n }\r\n\r\n salesOrderModalHide() {\r\n this.salesOrderModal.hide();\r\n }\r\n\r\n\r\n viewSalesOrder() {\r\n\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{value | date: 'yyyy/MM/dd '}}\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n View\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}} - {{warehouse}}\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WHTransaction TypeQty AdjustedOriginal QtyQty CapturedReferenceNoteOperatorNameEntry Date
{{row.warehouse}}{{row.trnTypeDescr}}{{row.trnQty | currency:' ':'symbol':'1.0-3'}}{{row.saveOrigQtyOnHand | currency:' ':'symbol':'1.0-3'}}{{row.saveQtyCaptured | currency:' ':'symbol':'1.0-3'}}{{row.reference}}{{row.saveReference}}{{row.addReference}}{{row.salesPersonName}}
{{row.entryDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n :host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell black {\\n background-color: black !important;\\n color: white !important; }\\n .datatable-header-cell {\\n display: flex !important;\\n align-items: center !important; }\\n .datatable-header-cell black {\\n background-color: black !important;\\n color: white !important; }\\n :host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row red {\\n background-color: red; }\\n :host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n :host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem; }\\n :host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n :host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline; }\\n input.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n .user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n .control-box {\\n margin-bottom: 5px; }\\n .search-box {\\n margin: 0; }\\n .nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n .user-disabled {\\n color: #777;\\n font-style: italic; }\\n .locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n .second-container {\\n height: calc(100vh - 500px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 100%;\\n margin-top: -20px;\\n background: white; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtaW52ZW50b3J5LWFkanVzdG1lbnRzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBO0VBTGpDO0lBT0ksa0NBQWtDO0lBQ2xDLHVCQUF1QixFQUFBO0VBRzNCO0VBQ0Usd0JBQXdCO0VBQ3hCLDhCQUE4QixFQUFBO0VBRmhDO0lBS0ksa0NBQWtDO0lBQ2xDLHVCQUF1QixFQUFBO0VBRzNCO0VBRUkscUJBQXFCLEVBQUE7RUFLekI7RUFDRSwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTtFQUo3QjtJQU9JLG1CQUFtQixFQUFBO0VBUHZCO0lBV0ksZ0JBQWdCO0lBQ2hCLDBCQUEwQixFQUFBO0VBWjlCO0lBZ0JJLDBCQUEwQixFQUFBO0VBSTlCO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBO0VBR3JCO0VBQ0ksMkJBQTJCO0VBQzNCLGlCQUFpQixFQUFBO0VBR3JCO0VBQ0ksa0JBQWtCLEVBQUE7RUFHdEI7RUFDSSxTQUFTLEVBQUE7RUFHYjtFQUNJLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7RUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7RUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7RUFHckI7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLGlCQUFpQjtFQUNqQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVwb3J0cy9yZXBvcnQtY29tcG9uZW50cy9yZXBvcnRzLWludmVudG9yeS1hZGp1c3RtZW50cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgYmxhY2sge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2sgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG4uZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xyXG5cclxuICBibGFjayB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvd3tcclxuICByZWR7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBoZWlnaHQ6IDI2cHg7XHJcbiAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxufVxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5zZWNvbmQtY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1MDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW4tdG9wOiAtMjBweDtcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxufVxyXG4iXX0= */\"","\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { InventoryMovements } from '../../../models/inventory-movements.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'reports-inventory-adjustments',\r\n templateUrl: './reports-inventory-adjustments.component.html',\r\n styleUrls: ['./reports-inventory-adjustments.component.scss']\r\n})\r\n\r\n \r\nexport class ReportsInventoryAdjustmentsComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Inventory[] = [];\r\n rowsCache: Inventory[] = [];\r\n\r\n columnsMovements: any[] = [];\r\n rowsMovements: InventoryMovements[] = [];\r\n rowsMovementsCache: InventoryMovements[] = [];\r\n\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n selectedBranch: string;\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n\r\n allBranches: Branch[] = [];\r\n\r\n @ViewChild('warehouses')\r\n private warehouses;\r\n @ViewChild('warehouseListSelector')\r\n private warehouseListSelector;\r\n allWarehouses: Branch[];\r\n selectedWarehouse: string;\r\n\r\n\r\n loadingIndicator: boolean;\r\n\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('sellpriceTemplate')\r\n sellpriceTemplate: TemplateRef;\r\n\r\n @ViewChild('unitCostTemplate')\r\n unitCostTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('referenceTemplate')\r\n referenceTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n @ViewChild('movementModal')\r\n movementModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n stockCode: string;\r\n\r\n id: string;\r\n cartId: string;\r\n customer: ArCustomer;\r\n stockCodedetail: Inventory;\r\n isNavigating: boolean;\r\n isSaving: boolean;\r\n cartSaved: boolean;\r\n cartlinenumber: number = 0;\r\n saveCount: number;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n isNavigatingTo: string;\r\n hasDataSheets: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n savedLineCount: number;\r\n isReloading: boolean;\r\n src: string;\r\n searchTerm: string = \"\";\r\n chkNew: boolean;\r\n chkSp: boolean;\r\n chkAlt: boolean;\r\n chkDis: any;\r\n chkUnmapped: boolean;\r\n chkAll: boolean;\r\n chkDt1: boolean;\r\n chkDt2: boolean;\r\n\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: Inventory[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n\r\n inventoryList: Inventory[];\r\n searchingOn: string;\r\n chkShortDescription: boolean;\r\n chkLongDescription: boolean;\r\n chkAnyDescription: boolean;\r\n hasAddDataSheets: boolean;\r\n buyerResponsible: string;\r\n warehouse: string;\r\n //show: boolean;\r\n //showSearch: boolean;\r\n selectedStockRow: Inventory;\r\n showselectedStockRow: boolean;\r\n show: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService, private reportService: ReportService, \r\n private router: Router, private route: ActivatedRoute, private numberPipe: CurrencyPipe, private fowkesOnline: FowkesOnlineService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.selected = {\r\n startDate: moment().subtract(0, 'year').startOf('year'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n //this.showSearch = true;\r\n this.SetDataGrid();\r\n\r\n this.loadData();\r\n }\r\n\r\n \r\n private SetDataGrid() {\r\n \r\n var variableWidth = 100;\r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: variableWidth, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 370, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n { prop: 'uom', name: 'UOM', width: 50, cellClass: \"center\" },\r\n { prop: 'warehouse', name: 'WH', width: 50, cellClass: \"center\" },\r\n { prop: 'availQty', name: 'Qty On Hand', width: 50, cellClass: \"right\" },\r\n { prop: 'binLoc', name: 'Bin', width: 70, cellClass: \"right\" },\r\n { prop: 'qtyOnOrder', name: 'Qty On Order', width: 70, cellClass: \"right\" },\r\n { prop: 'qtyInTransit', name: 'Qty In Transit', width: 50, cellClass: \"right\" },\r\n { prop: 'sellingPrice', name: 'Selling Price', width: 90, cellTemplate: this.priceTemplate, cellClass: \"right\", pipe: { transform: this.currencyPipe } },\r\n { prop: 'unitCost', name: 'Unit Cost', width: 90, cellTemplate: this.unitCostTemplate, cellClass: \"right\", pipe: { transform: this.currencyPipe } },\r\n ];\r\n\r\n this.columns.push({ name: 'View', width: 100, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n }\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n currencyPipe(value: any, ...args: any[]) {\r\n let updated = value.toFixed(2);\r\n updated += '';\r\n let x = updated.split('.');\r\n let x1 = x[0];\r\n let x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n //return value.toFixed(2);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n reset() {\r\n this.searchTerm = \"\";\r\n this.searchingOn = \"\";\r\n this.rows = [];\r\n this.rowsCache = [];\r\n this.rowsMovements = [];\r\n this.rowsMovementsCache = [];\r\n this.SetDataGrid();\r\n this.loadData();\r\n\r\n }\r\n\r\n loadData() {\r\n this.searchType = \"stock\";\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n if (this.loadCache == true) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n //setTimeout(() => {\r\n // this.branchesListSelector.refresh();\r\n //});\r\n this.selectedBranch = (this.selectedBranch ? this.selectedBranch : this.branchCode);\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n specificSearch() {\r\n\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.branchCode);\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchingOn = (this.chkAnyDescription && this.searchType == \"description\" ? \"STOCK\" :\r\n this.chkLongDescription && this.searchType == \"description\" ? \"LONGDESCRIPTION\" :\r\n (this.chkShortDescription && this.searchType == \"description\" ? \"SHORTDESCRIPTION\" : this.searchType));\r\n this.sysproService.getStockCodeSearchByCriteria(branch, this.searchingOn, this.searchText.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => this.onStockLoadSuccessful([x], false), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: Inventory[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n this.onStockLoadSuccessful([x], false);\r\n\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n \r\n onStockLoadSuccessful(inventory: any[], trim?: boolean) {\r\n\r\n this.inventoryList = inventory[0];\r\n\r\n this.inventoryList.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n stockCode.description = stockCode.shortDescription + ' - ' + stockCode.longDescription;\r\n //stockCode.sellingPrice = stockCode.sellingPrice.toFixed(2);\r\n });\r\n\r\n this.rowsCache = [...this.inventoryList];\r\n if (this.inventoryList.length >= 100 && trim) {\r\n this.rows = this.inventoryList.slice(0, 100);\r\n }\r\n else {\r\n this.rows = [...this.rowsCache];\r\n }\r\n\r\n this.isReloading = false;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n if (this.rows.length == 1) {\r\n this.showHistoryStockCode(this.rows[0]);\r\n }\r\n\r\n //this.showSearch = true;\r\n }\r\n\r\n\r\n showHistoryStockCode(row: Inventory) {\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.warehouse = this.selectedBranch; \r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n \r\n this.sysproService.getStockCodeMovementHistory(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onHistoryLoadSuccessful([x], row), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n onHistoryLoadSuccessful(history: any, row: Inventory): void {\r\n this.rowsMovements = [];\r\n this.rowsMovementsCache = [];\r\n\r\n this.selectedStockRow = row;\r\n\r\n var filteredData = history[0]; //this.rowsMovements.filter(r => r.trnType == 'P' || r.trnType == 'A' || r.trnType == 'H');\r\n if (this.selectedBranch != this.selectUndefinedOptionValue) {\r\n filteredData = filteredData.filter(b => b.warehouse == this.selectedBranch);\r\n }\r\n\r\n filteredData.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n });\r\n\r\n this.rowsMovementsCache = [...history[0]];\r\n this.rowsMovements = [...filteredData];\r\n\r\n this.isReloading = false;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.movementModal.show();\r\n this.allWarehouses = this.allBranches;\r\n setTimeout(() => {\r\n this.warehouseListSelector.refresh();\r\n });\r\n this.selectedWarehouse = this.selectedBranch;\r\n }\r\n\r\n changeWarehouse() {\r\n if (this.selectedWarehouse != this.selectUndefinedOptionValue) {\r\n this.rowsMovements = this.rowsMovementsCache.filter(b => b.warehouse == this.selectedWarehouse);\r\n }\r\n else {\r\n this.rowsMovements = this.rowsMovementsCache;\r\n }\r\n this.warehouse = this.selectedWarehouse;\r\n }\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n \r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return;}\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve inventory from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n filterNew() {\r\n this.chkNew = !this.chkNew;\r\n this.filterChanged();\r\n }\r\n\r\n filterSpecial() {\r\n this.chkSp = !this.chkSp;\r\n this.filterChanged();\r\n }\r\n\r\n filterDatasheet1() {\r\n this.chkDt1 = !this.chkDt1;\r\n this.filterChanged();\r\n }\r\n\r\n filterDatasheet2() {\r\n this.chkDt2 = !this.chkDt2;\r\n this.filterChanged();\r\n }\r\n\r\n filterAlternate() {\r\n this.chkAlt = !this.chkAlt;\r\n this.filterChanged();\r\n }\r\n\r\n filterDisabled() {\r\n this.chkDis = !this.chkDis;\r\n this.filterChanged();\r\n }\r\n\r\n filterUnmapped() {\r\n this.chkUnmapped = !this.chkUnmapped;\r\n this.filterChanged();\r\n }\r\n\r\n filterAll() {\r\n this.chkAll = !this.chkAll;\r\n this.filterChanged();\r\n }\r\n\r\n filterChanged() {\r\n //if (this.chkAll) {\r\n // this.chkAlt = false;\r\n // this.chkSp = false;\r\n // this.chkNew = false;\r\n // this.chkUnmapped = false;\r\n // this.chkDis = false;\r\n // this.chkDt1 = false;\r\n // this.chkDt2 = false;\r\n // this.searchTerm = \"\";\r\n // this.rows = this.rowsCache;\r\n // return;\r\n //}\r\n\r\n //if (this.chkAlt || this.chkSp || this.chkNew || this.chkUnmapped || this.chkDis || this.chkDt1 || this.chkDt2) {\r\n // this.rows = this.rowsCache.filter(m => (this.chkAlt ? m.showAlternate == true : '') ||\r\n // (this.chkSp ? (m.onSpecial == true || m.onSpecialFowkes == true) : '') ||\r\n // (this.chkDt1 ? m.dataSheetImage != \"\" : '') || (this.chkDt2 ? m.addSheetImage != \"\" : '') ||\r\n // (this.chkNew ? m.newArrival == true : '') ||\r\n // (this.chkUnmapped ? m.mapped == false : '') || (this.chkDis ? m.status == 'D' : ''));\r\n //}\r\n //else {\r\n // this.rows = this.rowsCache;\r\n //}\r\n \r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n var filterValues = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.description, r.stockCode, r.warehouse, r.impaCodes, r.extraProductInform, r.topSellerText)); \r\n\r\n this.rows = this._sortByTerm(filterValues, \"description\", value.toUpperCase());\r\n\r\n if (this.chkAlt || this.chkSp || this.chkNew || this.chkDt1 || this.chkDt2) {\r\n this.rows = this.rows.filter(m => (this.chkAlt ? m.showAlternate == true : '') ||\r\n (this.chkSp ? (m.onSpecial == true || m.onSpecialFowkes == true) : '') ||\r\n (this.chkDt1 ? m.dataSheetImage != \"\" : '') || (this.chkDt2 ? m.addSheetImage != \"\" : '') ||\r\n (this.chkNew ? m.newArrival == true : ''));\r\n }\r\n\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n _sortByTerm(data, key, term) {\r\n return data.sort(function (a, b) {\r\n return a[key].indexOf(term) < b[key].indexOf(term) ? -1 : 1;\r\n });\r\n }\r\n\r\n _sortByrank(array, searchKey, props) {\r\n if (!array || !searchKey || !props) return array;\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n var obj = array[i];\r\n obj.rankSearch = 0;\r\n for (var j = 0; j < props.length; j++) {\r\n var index = obj[props[j]].indexOf(searchKey);\r\n // i should probably spend time tweaking these arbitrary numbers\r\n // to find good values that produce the best results, but\r\n // here's what I have so far...\r\n obj.rankSearch += (index === -1 ? 15 : index) * ((j + 1) * 8);\r\n }\r\n }\r\n\r\n return array;\r\n }\r\n\r\n\r\n exportResults() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"WH\", \"Transaction Type\", \"Qty Adjusted\", \"Original Qty\", \"Qty Captured\",\r\n \"Reference\", \"Note\", \"Operator\", \"Name\", \"Entry Date\"]\r\n };\r\n\r\n var filename = \"StockControlReport_\" + this.stockCode;\r\n var selectRows = [...this.rowsMovements];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.entryDate).toISOString().split('T')[0];\r\n exportRows.push({\r\n StockCode: row.stockCode, WH: row.warehouse,\r\n Transaction: row.trnTypeDescr, Adjusted: row.trnQty, Original: row.saveOrigQtyOnHand, Captured: row.saveQtyCaptured,\r\n Reference: row.reference, Note: row.saveReference, Operator: row.addReference, Name: row.salesPersonName, Date: date\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n\r\n\r\n private refreshAll() {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.isReloading = true;\r\n this.alertService.startLoadingMessage(\"Reloading...\");\r\n\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.branchCode);\r\n this.sysproService.getInventoryForBranch(branch).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n //Check if all the lines have been saved\r\n if (this.saveCount == this.savedLineCount) {\r\n \r\n //Reload the inventory and cart details\r\n this.refreshAll();\r\n }\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n stockCodeModalHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n \r\n if (row.lineType != \"7\" && row.mapped) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.description;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.addSheetImage = row.addSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n this.stockCodedetail.onSpecialFowkes = row.onSpecialFowkes;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n editStockCode(row: Inventory) {\r\n if (row) {\r\n if (sessionStorage.getItem(localStorageActions.StockCode) != row.stockCode) {\r\n sessionStorage.setItem(localStorageActions.StockCode, row.stockCode);\r\n }\r\n this.router.navigate(['../../products'], { fragment: 'stockcodes' });\r\n } \r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey && row.mapped) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.alternateKey;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n\r\n openSpecials(row: Inventory) {\r\n if (!!row.specialsImage && row.specialsImage != \"\") {\r\n window.open(row.filePath + \"/SpecialImages/\" + row.specialsImage, \"_blank\");\r\n }\r\n }\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n\r\n onEmailLoadSuccessful() {\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasAddDataSheets = false;\r\n this.hasSpecials = false;\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n this.hasAddDataSheets = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage.length >= 1);\r\n\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.specialsImage.length >= 1 && (this.stockCodedetail.onSpecial || this.stockCodedetail.onSpecialFowkes));\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"), this.branchCode, this.application).subscribe(x => this.emailModal.show(), error => this.onDataLoadFailed(error));\r\n\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.accountService.currentUser.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim(); \r\n }\r\n\r\n if (this.hasAddDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc3 = this.stockCodedetail.addSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n titleCase(str) {\r\n str = str.toLowerCase();\r\n return str.replace(/\\w\\S/g, function (t) { return t.toUpperCase() });\r\n }\r\n\r\n viewInventory() {\r\n console.log(\"TEST\");\r\n\r\n }\r\n\r\n viewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n console.log(this.emailObject);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.emailObject.AddDoc1 = (this.attachDataSheets && this.hasDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n this.emailObject.AddDoc3 = (this.attachDataSheets && this.hasAddDataSheets ? this.emailObject.AddDoc3 : \"\");\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var stockCode = this.emailObject.Attachment.replace('/', '_').replace('+', '_').replace('%', '_');\r\n\r\n this.src = url;\r\n // window.open(this.src).print();\r\n // const blobUrl = window.URL.createObjectURL((test));\r\n //const iframeDoc = document.getElementsByTagName(\"iframe\")[0].contentWindow;\r\n // iframeDoc.src = url;\r\n\r\n\r\n\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = stockCode + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n calcOrderQty(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.orderqty = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n \r\n calcDisc(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.discountpercentage1 = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcPrice(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n \r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n get canManageInventory() {\r\n return this.accountService.userHasPermission(Permission.manageInventoryPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n View Movements\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}} - {{warehouse}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Qty AdjustedOriginal QtyQty CapturedUnit CostReferenceTransactionEntry Date
{{row.trnQty | currency:' ':'symbol':'1.0-3'}}{{row.saveOrigQtyOnHand | currency:' ':'symbol':'1.0-3'}}{{row.saveQtyCaptured | currency:' ':'symbol':'1.0-3'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.reference}}{{row.trnTypeDescr}}
{{row.entryDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{stockDescription}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
WarehouseQty AvailableUomSelling PriceUnit CostQty In TransitQty On OrderDue Date
{{row.warehouse}}{{row.qty | currency:' ':'symbol':'1.0-3'}}{{row.uom}}R {{row.sellingPrice | currency:' ':'symbol':'1.2'}}R {{row.unitCost | currency:' ':'symbol':'1.2'}}{{row.qtyInTransit | currency:' ':'symbol':'1.0-3'}}{{row.qtyOnOrder | currency:' ':'symbol':'1.0-3'}}
{{row.orderDueDate | date: 'dd MMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Buyer Responsible:    {{buyerResponsible}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Stock Code Detail

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

Email or View :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n.datatable-header-cell {\\n display: flex !important;\\n align-items: center !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row red {\\n background-color: red; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 0 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtaW52ZW50b3J5LW1vdmVtZW50cy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFFakM7RUFDRSx3QkFBd0I7RUFDeEIsOEJBQThCLEVBQUE7O0FBRWhDO0VBRUkscUJBQXFCLEVBQUE7O0FBR3pCO0VBQ0UsK0JBQStCO0VBQy9CLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCLEVBQUE7O0FBSjdCO0lBT0ksbUJBQW1CLEVBQUE7O0FBUHZCO0lBV0ksZ0JBQWdCO0lBQ2hCLDBCQUEwQixFQUFBOztBQVo5QjtJQWdCSSwwQkFBMEIsRUFBQTs7QUFJOUI7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0ksMkJBQTJCO0VBQzNCLGlCQUFpQixFQUFBOztBQUdyQjtFQUNJLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLFNBQVMsRUFBQTs7QUFHYjtFQUNJLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7O0FBR3BCO0VBQ0ksV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVwb3J0cy9yZXBvcnQtY29tcG9uZW50cy9yZXBvcnRzLWludmVudG9yeS1tb3ZlbWVudHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG59XHJcbi5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XHJcbn1cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93e1xyXG4gIHJlZHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcclxuICB9XHJcbn1cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBoZWlnaHQ6IDI2cHg7XHJcbiAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxufVxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuIl19 */\"","\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { Email } from 'src/app/models/email.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { WHAvailQTY } from 'src/app/models/inventory-wh.model';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { InventoryMovements } from '../../../models/inventory-movements.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'reports-inventory-movements',\r\n templateUrl: './reports-inventory-movements.component.html',\r\n styleUrls: ['./reports-inventory-movements.component.scss']\r\n})\r\n\r\n \r\nexport class ReportsInventoryMovementsComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Inventory[] = [];\r\n rowsCache: Inventory[] = [];\r\n\r\n\r\n rowsMovements: InventoryMovements[] = [];\r\n rowsMovementsCache: InventoryMovements[] = [];\r\n\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('stockCodeTemplate')\r\n stockCodeTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderQtyTemplate')\r\n orderQtyTemplate: TemplateRef;\r\n\r\n @ViewChild('discountTemplate')\r\n discountTemplate: TemplateRef;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('sellpriceTemplate')\r\n sellpriceTemplate: TemplateRef;\r\n\r\n @ViewChild('unitCostTemplate')\r\n unitCostTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n\r\n @ViewChild('warehouseModal')\r\n warehouseModal: ModalDirective;\r\n\r\n\r\n @ViewChild('movementModal')\r\n movementModal: ModalDirective;\r\n\r\n\r\n @ViewChild('stockCodeModal')\r\n stockCodeModal: ModalDirective;\r\n\r\n\r\n emailObject: Email = new Email();\r\n\r\n @ViewChild('emailModal')\r\n emailModal: ModalDirective;\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n stockCode: string;\r\n\r\n id: string;\r\n cartId: string;\r\n customer: ArCustomer;\r\n stockCodedetail: Inventory;\r\n isNavigating: boolean;\r\n isSaving: boolean;\r\n cartSaved: boolean;\r\n cartlinenumber: number = 0;\r\n saveCount: number;\r\n whDetail: WHAvailQTY[] = [];\r\n stockDescription: string;\r\n isNavigatingTo: string;\r\n hasDataSheets: boolean;\r\n hasSpecials: boolean;\r\n alternateKey: string;\r\n savedLineCount: number;\r\n isReloading: boolean;\r\n src: string;\r\n searchTerm: string = \"\";\r\n chkNew: boolean;\r\n chkSp: boolean;\r\n chkAlt: boolean;\r\n chkDis: any;\r\n chkUnmapped: boolean;\r\n chkAll: boolean;\r\n chkDt1: boolean;\r\n chkDt2: boolean;\r\n\r\n\r\n searchType: string = \"\";\r\n searchText: string = \"\";\r\n searchResults: Inventory[] = [];\r\n searchResultSelected: string = \"\";\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n attachDataSheets: boolean;\r\n attachSpecials: boolean;\r\n\r\n inventoryList: Inventory[];\r\n searchingOn: string;\r\n chkShortDescription: boolean;\r\n chkLongDescription: boolean;\r\n chkAnyDescription: boolean;\r\n hasAddDataSheets: boolean;\r\n buyerResponsible: string;\r\n warehouse: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService,\r\n private configurations: ConfigurationService, private sysproService: SysproService, private reportService: ReportService, \r\n private router: Router, private route: ActivatedRoute, private numberPipe: CurrencyPipe) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.SetDataGrid();\r\n\r\n this.loadData();\r\n }\r\n\r\n \r\n private SetDataGrid() {\r\n //this.isManagement = this.isManagement == true ? this.isManagement : false;\r\n\r\n //this.columns = [\r\n // { prop: 'stockCode', name: 'StockCode', width: 100, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n // { prop: 'description', name: 'Description', width: 400, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n // { prop: 'availQty', name: 'Qty On Hand', width: 50, cellClass: \"right\" },\r\n // { prop: 'binLoc', name: 'Bin', width: 60, cellClass: \"right\" },\r\n // { prop: 'orderqty', name: 'Order Qty', width: 60, cellTemplate: this.orderQtyTemplate },\r\n // { prop: 'uom', name: 'UOM', width: 50, cellClass: \"center\" },\r\n // { prop: 'sellingPrice', name: 'Price (excl)', width: 100, cellTemplate: this.priceTemplate },\r\n // { prop: 'discountpercentage1', name: 'Disc
(%)', width: 60, cellTemplate: this.discountTemplate },\r\n // { prop: 'lineTotal', name: 'Total (excl)', width: 90, cellTemplate: this.totalTemplate, cellClass: \"right\" }\r\n //];\r\n\r\n //if (this.isManagement) {\r\n\r\n var variableWidth = this.canManageInventory ? 100 : 160;\r\n this.columns = [\r\n { prop: 'stockCode', name: 'StockCode', width: variableWidth, cellTemplate: this.stockCodeTemplate, cellClass: \"left\" },\r\n { prop: 'description', name: 'Description', width: 370, cellTemplate: this.descriptionTemplate, cellClass: \"left\" },\r\n { prop: 'uom', name: 'UOM', width: 50, cellClass: \"center\" },\r\n { prop: 'warehouse', name: 'WH', width: 50, cellClass: \"center\" },\r\n { prop: 'availQty', name: 'Qty On Hand', width: 50, cellClass: \"right\" },\r\n { prop: 'binLoc', name: 'Bin', width: 70, cellClass: \"right\" },\r\n { prop: 'qtyOnOrder', name: 'Qty On Order', width: 70, cellClass: \"right\" },\r\n { prop: 'qtyInTransit', name: 'Qty In Transit', width: 50, cellClass: \"right\" },\r\n { prop: 'sellingPrice', name: 'Selling Price', width: 90, cellTemplate: this.priceTemplate, cellClass: \"right\", pipe: { transform: this.currencyPipe } },\r\n { prop: 'unitCost', name: 'Unit Cost', width: 90, cellTemplate: this.unitCostTemplate, cellClass: \"right\", pipe: { transform: this.currencyPipe } }\r\n ];\r\n\r\n if (this.canManageInventory) {\r\n this.columns.push({ name: 'View Movements', width: 100, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n }\r\n //}\r\n }\r\n\r\n currencyPipe(value: any, ...args: any[]) {\r\n let updated = value.toFixed(2);\r\n updated += '';\r\n let x = updated.split('.');\r\n let x1 = x[0];\r\n let x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n //return value.toFixed(2);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n reset() {\r\n this.chkShortDescription = false;\r\n this.chkLongDescription = false;\r\n this.chkAnyDescription = false;\r\n this.chkNew = false;\r\n this.chkSp = false;\r\n this.chkAlt = false;\r\n this.chkDis = false;\r\n this.chkUnmapped = false;\r\n this.chkDt1 = false;\r\n this.chkDt2 = false;\r\n this.chkAll = false;\r\n this.searchTerm = \"\";\r\n this.searchingOn = \"\";\r\n this.rows = [];\r\n this.rowsCache = [];\r\n this.SetDataGrid();\r\n this.loadData();\r\n\r\n }\r\n\r\n loadData() {\r\n this.searchType = \"description\";\r\n\r\n this.chkShortDescription = true;\r\n this.chkLongDescription = false;\r\n this.chkAnyDescription = false;\r\n\r\n\r\n if (this.loadCache == true) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchingOn = (this.chkAnyDescription && this.searchType == \"description\" ? \"STOCK\" :\r\n this.chkLongDescription && this.searchType == \"description\" ? \"LONGDESCRIPTION\" :\r\n (this.chkShortDescription && this.searchType == \"description\" ? \"SHORTDESCRIPTION\" : this.searchType));\r\n this.sysproService.getStockCodeSearchByCriteria(this.branchCode, this.searchingOn, this.searchText.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(\r\n x => this.onStockLoadSuccessful([x], false), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: Inventory[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x;\r\n this.onStockLoadSuccessful([x], false);\r\n\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n get loadCache(): boolean {\r\n return this.configurations.loadCache;\r\n }\r\n \r\n onStockLoadSuccessful(inventory: any[], trim?: boolean) {\r\n\r\n this.inventoryList = inventory[0];\r\n\r\n this.inventoryList.forEach((stockCode, index, inventory) => {\r\n (stockCode).index = index + 1;\r\n stockCode.description = stockCode.shortDescription + ' - ' + stockCode.longDescription;\r\n //stockCode.sellingPrice = stockCode.sellingPrice.toFixed(2);\r\n });\r\n\r\n this.rowsCache = [...this.inventoryList];\r\n if (this.inventoryList.length >= 100 && trim) {\r\n this.rows = this.inventoryList.slice(0, 100);\r\n }\r\n else {\r\n this.rows = [...this.rowsCache];\r\n }\r\n\r\n this.isReloading = false;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n \r\n }\r\n\r\n\r\n onWHLoadSuccessful(whDetail: any) {\r\n this.whDetail.push(new WHAvailQTY());\r\n \r\n console.log(whDetail);\r\n if (whDetail) {\r\n this.whDetail = whDetail[0];\r\n this.buyerResponsible = this.whDetail[0].buyerResponsible;\r\n this.warehouseModal.show();\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(error.status);\r\n if (error.status == 404) { return;}\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve inventory from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n filterNew() {\r\n this.chkNew = !this.chkNew;\r\n this.filterChanged();\r\n }\r\n\r\n filterSpecial() {\r\n this.chkSp = !this.chkSp;\r\n this.filterChanged();\r\n }\r\n\r\n filterDatasheet1() {\r\n this.chkDt1 = !this.chkDt1;\r\n this.filterChanged();\r\n }\r\n\r\n filterDatasheet2() {\r\n this.chkDt2 = !this.chkDt2;\r\n this.filterChanged();\r\n }\r\n\r\n filterAlternate() {\r\n this.chkAlt = !this.chkAlt;\r\n this.filterChanged();\r\n }\r\n\r\n filterDisabled() {\r\n this.chkDis = !this.chkDis;\r\n this.filterChanged();\r\n }\r\n\r\n filterUnmapped() {\r\n this.chkUnmapped = !this.chkUnmapped;\r\n this.filterChanged();\r\n }\r\n\r\n filterAll() {\r\n this.chkAll = !this.chkAll;\r\n this.filterChanged();\r\n }\r\n\r\n filterChanged() {\r\n if (this.chkAll) {\r\n this.chkAlt = false;\r\n this.chkSp = false;\r\n this.chkNew = false;\r\n this.chkUnmapped = false;\r\n this.chkDis = false;\r\n this.chkDt1 = false;\r\n this.chkDt2 = false;\r\n this.searchTerm = \"\";\r\n this.rows = this.rowsCache;\r\n return;\r\n }\r\n\r\n if (this.chkAlt || this.chkSp || this.chkNew || this.chkUnmapped || this.chkDis || this.chkDt1 || this.chkDt2) {\r\n this.rows = this.rowsCache.filter(m => (this.chkAlt ? m.showAlternate == true : '') ||\r\n (this.chkSp ? (m.onSpecial == true || m.onSpecialFowkes == true) : '') ||\r\n (this.chkDt1 ? m.dataSheetImage != \"\" : '') || (this.chkDt2 ? m.addSheetImage != \"\" : '') ||\r\n (this.chkNew ? m.newArrival == true : '') ||\r\n (this.chkUnmapped ? m.mapped == false : '') || (this.chkDis ? m.status == 'D' : ''));\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n \r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n var filterValues = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.description, r.stockCode, r.warehouse, r.impaCodes, r.extraProductInform, r.topSellerText)); \r\n\r\n this.rows = this._sortByTerm(filterValues, \"description\", value.toUpperCase());\r\n\r\n if (this.chkAlt || this.chkSp || this.chkNew || this.chkDt1 || this.chkDt2) {\r\n this.rows = this.rows.filter(m => (this.chkAlt ? m.showAlternate == true : '') ||\r\n (this.chkSp ? (m.onSpecial == true || m.onSpecialFowkes == true) : '') ||\r\n (this.chkDt1 ? m.dataSheetImage != \"\" : '') || (this.chkDt2 ? m.addSheetImage != \"\" : '') ||\r\n (this.chkNew ? m.newArrival == true : ''));\r\n }\r\n\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n _sortByTerm(data, key, term) {\r\n return data.sort(function (a, b) {\r\n return a[key].indexOf(term) < b[key].indexOf(term) ? -1 : 1;\r\n });\r\n }\r\n\r\n _sortByrank(array, searchKey, props) {\r\n if (!array || !searchKey || !props) return array;\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n var obj = array[i];\r\n obj.rankSearch = 0;\r\n for (var j = 0; j < props.length; j++) {\r\n var index = obj[props[j]].indexOf(searchKey);\r\n // i should probably spend time tweaking these arbitrary numbers\r\n // to find good values that produce the best results, but\r\n // here's what I have so far...\r\n obj.rankSearch += (index === -1 ? 15 : index) * ((j + 1) * 8);\r\n }\r\n }\r\n\r\n return array;\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"UOM\", \"WH\", \"Qty On Hand\", \"Bin\", \"Qty On Order\", \"Qty In Transit\",\r\n \"Selling Price\", \"Unit Cost\", \"Brand\", \"StockCodeImage\", \"DataSheetImage\", \"DataSheetImage2\", \"SpecialsImage\", \"Status\",\r\n \"NewArrival\", \"OnSpecial\", \"ShowAlternate\", \"AlternateKey\", \"Mapped\", \"Category\", \"ExtraProductInfo\"]\r\n };\r\n\r\n var filename = \"InventoryList\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode, Description: row.description, UOM: row.uom, WH: row.warehouse,\r\n QtyOnHand: row.qtyOnHand, Bin: row.binLoc, QtyOnOrder: row.qtyOnOrder, QtyInTransit: row.qtyInTransit,\r\n SellingPrice: row.sellingPrice, UnitCost: row.unitCost, Brand: row.brandName, StockCodeImage: row.stockCodeImage,\r\n DataSheetImage: row.dataSheetImage, DataSheetImage2: row.addSheetImage, SpecialsImage: row.specialsImage, Status: row.status,\r\n NewArrival: row.newArrival, OnSpecial: row.onSpecial, ShowAlternate: row.showAlternate,\r\n AlternateKey: row.alternateKey, Mapped: row.mapped, Category: row.categoryName, ExtraProductInfo: row.extraProductInform\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n\r\n metaList() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"StockCode\", \"Description\", \"UOM\", \"WH\", \"Qty On Hand\", \"Bin\", \"Qty On Order\", \"Qty In Transit\",\r\n \"Selling Price\", \"Unit Cost\", \"Brand\", \"StockCodeImage\", \"DataSheetImage\", \"DataSheetImage2\", \"SpecialsImage\", \"Status\",\r\n \"NewArrival\", \"OnSpecial\", \"ShowAlternate\", \"AlternateKey\", \"Mapped\", \"Category\", \"ExtraProductInfo\"]\r\n };\r\n\r\n var filename = \"InventoryList\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n StockCode: row.stockCode, Description: row.description, UOM: row.uom, WH: row.warehouse,\r\n QtyOnHand: row.qtyOnHand, Bin: row.binLoc, QtyOnOrder: row.qtyOnOrder, QtyInTransit: row.qtyInTransit,\r\n SellingPrice: row.sellingPrice, UnitCost: row.unitCost, Brand: row.brandName, StockCodeImage: row.stockCodeImage,\r\n DataSheetImage: row.dataSheetImage, DataSheetImage2: row.addSheetImage, SpecialsImage: row.specialsImage, Status: row.status,\r\n NewArrival: row.newArrival, OnSpecial: row.onSpecial, ShowAlternate: row.showAlternate,\r\n AlternateKey: row.alternateKey, Mapped: row.mapped, Category: row.categoryName, ExtraProductInfo: row.extraProductInform\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n private refreshAll() {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.isReloading = true;\r\n this.alertService.startLoadingMessage(\"Reloading...\");\r\n this.sysproService.getInventoryForBranch(this.branchCode).subscribe(x => this.onStockLoadSuccessful([x], true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n //Check if all the lines have been saved\r\n if (this.saveCount == this.savedLineCount) {\r\n \r\n //Reload the inventory and cart details\r\n this.refreshAll();\r\n }\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n stockCodeModalHide() {\r\n this.stockCodedetail = null;\r\n this.stockCodeModal.hide();\r\n }\r\n\r\n showStockDetail(row: any, event) {\r\n \r\n if (row.lineType != \"7\" && row.mapped) {\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.stockCode;\r\n this.stockDescription = row.description;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n this.stockCodedetail.dataSheetImage = row.dataSheetImage;\r\n this.stockCodedetail.addSheetImage = row.addSheetImage;\r\n this.stockCodedetail.specialsImage = row.specialsImage;\r\n this.stockCodedetail.onSpecial = row.onSpecial;\r\n this.stockCodedetail.onSpecialFowkes = row.onSpecialFowkes;\r\n this.stockCodedetail.filePath = row.filePath;\r\n\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n showHistoryStockCode(row: Inventory) {\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.warehouse = row.warehouse;\r\n this.sysproService.getStockCodeMovementHistory(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onHistoryLoadSuccessful([x], row), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n onHistoryLoadSuccessful(history: any, row: Inventory): void {\r\n\r\n this.rowsMovements.push(new InventoryMovements());\r\n\r\n if (history) {\r\n this.rowsMovements = history[0];\r\n this.movementModal.show();\r\n }\r\n\r\n }\r\n\r\n editStockCode(row: Inventory) {\r\n if (row) {\r\n if (sessionStorage.getItem(localStorageActions.StockCode) != row.stockCode) {\r\n sessionStorage.setItem(localStorageActions.StockCode, row.stockCode);\r\n }\r\n this.router.navigate(['../../products'], { fragment: 'stockcodes' });\r\n } \r\n }\r\n\r\n openAlternate(row: Inventory, event) {\r\n if (row && row.alternateKey && row.mapped) {\r\n this.stockDescription = \"Alternate StockCode: \" + row.alternateKey;\r\n this.stockCodedetail = new Inventory();\r\n this.stockCodedetail.stockCode = row.alternateKey;\r\n this.stockCode = this.stockCodedetail.stockCode;\r\n if (!!this.stockCodedetail.stockCode) {\r\n if (!this.stockCodeModal) {\r\n setTimeout(() => {\r\n if (this.stockCodeModal) {\r\n this.stockCodeModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.stockCodeModal.show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n openDataSheet(dataSheet: string) {\r\n window.open(this.stockCodedetail.filePath + \"/DataSheetImages/\" + dataSheet, \"_blank\");\r\n }\r\n\r\n\r\n openSpecials(row: Inventory) {\r\n if (!!row.specialsImage && row.specialsImage != \"\") {\r\n window.open(row.filePath + \"/SpecialImages/\" + row.specialsImage, \"_blank\");\r\n }\r\n }\r\n\r\n showWHDetail(row: Inventory, event) {\r\n console.log(row);\r\n if (row) {\r\n this.stockDescription = row.stockCode + \": \" + row.description;\r\n this.sysproService.getStockCodeAvailableQuantities(row.stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onWHLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n\r\n onEmailLoadSuccessful() {\r\n var stockCode = this.stockCodedetail.stockCode;\r\n var description = this.stockDescription;\r\n\r\n this.attachDataSheets = false;\r\n this.attachSpecials = false;\r\n this.hasDataSheets = false;\r\n this.hasAddDataSheets = false;\r\n this.hasSpecials = false;\r\n\r\n this.hasDataSheets = (this.stockCodedetail.dataSheetImage && this.stockCodedetail.dataSheetImage.length >= 1);\r\n this.hasAddDataSheets = (this.stockCodedetail.addSheetImage && this.stockCodedetail.addSheetImage.length >= 1);\r\n\r\n this.hasSpecials = (this.stockCodedetail.specialsImage && this.stockCodedetail.specialsImage.length >= 1 && (this.stockCodedetail.onSpecial || this.stockCodedetail.onSpecialFowkes));\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.reportService.getInventoryPDF(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\"), this.branchCode, this.application).subscribe(x => this.emailModal.show(), error => this.onDataLoadFailed(error));\r\n\r\n this.emailObject.RecepientName = \"\";\r\n this.emailObject.RecepientEmail = this.accountService.currentUser.email;\r\n this.emailObject.CC = \"\";\r\n this.emailObject.BCC = \"\";\r\n this.emailObject.Subject = \"Inventory Item: \" + description;\r\n this.emailObject.SenderName = this.accountService.currentUser.fullName;\r\n this.emailObject.SenderEmail = this.accountService.currentUser.email;\r\n this.emailObject.SenderBranch = this.branchCode;\r\n this.emailObject.SenderCompany = this.application;\r\n this.emailObject.Attachment = stockCode;\r\n this.emailObject.Bod = \"Please find attached PDF that can be viewed with any standard PDF reader.\";\r\n this.emailObject.EmailType = \"Inventory\";\r\n\r\n if (this.hasDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc1 = this.stockCodedetail.dataSheetImage.trim(); \r\n }\r\n\r\n if (this.hasAddDataSheets) {\r\n this.attachDataSheets = true;\r\n this.emailObject.AddDoc3 = this.stockCodedetail.addSheetImage.trim();\r\n }\r\n\r\n if (this.hasSpecials) {\r\n this.attachSpecials = true;\r\n this.emailObject.AddDoc2 = this.stockCodedetail.specialsImage.trim();\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n titleCase(str) {\r\n str = str.toLowerCase();\r\n return str.replace(/\\w\\S/g, function (t) { return t.toUpperCase() });\r\n }\r\n\r\n viewInventory() {\r\n console.log(\"TEST\");\r\n\r\n }\r\n\r\n viewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, false), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n previewPDF() {\r\n var stockCode = this.emailObject.Attachment;\r\n this.reportService.getFileStreamInventory(stockCode.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.onFileSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n emailPDF() {\r\n\r\n console.log(this.emailObject);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.emailObject.AddDoc1 = (this.attachDataSheets && this.hasDataSheets ? this.emailObject.AddDoc1 : \"\");\r\n this.emailObject.AddDoc2 = (this.attachSpecials ? this.emailObject.AddDoc2 : \"\");\r\n this.emailObject.AddDoc3 = (this.attachDataSheets && this.hasAddDataSheets ? this.emailObject.AddDoc3 : \"\");\r\n this.sysproService.sendEmail(this.emailObject).subscribe(x => this.onEmailSentSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onEmailSentSuccessful(x: Email): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', `Email sent successfully`, MessageSeverity.success);\r\n this.emailModal.hide();\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n var stockCode = this.emailObject.Attachment.replace('/', '_').replace('+', '_').replace('%', '_');\r\n\r\n this.src = url;\r\n // window.open(this.src).print();\r\n // const blobUrl = window.URL.createObjectURL((test));\r\n //const iframeDoc = document.getElementsByTagName(\"iframe\")[0].contentWindow;\r\n // iframeDoc.src = url;\r\n\r\n\r\n\r\n //const fileUrl = URL.createObjectURL(newBlob);\r\n //window.location.href = fileUrl;\r\n\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = stockCode + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n calcOrderQty(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.orderqty = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n \r\n calcDisc(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.discountpercentage1 = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n\r\n\r\n calcPrice(row: Inventory, event) {\r\n var val = event.target.value;\r\n row.sellingPrice = val;\r\n\r\n let total = (row.orderqty * (row.sellingPrice / row.priceConvFac)) * ((100 - row.discountpercentage1) / 100);\r\n row.lineTotal = total;\r\n }\r\n \r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n get canManageInventory() {\r\n return this.accountService.userHasPermission(Permission.manageInventoryPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value | date: 'dd-MMM-yyyy h:mm a'}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}} \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n font-weight: bold;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtaW52b2ljZS1yZXByaW50LWNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1pbnZvaWNlLXJlcHJpbnQtY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7RUFDWiwwRUFBMEUsRUFBQTtFQVA1RTtJQVVJLDhCQUE4QjtJQUM5QixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLFVBQVU7SUFDVixXQUFXLEVBQUE7RUFJZixVQUFBO0VBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCO0VBQ3ZCLDZDQUEwQyxFQUFBO0VBSTVDO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixVQUFVLEVBQUE7RUFkZDtJQW1CSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0VBckJwQjtJQTBCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQjtFQUNFLHNCQUFzQjtFQUN0Qiw0REFBaUc7RUFDakcsa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxZQUFZLEVBQUE7RUFEZDtJQUlJLFVBQVUsRUFBQTtFQUtkO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUIsRUFBQTtFQUV6QjtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQjttQ0N6QitCO0lEMkIvQixpQkFBaUI7SUFDakIsWUFBWSxFQUFBO0VBYmhCO0lBaUJJLGtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBQTtFQWxCcEI7SUFzQkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEIsbUJBQUE7RUFDQTtFQUNFO0lBQ0UsK0ZBQUE7SUFDQSw2QkFBNkIsRUFBQSxFQUM5QjtFQUdILGtCQUFBO0VBQ0E7RUFDRTtJQUNFLHNFQUFBO0lBQ0Esc0JBQXNCLEVBQUEsRUFDdkI7RUFJSDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLFdBQVcsRUFBQTtFQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixPQUFPO0VBQ1AsV0FBVyxFQUFBO0VBSmI7SUFPSSxZQUFZLEVBQUE7RUFJZDtFQUNFLGVBQWU7RUFDZix3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGVBQWU7RUFDZixpQ0FBaUMsRUFBQTtFQUduQztFQUNFLGVBQWUsRUFBQTtFQUdqQjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsY0FBYyxFQUFBO0VBR2hCO0VBQ0UsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxpQkFBaUIsRUFBQTtFQUduQjs7RUFFRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFO0lBQ0UsZ0JBQWdCLEVBQUEsRUFDakIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1pbnZvaWNlLXJlcHJpbnQtY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmFkZHJlc3MtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xyXG4gIHBhZGRpbmc6IDI1cHg7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xyXG5cclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyogTGFyZ2UgKi9cclxuLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xyXG4gIC8vaGVpZ2h0OiAyNXB4O1xyXG59XHJcblxyXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICBmbGV4OiBub25lO1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4ucm93IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4uY29udHJvbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMnB4O1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4gIH1cclxuXHJcbiAgLnN1YnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDdweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogN3B4O1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tZ3JvdXAge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmNoZWNrYm94IHtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAuY29sLXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbiAgLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcclxuICAgIG1pbi13aWR0aDogMTUwcHg7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4iLCIuYWRkcmVzcy1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xuICBwYWRkaW5nOiAyNXB4O1xuICBtYXJnaW46IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XG4gIC5hZGRyZXNzLWNvbnRhaW5lciBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiBtZWRpdW0gbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLyogTGFyZ2UgKi9cbi5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4uY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBmbGV4OiBub25lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4LWdyb3c6IDI7XG4gICAgbWluLXdpZHRoOiAyMDBweDsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4ucm93IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSAxMCUsICNmN2Y3ZjcpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuLmNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWluLXdpZHRoOiAxNzBweDsgfVxuXG4uY29udHJvbC1kZXRhaWwge1xuICBwYWRkaW5nOiA4cHg7IH1cbiAgLmNvbnRyb2wtZGV0YWlsIC5uYXYtbGluayB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDEyMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBTbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5jb2x1bW4gbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDsgfVxuXG4uc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7IH1cblxuLnN1YnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5sYXN0LXNlcGFyYXRvci1ociB7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBtaW4taGVpZ2h0OiAwOyB9XG5cbi5jaGVja2JveCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmNvbC1zZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcbiAgbWluLXdpZHRoOiAxNTBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1mb3JtLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4OyB9IH1cbiJdfQ== */\"","import { Component, OnInit, ViewChild, Input, TemplateRef } from '@angular/core';\r\n//import { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { DatepickerModule, BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { NgxDateRangePickerOptions } from 'ngx-daterangepicker';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\n//import { Component } from '@angular/common';\r\n//import { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n//import { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n//import { User } from '../../../models/user.model';\r\n//import { UserEdit } from '../../../models/user-edit.model';\r\n//import { Role } from '../../../models/role.model';\r\n//import { Branch } from '../../../models/branch.model';\r\n//import { ArCustomer } from '../../../models/arcustomer.model';\r\n//import { CustomerPayments } from 'src/app/models/customer-payments.model';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\n//import { CartHeader } from '../../../models/cart-header.model';\r\n//import { ArCustomerEdit } from '../../../models/arcustomer-edit.model';\r\n//import { SalesPerson } from '../../../models/salesperson.model';\r\n//import { AspnetApplications } from '../../../models/applications.model';\r\n//import { Permission } from '../../../models/permission.model';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { InvoiceReprint } from '../../../models/invoice-reprint.model';\r\n//import { ArNarration } from 'src/app/models/arnarration.model';\r\n//import { localStorageActions } from 'src/app/models/enums';\r\n//import { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n\r\n\r\n@Component({\r\n selector: 'reports-invoice-reprint',\r\n templateUrl: './reports-invoice-reprint-component.html',\r\n styleUrls: ['./reports-invoice-reprint-component.scss']\r\n})\r\nexport class ReportsInvoiceReprintComponent\r\n implements OnInit {\r\n\r\n columns: any[] = [];\r\n\r\n rows: InvoiceReprint[] = [];\r\n\r\n invoiceReprintList: InvoiceReprint[];\r\n\r\n rowsCache: InvoiceReprint[] = [];\r\n\r\n loadingIndicator: boolean;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n ranges = {\r\n 'Today': [moment().startOf('day').endOf('day'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n show: boolean;\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n @ViewChild('bsDatepicker')\r\n bsDatepicker: BsDatepickerModule;\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n\r\n @ViewChild('optionsList')\r\n private optionsList;\r\n\r\n @ViewChild('optionsListSelector')\r\n private optionsListSelector;\r\n\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n selectedBranch: string;\r\n selectedOption: string;\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n constructor(private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private fowkesOnline: FowkesOnlineService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.columns = [\r\n { prop: 'invoice', name: 'Invoice', width: 100, cellClass: \"left\" },\r\n { prop: 'displayStatus', name: 'Print', width: 80, cellClass: \"left\" },\r\n { prop: 'reprintDate', name: 'Print Date', width: 180, cellClass: \"left\", cellTemplate: this.dateTemplate },\r\n { prop: 'originalOperator', name: 'Original Operator', width: 180, cellClass: \"left\" },\r\n { prop: 'reprintOperator', name: 'Reprint Operator', width: 180, cellClass: \"left\" },\r\n { prop: 'invoiceTotal', name: 'Total (incl VAT)', width: 100, cellClass: \"right\", cellTemplate: this.priceTemplate },\r\n { prop: 'branch', name: 'Branch', width: 80, cellClass: \"left\" },\r\n { prop: 'printerName', name: 'Printer', width: 200, cellClass: \"left\" }\r\n \r\n ];\r\n\r\n this.selected = {\r\n startDate: moment().startOf('day'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n\r\n this.selectedOption = \"Reprint\";\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.selectedBranch = this.selectUndefinedOptionValue;\r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n\r\n this.loadingIndicator = true;\r\n\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n endD.setHours(23, 59, 59, 999);\r\n\r\n\r\n this.sysproService.getInvoicePrintAuditTrail(startD.toJSON(), endD.toJSON()).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n onDataLoadSuccessful(reprintlist: any[]) {\r\n\r\n this.invoiceReprintList = reprintlist[0];\r\n\r\n this.invoiceReprintList.forEach((listitem, index, reprintlist) => {\r\n (listitem).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...this.invoiceReprintList];\r\n\r\n this.rows = this.invoiceReprintList;\r\n this.dateFilterChanged();\r\n\r\n\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n this.loadData();\r\n\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.loadData();\r\n\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadData();\r\n\r\n this.show = false;\r\n }\r\n\r\n dateFilterChanged() {\r\n\r\n var start = new Date(this.selected.startDate.toString());\r\n\r\n var end = new Date(this.selected.endDate.toString());\r\n end.setHours(23, 59, 59, 999);\r\n\r\n this.rows = this.rowsCache.filter(m => new Date(m.reprintDate) >= new Date(start) && new Date(m.reprintDate) <= new Date(end));\r\n\r\n if (this.selectedOption != this.selectUndefinedOptionValue) {\r\n this.rows = this.rows.filter(m => m.displayStatus == this.selectedOption);\r\n }\r\n else {\r\n this.rows = this.rows;\r\n }\r\n\r\n if (this.selectedBranch && this.selectedBranch != this.selectUndefinedOptionValue) {\r\n this.rows = this.rows.filter(m => m.branch == this.selectedBranch);\r\n }\r\n else {\r\n this.rows = this.rows;\r\n }\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rows.filter(r => Utilities.searchArray(value, false, r.invoice, r.reprintDate, r.originalOperator, r.reprintOperator, r.branch, r.invoiceTotal, r.printerName, r.displayStatus));\r\n }\r\n else {\r\n this.dateFilterChanged();\r\n }\r\n }\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Invoice\", \"Reprint Date\", \"Original Operator\", \"Reprint Operator\", \"Document\", \"Branch\", \"Total\", \"Printer\"]\r\n };\r\n\r\n var filename = \"InvoiceReprints\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Invoice: row.invoice, ReprintDate: row.reprintDate, OriginalOperator: row.originalOperator,\r\n ReprintOperator: row.reprintOperator, Document: row.displayStatus, Branch: row.branch, Total: row.invoiceTotal, Printer: row.printerName\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{result.customerCode}} - {{result.customerName }} - (INVOICE: {{result.invoiceNumber}}) - {{result.currentStatus}} : (CREDIT NOTE: {{result.creditNoteNumber}})\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Duplicates Found!   \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{result.invoiceNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{result.currentStatus}} : (CREDIT NOTE: {{result.creditNoteNumber}})
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Transfer
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Transfer
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{result.customerCode}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{result.customerName }}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
StageDate TimeOperator
\\r\\n \\r\\n Printed:\\r\\n \\r\\n {{result.printedDateTime | date: 'yyyy/MM/dd h:mm a'}}\\r\\n {{result.printedUser}}
\\r\\n Picking:\\r\\n \\r\\n {{result.pickingDateTime | date: 'yyyy/MM/dd h:mm a'}}\\r\\n {{result.pickingUser}}
\\r\\n On Hold:\\r\\n \\r\\n {{result.onHoldDateTime | date: 'yyyy/MM/dd h:mm a'}}\\r\\n {{result.onHoldUser}}
\\r\\n Picked:\\r\\n \\r\\n {{result.pickedDateTime | date: 'yyyy/MM/dd h:mm a'}}\\r\\n {{result.pickedUser}}
\\r\\n Checked:\\r\\n \\r\\n {{result.checkedDateTime | date: 'yyyy/MM/dd h:mm a'}}\\r\\n {{result.checkedUser}}
\\r\\n Dispatch:\\r\\n \\r\\n {{result.dispatchDateTime | date: 'yyyy/MM/dd h:mm a'}}\\r\\n {{result.dispatchUser}}
\\r\\n Collections:\\r\\n \\r\\n {{result.collectionsDateTime | date:'yyyy/MM/dd h:mm a'}}\\r\\n {{result.collectionsUser}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n = 1\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n = 1\\\" class=\\\"bg-gradient-warning\\\" style=\\\"background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) !important\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Out for Delivery:\\r\\n \\r\\n {{detail.scannedDate | date: 'yyyy/MM/dd h:mm a'}}\\r\\n {{header.driverName}}
\\r\\n Vehicle:\\r\\n \\r\\n {{header.vehicleDescription}}\\r\\n {{header.vehicleNumber}}
\\r\\n Route:\\r\\n \\r\\n {{header.cageDescription}}\\r\\n {{header.cageNumber}}
\\r\\n Returned Parcel:\\r\\n \\r\\n {{detail.undeliveredDate | date: 'yyyy/MM/dd h:mm a'}}\\r\\n {{detail.undeliveredUser}}
\\r\\n Returned Count:\\r\\n \\r\\n {{detail.undeliveredCount}} / {{detail.scannedCount}}\\r\\n {{detail.undeliveredReason}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
StageDate TimeOperator
\\r\\n \\r\\n Invoice Fully Credited:\\r\\n \\r\\n {{result.invoiceCreditedDate | date: 'yyyy/MM/dd h:mm a'}}\\r\\n System Updated CR:{{result.creditNoteNumber}}
\\r\\n \\r\\n POD Received:\\r\\n \\r\\n {{result.podReceivedDate | date: 'yyyy/MM/dd h:mm a'}}\\r\\n System Update
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{result.purgeDateTime | date: 'yyyy/MM/dd h:mm a'}}
\\r\\n
\\r\\n
\\r\\n
{{result.purgeUser}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{result.purgeReason}}
\\r\\n
\\r\\n
\\r\\n
{{result.purgeOperator}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n   \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n  \\r\\n  \\r\\n  \\r\\n  \\r\\n  \\r\\n  \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Purge :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ITSObject.invoiceNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ITSObject.currentStatus}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ITSObject.customerName }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Print Additional Labels :

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ITSObject.invoiceNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ITSObject.currentStatus}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ITSObject.customerName }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \"input.form-control {\\n height: 18px;\\n font-size: 0.600rem; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.table tr {\\n height: 20px; }\\n\\n.card-body .row {\\n height: 18px; }\\n\\n.card-body .col-form-label {\\n font-size: smaller; }\\n\\n.tbody {\\n height: 350px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 98%; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.modal-full {\\n min-width: 100%;\\n margin: 0; }\\n\\n.modal-full .modal-content {\\n min-height: 100vh; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.col-form-label {\\n line-height: 1; }\\n\\n[data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\"... see less \\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... see more \\\"; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtaW52b2ljZS1zdGF0dXMtY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvcmVwb3J0cy9yZXBvcnQtY29tcG9uZW50cy9yZXBvcnRzLWludm9pY2Utc3RhdHVzLWNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLFlBQVksRUFBQTs7QUFHZDtFQUNFLFlBQVksRUFBQTs7QUFJZDtFQUVJLFlBQVksRUFBQTs7QUFGaEI7RUFNSSxrQkFBa0IsRUFBQTs7QUFLdEI7RUFDRSxhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsVUFBVSxFQUFBOztBQUdaO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUZsQjtJQUtJLGdCQUFnQixFQUFBOztBQUlwQjtFQUNFLGVBQWU7RUFDZixTQUFTLEVBQUE7O0FBR1g7RUFDRSxpQkFBaUIsRUFBQTs7QUFLbkI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsU0FBUyxFQUFBOztBQUdYO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBOztBQUduQjtFQUNFLGNBQWMsRUFBQTs7QUN0QmhCO0VEMkJFLGdCQUFnQixFQUFBOztBQ3hCbEI7RUQ2QkUsZ0JBQWdCLEVBQUE7O0FDMUJsQjtFRCtCRSx3QkFBd0IsRUFBQTs7QUM1QjFCO0VEaUNFLHdCQUF3QixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL3JlcG9ydHMtaW52b2ljZS1zdGF0dXMtY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMThweDtcclxuICBmb250LXNpemU6IDAuNjAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLnRhYmxlIHRyIHtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcblxyXG4uY2FyZC1ib2R5IHtcclxuICAucm93IHtcclxuICAgIGhlaWdodDogMThweDtcclxuICB9XHJcblxyXG4gIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnRib2R5IHtcclxuICBoZWlnaHQ6IDM1MHB4O1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgd2lkdGg6IDk4JTtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgcGFkZGluZy10b3A6IDNweDtcclxuXHJcbiAgLnRvZ2dsZS5idG4tc20ge1xyXG4gICAgbWluLWhlaWdodDogMjdweDtcclxuICB9XHJcbn1cclxuXHJcbi5tb2RhbC1mdWxsIHtcclxuICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubW9kYWwtZnVsbCAubW9kYWwtY29udGVudCB7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcblxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgY29sb3I6ICM3Nzc7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmNvbC1mb3JtLWxhYmVsIHtcclxuICBsaW5lLWhlaWdodDogMTtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLmZhOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGYxM2FcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBzZWUgbGVzcyBcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIG1vcmUgXCI7XHJcbn1cclxuIiwiaW5wdXQuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmb250LXNpemU6IDAuNjAwcmVtOyB9XG5cbi50YWJsZSB0aCB7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjsgfVxuXG4udGFibGUgdGgsIC50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4udGFibGUgdHIge1xuICBoZWlnaHQ6IDIwcHg7IH1cblxuLmNhcmQtYm9keSAucm93IHtcbiAgaGVpZ2h0OiAxOHB4OyB9XG5cbi5jYXJkLWJvZHkgLmNvbC1mb3JtLWxhYmVsIHtcbiAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbi50Ym9keSB7XG4gIGhlaWdodDogMzUwcHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgd2lkdGg6IDk4JTsgfVxuXG4uY2hlY2tib3gge1xuICBoZWlnaHQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAzcHg7IH1cbiAgLmNoZWNrYm94IC50b2dnbGUuYnRuLXNtIHtcbiAgICBtaW4taGVpZ2h0OiAyN3B4OyB9XG5cbi5tb2RhbC1mdWxsIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLm1vZGFsLWZ1bGwgLm1vZGFsLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDsgfVxuXG4udXNlci1yb2xlIHtcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuXG4uY29udHJvbC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLnNlYXJjaC1ib3gge1xuICBtYXJnaW46IDA7IH1cblxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xuICBwYWRkaW5nLXRvcDogM3B4O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtaW4td2lkdGg6IDEwMHB4OyB9XG5cbi51c2VyLWRpc2FibGVkIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ubG9ja2VkLW91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcbiAgY29sb3I6IHdoaXRlc21va2U7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtZm9ybS1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOVwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2FcIjsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBsZXNzIFwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiOyB9XG4iXX0= */\"","import { Component, OnInit, ViewChild, Input, TemplateRef, OnChanges } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { InvoiceTrackingStatus } from 'src/app/models/invoice-tracking-status.model';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { SalesOrderList } from '../../../models/salesorder-list.model';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { User } from '../../../models/user.model';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport Quagga from 'quagga';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ITSDriversLog, ITSParcelTrackingDetailLog } from '../../../models/invoice-tracking-drivers-log.model';\r\nimport { map, mergeMap } from 'rxjs/operators';\r\nimport { forkJoin } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'reports-invoice-status',\r\n templateUrl: './reports-invoice-status-component.html',\r\n styleUrls: ['./reports-invoice-status-component.scss']\r\n})\r\nexport class ReportsInvoiceStatusComponent implements OnInit\r\n{\r\n\r\n @ViewChild('purgeModal')\r\n purgeModal: ModalDirective;\r\n\r\n\r\n @ViewChild('printLabelModal')\r\n printLabelModal: ModalDirective;\r\n\r\n private isEditMode = false;\r\n loadingIndicator: boolean;\r\n result: InvoiceTrackingStatus;\r\n ITSObject: InvoiceTrackingStatus = new InvoiceTrackingStatus();\r\n \r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @Input()\r\n stockCode: string;\r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n invoiceTracking: InvoiceTrackingStatus;\r\n hasDuplicates: boolean;\r\n noResults: boolean;\r\n user: User;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n enabled: boolean;\r\n\r\n\r\n @Input()\r\n selectedInvoice: string;\r\n numberOfLabelsToPrint: number;\r\n\r\n\r\n @Input()\r\n isInfoOnly: boolean;\r\n\r\n rowsDriverLogHeader: ITSDriversLog[];\r\n additionalDeliveryDetails: ITSParcelTrackingDetailLog[];\r\n\r\n \r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private sysproService: SysproService, private configurations: ConfigurationService,\r\n private alertService: AlertService, private accountService: AccountService, private fowkesService: FowkesOnlineService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.isViewOnly = this.isViewOnly == true ? this.isViewOnly : false;\r\n this.isInfoOnly = this.isInfoOnly == true ? this.isInfoOnly : false;\r\n\r\n this.loadData();\r\n this.searchType = \"itsinvoice\";\r\n\r\n let invoiceNumber = sessionStorage.getItem(localStorageActions.ITSInvoiceNumber);\r\n if (invoiceNumber && invoiceNumber != \"\") {\r\n this.searchText = invoiceNumber;\r\n this.specificSearch();\r\n }\r\n\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n this.isViewOnly = this.isViewOnly == true ? this.isViewOnly : false;\r\n this.isInfoOnly = this.isInfoOnly == true ? this.isInfoOnly : false;\r\n\r\n if (this.selectedInvoice) {\r\n this.loadData();\r\n this.searchType = \"itsinvoice\";\r\n\r\n let invoiceNumber = sessionStorage.getItem(localStorageActions.ITSInvoiceNumber);\r\n if (invoiceNumber && invoiceNumber != \"\") {\r\n this.searchText = invoiceNumber;\r\n this.specificSearch();\r\n } \r\n } \r\n\r\n }\r\n\r\n loadData() {\r\n\r\n this.user = this.accountService.currentUser;\r\n this.enabled = true;\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchResults = null;\r\n this.result = null;\r\n this.noResults = true;\r\n this.sysproService.getInvoiceTrackingStatus(this.searchText, this.searchText).\r\n subscribe(x => this.onDataLoadSuccessful(x), error => this.onStatusLoadFailed(error));\r\n //this.sysproService.getSalesOrderSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n // x => this.onSpecificSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n onStatusLoadFailed(error: any): void {\r\n\r\n this.sysproService.getSalesOrderSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n\r\n onSearchFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: SalesOrderList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x.filter(i => i.invoiceNumber != '');\r\n\r\n if (x.length === 1) {\r\n this.searchResultSelected = x[0];\r\n this.viewInvoiceSelected();\r\n }\r\n\r\n }\r\n viewInvoiceSelected() {\r\n this.alertService.startLoadingMessage();\r\n\r\n this.loadingIndicator = true;\r\n this.noResults = true;\r\n this.sysproService.getInvoiceTrackingStatus(this.searchResultSelected.salesOrderNumber, this.searchResultSelected.invoiceNumber).\r\n subscribe(x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDataLoadSuccessful(result: InvoiceTrackingStatus, success?: boolean) {\r\n this.ITSObject = new InvoiceTrackingStatus();\r\n\r\n if (result) {\r\n if (result[1]) {\r\n this.hasDuplicates = true;\r\n }\r\n else {\r\n this.hasDuplicates = false;\r\n }\r\n if (result[0]) {\r\n this.noResults = false;\r\n this.result = new InvoiceTrackingStatus();\r\n this.result = result[0];\r\n this.ITSObject = this.result;\r\n if ((this.application == \"MaxArcusOnline\" && this.ITSObject.fromCompany == \"Max Arcus\") || (this.application == \"FowkesOnline\" && this.ITSObject.fromCompany == \"Fowkes Bros\")) {\r\n this.enabled = true;\r\n }\r\n else {\r\n this.enabled = false;\r\n }\r\n\r\n this.additionalDeliveryDetails = [];\r\n this.rowsDriverLogHeader = [];\r\n\r\n if (this.ITSObject.dispatch == 'A' || this.ITSObject.delivery == 'A') {\r\n //get the addtional delivery information\r\n this.getDeliveryDetails();\r\n //this.fowkesService.getITSDeliveryDetails(this.ITSObject.invoiceNumber).\r\n // subscribe(x => this.onDeliveryDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n else {\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n \r\n\r\n if (success) {\r\n\r\n this.alertService.showStickyMessage('Success', `Record Has been updated: `, MessageSeverity.success);\r\n\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n }\r\n\r\n getDeliveryDetails() {\r\n // get the additional delivery information\r\n this.fowkesService.getITSDeliveryDetails(this.ITSObject.invoiceNumber).pipe(\r\n // Check if data exists and filter out invalid data if necessary\r\n map(data => data.filter(row => row && row.trackingHeaderId)),\r\n // Use mergeMap to handle the array of data and inner Observable\r\n mergeMap(data => {\r\n // Use forkJoin to handle multiple parallel requests\r\n const requests = data.map(row =>\r\n this.fowkesService.getITSDeliveryDetailsAdditional(row.trackingHeaderId)\r\n );\r\n // Return combined result: original data and the results of the requests\r\n return forkJoin(requests).pipe(\r\n map(headers => ({ data, headers }))\r\n );\r\n })\r\n ).subscribe(({ data, headers }) => {\r\n this.additionalDeliveryDetails = [...data];\r\n this.rowsDriverLogHeader = headers.filter(header => header);\r\n console.log(this.rowsDriverLogHeader);\r\n\r\n }, error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDeliveryDataLoadSuccessful(x: ITSParcelTrackingDetailLog[]): void {\r\n\r\n \r\n\r\n if (x && x[0]) {\r\n\r\n x.forEach(row => {\r\n //Get the log headers for each detail line\r\n this.fowkesService.getITSDeliveryDetailsAdditional(row.trackingHeaderId).\r\n subscribe(result => {\r\n if (result) {\r\n this.rowsDriverLogHeader.push(result);\r\n\r\n }\r\n }, error => this.onDataLoadFailed(error));\r\n\r\n });\r\n \r\n\r\n\r\n this.additionalDeliveryDetails = [...x];\r\n\r\n\r\n }\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n purgeITS() {\r\n\r\n if (this.ITSObject && this.ITSObject.purgeUser && this.ITSObject.purgeUser != \"\" && this.ITSObject.purgeReason && this.ITSObject.purgeReason != \"\") {\r\n this.purgeModal.hide();\r\n this.alertService.startLoadingMessage();\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.postInvoiceTrackingPurge(this.ITSObject.salesOrder, this.ITSObject.invoiceNumber, this.ITSObject.purgeUser,\r\n this.ITSObject.purgeReason.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\"),\r\n this.user.fullName).\r\n subscribe(x => this.onDataLoadSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty Fields', 'Please enure you have added a purge user and reason for purge',\r\n MessageSeverity.warn);\r\n }\r\n \r\n\r\n }\r\n\r\n printLabelsShow() {\r\n this.numberOfLabelsToPrint = 1;\r\n if (!this.printLabelModal) {\r\n setTimeout(() => {\r\n if (this.printLabelModal) {\r\n this.printLabelModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.printLabelModal.show();\r\n }\r\n }\r\n\r\n \r\n\r\n printLabels(selectedPrinter: string) {\r\n\r\n\r\n if (this.ITSObject && this.numberOfLabelsToPrint >= 1) {\r\n this.printLabelModal.hide();\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.alertService.showMessage('', `Label printing initiated`, MessageSeverity.success);\r\n\r\n this.fowkesService.printBarcodeLabelDirect(this.ITSObject.invoiceNumber, \r\n this.user.fullName, this.ITSObject.invoiceNumber,\r\n this.numberOfLabelsToPrint, selectedPrinter).\r\n subscribe(x => this.onDataLoadSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty Fields', 'Please enure you have the number of labels to print',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n increaseLabels() {\r\n this.numberOfLabelsToPrint++;\r\n }\r\n\r\n decreaseLabels() {\r\n if (this.numberOfLabelsToPrint > 1) { \r\n this.numberOfLabelsToPrint--;\r\n }\r\n }\r\n\r\n removeDuplicate() {\r\n this.purgeModal.hide();\r\n this.alertService.startLoadingMessage();\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.deleteInvoiceTrackingDuplicate(this.ITSObject.salesOrder, this.ITSObject.invoiceNumber).\r\n subscribe(x => this.onDataLoadSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n viewSalesInvoice() {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.salesOrder);\r\n sessionStorage.setItem(localStorageActions.Customer, this.ITSObject.customerCode);\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.ITSObject.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: this.ITSObject.customerCode } });\r\n }\r\n\r\n\r\n viewCreditNote() {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.creditNoteNumber);\r\n sessionStorage.setItem(localStorageActions.Customer, this.ITSObject.customerCode);\r\n sessionStorage.removeItem(localStorageActions.InvoiceNumber);\r\n // sessionStorage.setItem(localStorageActions.InvoiceNumber, this.ITSObject.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: this.ITSObject.customerCode, credit: \"C\" } });\r\n }\r\n\r\n viewTransfer() {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.salesOrder);\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.ITSObject.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: 'TRANSFER' } });\r\n }\r\n\r\n\r\n viewDocuments() {\r\n sessionStorage.removeItem(localStorageActions.PODReference);\r\n sessionStorage.setItem(localStorageActions.PODReference, this.ITSObject.invoiceNumber);\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.salesOrder);\r\n this.router.navigate(['../pods'], { fragment: 'view', queryParams: { invoice: this.ITSObject.salesOrder } });\r\n }\r\n\r\n viewITS() {\r\n this.router.navigate(['/reports'], { fragment: 'itslist' });\r\n }\r\n\r\n\r\n controlReport() {\r\n this.router.navigate(['/reports'], { fragment: 'control' });\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
Orders Awaiting Collection
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}} 0\\\">*\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ (value !== '1900-01-01T00:00:00') ? (value | date: 'yyyy/MM/dd HH:mm') : \\\"\\\" }}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{ (value !== '1900-01-01T00:00:00') ? (value | date: 'yyyy/MM/dd') : \\\"\\\" }}\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Send WhatsApp Reminder

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

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

SALES ORDER:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtaW52b2ljZS10cmFja2luZy1jb2xsZWN0aW9ucy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSxpQ0FBaUM7RUFDakMsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFRSSxtQkFBbUI7SUFDbkIsZ0NBQWdDLEVBQUE7O0FBVHBDO0lBY0ksZ0JBQWdCO0lBQ2hCLDBCQUEwQixFQUFBOztBQWY5QjtJQW1CSSxxQ0FBcUMsRUFBQTs7QUFJekM7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UsWUFBWSxFQUFBOztBQUdkO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUZsQjtJQUtJLGdCQUFnQixFQUFBOztBQU1wQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1pbnZvaWNlLXRyYWNraW5nLWNvbGxlY3Rpb25zLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAycHggNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcblxyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4NjhlOTU7XHJcbiAgICAvL2NvbG9yOiAjRDkyMzBGO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgsIC50YWJsZSB0ZHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcblxyXG4gIC50b2dnbGUuYnRuLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbiJdfQ== */\"","\r\nimport { AfterViewInit, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { SalesOrderList } from 'src/app/models/salesorder-list.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { InvoiceTrackingStatus } from '../../../models/invoice-tracking-status.model';\r\nimport { Outbox } from '../../../models/wapp-inbox.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'reports-invoice-tracking-collections',\r\n templateUrl: './reports-invoice-tracking-collections.component.html',\r\n styleUrls: ['./reports-invoice-tracking-collections.component.scss']\r\n})\r\nexport class ReportsInvoiceTrackingCollectionsComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n columns: any[] = [];\r\n\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('salesOrderTemplate')\r\n salesOrderTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('dateOnlyTemplate')\r\n dateOnlyTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('whatsapptemplate')\r\n whatsapptemplate: TemplateRef;\r\n\r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n @ViewChild('statusListSelector')\r\n private statusListSelector;\r\n private allstatuses: string = \"All\";\r\n selectedStatus: string = \"\";\r\n\r\n\r\n @ViewChild('#companiesListSelector')\r\n private companiesListSelector;\r\n\r\n invoiceTrackingPODsReceived: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListNotPrinted: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListOnHold: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListNotCompleted: InvoiceTrackingStatus[] = [];\r\n rows: InvoiceTrackingStatus[] = [];\r\n rowsCache: InvoiceTrackingStatus[] = [];\r\n\r\n gridHeight: number = 0;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n countRecords: number;\r\n percentageCount: number;\r\n chkPurged: boolean;\r\n chkTBC: boolean;\r\n chkIncomplete: boolean;\r\n chkShowAll: boolean;\r\n selectedCompany: string;\r\n\r\n selectedSalesOrder: string;\r\n selectedInvoice: string;\r\n\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n itsDetail: InvoiceTrackingStatus;\r\n\r\n\r\n @ViewChild('salesOrderModal')\r\n salesOrderModal: ModalDirective;\r\n currentStatus: any;\r\n invoiceNumber: any;\r\n\r\n\r\n @ViewChild('whatsappModal')\r\n whatsappModal: ModalDirective;\r\n outboxDetail: Outbox;\r\n\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n selectedBranch: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.setGrid();\r\n\r\n this.selected = {\r\n startDate: moment().startOf('month'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesService.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n // (this.application == \"MaxArcusOnline\" ? \"Max Arcus\" : \"Fowkes Bros\");\r\n this.selectedCompany = \"ALL\";\r\n this.selectedBranch = \"ALL\";\r\n\r\n this.chkTBC = true;\r\n this.chkPurged = true;\r\n this.chkIncomplete = false;\r\n this.chkShowAll = true;\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n this.setGrid();\r\n }\r\n\r\n setGrid() {\r\n this.columns = [\r\n { prop: 'fromCompany', name: 'Company', width: 120 },\r\n { prop: 'branch', name: 'WH', width: 50 },\r\n { prop: 'collectionsDateTime', name: 'Pending Collections Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'invoiceNumber', name: 'Invoice', width: 100, cellTemplate: this.invoiceTemplate },\r\n { prop: 'salesOrder', name: 'SalesOrder', width: 100, cellTemplate: this.salesOrderTemplate },\r\n { prop: 'customerCode', name: 'Customer', width: 80 },\r\n { prop: 'customerName', name: 'Name', width: 300 },\r\n //{ prop: 'insertDate', name: 'Create Date', width: 120, cellTemplate: this.dateTemplate },\r\n //{ prop: 'operatorCode', name: 'Operator', width: 80 },\r\n //{ prop: 'printedDateTime', name: 'Printed Date', width: 120, cellTemplate: this.dateTemplate },\r\n //{ prop: 'dispatchDateTime', name: 'Dispatched Date', width: 120, cellTemplate: this.dateTemplate },\r\n //{ prop: 'deliveryDateTime', name: 'Delivery Date', width: 120, cellTemplate: this.dateTemplate },\r\n //{ prop: 'returnedDateTime', name: 'Returned Date', width: 120, cellTemplate: this.dateTemplate },\r\n /*{ prop: 'currentStatus', name: 'Status', width: 120 },*/\r\n //{ prop: 'lastOperator', name: 'Assigned User', width: 120 },\r\n //{ prop: 'collectionsDateTime', name: 'Pending Collections Date', width: 120, cellTemplate: this.dateTemplate },\r\n //{ prop: 'podReceivedDate', name: 'POD Received Date', width: 120, cellTemplate: this.dateOnlyTemplate },\r\n //{ prop: 'invoiceCreditedDate', name: 'Credited Date', width: 120, cellTemplate: this.dateTemplate },\r\n //{ prop: 'purgeReason', name: 'Purge Reason', width: 120 },\r\n ];\r\n\r\n\r\n this.columns.push({ name: 'Update tatus', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n this.columns.push({ name: '', width: 80, cellTemplate: this.whatsapptemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.lastOperator, r.salesOrder, r.customerCode,\r\n r.currentStatus, r.insertDate, r.invoiceNumber, r.customerName, r.operatorCode, r.fromCompany));\r\n }\r\n }\r\n\r\n specificSearch() {\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true; \r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.selectUndefinedOptionValue);\r\n\r\n this.sysproService.getInvoiceTrackingStatusCollectionsControl(startD.toJSON(), endD.toJSON(), company, branch, \"ALL\").subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n refresh() {\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n branchSelected() {\r\n\r\n if (this.selectedBranch != \"ALL\") {\r\n\r\n this.rows = this.rowsCache.filter(x => x.branch == this.selectedBranch);\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n }\r\n\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n\r\n this.selectedBranch = this.branchCode;\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n\r\n updateStatus(row: InvoiceTrackingStatus) {\r\n\r\n // Code to handle the status update for this specific row\r\n if (row && row.currentStatus && row.pendingStatus != \"Undefined\") {\r\n \r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.invoiceNumber = row.invoiceNumber;\r\n this.selectedSalesOrder = row.salesOrder;\r\n\r\n this.sysproService.postInvoiceTrackingCollectedUpdate(this.selectedSalesOrder, this.invoiceNumber, this.accountService.currentUser.fullName,\r\n row.pendingStatus.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\")).\r\n subscribe(x => this.onUpdateSuccessful(x, true), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty Fields', 'Please enure you have selected an update status',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n onUpdateSuccessful(x: InvoiceTrackingStatus, arg1: boolean): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showMessage('', `Record Updated`, MessageSeverity.success);\r\n\r\n\r\n }\r\n\r\n onSearchSuccesful(x: InvoiceTrackingStatus[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.countRecords = 0;\r\n this.percentageCount = 0;\r\n\r\n if (x && x.length > 0) {\r\n this.rowsCache = x;\r\n //this.rowsCache = this.rowsCache.filter(c => c.invoiceCredited == null);\r\n //this.countRecords = this.invoiceTrackingPODsReceived.length;\r\n //this.percentageCount = (this.countRecords / this.rowsCache.length) * 100;\r\n\r\n\r\n if (this.application == \"MaxArcusOnline\") {\r\n this.rowsCache = this.rowsCache.filter(c => c.fromCompany == \"Max Arcus\");\r\n }\r\n if (this.application == \"FowkesOnline\") {\r\n this.rowsCache = this.rowsCache.filter(c => c.fromCompany == \"Fowkes Bros\");\r\n }\r\n this.rows = this.rowsCache;\r\n this.rows.forEach(row => {\r\n row.pendingStatus = 'Undefined'; // Initial status for each row\r\n });\r\n\r\n this.branchSelected();\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n\r\n showAll() {\r\n this.chkShowAll = !this.chkShowAll;\r\n this.chkIncomplete = !this.chkIncomplete;\r\n this.filterChanged();\r\n }\r\n\r\n showOnlyIncomplete() {\r\n this.chkIncomplete = !this.chkIncomplete;\r\n this.chkShowAll = !this.chkShowAll;\r\n this.filterChanged();\r\n }\r\n\r\n //showPurged() {\r\n // this.chkPurged = !this.chkPurged;\r\n // this.filterChanged();\r\n //}\r\n\r\n //showTBC() {\r\n // this.chkTBC = !this.chkTBC;\r\n // this.filterChanged();\r\n //}\r\n\r\n filterChanged() {\r\n\r\n if (this.chkIncomplete) {\r\n this.rows = this.rowsCache.filter(x => x.podReceived != \"A\");\r\n }\r\n\r\n if (this.chkShowAll) {\r\n this.rows = this.rowsCache;\r\n }\r\n\r\n\r\n }\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Company\", \"Invoice\", \"Status\", \"CreateDate\", \"Operator\", \"CollectionsDate\", \"Customer\", \"Name\"]\r\n };\r\n\r\n var filename = \"InvoiceTrackingCollectionDetails\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.insertDate).toISOString().split('T')[0];\r\n\r\n exportRows.push({\r\n Company: row.fromCompany,\r\n Invoice: row.invoiceNumber, Status: row.currentStatus, CreateDate: date, Operator: row.operatorCode,\r\n CollectionsDate: this.isValidDate(row.collectionsDateTime) ? new Date(row.collectionsDateTime).toISOString().split('T')[0] : \"\",\r\n Customer: row.customerCode, Name: row.customerName\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n isValidDate(d: any): boolean {\r\n\r\n var isValid = (d != null && d != \"\" && d != \"1900-01-01T00:00:00\");\r\n return isValid;\r\n // return d && Object.prototype.toString.call(d) === \"[object Date]\" && !isNaN(d.getTime()) && d > new Date(1900, 1, 2);\r\n }\r\n\r\n\r\n viewInvoiceSelected() {\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.searchResultSelected.invoiceNumber);\r\n this.router.navigate(['/reports'], { fragment: 'invoicestatus' });\r\n\r\n }\r\n\r\n // this.outboxDetail = new Outbox();\r\n openWhatsAppModal(row: InvoiceTrackingStatus) {\r\n\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoiceNumber);\r\n\r\n this.outboxDetail = new Outbox();\r\n this.outboxDetail.toPhoneNumber = \"\";\r\n this.outboxDetail.content = \"Template\";\r\n this.outboxDetail.headerMediaFileId = row.invoiceNumber;\r\n this.outboxDetail.nextGenUser = this.accountService.currentUser.userName;\r\n\r\n if (!this.whatsappModal) {\r\n setTimeout(() => {\r\n if (this.whatsappModal) {\r\n this.whatsappModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.whatsappModal.show();\r\n }\r\n }\r\n\r\n onSendReminder() {\r\n if (this.outboxDetail.toPhoneNumber && this.outboxDetail.toPhoneNumber.length >= 6) {\r\n this.sysproService.sendTemplateNoFile(this.outboxDetail.toPhoneNumber, this.outboxDetail.nextGenUser,\r\n this.outboxDetail.headerMediaFileId).subscribe(x => this.onWhatsappSentSuccesful(x), error => this.WhatsappSentFailed(error));\r\n }\r\n }\r\n\r\n whatsappModalHide() {\r\n this.outboxDetail = null;\r\n this.whatsappModal.hide();\r\n }\r\n\r\nWhatsappSentFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Error', `Something went wrong: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n}\r\n\r\nonWhatsappSentSuccesful(x: any): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('', `\"${x.message}\"`, MessageSeverity.info);\r\n this.whatsappModalHide();\r\n}\r\n\r\n viewInvoice(row: InvoiceTrackingStatus) {\r\n\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoiceNumber);\r\n\r\n this.itsDetail = row;\r\n\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n\r\n itsModallHide() {\r\n this.itsDetail = null;\r\n this.itsModal.hide();\r\n }\r\n\r\n previewSalesOrder(row: InvoiceTrackingStatus) {\r\n\r\n if ((this.application == \"MaxArcusOnline\" && row.fromCompany == \"Max Arcus\") || (this.application == \"FowkesOnline\" && row.fromCompany == \"Fowkes Bros\")) {\r\n this.currentStatus = row.currentStatus;\r\n this.invoiceNumber = row.invoiceNumber;\r\n\r\n this.selectedSalesOrder = row.salesOrder;\r\n if (sessionStorage.getItem(localStorageActions.Customer) != row.customerCode) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customerCode);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != row.salesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.salesOrder);\r\n }\r\n\r\n if (!!this.selectedSalesOrder) {\r\n if (!this.salesOrderModal) {\r\n setTimeout(() => {\r\n if (this.salesOrderModal) {\r\n this.salesOrderModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.salesOrderModal.show();\r\n }\r\n }\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Warning', `This is a \"${row.fromCompany}\" invoice and should be viewed from the correct application`,\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n salesOrderModalHide() {\r\n this.selectedSalesOrder = null;\r\n this.salesOrderModal.hide();\r\n }\r\n\r\n\r\n viewSalesOrder() {\r\n\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{countRecords}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{percentageCount | currency:' ':'symbol':'1.2'}} %\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
PODs Received
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}} 0\\\">*\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{ (value !== '1900-01-01T00:00:00') ? (value | date: 'yyyy/MM/dd HH:mm') : \\\"\\\" }}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{ (value !== '1900-01-01T00:00:00') ? (value | date: 'yyyy/MM/dd') : \\\"\\\" }}\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtaW52b2ljZS10cmFja2luZy1jb250cm9sLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLCtCQUErQixFQUFBOztBQUdqQztFQUNFLGlDQUFpQztFQUNqQyw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQixFQUFBOztBQUo3QjtJQVFJLG1CQUFtQjtJQUNuQixnQ0FBZ0MsRUFBQTs7QUFUcEM7SUFjSSxnQkFBZ0I7SUFDaEIsMEJBQTBCLEVBQUE7O0FBZjlCO0lBbUJJLHFDQUFxQyxFQUFBOztBQUl6QztFQUNFLFlBQVk7RUFDWixtQkFBbUIsRUFBQTs7QUFHckI7RUFDRSxZQUFZLEVBQUE7O0FBR2Q7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCLEVBQUE7O0FBRmxCO0lBS0ksZ0JBQWdCLEVBQUE7O0FBTXBCO0VBQ0UsMkJBQTJCO0VBQzNCLGlCQUFpQixFQUFBOztBQUduQjtFQUNJLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLFNBQVMsRUFBQTs7QUFHYjtFQUNJLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZ0JBQWdCLEVBQUE7O0FBR3BCO0VBQ0ksV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVwb3J0cy9yZXBvcnQtY29tcG9uZW50cy9yZXBvcnRzLWludm9pY2UtdHJhY2tpbmctY29udHJvbC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItaW5uZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubmd4LWRhdGF0YWJsZS5tYXRlcmlhbCAuZGF0YXRhYmxlLWJvZHkgLmRhdGF0YWJsZS1ib2R5LXJvdyAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgcGFkZGluZzogMnB4IDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG5cclxuXHJcbiAgLmJ0bi1saW5rLmdyaWQge1xyXG4gICAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODY4ZTk1O1xyXG4gICAgLy9jb2xvcjogI0Q5MjMwRjtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgYS5ob3ZlciB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBoZWlnaHQ6IDI2cHg7XHJcbiAgZm9udC1zaXplOiAwLjcwMHJlbTtcclxufVxyXG5cclxuLnRhYmxlIHRoLCAudGFibGUgdGR7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4uY2hlY2tib3gge1xyXG4gIGhlaWdodDogMTBweDtcclxuICBwYWRkaW5nLXRvcDogM3B4O1xyXG5cclxuICAudG9nZ2xlLmJ0bi1zbSB7XHJcbiAgICBtaW4taGVpZ2h0OiAyN3B4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4udXNlci1yb2xlIHtcclxuICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogIzc3NztcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLmxvY2tlZC1vdXQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gICAgY29sb3I6IHdoaXRlc21va2U7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcblxyXG4iXX0= */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { QuoteList } from 'src/app/models/quote-list.model';\r\nimport { SalesOrderList } from 'src/app/models/salesorder-list.model';\r\nimport { PurchaseOrderList } from 'src/app/models/purchaseorder-list.model';\r\nimport { User } from '../../../models/user.model';\r\nimport { InvoiceTrackingStatus } from '../../../models/invoice-tracking-status.model';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { Branch } from '../../../models/branch.model';\r\n\r\n\r\n@Component({\r\n selector: 'reports-invoice-tracking-control',\r\n templateUrl: './reports-invoice-tracking-control.component.html',\r\n styleUrls: ['./reports-invoice-tracking-control.component.scss']\r\n})\r\nexport class ReportsInvoiceTrackingControlComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n columns: any[] = [];\r\n \r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('dateOnlyTemplate')\r\n dateOnlyTemplate: TemplateRef;\r\n \r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n\r\n @ViewChild('#companiesListSelector')\r\n private companiesListSelector;\r\n\r\n invoiceTrackingPODsReceived: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListNotPrinted: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListOnHold: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListNotCompleted: InvoiceTrackingStatus[] = [];\r\n rowsCache: InvoiceTrackingStatus[] = [];\r\n\r\n gridHeight: number = 0;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n countRecords: number;\r\n percentageCount: number;\r\n chkPurged: boolean;\r\n chkTBC: boolean;\r\n selectedCompany: string;\r\n\r\n\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n itsDetail: InvoiceTrackingStatus;\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n selectedBranch: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n\r\n this.setGrid();\r\n\r\n this.selected = {\r\n startDate: moment().startOf('month'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesService.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n // (this.application == \"MaxArcusOnline\" ? \"Max Arcus\" : \"Fowkes Bros\");\r\n this.selectedCompany = \"ALL\";\r\n this.selectedBranch = \"ALL\";\r\n\r\n\r\n this.chkTBC = true;\r\n this.chkPurged = true;\r\n\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n this.setGrid();\r\n }\r\n\r\n setGrid() {\r\n this.columns = [\r\n { prop: 'invoiceNumber', name: 'Invoice', width: 100, cellTemplate: this.invoiceTemplate },\r\n /*{ prop: 'lastOperator', name: 'Assigned User', width: 120 },*/\r\n { prop: 'currentStatus', name: 'Status', width: 120 },\r\n { prop: 'insertDate', name: 'Create Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'operatorCode', name: 'Operator', width: 80 },\r\n { prop: 'printedDateTime', name: 'Printed Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'dispatchDateTime', name: 'Dispatched Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'collectionsDateTime', name: 'Collections Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'podReceivedDate', name: 'POD Received Date', width: 120, cellTemplate: this.dateOnlyTemplate },\r\n { prop: 'invoiceCreditedDate', name: 'Credited Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'purgeReason', name: 'Purge Reason', width: 120 },\r\n { prop: 'fromCompany', name: 'Company', width: 120 }\r\n ];\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.invoiceTrackingPODsReceived = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.lastOperator, r.salesOrder, r.customerCode,\r\n r.currentStatus, r.insertDate, r.invoiceNumber, r.customerName, r.operatorCode, r.fromCompany));\r\n }\r\n }\r\n\r\n specificSearch() {\r\n this.loadData();\r\n }\r\n\r\n\r\n viewInvoiceSelected() {\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.searchResultSelected.invoiceNumber);\r\n this.router.navigate(['/reports'], { fragment: 'invoicestatus'});\r\n \r\n }\r\n\r\n\r\n viewInvoice(row: InvoiceTrackingStatus) {\r\n\r\n\r\n //if ((this.application == \"MaxArcusOnline\" && row.fromCompany == \"Max Arcus\") || (this.application == \"FowkesOnline\" && row.fromCompany == \"Fowkes Bros\")) {\r\n\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoiceNumber);\r\n\r\n this.itsDetail = row;\r\n\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n //}\r\n \r\n }\r\n\r\n\r\n\r\n\r\n itsModallHide() {\r\n this.itsDetail = null;\r\n this.itsModal.hide();\r\n }\r\n \r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.selectUndefinedOptionValue);\r\n \r\n this.sysproService.getInvoiceTrackingStatusControl(startD.toJSON(), endD.toJSON(), company, branch, \"ALL\").subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchSuccesful(x: InvoiceTrackingStatus[]): void {\r\n \r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.countRecords = 0;\r\n this.percentageCount = 0;\r\n\r\n if (x && x.length > 0) {\r\n\r\n this.rowsCache = x.filter(r => r.picked != 'A' && r.checked != 'A');\r\n this.invoiceTrackingPODsReceived = this.rowsCache.filter(x => x.purge != \"A\").filter(x => !x.currentStatus.includes(\"Taken By Customer\"));\r\n \r\n this.countRecords = this.invoiceTrackingPODsReceived.length;\r\n this.percentageCount = (this.countRecords / this.rowsCache.length) * 100;\r\n\r\n console.log(this.rowsCache);\r\n\r\n this.filterChanged();\r\n \r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n \r\n }\r\n\r\n branchSelected() {\r\n\r\n this.filterChanged();\r\n }\r\n\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n\r\n this.selectedBranch = this.branchCode;\r\n }\r\n\r\n showPurged() {\r\n this.chkPurged = !this.chkPurged;\r\n this.filterChanged();\r\n }\r\n\r\n showTBC() {\r\n this.chkTBC = !this.chkTBC;\r\n this.filterChanged();\r\n }\r\n\r\n filterChanged() { \r\n this.invoiceTrackingPODsReceived = this.rowsCache;\r\n if (this.chkTBC) {\r\n this.invoiceTrackingPODsReceived = this.invoiceTrackingPODsReceived.filter(x => !x.currentStatus.includes(\"Taken By Customer\"));\r\n }\r\n if (this.chkPurged) {\r\n this.invoiceTrackingPODsReceived = this.invoiceTrackingPODsReceived.filter( x => x.purge != \"A\");\r\n }\r\n\r\n if (this.selectedBranch != \"ALL\") {\r\n\r\n this.invoiceTrackingPODsReceived = this.invoiceTrackingPODsReceived.filter(x => x.branch == this.selectedBranch);\r\n }\r\n }\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n }\r\n \r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Invoice\", \"Status\", \"CreateDate\", \"Operator\", \"PrintedDate\", \"DispatchedDate\", \"CollectionsDate\", \"PODReceivedDate\", \"CreditedDate\", \"PurgeReason\", \"Company\" ]\r\n };\r\n\r\n var filename = \"InvoiceTracking\";\r\n var selectRows = [...this.rowsCache];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.insertDate).toISOString().split('T')[0];\r\n exportRows.push({\r\n Invoice: row.invoiceNumber, Status: row.currentStatus, CreateDate: date, Operator: row.operatorCode,\r\n PrintedDate: (row.printedDateTime > new Date(1900, 1, 2) ? row.printedDateTime : \"\"),\r\n DispatchedDate: (row.dispatchDateTime > new Date(1900, 1, 2) ? row.dispatchDateTime : \"\"),\r\n CollectionsDate: (row.collectionsDateTime > new Date(1900, 1, 2) ? row.collectionsDateTime : \"\"),\r\n PODReceivedDate: (row.podReceivedDate > new Date(1900, 1, 2) ? row.podReceivedDate : \"\"),\r\n CreditedDate: (row.invoiceCreditedDate > new Date(1900, 1, 2) ? row.invoiceCreditedDate : \"\"),\r\n PurgeReason: row.purgeReason,\r\n Company: row.fromCompany\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Delivery Details
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}} 0\\\">*\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{ (value !== '1900-01-01T00:00:00') ? (value | date: 'yyyy/MM/dd HH:mm') : \\\"\\\" }}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{ (value !== '1900-01-01T00:00:00') ? (value | date: 'yyyy/MM/dd') : \\\"\\\" }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtaW52b2ljZS10cmFja2luZy1kZWxpdmVyeS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSxpQ0FBaUM7RUFDakMsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFRSSxtQkFBbUI7SUFDbkIsZ0NBQWdDLEVBQUE7O0FBVHBDO0lBY0ksZ0JBQWdCO0lBQ2hCLDBCQUEwQixFQUFBOztBQWY5QjtJQW1CSSxxQ0FBcUMsRUFBQTs7QUFJekM7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UsWUFBWSxFQUFBOztBQUdkO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUZsQjtJQUtJLGdCQUFnQixFQUFBOztBQU1wQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1pbnZvaWNlLXRyYWNraW5nLWRlbGl2ZXJ5LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAycHggNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcblxyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4NjhlOTU7XHJcbiAgICAvL2NvbG9yOiAjRDkyMzBGO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgsIC50YWJsZSB0ZHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcblxyXG4gIC50b2dnbGUuYnRuLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbiJdfQ== */\"","\r\nimport { AfterViewInit, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { SalesOrderList } from 'src/app/models/salesorder-list.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { InvoiceTrackingStatus } from '../../../models/invoice-tracking-status.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'reports-invoice-tracking-delivery',\r\n templateUrl: './reports-invoice-tracking-delivery.component.html',\r\n styleUrls: ['./reports-invoice-tracking-delivery.component.scss']\r\n})\r\nexport class ReportsInvoiceTrackingDeliveryComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n columns: any[] = [];\r\n\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('dateOnlyTemplate')\r\n dateOnlyTemplate: TemplateRef;\r\n\r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n\r\n @ViewChild('#companiesListSelector')\r\n private companiesListSelector;\r\n\r\n invoiceTrackingPODsReceived: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListNotPrinted: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListOnHold: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListNotCompleted: InvoiceTrackingStatus[] = [];\r\n rows: InvoiceTrackingStatus[] = [];\r\n rowsCache: InvoiceTrackingStatus[] = [];\r\n\r\n gridHeight: number = 0;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n countRecords: number;\r\n percentageCount: number;\r\n chkPurged: boolean;\r\n chkTBC: boolean;\r\n chkIncomplete: boolean;\r\n chkShowAll: boolean;\r\n selectedCompany: string;\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n itsDetail: InvoiceTrackingStatus;\r\n\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n selectedBranch: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n\r\n this.setGrid();\r\n\r\n this.selected = {\r\n startDate: moment().startOf('month'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesService.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n // (this.application == \"MaxArcusOnline\" ? \"Max Arcus\" : \"Fowkes Bros\");\r\n this.selectedCompany = \"ALL\";\r\n this.selectedBranch = \"ALL\";\r\n\r\n this.chkTBC = true;\r\n this.chkPurged = true;\r\n this.chkIncomplete = false;\r\n this.chkShowAll = true;\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.setGrid();\r\n }\r\n\r\n setGrid() {\r\n this.columns = [\r\n { prop: 'invoiceNumber', name: 'Invoice', width: 100, cellTemplate: this.invoiceTemplate },\r\n /*{ prop: 'lastOperator', name: 'Assigned User', width: 120 },*/\r\n { prop: 'currentStatus', name: 'Status', width: 120 },\r\n { prop: 'insertDate', name: 'Create Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'operatorCode', name: 'Operator', width: 80 },\r\n { prop: 'printedDateTime', name: 'Printed Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'dispatchDateTime', name: 'Dispatched Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'deliveryDateTime', name: 'Delivery Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'returnedDateTime', name: 'Returned Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'collectionsDateTime', name: 'Collections Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'podReceivedDate', name: 'POD Received Date', width: 120, cellTemplate: this.dateOnlyTemplate },\r\n { prop: 'invoiceCreditedDate', name: 'Credited Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'purgeReason', name: 'Purge Reason', width: 120 },\r\n { prop: 'fromCompany', name: 'Company', width: 120 }\r\n ];\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.invoiceTrackingPODsReceived = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.lastOperator, r.salesOrder, r.customerCode,\r\n r.currentStatus, r.insertDate, r.invoiceNumber, r.customerName, r.operatorCode, r.fromCompany));\r\n }\r\n }\r\n\r\n specificSearch() {\r\n this.loadData();\r\n }\r\n\r\n\r\n // onSpecificSearchSuccesful(x: SalesOrderList[]): void {\r\n\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n // this.searchResults = x.filter(i => i.invoiceNumber != '');\r\n\r\n //}\r\n\r\n\r\n viewInvoiceSelected() {\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.searchResultSelected.invoiceNumber);\r\n this.router.navigate(['/reports'], { fragment: 'invoicestatus' });\r\n\r\n }\r\n\r\n\r\n viewInvoice(row: InvoiceTrackingStatus) {\r\n\r\n\r\n //if ((this.application == \"MaxArcusOnline\" && row.fromCompany == \"Max Arcus\") || (this.application == \"FowkesOnline\" && row.fromCompany == \"Fowkes Bros\")) {\r\n\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoiceNumber);\r\n\r\n this.itsDetail = row;\r\n\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n //}\r\n\r\n }\r\n\r\n\r\n\r\n\r\n itsModallHide() {\r\n this.itsDetail = null;\r\n this.itsModal.hide();\r\n }\r\n\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n\r\n this.sysproService.getInvoiceTrackingStatusDeliveryControl(startD.toJSON(), endD.toJSON(), company, \"ALL\", \"ALL\").subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n\r\n this.selectedBranch = this.branchCode;\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchSuccesful(x: InvoiceTrackingStatus[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.countRecords = 0;\r\n this.percentageCount = 0;\r\n\r\n if (x && x.length > 0) {\r\n this.rowsCache = x;\r\n\r\n this.countRecords = this.invoiceTrackingPODsReceived.length;\r\n this.percentageCount = (this.countRecords / this.rowsCache.length) * 100;\r\n\r\n this.rows = this.rowsCache;\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n\r\n showAll() {\r\n this.chkShowAll = !this.chkShowAll;\r\n this.chkIncomplete = false;\r\n this.filterChanged();\r\n }\r\n\r\n showOnlyIncomplete() {\r\n this.chkIncomplete = !this.chkIncomplete;\r\n this.chkShowAll = false;\r\n this.filterChanged();\r\n }\r\n\r\n showPurged() {\r\n this.chkPurged = !this.chkPurged;\r\n this.filterChanged();\r\n }\r\n\r\n showTBC() {\r\n this.chkTBC = !this.chkTBC;\r\n this.filterChanged();\r\n }\r\n\r\n filterChanged() {\r\n\r\n if (this.chkIncomplete) {\r\n this.rows = this.rowsCache.filter(x => x.dispatch != \"A\" && x.collections != \"A\");\r\n }\r\n\r\n if (this.chkShowAll) {\r\n this.rows = this.rowsCache;\r\n }\r\n }\r\n\r\n branchSelected() {\r\n\r\n if (this.selectedBranch != \"ALL\") {\r\n\r\n this.rows = this.rows.filter(x => x.branch == this.selectedBranch);\r\n }\r\n else {\r\n this.rows = this.rows;\r\n }\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Invoice\", \"Status\", \"CreateDate\", \"Operator\", \"PrintedDate\", \"DispatchedDate\", \"DeliveryDate\", \"ReturnedDate\", \"CollectionsDate\", \"PODReceivedDate\", \"CreditedDate\", \"PurgeReason\", \"Company\"]\r\n };\r\n\r\n var filename = \"InvoiceTracking\";\r\n var selectRows = [...this.rowsCache];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.insertDate).toISOString().split('T')[0];\r\n\r\n exportRows.push({\r\n Invoice: row.invoiceNumber, Status: row.currentStatus, CreateDate: date, Operator: row.operatorCode,\r\n PrintedDate: this.isValidDate(row.printedDateTime) ? new Date(row.printedDateTime).toISOString().split('T')[0] : \"\",\r\n DispatchedDate: this.isValidDate(row.dispatchDateTime) ? new Date(row.dispatchDateTime).toISOString().split('T')[0] : \"\",\r\n DeliveryDate: this.isValidDate(row.deliveryDateTime) ? new Date(row.deliveryDateTime).toISOString().split('T')[0] : \"\",\r\n ReturnedDate: this.isValidDate(row.returnedDateTime) ? new Date(row.returnedDateTime).toISOString().split('T')[0] : \"\",\r\n CollectionsDate: this.isValidDate(row.collectionsDateTime) ? new Date(row.collectionsDateTime).toISOString().split('T')[0] : \"\",\r\n PODReceivedDate: this.isValidDate(row.podReceivedDate) ? new Date(row.podReceivedDate).toISOString().split('T')[0] : \"\",\r\n CreditedDate: this.isValidDate(row.invoiceCreditedDate) ? new Date(row.invoiceCreditedDate).toISOString().split('T')[0] : \"\",\r\n PurgeReason: row.purgeReason,\r\n Company: row.fromCompany\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n isValidDate(d: any): boolean {\r\n\r\n var isValid = (d != null && d != \"\" && d != \"1900-01-01T00:00:00\");\r\n return isValid;\r\n // return d && Object.prototype.toString.call(d) === \"[object Date]\" && !isNaN(d.getTime()) && d > new Date(1900, 1, 2);\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n

Reports

\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n font-weight: bold;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtaW52b2ljZS10cmFja2luZy1wdXJnZS1jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL3JlcG9ydHMtaW52b2ljZS10cmFja2luZy1wdXJnZS1jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsWUFBWTtFQUNaLDBFQUEwRSxFQUFBO0VBUDVFO0lBVUksOEJBQThCO0lBQzlCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsVUFBVTtJQUNWLFdBQVcsRUFBQTtFQUlmLFVBQUE7RUFDQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUI7RUFDdkIsNkNBQTBDLEVBQUE7RUFJNUM7RUFDRSxhQUFhLEVBQUE7RUFHZjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDJCQUEyQjtFQUMzQixxQkFBcUIsRUFBQTtFQUx2QjtJQVFJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIscUNBQXFDO0lBQ3JDLDZCQUE2QjtJQUM3QixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLFVBQVUsRUFBQTtFQWRkO0lBbUJJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osZ0JBQWdCLEVBQUE7RUFyQnBCO0lBMEJJLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsWUFBWSxFQUFBO0VBSWhCO0VBQ0Usc0JBQXNCO0VBQ3RCLDREQUFpRztFQUNqRyxrQkFBa0IsRUFBQTtFQUdwQjtFQUNFLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksVUFBVSxFQUFBO0VBS2Q7RUFDRSxZQUFZLEVBQUE7RUFHZDtFQUNFLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QixFQUFBO0VBRXpCO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCO21DQ3pCK0I7SUQyQi9CLGlCQUFpQjtJQUNqQixZQUFZLEVBQUE7RUFiaEI7SUFpQkksa0JBQWtCO0lBQ2xCLGdCQUFnQixFQUFBO0VBbEJwQjtJQXNCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQixtQkFBQTtFQUNBO0VBQ0U7SUFDRSwrRkFBQTtJQUNBLDZCQUE2QixFQUFBLEVBQzlCO0VBR0gsa0JBQUE7RUFDQTtFQUNFO0lBQ0Usc0VBQUE7SUFDQSxzQkFBc0IsRUFBQSxFQUN2QjtFQUlIO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsV0FBVyxFQUFBO0VBR2I7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLE9BQU87RUFDUCxXQUFXLEVBQUE7RUFKYjtJQU9JLFlBQVksRUFBQTtFQUlkO0VBQ0UsZUFBZTtFQUNmLHdCQUF3QixFQUFBO0VBRzFCO0VBQ0UsZUFBZTtFQUNmLGlDQUFpQyxFQUFBO0VBR25DO0VBQ0UsZUFBZSxFQUFBO0VBR2pCO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxjQUFjLEVBQUE7RUFHaEI7RUFDRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGlCQUFpQixFQUFBO0VBR25COztFQUVFLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0U7SUFDRSxnQkFBZ0IsRUFBQSxFQUNqQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVwb3J0cy9yZXBvcnQtY29tcG9uZW50cy9yZXBvcnRzLWludm9pY2UtdHJhY2tpbmctcHVyZ2UtY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmFkZHJlc3MtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xyXG4gIHBhZGRpbmc6IDI1cHg7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xyXG5cclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyogTGFyZ2UgKi9cclxuLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xyXG4gIC8vaGVpZ2h0OiAyNXB4O1xyXG59XHJcblxyXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICBmbGV4OiBub25lO1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4ucm93IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4uY29udHJvbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMnB4O1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4gIH1cclxuXHJcbiAgLnN1YnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDdweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogN3B4O1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tZ3JvdXAge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmNoZWNrYm94IHtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAuY29sLXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbiAgLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcclxuICAgIG1pbi13aWR0aDogMTUwcHg7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4iLCIuYWRkcmVzcy1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xuICBwYWRkaW5nOiAyNXB4O1xuICBtYXJnaW46IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XG4gIC5hZGRyZXNzLWNvbnRhaW5lciBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiBtZWRpdW0gbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLyogTGFyZ2UgKi9cbi5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4uY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBmbGV4OiBub25lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4LWdyb3c6IDI7XG4gICAgbWluLXdpZHRoOiAyMDBweDsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4ucm93IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSAxMCUsICNmN2Y3ZjcpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuLmNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWluLXdpZHRoOiAxNzBweDsgfVxuXG4uY29udHJvbC1kZXRhaWwge1xuICBwYWRkaW5nOiA4cHg7IH1cbiAgLmNvbnRyb2wtZGV0YWlsIC5uYXYtbGluayB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDEyMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBTbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5jb2x1bW4gbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDsgfVxuXG4uc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7IH1cblxuLnN1YnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5sYXN0LXNlcGFyYXRvci1ociB7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBtaW4taGVpZ2h0OiAwOyB9XG5cbi5jaGVja2JveCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmNvbC1zZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcbiAgbWluLXdpZHRoOiAxNTBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1mb3JtLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4OyB9IH1cbiJdfQ== */\"","import { Component, OnInit, ViewChild, Input, TemplateRef } from '@angular/core';\r\n//import { ModalDirective } from 'ngx-bootstrap/modal';\r\n//import { AlertService, MessageSeverity } from '../../services/alert.service';\r\n//import { AccountService } from '../../services/account.service';\r\n//import { Utilities } from '../../services/utilities';\r\n//import { FowkesOnlineService } from '../../services/fowkes-online.service';\r\n//import { User } from '../../models/user.model';\r\n//import { UserEdit } from '../../models/user-edit.model';\r\n//import { Role } from '../../models/role.model';\r\n//import { Branch } from '../../models/branch.model';\r\n//import { ArCustomer } from '../../models/arcustomer.model';\r\n//import { CartHeader } from '../../models/cart-header.model';\r\n//import { ArCustomerEdit } from '../../models/arcustomer-edit.model';\r\n//import { SalesPerson } from '../../models/salesperson.model';\r\n//import { AspnetApplications } from '../../models/applications.model';\r\n//import { Permission } from '../../models/permission.model';\r\n//import { SysproService } from '../../services/syspro.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n//import { ArNarration } from 'src/app/models/arnarration.model';\r\n//import { localStorageActions } from 'src/app/models/enums';\r\n//import { ConfigurationService } from 'src/app/services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'reports-invoice-tracking-purge',\r\n templateUrl: './reports-invoice-tracking-purge-component.html',\r\n styleUrls: ['./reports-invoice-tracking-purge-component.scss']\r\n})\r\nexport class ReportsInvoiceTrackingPurgeComponent\r\n{// implements OnInit {\r\n\r\n private isEditMode = false;\r\n //private isSaving = false;\r\n //private isNavigating = false;\r\n //private showValidationErrors = false;\r\n //private editingUserName: string;\r\n //uniqueId: string = Utilities.uniqueId();\r\n //private user: User = new User();\r\n //customer: ArCustomer = new ArCustomer();\r\n //private customerEdit: ArCustomerEdit;\r\n //private cartEdit: CartHeader;\r\n //columns: any[] = [];\r\n //rows: ArNarration[] = [];\r\n //rowsCache: ArNarration[] = [];\r\n //private allSalesPersons: SalesPerson[] = [];\r\n //\r\n //public formResetToggle = true;\r\n //\r\n //public changesSavedCallback: () => void;\r\n //public changesFailedCallback: () => void;\r\n //public changesCancelledCallback: () => void;\r\n\r\n //@Input()\r\n //isViewOnly: boolean;\r\n //\r\n //@Input()\r\n //isGeneralEditor = false;\r\n //\r\n //\r\n //@ViewChild('f')\r\n //private form;\r\n\r\n // ViewChilds Required because ngIf hides template variables from global scope soldPostalCode\r\n //@ViewChild('customerName')\r\n //private customerName;\r\n //\r\n //@ViewChild('telex')\r\n //private telex;\r\n //\r\n //@ViewChild('soldPostalCode')\r\n //private soldPostalCode;\r\n //\r\n //@ViewChild('shipPostalCode')\r\n //private shipPostalCode;\r\n //\r\n //@ViewChild('email')\r\n //private email;\r\n //\r\n //@ViewChild('salespersons')\r\n //private salespersons;\r\n //\r\n //@ViewChild('salespersonSelector')\r\n //private salespersonSelector;\r\n //\r\n //@ViewChild('sysproOperator')\r\n //private sysproOperator;\r\n //\r\n //@ViewChild('applications')\r\n //private applications;\r\n //\r\n //@ViewChild('applicationsSelector')\r\n //private applicationsSelector;\r\n //\r\n\r\n //@ViewChild('notesModal')\r\n //notesModal: ModalDirective;\r\n //\r\n //@ViewChild('debtorsModal')\r\n //debtorsModal: ModalDirective;\r\n //\r\n //@ViewChild('indexTemplate')\r\n //indexTemplate: TemplateRef;\r\n //\r\n //private customerAccountStatus: string = \"\"\r\n //private sub: any;\r\n //private id: any = \"\";\r\n // customerNotes: ArNarration[];\r\n // customerIsOnHoldText: string;\r\n // totalInvoiceCount: number;\r\n //cartSaved: boolean;\r\n //\r\n //cartId: string = \"\";\r\n //cart: CartHeader = new CartHeader();\r\n // isNavigatingTo: string;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit() {\r\n \r\n //if (!this.isGeneralEditor) {\r\n // this.loadCurrentUserData();\r\n //}\r\n\r\n }\r\n /*\r\n private loadCurrentUserData() {\r\n this.alertService.startLoadingMessage();\r\n\r\n console.log(this.accountService);\r\n\r\n this.columns = [\r\n { prop: 'line', name: 'Line', width: 50, canAutoResize: false },\r\n { prop: 'notation', name: 'Notation', width: 300 }\r\n ];\r\n\r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let cartId = sessionStorage.getItem(localStorageActions.CartId);\r\n\r\n if (action) {\r\n this.id = action;\r\n }\r\n else {\r\n this.router.navigate(['../../customers']);\r\n }\r\n\r\n if (!!cartId) {\r\n this.cartId = cartId;\r\n console.log(\"I have loaded with this cartId\", this.cartId);\r\n\r\n }\r\n\r\n //Header should populate from the syspro customer\r\n this.sysproService.getCustomerDetail(this.id).subscribe(x => this.onDataLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n this.sysproService.getCustomerNotes(this.id).subscribe(x => this.onNotesLoadSuccessful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n this.sysproService.GetAllSalesPersons(this.branchCode).subscribe(x => this.onSalesPersonoadSuccessful([x]), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n }\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n private onSalesPersonoadSuccessful(salesPersons: any[]) {\r\n this.allSalesPersons = salesPersons[0];\r\n console.log(this.allSalesPersons);\r\n }\r\n \r\n private onDataLoadSuccessful(customer: ArCustomer) {\r\n this.alertService.stopLoadingMessage();\r\n this.customer = customer;\r\n console.log(\"THIS IS THE CUSTOMER\", this.customer);\r\n if (!!this.cartId) {\r\n //Header should populate from the syspro customer and the cart\r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n let overLimit = parseFloat(customer.creditLimit) - parseFloat(customer.currentBalance1);\r\n\r\n if (customer.customerOnHold === \"Y\") {\r\n this.customerIsOnHoldText = \"Customer is on hold\";\r\n this.customerAccountStatus = (overLimit < 0 ? \"On hold and exceeded credit limit\" : \"Customer on hold\");\r\n }\r\n else {\r\n this.customerAccountStatus = (overLimit < 0 ? \"Customer exceeded credit limit\" : \"In Terms\");\r\n }\r\n\r\n this.getTotalInvoices();\r\n\r\n console.log(\"THIS IS THE NEW CUSTOMER\", this.customer);\r\n\r\n this.alertService.showMessage('Success', `Loaded Syspro Customer`, MessageSeverity.success);\r\n }\r\n\r\n\r\n onCartHeaderLoadSuccessful(cart: CartHeader) {\r\n this.cart = cart;\r\n console.log(\"THIS IS THE CART\", this.cart);\r\n Object.assign(this.customer, this.cart);\r\n console.log(\"THIS IS THE CUSTOMER AND CART\", this.customer);\r\n\r\n this.alertService.showMessage('Success', `Loaded Cart Header`, MessageSeverity.success);\r\n }\r\n\r\n private getTotalInvoices() {\r\n this.totalInvoiceCount = parseFloat(this.customer.numCurrentInv) + parseFloat(this.customer.num30daysInv) + parseFloat(this.customer.num60daysInv)\r\n + parseFloat(this.customer.num90daysInv) + parseFloat(this.customer.num120daysInv);\r\n }\r\n\r\n private onNotesLoadSuccessful(notes: any[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.customerNotes = notes;\r\n if (notes[0].length > 0) {\r\n this.notesModal.show();\r\n }\r\n }\r\n\r\n goAddItems() {\r\n this.isNavigating = true;\r\n this.isNavigatingTo = \"inventory\";\r\n this.showValidationErrors = false;\r\n this.setCartHeader();\r\n this.save();\r\n }\r\n\r\n goAddNSItems() {\r\n this.isNavigating = true;\r\n this.isNavigatingTo = \"nonstock\";\r\n this.showValidationErrors = false;\r\n this.setCartHeader();\r\n this.save();\r\n }\r\n\r\n private onCurrentUserDataLoadSuccessful(user: User, roles: Role[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.user = user;\r\n }\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n\r\n this.user = new User();\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n private getSalesPersonByName(name: string) {\r\n return this.allSalesPersons.find((r) => r.salesperson == name);\r\n }\r\n \r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n \r\n private edit() {\r\n\r\n this.isEditMode = true;\r\n this.showValidationErrors = true;\r\n this.setCartHeader();\r\n }\r\n \r\n private setCartHeader() {\r\n\r\n this.cartEdit = new CartHeader();\r\n Object.assign(this.cartEdit, this.customer);\r\n this.cartEdit.userid = this.accountService.currentUser.id;\r\n\r\n console.log(\"THIS IS MY EDITING CART POPULATED WITH CUSTOMER\", this.cartEdit);\r\n\r\n if (!!this.cartId) {\r\n if (this.cart) {\r\n Object.assign(this.cartEdit, this.cart);\r\n console.log(\"THIS IS MY EDITING CART POPULATED WITH EXISTING CART\", this.cartEdit);\r\n console.log(\"THIS IS THE CART THAT WAS ADDED\", this.cart);\r\n }\r\n }\r\n else {\r\n let uniqueId = this.id + Math.random().toString(36).substring(2) + Date.now().toString(36);\r\n this.cartEdit.cartNumber = uniqueId;\r\n this.cartEdit.branch_code = this.configurations.branchCode;\r\n this.cartEdit.customerPoNumber = \"\";\r\n this.cartEdit.shippingInstrs = \"\";\r\n this.cartEdit.specialInstrs = \"\";\r\n this.cartEdit.ordertype = \"\";\r\n this.cartEdit.orderdiscountpercentage = 0;\r\n this.cartEdit.quotedFrom = \"\";\r\n this.cartEdit.hasNettPrices = false;\r\n console.log(\"CartNumber2\", this.cartEdit.cartNumber);\r\n }\r\n\r\n console.log(\"THIS IS WHAT I HAVE AFTER setCartHeader\", this.cartEdit);\r\n }\r\n\r\n setLocalCartId(cartId: string) {\r\n if (sessionStorage.getItem(localStorageActions.CartId) != cartId) {\r\n sessionStorage.setItem(localStorageActions.CartId, cartId);\r\n this.cartId = cartId;\r\n }\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n console.log(\"CartNumberSave\", this.cartEdit.cartNumber);\r\n this.fowkesService.newCart(this.cartEdit).subscribe(_response => this.saveSuccessHelper(this.cartEdit.cartNumber), error => this.saveFailedHelper(error));\r\n \r\n }\r\n\r\n\r\n private saveSuccessHelper(cartId: string) {\r\n\r\n this.setLocalCartId(cartId);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n this.isEditMode = false;\r\n\r\n this.alertService.showMessage('Success', `Updated successfully ` + cartId, MessageSeverity.success);\r\n\r\n if (!this.isNavigating) {\r\n this.fowkesService.getCartHeader(this.cartId).subscribe(x => this.onCartHeaderLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n }\r\n else {\r\n if (this.isNavigatingTo == \"nonstock\") {\r\n this.router.navigate(['../orders'], { fragment: 'nonstock', queryParams: { customer: this.customer.customer, cartId: cartId } });\r\n }\r\n if (this.isNavigatingTo == \"inventory\") {\r\n this.router.navigate(['../orders'], { fragment: 'inventory', queryParams: { customer: this.customer.customer, cartId: cartId } });\r\n }\r\n }\r\n }\r\n \r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback) {\r\n this.changesFailedCallback();\r\n }\r\n }\r\n \r\n \r\n private cancel() {\r\n //if (this.isGeneralEditor) {\r\n // //this.userEdit = this.user = new UserEdit();\r\n // this.customerEdit = this.customer = new ArCustomerEdit();\r\n //} else {\r\n // //this.userEdit = new UserEdit();\r\n // this.customerEdit = new ArCustomerEdit();\r\n // // Object.assign(this.cartEdit, this.customer);\r\n //}\r\n this.setCartHeader();\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.showMessage('Cancelled', 'Operation cancelled by user', MessageSeverity.default);\r\n this.alertService.resetStickyMessage();\r\n\r\n if (!this.isGeneralEditor) {\r\n this.isEditMode = false;\r\n }\r\n\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n\r\n private close() {\r\n // this.userEdit = this.user = new UserEdit();\r\n this.customerEdit = this.customer = new ArCustomerEdit();\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n this.isEditMode = false;\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n\r\n copySoldToShip() {\r\n this.cartEdit.shipToAddr1 = this.cartEdit.soldToAddr1;\r\n this.cartEdit.shipToAddr2 = this.cartEdit.soldToAddr2;\r\n this.cartEdit.shipToAddr3 = this.cartEdit.soldToAddr3;\r\n this.cartEdit.shipToAddr4 = this.cartEdit.soldToAddr4;\r\n this.cartEdit.shipToAddr5 = this.cartEdit.soldToAddr5;\r\n this.cartEdit.shipPostalCode = this.cartEdit.soldPostalCode;\r\n }\r\n\r\n copyShipToSold() {\r\n this.cartEdit.soldToAddr1 = this.cartEdit.shipToAddr1;\r\n this.cartEdit.soldToAddr2 = this.cartEdit.shipToAddr2;\r\n this.cartEdit.soldToAddr3 = this.cartEdit.shipToAddr3;\r\n this.cartEdit.soldToAddr4 = this.cartEdit.shipToAddr4;\r\n this.cartEdit.soldToAddr5 = this.cartEdit.shipToAddr5;\r\n this.cartEdit.soldPostalCode = this.cartEdit.shipPostalCode;\r\n }\r\n \r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n } else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n search() {\r\n if (this.cartId) {\r\n\r\n this.router.navigate(['../../orders'], { fragment: 'customers', queryParams: { customer: this.customer, cartId: this.cartId } });\r\n }\r\n else {\r\n this.router.navigate(['../../customers'], { fragment: 'customers', queryParams: { customer: this.customer } });\r\n }\r\n }\r\n\r\n //editCustomer(customer: ArCustomer, allSalesPersons: SalesPerson[]) {\r\n // if (customer) {\r\n // this.isGeneralEditor = true;\r\n\r\n // this.setSalesPerson(customer, allSalesPersons);\r\n // this.customer = new ArCustomer();\r\n // this.customerEdit = new ArCustomerEdit();\r\n // Object.assign(this.customer, customer);\r\n // Object.assign(this.customerEdit, customer);\r\n // this.edit();\r\n\r\n // console.log(this.customerEdit);\r\n // console.log(this.customer);\r\n // return this.customerEdit;\r\n // } \r\n //}\r\n\r\n\r\n //displayCustomer(customer: ArCustomer, allSalesPersons?: SalesPerson[]) {\r\n\r\n // this.customer = new ArCustomer();\r\n // Object.assign(this.customer, customer);\r\n // this.setSalesPerson(customer, allSalesPersons);\r\n // this.isEditMode = false;\r\n //}\r\n\r\n\r\n private setSalesPerson(customer: ArCustomer, allSalesPersons?: SalesPerson[]) {\r\n\r\n this.allSalesPersons = allSalesPersons ? [...allSalesPersons] : [];\r\n\r\n if (customer.salesperson) {\r\n if (!this.allSalesPersons.some(r => r.salesperson == customer.salesperson)) {\r\n this.allSalesPersons.unshift(new SalesPerson(customer.salesperson));\r\n }\r\n }\r\n\r\n if (allSalesPersons == null || this.allSalesPersons.length != allSalesPersons.length) {\r\n setTimeout(() => {\r\n if (this.salespersonSelector) {\r\n this.salespersonSelector.refresh();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n get canViewAllSalesPersons(){\r\n return true;\r\n }\r\n\r\n get canAssignSalesPersons() {\r\n return true;\r\n }\r\n\r\n get canViewAllBranches() {\r\n return true;\r\n }\r\n get canAssignBranches() {\r\n return true;\r\n }\r\n\r\n get canAssignApplications() {\r\n return true;\r\n }\r\n\r\n get canViewAllRoles() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n get canCreateCart() {\r\n return this.accountService.userHasPermission(Permission.placeOrderPermission);\r\n }\r\n */\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Orders Not Yet Printed
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}} 0\\\">*\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{value | date: 'yyyy/MM/dd HH:mm'}}\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
Orders On Hold
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}} 0\\\">*\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{value | date: 'yyyy/MM/dd HH:mm'}}\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
Orders Not Yet Completed
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}} 0\\\">*\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n {{value | date: 'yyyy/MM/dd HH:mm'}}\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Missing from ITS
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value | date: 'yyyy/MM/dd HH:mm'}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtaW52b2ljZS10cmFja2luZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQywrQkFBK0IsRUFBQTs7QUFHakM7RUFDRSxpQ0FBaUM7RUFDakMsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkIsRUFBQTs7QUFKN0I7SUFRSSxtQkFBbUI7SUFDbkIsZ0NBQWdDLEVBQUE7O0FBVHBDO0lBY0ksZ0JBQWdCO0lBQ2hCLDBCQUEwQixFQUFBOztBQWY5QjtJQW1CSSxxQ0FBcUMsRUFBQTs7QUFJekM7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UsWUFBWSxFQUFBOztBQUdkO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUZsQjtJQUtJLGdCQUFnQixFQUFBOztBQU1wQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxTQUFTLEVBQUE7O0FBR2I7RUFDSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1pbnZvaWNlLXRyYWNraW5nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLmZpeGVkLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlciAuZGF0YXRhYmxlLWhlYWRlci1pbm5lciAuZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwIDVweCAwIDVweCAhaW1wb3J0YW50OyAvLyBhbGlnbiB0aGUgaGVhZGVyIHRleHRcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICBwYWRkaW5nOiAycHggNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcblxyXG5cclxuICAuYnRuLWxpbmsuZ3JpZCB7XHJcbiAgICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4NjhlOTU7XHJcbiAgICAvL2NvbG9yOiAjRDkyMzBGO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMjZweDtcclxuICBmb250LXNpemU6IDAuNzAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgsIC50YWJsZSB0ZHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcblxyXG4gIC50b2dnbGUuYnRuLXNtIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi51c2VyLXJvbGUge1xyXG4gIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICBtYXJnaW4tcmlnaHQ6IDFweDtcclxufVxyXG5cclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubmF2LWl0ZW0udG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbi51c2VyLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbiJdfQ== */\"","\r\nimport { AfterViewInit, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { SalesOrderList } from 'src/app/models/salesorder-list.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { InvoiceTrackingStatus } from '../../../models/invoice-tracking-status.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'reports-invoice-tracking',\r\n templateUrl: './reports-invoice-tracking.component.html',\r\n styleUrls: ['./reports-invoice-tracking.component.scss']\r\n})\r\nexport class ReportsInvoiceTrackingComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n columns: any[] = [];\r\n missingcolumns: any[] = [];\r\n \r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n\r\n @ViewChild('missinginvoiceTemplate')\r\n missinginvoiceTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n \r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n invoiceTrackingListNotPrinted: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListOnHold: InvoiceTrackingStatus[] = [];\r\n invoiceTrackingListNotCompleted: InvoiceTrackingStatus[] = [];\r\n rowsMissing: InvoiceTrackingStatus[] = [];\r\n rowsCacheMissing: InvoiceTrackingStatus[] = [];\r\n rowsCache: InvoiceTrackingStatus[] = [];\r\n\r\n gridHeight: number = 0;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n itsDetail: InvoiceTrackingStatus;\r\n currentCompany: string;\r\n\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n selectedBranch: string;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n\r\n this.loadGrids();\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = \"ALL\";\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesService.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n this.currentCompany = (this.application == \"MaxArcusOnline\" ? \"Max Arcus\" : \"Fowkes Bros\");\r\n this.selectedBranch = \"ALL\";\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n reset() {\r\n\r\n this.loadData();\r\n }\r\n\r\n private loadGrids() {\r\n this.columns = [\r\n { prop: 'invoiceNumber', name: 'Invoice', width: 100 , cellTemplate: this.invoiceTemplate },\r\n { prop: 'lastOperator', name: 'Assigned User', width: 160 },\r\n { prop: 'currentStatus', name: 'Status', width: 100 },\r\n { prop: 'insertDate', name: 'Date', width: 120, cellTemplate: this.dateTemplate }\r\n ];\r\n\r\n this.missingcolumns = [\r\n { prop: 'invoiceNumber', name: 'Invoice', width: 100 , cellTemplate: this.missinginvoiceTemplate },\r\n { prop: 'lastOperator', name: 'Assigned User', width: 160 },\r\n { prop: 'currentStatus', name: 'Status', width: 100 },\r\n { prop: 'insertDate', name: 'Date', width: 120, cellTemplate: this.dateTemplate }\r\n ];\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.loadGrids();\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.invoiceTrackingListNotCompleted = this.invoiceTrackingListNotCompleted.filter(r => Utilities.searchArray(value, false, r.lastOperator, r.salesOrder, r.customerCode,\r\n r.currentStatus, r.insertDate, r.invoiceNumber, r.customerName));\r\n this.invoiceTrackingListOnHold = this.invoiceTrackingListOnHold.filter(r => Utilities.searchArray(value, false, r.lastOperator, r.salesOrder, r.customerCode,\r\n r.currentStatus, r.insertDate, r.invoiceNumber, r.customerName));\r\n this.invoiceTrackingListNotPrinted = this.invoiceTrackingListNotPrinted.filter(r => Utilities.searchArray(value, false, r.lastOperator, r.salesOrder, r.customerCode,\r\n r.currentStatus, r.insertDate, r.invoiceNumber, r.customerName));\r\n }\r\n else {\r\n this.invoiceTrackingListNotPrinted = this.rowsCache.filter(r => r.printed != 'A');\r\n this.invoiceTrackingListOnHold = this.rowsCache.filter(r => r.onHoldUpdate === 'A');\r\n this.invoiceTrackingListNotCompleted = this.rowsCache.filter(r => r.currentStatus != 'On Hold' && r.completed == 'I');\r\n }\r\n }\r\n\r\n specificSearch() {\r\n if (this.searchType && this.searchText != \"\") {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.searchResults = null;\r\n this.sysproService.getSalesOrderSearchByCriteria(this.searchType, this.searchText).subscribe(\r\n x => this.onSpecificSearchSuccesful(x), error => this.onSearchFailed(error));\r\n }\r\n else {\r\n this.alertService.showStickyMessage('Empty search', 'Please enter a value to search on',\r\n MessageSeverity.warn);\r\n }\r\n }\r\n\r\n\r\n onSpecificSearchSuccesful(x: SalesOrderList[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.searchResults = x.filter(i => i.invoiceNumber != '');\r\n\r\n }\r\n\r\n\r\n branchSelected() {\r\n\r\n if (this.selectedBranch != \"ALL\") {\r\n\r\n this.invoiceTrackingListNotPrinted = this.rowsCache.filter(x => x.printed != 'A' && x.branch == this.selectedBranch);\r\n this.invoiceTrackingListOnHold = this.rowsCache.filter(x => x.onHoldUpdate === 'A' && x.branch == this.selectedBranch);\r\n this.invoiceTrackingListNotCompleted = this.rowsCache.filter(x => x.currentStatus != 'On Hold' && x.completed == 'I' && x.branch == this.selectedBranch);\r\n }\r\n else {\r\n this.invoiceTrackingListNotPrinted = this.rowsCache.filter(r => r.printed != 'A');\r\n this.invoiceTrackingListOnHold = this.rowsCache.filter(r => r.onHoldUpdate === 'A');\r\n this.invoiceTrackingListNotCompleted = this.rowsCache.filter(r => r.currentStatus != 'On Hold' && r.completed == 'I');\r\n }\r\n }\r\n\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n\r\n this.selectedBranch = this.branchCode;\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n viewInvoiceSelected() {\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.searchResultSelected.invoiceNumber);\r\n this.router.navigate(['/reports'], { fragment: 'invoicestatus'});\r\n \r\n }\r\n\r\n viewITSInvoice(row: InvoiceTrackingStatus) {\r\n\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.salesOrder);\r\n sessionStorage.setItem(localStorageActions.Customer, row.customerCode);\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, row.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: row.customerCode } });\r\n }\r\n\r\n\r\n viewInvoice(row: InvoiceTrackingStatus) {\r\n\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoiceNumber);\r\n\r\n this.itsDetail = row;\r\n if (row.id > 0) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n itsModallHide() {\r\n this.itsDetail = null;\r\n this.itsModal.hide();\r\n }\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n\r\n this.sysproService.getMissingITS().subscribe(x => this.onMissingSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.getAllInvoiceTrackingStatus().subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.searchType = \"itsinvoice\";\r\n }\r\n \r\n\r\n onSearchSuccesful(x: InvoiceTrackingStatus[]): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.rowsCache = x;\r\n\r\n if (x.length > 0) {\r\n this.invoiceTrackingListNotPrinted = x.filter(r => r.printed != 'A');\r\n this.invoiceTrackingListOnHold = x.filter(r => r.onHoldUpdate === 'A');\r\n this.invoiceTrackingListNotCompleted = x.filter(r => r.currentStatus != 'On Hold' && r.completed == 'I');\r\n\r\n this.branchSelected();\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n \r\n }\r\n\r\n onMissingSearchSuccesful(x: InvoiceTrackingStatus[]): void {\r\n if (x && x.length > 0) {\r\n this.rowsCacheMissing = [...x];\r\n let rowsCacheMissingFiltered = this.rowsCacheMissing.filter(r => r.fromCompany == this.currentCompany && r.shippingInstructions != \"Taken By Customer\");\r\n this.rowsMissing = rowsCacheMissingFiltered;\r\n //Auto update ITS with these records\r\n }\r\n console.log(x);\r\n }\r\n\r\n \r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n \r\n\r\n get canViewCustomers() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canManageCustomers() {\r\n return this.accountService.userHasPermission(Permission.manageCustomersPermission);\r\n }\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Invoice\", \"Assigned User\", \"Status\", \"Date\"]\r\n };\r\n\r\n var filename = \"InvoiceTracking\";\r\n var selectRows = [...this.rowsCache];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.insertDate).toISOString().split('T')[0];\r\n exportRows.push({\r\n Invoice: row.invoiceNumber + (row.poCount > 0 ? '*' : ''), AssignedUser: row.lastOperator, Status: row.currentStatus, Date: date\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Delivery Details
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}} 0\\\">*\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{ (value !== '1900-01-01T00:00:00') ? (value | date: 'yyyy/MM/dd HH:mm') : \\\"\\\" }}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{ (value !== '1900-01-01T00:00:00') ? (value | date: 'yyyy/MM/dd') : \\\"\\\" }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n vertical-align: middle !important;\\n padding: 0 5px 0 5px !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n padding: 2px 5px 0 5px !important;\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell .btn-link.grid {\\n font-size: 0.700rem;\\n border-bottom: 1px solid #868e95; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a {\\n text-align: left;\\n cursor: pointer !important; }\\n\\n:host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell a.hover {\\n text-decoration: underline !important; }\\n\\ninput.form-control {\\n height: 26px;\\n font-size: 0.700rem; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtcHJvZHVjdC1jYXRhbG9ndWUtdXNhZ2UuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsK0JBQStCLEVBQUE7O0FBR2pDO0VBQ0UsaUNBQWlDO0VBQ2pDLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsMkJBQTJCLEVBQUE7O0FBSjdCO0lBUUksbUJBQW1CO0lBQ25CLGdDQUFnQyxFQUFBOztBQVRwQztJQWNJLGdCQUFnQjtJQUNoQiwwQkFBMEIsRUFBQTs7QUFmOUI7SUFtQkkscUNBQXFDLEVBQUE7O0FBSXpDO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLFlBQVksRUFBQTs7QUFHZDtFQUNFLFlBQVk7RUFDWixnQkFBZ0IsRUFBQTs7QUFGbEI7SUFLSSxnQkFBZ0IsRUFBQTs7QUFNcEI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksU0FBUyxFQUFBOztBQUdiO0VBQ0ksZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFHcEI7RUFDSSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL3JlcG9ydHMtcHJvZHVjdC1jYXRhbG9ndWUtdXNhZ2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUuZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLWlubmVyIC5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm5neC1kYXRhdGFibGUubWF0ZXJpYWwgLmRhdGF0YWJsZS1ib2R5IC5kYXRhdGFibGUtYm9keS1yb3cgLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIHBhZGRpbmc6IDJweCA1cHggMCA1cHggIWltcG9ydGFudDsgLy8gYWxpZ24gdGhlIGhlYWRlciB0ZXh0XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuXHJcblxyXG4gIC5idG4tbGluay5ncmlkIHtcclxuICAgIGZvbnQtc2l6ZTogMC43MDByZW07XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzg2OGU5NTtcclxuICAgIC8vY29sb3I6ICNEOTIzMEY7XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIGEuaG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgaGVpZ2h0OiAyNnB4O1xyXG4gIGZvbnQtc2l6ZTogMC43MDByZW07XHJcbn1cclxuXHJcbi50YWJsZSB0aCwgLnRhYmxlIHRke1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgcGFkZGluZy10b3A6IDNweDtcclxuXHJcbiAgLnRvZ2dsZS5idG4tc20ge1xyXG4gICAgbWluLWhlaWdodDogMjdweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5uYXYtaXRlbS50b29sYmFyaXRlbSBhIHtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLnVzZXItZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICM3Nzc7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuIl19 */\"","\r\nimport { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { ArCustomer } from 'src/app/models/arcustomer.model';\r\nimport { ArCustomerEdit } from 'src/app/models/arcustomer-edit.model';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\nimport { Inventory } from 'src/app/models/inventory.model';\r\nimport { CartDetail } from 'src/app/models/cart-detail.model';\r\nimport { CartHeader } from 'src/app/models/cart-header.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Calculations } from 'src/app/services/calculations.service';\r\nimport { QuoteList } from 'src/app/models/quote-list.model';\r\nimport { SalesOrderList } from 'src/app/models/salesorder-list.model';\r\nimport { PurchaseOrderList } from 'src/app/models/purchaseorder-list.model';\r\nimport { User } from '../../../models/user.model';\r\nimport { InvoiceTrackingStatus } from '../../../models/invoice-tracking-status.model';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { CatalogueActionReport } from '../../../models/catalogue-action-report.model';\r\n\r\n\r\n@Component({\r\n selector: 'reports-product-catalogue-usage',\r\n templateUrl: './reports-product-catalogue-usage.component.html',\r\n styleUrls: ['./reports-product-catalogue-usage.component.scss']\r\n})\r\nexport class ReportsProductCatalogueComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n columns: any[] = [];\r\n\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('dateOnlyTemplate')\r\n dateOnlyTemplate: TemplateRef;\r\n\r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n\r\n @ViewChild('#companiesListSelector')\r\n private companiesListSelector;\r\n\r\n rows: CatalogueActionReport[] = [];\r\n rowsCache: CatalogueActionReport[] = [];\r\n\r\n gridHeight: number = 0;\r\n selectedItems: any;\r\n isNavigating: boolean;\r\n countRecords: number;\r\n percentageCount: number;\r\n chkPurged: boolean;\r\n chkTBC: boolean;\r\n chkIncomplete: boolean;\r\n chkShowAll: boolean;\r\n selectedCompany: string;\r\n\r\n\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n itsDetail: InvoiceTrackingStatus;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private configurations: ConfigurationService,\r\n private fowkesService: FowkesOnlineService, private sysproService: SysproService, private reportService: ReportService,\r\n private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n\r\n this.setGrid();\r\n\r\n this.selected = {\r\n startDate: moment().startOf('month'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n this.selectedCompany = \"ALL\";// (this.application == \"MaxArcusOnline\" ? \"Max Arcus\" : \"Fowkes Bros\");\r\n\r\n\r\n this.chkTBC = true;\r\n this.chkPurged = true;\r\n this.chkIncomplete = false;\r\n this.chkShowAll = true;\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n this.setGrid();\r\n }\r\n\r\n setGrid() {\r\n this.columns = [\r\n { prop: 'createdDate', name: 'Create Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'actionedBy', name: 'Operator', width: 200 },\r\n { prop: 'branch', name: 'Branch', width: 80 },\r\n { prop: 'referenceNumber', name: 'Type', width: 200 },\r\n { prop: 'actionType', name: 'Action', width: 80 },\r\n { prop: 'actionInput', name: 'Detail', width: 300 }\r\n ];\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.actionedBy, r.branch, r.actionType,\r\n r.actionInput, r.referenceType, r.referenceNumber));\r\n }\r\n }\r\n\r\n specificSearch() {\r\n this.loadData();\r\n }\r\n\r\n\r\n // onSpecificSearchSuccesful(x: SalesOrderList[]): void {\r\n\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n // this.searchResults = x.filter(i => i.invoiceNumber != '');\r\n\r\n //}\r\n\r\n\r\n viewInvoiceSelected() {\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, this.searchResultSelected.invoiceNumber);\r\n this.router.navigate(['/reports'], { fragment: 'invoicestatus' });\r\n\r\n }\r\n\r\n\r\n viewInvoice(row: InvoiceTrackingStatus) {\r\n\r\n\r\n //if ((this.application == \"MaxArcusOnline\" && row.fromCompany == \"Max Arcus\") || (this.application == \"FowkesOnline\" && row.fromCompany == \"Fowkes Bros\")) {\r\n\r\n sessionStorage.removeItem(localStorageActions.ITSInvoiceNumber);\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoiceNumber);\r\n\r\n this.itsDetail = row;\r\n\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n //}\r\n\r\n }\r\n\r\n\r\n\r\n\r\n itsModallHide() {\r\n this.itsDetail = null;\r\n this.itsModal.hide();\r\n }\r\n\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n\r\n this.sysproService.getCatalogueUseReportData(startD.toJSON(), endD.toJSON()).subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onSearchSuccesful(x: CatalogueActionReport[]): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.countRecords = 0;\r\n this.percentageCount = 0;\r\n\r\n if (x && x.length > 0) {\r\n this.rowsCache = x;\r\n\r\n // this.countRecords = this.invoiceTrackingPODsReceived.length;\r\n //this.percentageCount = (this.countRecords / this.rowsCache.length) * 100;\r\n\r\n this.rows = this.rowsCache;\r\n\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n\r\n showAll() {\r\n this.chkShowAll = !this.chkShowAll;\r\n this.chkIncomplete = false;\r\n this.filterChanged();\r\n }\r\n\r\n showOnlyIncomplete() {\r\n this.chkIncomplete = !this.chkIncomplete;\r\n this.chkShowAll = false;\r\n this.filterChanged();\r\n }\r\n\r\n showPurged() {\r\n this.chkPurged = !this.chkPurged;\r\n this.filterChanged();\r\n }\r\n\r\n showTBC() {\r\n this.chkTBC = !this.chkTBC;\r\n this.filterChanged();\r\n }\r\n\r\n filterChanged() {\r\n\r\n //if (this.chkIncomplete) {\r\n // this.rows = this.rowsCache.filter(x => x.dispatch != \"A\" && x.collections != \"A\");\r\n //}\r\n\r\n //if (this.chkShowAll) {\r\n // this.rows = this.rowsCache;\r\n //}\r\n\r\n\r\n }\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onSearchFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.loadData();\r\n this.show = false;\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"CreateDate\", \"Operator\", \"Branch\", \"Type\", \"Action\", \"Detail\"]\r\n };\r\n\r\n var filename = \"CatalogueUsage\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.createdDate).toISOString().split('T')[0];\r\n\r\n exportRows.push({\r\n CreateDate: date, Operator: row.actionedBy,\r\n Branch: row.branch,\r\n Type: row.referenceNumber,\r\n Action: row.actionType,\r\n Detail: row.actionInput\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n isValidDate(d: any): boolean {\r\n\r\n var isValid = (d != null && d != \"\" && d != \"1900-01-01T00:00:00\");\r\n return isValid;\r\n // return d && Object.prototype.toString.call(d) === \"[object Date]\" && !isNaN(d.getTime()) && d > new Date(1900, 1, 2);\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n font-weight: bold;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtcHJvZHVjdGl2aXR5LWNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1wcm9kdWN0aXZpdHktY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7RUFDWiwwRUFBMEUsRUFBQTtFQVA1RTtJQVVJLDhCQUE4QjtJQUM5QixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLFVBQVU7SUFDVixXQUFXLEVBQUE7RUFJZixVQUFBO0VBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiw4QkFBOEI7RUFDOUIsdUJBQXVCO0VBQ3ZCLDZDQUEwQyxFQUFBO0VBSTVDO0VBQ0UsYUFBYSxFQUFBO0VBR2Y7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IscUJBQXFCLEVBQUE7RUFMdkI7SUFRSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixVQUFVLEVBQUE7RUFkZDtJQW1CSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0VBckJwQjtJQTBCSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLFlBQVksRUFBQTtFQUloQjtFQUNFLHNCQUFzQjtFQUN0Qiw0REFBaUc7RUFDakcsa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxZQUFZLEVBQUE7RUFEZDtJQUlJLFVBQVUsRUFBQTtFQUtkO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUIsRUFBQTtFQUV6QjtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQjttQ0N6QitCO0lEMkIvQixpQkFBaUI7SUFDakIsWUFBWSxFQUFBO0VBYmhCO0lBaUJJLGtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBQTtFQWxCcEI7SUFzQkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEIsbUJBQUE7RUFDQTtFQUNFO0lBQ0UsK0ZBQUE7SUFDQSw2QkFBNkIsRUFBQSxFQUM5QjtFQUdILGtCQUFBO0VBQ0E7RUFDRTtJQUNFLHNFQUFBO0lBQ0Esc0JBQXNCLEVBQUEsRUFDdkI7RUFJSDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLFdBQVcsRUFBQTtFQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixPQUFPO0VBQ1AsV0FBVyxFQUFBO0VBSmI7SUFPSSxZQUFZLEVBQUE7RUFJZDtFQUNFLGVBQWU7RUFDZix3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGVBQWU7RUFDZixpQ0FBaUMsRUFBQTtFQUduQztFQUNFLGVBQWUsRUFBQTtFQUdqQjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsY0FBYyxFQUFBO0VBR2hCO0VBQ0UsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxpQkFBaUIsRUFBQTtFQUduQjs7RUFFRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFO0lBQ0UsZ0JBQWdCLEVBQUEsRUFDakIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1wcm9kdWN0aXZpdHktY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmFkZHJlc3MtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xyXG4gIHBhZGRpbmc6IDI1cHg7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xyXG5cclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyogTGFyZ2UgKi9cclxuLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xyXG4gIC8vaGVpZ2h0OiAyNXB4O1xyXG59XHJcblxyXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICBmbGV4OiBub25lO1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4ucm93IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4uY29udHJvbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIHtcclxuICBwYWRkaW5nOiA4cHg7XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCAubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMnB4O1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4O1xyXG59XHJcblxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDE7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4gIH1cclxuXHJcbiAgLnN1YnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDdweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogN3B4O1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tZ3JvdXAge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1jb250cm9sLXBsYWludGV4dCB7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmNoZWNrYm94IHtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAuY29sLXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbC1yZXNldC1kZWZhdWx0IC5idG4sXHJcbiAgLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcclxuICAgIG1pbi13aWR0aDogMTUwcHg7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4iLCIuYWRkcmVzcy1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xuICBwYWRkaW5nOiAyNXB4O1xuICBtYXJnaW46IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XG4gIC5hZGRyZXNzLWNvbnRhaW5lciBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiBtZWRpdW0gbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLyogTGFyZ2UgKi9cbi5mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4uY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBmbGV4OiBub25lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4LWdyb3c6IDI7XG4gICAgbWluLXdpZHRoOiAyMDBweDsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4ucm93IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSAxMCUsICNmN2Y3ZjcpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuLmNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWluLXdpZHRoOiAxNzBweDsgfVxuXG4uY29udHJvbC1kZXRhaWwge1xuICBwYWRkaW5nOiA4cHg7IH1cbiAgLmNvbnRyb2wtZGV0YWlsIC5uYXYtbGluayB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDEyMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBTbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5jb2x1bW4gbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDsgfVxuXG4uc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7IH1cblxuLnN1YnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5sYXN0LXNlcGFyYXRvci1ociB7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBtaW4taGVpZ2h0OiAwOyB9XG5cbi5jaGVja2JveCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmNvbC1zZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcbiAgbWluLXdpZHRoOiAxNTBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1mb3JtLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4OyB9IH1cbiJdfQ== */\"","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { InvoiceTrackingProductivity } from '../../../models/invoice-tracking-productivity.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n@Component({\r\n selector: 'reports-productivity',\r\n templateUrl: './reports-productivity-component.html',\r\n styleUrls: ['./reports-productivity-component.scss']\r\n})\r\nexport class ReportsProductivityComponent implements OnInit {\r\n\r\n columns: any[] = [];\r\n\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n \r\n rows: InvoiceTrackingProductivity[] = [];\r\n\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(5, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n show: boolean;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n rowsCache: InvoiceTrackingProductivity[];\r\n\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n selectedBranch: string;\r\n\r\n constructor(private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute, private fowkesOnline: FowkesOnlineService,\r\n private configurations: ConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.columns = [\r\n { prop: 'branch', name: 'WH', width: 50, cellClass: \"left\" },\r\n { prop: 'userName', name: 'User Name', width: 200, cellClass: \"left\" },\r\n { prop: 'totalInvoicesPicked', name: 'Invoices Picked', width: 200, cellClass: \"right\" },\r\n { prop: 'invoiceLinesPicked', name: 'Invoice Lines Picked', width: 200, cellClass: \"right\" },\r\n { prop: 'totalInvoicesChecked', name: 'Invoices Checked', width: 200, cellClass: \"right\" },\r\n { prop: 'invoiceLinesChecked', name: 'Invoice Lines Checked', width: 170, cellClass: \"right\" }\r\n\r\n ]\r\n\r\n this.selected = {\r\n startDate: moment().subtract(1, 'days'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n\r\n this.dateFilterChanged();\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n }\r\n\r\n\r\n branchSelected() {\r\n\r\n if (this.selectedBranch != \"ALL\") {\r\n\r\n this.rows = this.rowsCache.filter(x => x.branch == this.selectedBranch);\r\n }\r\n else {\r\n this.rows = this.rowsCache;\r\n }\r\n }\r\n\r\n\r\n get branchCode(): string {\r\n return this.configurations.branchCode;\r\n }\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n\r\n this.selectedBranch = this.branchCode;\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onReportLoadSuccessful(result: InvoiceTrackingProductivity[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n if (result && result.length >= 1 && result[0].userName != '') {\r\n\r\n this.rows = result;\r\n this.rowsCache = this.rows;\r\n\r\n this.branchSelected();\r\n }\r\n else { \r\n\r\n this.rows = null;\r\n this.rowsCache = this.rows;\r\n this.alertService.showStickyMessage('Load Error', `No results found, try adjusting your search criteria`,\r\n MessageSeverity.error);\r\n }\r\n\r\n }\r\n\r\n onReportLoadFailed(error: any): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n\r\n\r\n }\r\n \r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n dateFilterChanged() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n // end.setHours(23, 59, 59, 999);\r\n this.sysproService.getInvoiceTrackingProductivity(startD.toJSON(), endD.toJSON()).subscribe(x => this.onReportLoadSuccessful(x), error => this.onReportLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n\r\n this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Branch\", \"UserName\", \"TotalInvoicesPicked\", \"InvoiceLinesPicked\", \"TotalInvoicesChecked\", \"InvoiceLinesChecked\"]\r\n };\r\n\r\n var filename = \"UserProductivity\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n Branch: row.branch,\r\n UserName: row.userName, TotalInvoicesPicked: row.totalInvoicesPicked, InvoiceLinesPicked: row.invoiceLinesPicked,\r\n TotalInvoicesChecked: row.totalInvoicesChecked, InvoiceLinesChecked: row.invoiceLinesChecked\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
= 1\\\" class=\\\"row\\\" style=\\\"margin: 2px 0 2px 0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}} %\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtcXVvdGUtc2FsZXMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvcmVwb3J0cy9yZXBvcnQtY29tcG9uZW50cy9yZXBvcnRzLXF1b3RlLXNhbGVzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGFBQWE7RUFDYixZQUFZO0VBQ1osMEVBQTBFLEVBQUE7RUFQNUU7SUFVSSw4QkFBOEI7SUFDOUIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixVQUFVO0lBQ1YsV0FBVyxFQUFBO0VBSWYsVUFBQTtFQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QjtFQUN2Qiw2Q0FBMEMsRUFBQTtFQUk1QztFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixxQ0FBcUM7SUFDckMsNkJBQTZCO0lBQzdCLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osVUFBVSxFQUFBO0VBZGQ7SUFtQkksa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixnQkFBZ0IsRUFBQTtFQXJCcEI7SUEwQkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEI7RUFDRSxzQkFBc0I7RUFDdEIsNERBQWlHO0VBQ2pHLGtCQUFrQixFQUFBO0VBR3BCO0VBQ0UsZUFBZTtFQUVmLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxZQUFZLEVBQUE7RUFEZDtJQUlJLFVBQVUsRUFBQTtFQUtkO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUIsRUFBQTtFQUV6QjtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQjttQ0MxQitCO0lENEIvQixpQkFBaUI7SUFDakIsWUFBWSxFQUFBO0VBYmhCO0lBaUJJLGtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBQTtFQWxCcEI7SUFzQkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEIsbUJBQUE7RUFDQTtFQUNFO0lBQ0UsK0ZBQUE7SUFDQSw2QkFBNkIsRUFBQSxFQUM5QjtFQUdILGtCQUFBO0VBQ0E7RUFDRTtJQUNFLHNFQUFBO0lBQ0Esc0JBQXNCLEVBQUEsRUFDdkI7RUFJSDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLFdBQVcsRUFBQTtFQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixPQUFPO0VBQ1AsV0FBVyxFQUFBO0VBSmI7SUFPSSxZQUFZLEVBQUE7RUFJZDtFQUNFLGVBQWU7RUFDZix3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGVBQWU7RUFDZixpQ0FBaUMsRUFBQTtFQUduQztFQUNFLGVBQWUsRUFBQTtFQUdqQjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsY0FBYyxFQUFBO0VBR2hCO0VBQ0UsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxpQkFBaUIsRUFBQTtFQUduQjs7RUFFRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFO0lBQ0UsZ0JBQWdCLEVBQUEsRUFDakIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1xdW90ZS1zYWxlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uYWRkcmVzcy1jb250YWluZXIge1xyXG4gIG1heC13aWR0aDogNDAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XHJcbiAgcGFkZGluZzogMjVweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7XHJcblxyXG4gIGZpZWxkc2V0IHtcclxuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMCAwIDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBMYXJnZSAqL1xyXG4uZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XHJcbiAgLy9oZWlnaHQ6IDI1cHg7XHJcbn1cclxuXHJcbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIGZsZXg6IG5vbmU7XHJcblxyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICAgIG1pbi13aWR0aDogMjAwcHg7XHJcblxyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleDogMztcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICB9XHJcbn1cclxuXHJcbi5yb3cge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYigyNTUsIDI1NSwgMjU1KSwgcmdiKDI1NSwgMjU1LCAyNTUpIDEwJSwgcmdiKDI0NywgMjQ3LCAyNDcpKTtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWxhYmVsIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAvLyBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAzcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gIG1pbi13aWR0aDogMTcwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCB7XHJcbiAgcGFkZGluZzogOHB4O1xyXG5cclxuICAubmF2LWxpbmsge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xyXG4gIHBhZGRpbmc6IDJweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gIHBhZGRpbmc6IDVweCAxMHB4IDAgMTBweDtcclxufVxyXG5cclxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuc21hbGwtY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgd2lkdGg6IDEyMHB4O1xyXG4gIH1cclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLyogTWVkaXVtIHNjcmVlbnMgKi9cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcclxuICAuZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgICAvKiBXaGVuIG9uIG1lZGl1bSBzaXplZCBzY3JlZW5zLCB3ZSBjZW50ZXIgaXQgYnkgZXZlbmx5IGRpc3RyaWJ1dGluZyBlbXB0eSBzcGFjZSBhcm91bmQgaXRlbXMgKi9cclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gIH1cclxufVxyXG5cclxuLyogU21hbGwgc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5jb2x1bW4ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4OiAxO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG5cclxuICBsYWJlbCB7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogN3B4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxuICB9XHJcblxyXG4gIC5zdWJzZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDdweDtcclxuICB9XHJcblxyXG4gIC5mb3JtLWdyb3VwIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xyXG4gICAgbWluLWhlaWdodDogMDtcclxuICB9XHJcblxyXG4gIC5jaGVja2JveCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxuICB9XHJcblxyXG4gIC5jb2wtcmVzZXQtZGVmYXVsdCB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1zZXQtZGVmYXVsdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICB9XHJcblxyXG4gIC5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxyXG4gIC5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XHJcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuY29sLWZvcm0tbGFiZWwge1xyXG4gICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuIiwiLmFkZHJlc3MtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI0Y5RjlGOTtcbiAgcGFkZGluZzogMjVweDtcbiAgbWFyZ2luOiAxMHB4O1xuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI0KTsgfVxuICAuYWRkcmVzcy1jb250YWluZXIgZmllbGRzZXQge1xuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi8qIExhcmdlICovXG4uZmxleC1kaXN0cmlidXRlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLmZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDEwcHg7IH1cblxuLmNvbnRyb2wtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZzogLjEwcmVtIC41MHJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgZmxleDogbm9uZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleC1ncm93OiAyO1xuICAgIG1pbi13aWR0aDogMjAwcHg7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleDogMztcbiAgICBmbGV4LWdyb3c6IDI7IH1cblxuLnJvdyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh3aGl0ZSwgd2hpdGUgMTAlLCAjZjdmN2Y3KTtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbi5jb250cm9sLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWluLXdpZHRoOiAxNzBweDsgfVxuXG4uY29udHJvbC1kZXRhaWwge1xuICBwYWRkaW5nOiA4cHg7IH1cbiAgLmNvbnRyb2wtZGV0YWlsIC5uYXYtbGluayB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDEyMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBTbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5jb2x1bW4gbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDsgfVxuXG4uc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7IH1cblxuLnN1YnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5sYXN0LXNlcGFyYXRvci1ociB7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBtaW4taGVpZ2h0OiAwOyB9XG5cbi5jaGVja2JveCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmNvbC1zZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcbiAgbWluLXdpZHRoOiAxNTBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1mb3JtLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4OyB9IH1cbiJdfQ== */\"","import { Component, OnInit, ViewChild, Input, TemplateRef, AfterViewInit } from '@angular/core';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { QuoteSalesReport } from '../../../models/quote-sales-report.model';\r\nimport { QuoteSalesReportData } from '../../../models/quote-sales-report-data.model';\r\nimport { AspnetApplications } from '../../../models/applications.model';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { SysproUser } from '../../../models/syspro-user.model';\r\n\r\n@Component({\r\n selector: 'reports-quote-sales',\r\n templateUrl: './reports-quote-sales.component.html',\r\n styleUrls: ['./reports-quote-sales.component.scss']\r\n})\r\nexport class ReportsQuoteSalesComponent implements OnInit {\r\n\r\n\r\n private loadingIndicator: boolean;\r\n\r\n columns: any[] = [];\r\n rows: QuoteSalesReport[] = [];\r\n rowsCache: QuoteSalesReport[] = [];\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('netTemplate')\r\n netTemplate: TemplateRef;\r\n\r\n @ViewChild('costTemplate')\r\n costTemplate: TemplateRef;\r\n\r\n @ViewChild('profitTemplate')\r\n profitTemplate: TemplateRef;\r\n\r\n @ViewChild('gpTemplate')\r\n gpTemplate: TemplateRef;\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n\r\n @ViewChild('operators')\r\n private operators;\r\n\r\n @ViewChild('operatorSelector')\r\n private operatorSelector;\r\n allOperators: SysproUser[] = [];\r\n\r\n selectedBranch: string;\r\n selectedOperator: string;\r\n selectedCompany: string;\r\n selectedDocumentType: string;\r\n\r\n\r\n constructor(private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute, private fowkesOnline: FowkesOnlineService) {\r\n }\r\n ngAfterViewInit() {\r\n this.columns = [\r\n { prop: 'branch', name: 'Branch', width: 50, cellClass: \"left\" },\r\n { prop: 'operator', name: 'Operator', width: 80, cellClass: \"left\" },\r\n { prop: 'fullName', name: 'Name', width: 180, cellClass: \"left\" },\r\n // { prop: 'docType', name: 'Type', width: 50, cellClass: \"left\" },\r\n { prop: 'totalRecords', name: 'Quotes', width: 80, cellClass: \"left\" },\r\n { prop: 'totalNumberOfLines', name: 'Lines', width: 80, cellClass: \"right\" },\r\n { prop: 'totalNetMerchandise', name: 'Total Net', width: 140, cellClass: \"right\", cellTemplate: this.netTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n { prop: 'totalInvoiceCost', name: 'Total Cost', width: 130, cellClass: \"right\", cellTemplate: this.costTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n { prop: 'totalInvoiceProfit', name: 'Total Profit', width: 120, cellClass: \"right\", cellTemplate: this.profitTemplate, summaryFunc: cells => this.summaryTotal(cells)},\r\n { prop: 'totalInvoiceGP', name: 'GP %', width: 90, cellClass: \"right\", cellTemplate: this.gpTemplate, summaryFunc: () => null}\r\n\r\n ];\r\n }\r\n\r\n summaryTotal(cells: number[]): string {\r\n const filteredCells = cells.filter(cell => !!cell);\r\n return filteredCells.reduce((sum, cell) => (sum += cell), 0).toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.columns = [\r\n { prop: 'branch', name: 'Branch', width: 50, cellClass: \"left\" },\r\n { prop: 'operator', name: 'Operator', width: 80, cellClass: \"left\" },\r\n { prop: 'fullName', name: 'Name', width: 180, cellClass: \"left\" },\r\n // { prop: 'docType', name: 'Type', width: 50, cellClass: \"left\" },\r\n { prop: 'totalRecords', name: 'Quotes', width: 80, cellClass: \"left\" },\r\n { prop: 'totalNumberOfLines', name: 'Lines', width: 80, cellClass: \"right\" },\r\n { prop: 'totalNetMerchandise', name: 'Total Net', width: 140, cellClass: \"right\", cellTemplate: this.netTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n { prop: 'totalInvoiceCost', name: 'Total Cost', width: 130, cellClass: \"right\", cellTemplate: this.costTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n { prop: 'totalInvoiceProfit', name: 'Total Profit', width: 120, cellClass: \"right\", cellTemplate: this.profitTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n { prop: 'totalInvoiceGP', name: 'GP %', width: 90, cellClass: \"right\", cellTemplate: this.gpTemplate, summaryFunc: () => null}\r\n\r\n ];\r\n\r\n this.selected = {\r\n startDate: moment().subtract(2, 'year').startOf('year'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.selected = {\r\n startDate: moment().startOf('day'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n let defaultOperator = new SysproUser();\r\n defaultOperator.sysproOperator = this.selectUndefinedOptionValue;\r\n defaultOperator.fullName = \"All Operators\";\r\n this.allOperators.push(defaultOperator);\r\n this.sysproService.getSysproUserDetailList().subscribe(x => this.onOperatorsLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n this.sysproService.getQuoteSalesSummary(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue).subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n LoadSummary() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.selectUndefinedOptionValue);\r\n let operator = (this.selectedOperator ? this.selectedOperator : this.selectUndefinedOptionValue);\r\n\r\n this.sysproService.getQuoteSalesSummary(startD.toJSON(), endD.toJSON(),\r\n company.toUpperCase(), branch.toUpperCase(), operator.toUpperCase()).subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n exportDetails() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.selectUndefinedOptionValue);\r\n let operator = (this.selectedOperator ? this.selectedOperator : this.selectUndefinedOptionValue);\r\n\r\n this.sysproService.getQuoteSalesData(startD.toJSON(), endD.toJSON(),\r\n company.toUpperCase(), branch.toUpperCase(), operator.toUpperCase()).subscribe(x => this.results(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.docType, r.company, r.branch,\r\n r.operator, r.fullName, r.totalRecords, r.totalNumberOfLines, r.totalGrossMerchandise, r.totalDiscountMerchandise, r.totalNetMerchandise, r.totalTaxValue,\r\n r.totalInvoiceValue, r.totalInvoiceCost, r.totalInvoiceProfit, r.totalInvoiceGP));\r\n }\r\n }\r\n onSearchSuccesful(x: QuoteSalesReport[]): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...details];\r\n this.rows = details;\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches, ...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onOperatorsLoadSuccessful(operators: SysproUser[]): void {\r\n\r\n this.allOperators = [...this.allOperators, ...operators];\r\n setTimeout(() => {\r\n this.operatorSelector.refresh();\r\n });\r\n }\r\n\r\n\r\n onAppDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve company data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n }\r\n\r\n exportSummary() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"DocType\", \"Company\", \"Operator\", \"FullName\", \"Branch\", \"TotalRecords\",\r\n \"TotalNumberOfLines\", \"TotalGrossMerchandise\", \"TotalDiscountMerchandise\",\r\n \"TotalNetMerchandise\", \"TotalTaxValue\", \"TotalInvoiceValue\", \"TotalInvoiceCost\", \"TotalInvoiceProfit\", \"TotalInvoiceGP\"]\r\n };\r\n\r\n var filename = \"Quote Sales Summary\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n DocType: \"Quote\", Company: row.company, Operator: row.operator, FullName: row.fullName, Branch: row.branch,\r\n TotalRecords: row.totalRecords, TotalNumberOfLines: row.totalNumberOfLines,\r\n TotalGrossMerchandise: row.totalGrossMerchandise, TotalDiscountMerchandise: row.totalDiscountMerchandise,\r\n TotalNetMerchandise: row.totalNetMerchandise,\r\n TotalTaxValue: row.totalTaxValue, TotalInvoiceValue: row.totalInvoiceValue,\r\n TotalInvoiceCost: row.totalInvoiceCost, TotalInvoiceProfit: row.totalInvoiceProfit, TotalInvoiceGP: row.totalInvoiceGP\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n results(x: QuoteSalesReportData[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n let results = [...details];\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"DocType\", \"Company\", \"Operator\", \"Branch\", \"QuoteNumber\", \"QuoteStatus\", \"StatusDescription\",\r\n \"NumberOfLines\", \"GrossMerchandise\", \"DiscountMerchandise\",\r\n \"NetMerchandise\", \"InvoiceCost\", \"InvoiceProfit\", \"InvoiceGP\"]\r\n };\r\n\r\n var filename = \"Quote Report Details\";\r\n var selectRows = [...results];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n DocType: \"Quote\", Company: row.company, Operator: row.operator, Branch: row.branch,\r\n QuoteNumber: row.quoteNumber, QuoteStatus: row.quoteStatus, StatusDescription: this.getStatusDescription(row.quoteStatus) , NumberOfLines: row.numberOfLines,\r\n GrossMerchandise: row.grossMerchandise, DiscountMerchandise: row.discountMerchandise,\r\n NetMerchandise: row.netMerchandise, \r\n InvoiceCost: row.invoiceCost, InvoiceProfit: row.invoiceProfit, InvoiceGP: row.invoiceGP\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n\r\n }\r\n getStatusDescription(quoteStatus: string) {\r\n\r\n switch (quoteStatus) {\r\n case \"C\": {\r\n return \"Cancelled\";\r\n }\r\n case \"S\": {\r\n return \"Converted\";\r\n }\r\n case \"A\": {\r\n return \"Active\";\r\n }\r\n default: {\r\n return \"\";\r\n }\r\n } \r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
= 1\\\" class=\\\"row\\\" style=\\\"margin: 2px 0 2px 0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:' ':'symbol':'1.2'}} %\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xccmVwb3J0c1xccmVwb3J0LWNvbXBvbmVudHNcXHJlcG9ydHMtc2FsZXMtY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvcmVwb3J0cy9yZXBvcnQtY29tcG9uZW50cy9yZXBvcnRzLXNhbGVzLWNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGFBQWE7RUFDYixZQUFZO0VBQ1osMEVBQTBFLEVBQUE7RUFQNUU7SUFVSSw4QkFBOEI7SUFDOUIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixVQUFVO0lBQ1YsV0FBVyxFQUFBO0VBSWYsVUFBQTtFQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QjtFQUN2Qiw2Q0FBMEMsRUFBQTtFQUk1QztFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixxQ0FBcUM7SUFDckMsNkJBQTZCO0lBQzdCLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osVUFBVSxFQUFBO0VBZGQ7SUFtQkksa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixnQkFBZ0IsRUFBQTtFQXJCcEI7SUEwQkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEI7RUFDRSxzQkFBc0I7RUFDdEIsNERBQWlHO0VBQ2pHLGtCQUFrQixFQUFBO0VBR3BCO0VBQ0UsZUFBZTtFQUVmLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxZQUFZLEVBQUE7RUFEZDtJQUlJLFVBQVUsRUFBQTtFQUtkO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUIsRUFBQTtFQUV6QjtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQjttQ0MxQitCO0lENEIvQixpQkFBaUI7SUFDakIsWUFBWSxFQUFBO0VBYmhCO0lBaUJJLGtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBQTtFQWxCcEI7SUFzQkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEIsbUJBQUE7RUFDQTtFQUNFO0lBQ0UsK0ZBQUE7SUFDQSw2QkFBNkIsRUFBQSxFQUM5QjtFQUdILGtCQUFBO0VBQ0E7RUFDRTtJQUNFLHNFQUFBO0lBQ0Esc0JBQXNCLEVBQUEsRUFDdkI7RUFJSDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLFdBQVcsRUFBQTtFQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixPQUFPO0VBQ1AsV0FBVyxFQUFBO0VBSmI7SUFPSSxZQUFZLEVBQUE7RUFJZDtFQUNFLGVBQWU7RUFDZix3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGVBQWU7RUFDZixpQ0FBaUMsRUFBQTtFQUduQztFQUNFLGVBQWUsRUFBQTtFQUdqQjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsY0FBYyxFQUFBO0VBR2hCO0VBQ0UsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxpQkFBaUIsRUFBQTtFQUduQjs7RUFFRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFO0lBQ0UsZ0JBQWdCLEVBQUEsRUFDakIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvcmVwb3J0LWNvbXBvbmVudHMvcmVwb3J0cy1zYWxlcy1jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uYWRkcmVzcy1jb250YWluZXIge1xyXG4gIG1heC13aWR0aDogNDAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XHJcbiAgcGFkZGluZzogMjVweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7XHJcblxyXG4gIGZpZWxkc2V0IHtcclxuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMCAwIDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBMYXJnZSAqL1xyXG4uZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XHJcbiAgLy9oZWlnaHQ6IDI1cHg7XHJcbn1cclxuXHJcbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gIC5jb250cm9sLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIGZsZXg6IG5vbmU7XHJcblxyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICAgIG1pbi13aWR0aDogMjAwcHg7XHJcblxyXG4gIH1cclxuXHJcbiAgLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleDogMztcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICB9XHJcbn1cclxuXHJcbi5yb3cge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYigyNTUsIDI1NSwgMjU1KSwgcmdiKDI1NSwgMjU1LCAyNTUpIDEwJSwgcmdiKDI0NywgMjQ3LCAyNDcpKTtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWxhYmVsIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAvLyBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAzcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gIG1pbi13aWR0aDogMTcwcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbCB7XHJcbiAgcGFkZGluZzogOHB4O1xyXG5cclxuICAubmF2LWxpbmsge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xyXG4gIHBhZGRpbmc6IDJweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gIHBhZGRpbmc6IDVweCAxMHB4IDAgMTBweDtcclxufVxyXG5cclxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuc21hbGwtY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgd2lkdGg6IDEyMHB4O1xyXG4gIH1cclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgfVxyXG5cclxuICAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4OiAzO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gIH1cclxufVxyXG5cclxuLyogTWVkaXVtIHNjcmVlbnMgKi9cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcclxuICAuZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgICAvKiBXaGVuIG9uIG1lZGl1bSBzaXplZCBzY3JlZW5zLCB3ZSBjZW50ZXIgaXQgYnkgZXZlbmx5IGRpc3RyaWJ1dGluZyBlbXB0eSBzcGFjZSBhcm91bmQgaXRlbXMgKi9cclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gIH1cclxufVxyXG5cclxuLyogU21hbGwgc2NyZWVucyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xyXG4gIC5mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5jb2x1bW4ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4OiAxO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG5cclxuICBsYWJlbCB7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogN3B4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxuICB9XHJcblxyXG4gIC5zdWJzZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDdweDtcclxuICB9XHJcblxyXG4gIC5mb3JtLWdyb3VwIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xyXG4gICAgbWluLWhlaWdodDogMDtcclxuICB9XHJcblxyXG4gIC5jaGVja2JveCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxuICB9XHJcblxyXG4gIC5jb2wtcmVzZXQtZGVmYXVsdCB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1zZXQtZGVmYXVsdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICB9XHJcblxyXG4gIC5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxyXG4gIC5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XHJcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuY29sLWZvcm0tbGFiZWwge1xyXG4gICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuIiwiLmFkZHJlc3MtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI0Y5RjlGOTtcbiAgcGFkZGluZzogMjVweDtcbiAgbWFyZ2luOiAxMHB4O1xuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI0KTsgfVxuICAuYWRkcmVzcy1jb250YWluZXIgZmllbGRzZXQge1xuICAgIGJvcmRlcjogbWVkaXVtIG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi8qIExhcmdlICovXG4uZmxleC1kaXN0cmlidXRlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLmZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDEwcHg7IH1cblxuLmNvbnRyb2wtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZzogLjEwcmVtIC41MHJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgZmxleDogbm9uZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleC1ncm93OiAyO1xuICAgIG1pbi13aWR0aDogMjAwcHg7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxleDogMztcbiAgICBmbGV4LWdyb3c6IDI7IH1cblxuLnJvdyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh3aGl0ZSwgd2hpdGUgMTAlLCAjZjdmN2Y3KTtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbi5jb250cm9sLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWluLXdpZHRoOiAxNzBweDsgfVxuXG4uY29udHJvbC1kZXRhaWwge1xuICBwYWRkaW5nOiA4cHg7IH1cbiAgLmNvbnRyb2wtZGV0YWlsIC5uYXYtbGluayB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uY29udHJvbC1kZXRhaWwgLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uc21hbGwtZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5zbWFsbC1jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4wNXJlbSAuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDEyMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4OyB9XG4gIC5zbWFsbC1jb250cm9sLWNvbnRhaW5lciAuc21hbGwtY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBTbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuZmxleC1kaXN0cmlidXRlZCB7XG4gICAgLyogT24gc21hbGwgc2NyZWVucywgd2UgYXJlIG5vIGxvbmdlciB1c2luZyByb3cgZGlyZWN0aW9uIGJ1dCBjb2x1bW4gKi9cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5jb2x1bW4gbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDsgfVxuXG4uc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luOiA3cHggNXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7IH1cblxuLnN1YnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5sYXN0LXNlcGFyYXRvci1ociB7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBtaW4taGVpZ2h0OiAwOyB9XG5cbi5jaGVja2JveCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmNvbC1zZXQtZGVmYXVsdCB7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtcmVzZXQtZGVmYXVsdCAuYnRuLFxuLmNvbC1zZXQtZGVmYXVsdCAuYnRuIHtcbiAgbWluLXdpZHRoOiAxNTBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1mb3JtLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4OyB9IH1cbiJdfQ== */\"","import { Component, OnInit, ViewChild, Input, TemplateRef } from '@angular/core';\r\n//import { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\n//import { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { QuoteSalesReport } from '../../../models/quote-sales-report.model';\r\nimport { CreditNoteSalesReport } from '../../../models/creditnote-report.model';\r\n\r\nimport { AspnetApplications } from '../../../models/applications.model';\r\n//import { Permission } from '../../models/permission.model';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { DaterangepickerComponent, LocaleConfig } from 'ngx-daterangepicker-material';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { SalesReportData } from '../../../models/sales-report.model';\r\nimport { SysproUser } from '../../../models/syspro-user.model';\r\nimport { SalesReportSummary } from '../../../models/sales-report-summary.model';\r\nimport { MySQLDocument } from '../../../models/mysqldocument.model';\r\n\r\n\r\n@Component({\r\n selector: 'reports-sales',\r\n templateUrl: './reports-sales-component.html',\r\n styleUrls: ['./reports-sales-component.scss']\r\n})\r\nexport class ReportsSalesComponent implements OnInit {\r\n\r\n\r\n private loadingIndicator: boolean;\r\n\r\n columns: any[] = [];\r\n rows: SalesReportSummary[] = [];\r\n rowsCache: SalesReportSummary[] = [];\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('netTemplate')\r\n netTemplate: TemplateRef;\r\n\r\n @ViewChild('totalNetMerchandiseCell') totalNetMerchandiseCell: TemplateRef;\r\n\r\n @ViewChild('costTemplate')\r\n costTemplate: TemplateRef;\r\n\r\n @ViewChild('profitTemplate')\r\n profitTemplate: TemplateRef;\r\n\r\n @ViewChild('gpTemplate')\r\n gpTemplate: TemplateRef;\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n @ViewChild('branches')\r\n private branches;\r\n\r\n @ViewChild('branchesListSelector')\r\n private branchesListSelector;\r\n allBranches: Branch[] = [];\r\n\r\n\r\n @ViewChild('operators')\r\n private operators;\r\n\r\n @ViewChild('operatorSelector')\r\n private operatorSelector;\r\n allOperators: SysproUser[] = [];\r\n\r\n selectedBranch: string;\r\n selectedOperator: string;\r\n selectedCompany: string;\r\n selectedDocumentType: string;\r\n totalNetMerchandiseSumm: number;\r\n totalInvoiceCostSumm: string;\r\n totalInvoiceSumm: string;\r\n \r\n\r\n constructor(private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute, private fowkesOnline: FowkesOnlineService) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.columns = [\r\n { prop: 'branch', name: 'Branch', width: 50, cellClass: \"left\", summaryFunc: () => null, summaryTemplate: this.totalNetMerchandiseCell },\r\n { prop: 'operator', name: 'Operator', width: 80, cellClass: \"left\" },\r\n { prop: 'fullName', name: 'Name', width: 170, cellClass: \"left\" },\r\n { prop: 'docType', name: 'Type', width: 50, cellClass: \"left\" },\r\n { prop: 'totalRecords', name: 'Invoices', width: 80, cellClass: \"left\" },\r\n { prop: 'totalNumberOfLines', name: 'Lines', width: 80, cellClass: \"right\" },\r\n { prop: 'totalNetMerchandise', name: 'Total Net', width: 140, cellClass: \"right\", cellTemplate: this.netTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n { prop: 'totalInvoiceCost', name: 'Total Cost', width: 130, cellClass: \"right\", cellTemplate: this.costTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n { prop: 'totalInvoiceProfit', name: 'Total Profit', width: 120, cellClass: \"right\", cellTemplate: this.profitTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n { prop: 'totalInvoiceGP', name: 'GP %', width: 90, cellClass: \"right\", cellTemplate: this.gpTemplate, summaryFunc: () => null }\r\n\r\n ];\r\n }\r\n\r\n summaryTotal(cells: number[]): string {\r\n const filteredCells = cells.filter(cell => !!cell);\r\n return filteredCells.reduce((sum, cell) => (sum += cell), 0).toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n\r\n this.columns = [\r\n //{ prop: 'company', name: 'Comp.', width: 50, cellClass: \"left\" },\r\n {\r\n prop: 'branch', name: 'Branch', width: 50, cellClass: \"left\", summaryFunc: () => null, summaryTemplate: this.totalNetMerchandiseCell},\r\n { prop: 'operator', name: 'Operator', width: 80, cellClass: \"left\" },\r\n { prop: 'fullName', name: 'Name', width: 170, cellClass: \"left\" },\r\n { prop: 'docType', name: 'Type', width: 50, cellClass: \"left\" },\r\n { prop: 'totalRecords', name: 'Invoices', width: 80, cellClass: \"left\" },\r\n { prop: 'totalNumberOfLines', name: 'Lines', width: 80, cellClass: \"right\" },\r\n // { prop: 'totalGrossMerchandise', name: 'Gross Merch', width: 80, cellClass: \"right\", cellTemplate: this.percentTemplate },\r\n //{ prop: 'totalDiscountMerchandise', name: 'Discount Merch', width: 80, cellClass: \"right\", cellTemplate: this.percentTemplate },\r\n { prop: 'totalNetMerchandise', name: 'Total Net', width: 140, cellClass: \"right\", cellTemplate: this.netTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n //{ prop: 'totalTaxValue', name: 'Tax', width: 60, cellClass: \"right\", cellTemplate: this.percentTemplate },\r\n //{ prop: 'totalInvoiceValue', name: 'Total Invoice', width: 100, cellClass: \"right\", cellTemplate: this.percentTemplate },\r\n { prop: 'totalInvoiceCost', name: 'Total Cost', width: 130, cellClass: \"right\", cellTemplate: this.costTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n { prop: 'totalInvoiceProfit', name: 'Total Profit', width: 120, cellClass: \"right\", cellTemplate: this.profitTemplate, summaryFunc: cells => this.summaryTotal(cells) },\r\n { prop: 'totalInvoiceGP', name: 'GP %', width: 90, cellClass: \"right\", cellTemplate: this.gpTemplate, summaryFunc: () => null}\r\n\r\n ];\r\n\r\n this.selected = {\r\n startDate: moment().subtract(2, 'year').startOf('year'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n\r\n \r\n\r\n this.loadData();\r\n\r\n //this.loadDocuments();\r\n }\r\n\r\n loadDocuments() {\r\n\r\n //this.sysproService.getDocuments().subscribe(x => this.onLoadDocumentsSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n //this.sysproService.getDocumentsPerMonth(\"2020\", \"07\").subscribe(x => this.onLoadDocumentsSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n //this.sysproService.getDocumentByPrimaryKey(\"JB055485\", \"POD\").subscribe(x => this.onLoadDocumentsSuccessful(x), error => this.onDataLoadFailed(error));\r\n \r\n //this.fowkesOnline.getDocuments().subscribe(x => this.onLoadDocumentsSuccessful(x), error => this.onDataLoadFailed(error)); \r\n }\r\n\r\n onLoadDocumentsSuccessful(document: MySQLDocument[]): void {\r\n\r\n this.alertService.startLoadingMessage();\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.selected = {\r\n startDate: moment().startOf('day'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let defaultBranch = new Branch();\r\n defaultBranch.branch = this.selectUndefinedOptionValue;\r\n this.allBranches.push(defaultBranch);\r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onBranchDataLoadFailed(error));\r\n\r\n let defaultOperator = new SysproUser();\r\n defaultOperator.sysproOperator = this.selectUndefinedOptionValue;\r\n defaultOperator.fullName = \"All Operators\";\r\n this.allOperators.push(defaultOperator);\r\n this.sysproService.getSysproUserDetailList().subscribe(x => this.onOperatorsLoadSuccessful(x), error => this.onDataLoadFailed(error)); \r\n\r\n this.sysproService.getSalesReportSummary(startD.toJSON(), endD.toJSON(),\r\n this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue, this.selectUndefinedOptionValue).subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n // this.sysproService.getSalesReportData(startD.toJSON(), endD.toJSON()).subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n\r\n LoadSummary() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.selectUndefinedOptionValue);\r\n let operator = (this.selectedOperator ? this.selectedOperator : this.selectUndefinedOptionValue);\r\n let documentType = (this.selectedDocumentType ? this.selectedDocumentType : this.selectUndefinedOptionValue);\r\n\r\n this.sysproService.getSalesReportSummary(startD.toJSON(), endD.toJSON(),\r\n company.toUpperCase(), branch.toUpperCase(), operator.toUpperCase(), documentType.toUpperCase()).subscribe(x => this.onSearchSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n exportDetails() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n let company = (this.selectedCompany ? this.selectedCompany : this.selectUndefinedOptionValue);\r\n let branch = (this.selectedBranch ? this.selectedBranch : this.selectUndefinedOptionValue);\r\n let operator = (this.selectedOperator ? this.selectedOperator : this.selectUndefinedOptionValue);\r\n let documentType = (this.selectedDocumentType ? this.selectedDocumentType : this.selectUndefinedOptionValue);\r\n\r\n this.sysproService.getSalesReportData(startD.toJSON(), endD.toJSON(),\r\n company.toUpperCase(), branch.toUpperCase(), operator.toUpperCase(), documentType.toUpperCase()).subscribe(x => this.results(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.docType, r.company, r.branch,\r\n r.operator, r.fullName, r.totalRecords, r.totalNumberOfLines, r.totalGrossMerchandise, r.totalDiscountMerchandise, r.totalNetMerchandise, r.totalTaxValue,\r\n r.totalInvoiceValue, r.totalInvoiceCost, r.totalInvoiceProfit, r.totalInvoiceGP));\r\n }\r\n }\r\n onSearchSuccesful(x: SalesReportSummary[]): void {\r\n console.log(x);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...details];\r\n this.rows = details;\r\n\r\n this.rows.forEach((item) => {\r\n this.totalNetMerchandiseSumm += item.totalNetMerchandise;\r\n this.totalInvoiceCostSumm += item.totalInvoiceCost;\r\n this.totalInvoiceSumm += item.totalInvoiceProfit;\r\n });\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onBranchLoadSuccessful(branches: Branch[]) {\r\n\r\n this.allBranches = [...this.allBranches,...branches];\r\n setTimeout(() => {\r\n this.branchesListSelector.refresh();\r\n });\r\n }\r\n\r\n onBranchDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve branches from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n onOperatorsLoadSuccessful(operators: SysproUser[]): void {\r\n\r\n this.allOperators = [...this.allOperators, ...operators];\r\n setTimeout(() => {\r\n this.operatorSelector.refresh();\r\n });\r\n }\r\n\r\n\r\n onAppDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve company data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n \r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n }\r\n\r\n exportSummary() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"DocType\", \"Company\", \"Operator\", \"FullName\", \"Branch\", \"TotalRecords\",\r\n \"TotalNumberOfLines\", \"TotalGrossMerchandise\", \"TotalDiscountMerchandise\",\r\n \"TotalNetMerchandise\", \"TotalTaxValue\", \"TotalInvoiceValue\", \"TotalInvoiceCost\", \"TotalInvoiceProfit\", \"TotalInvoiceGP\"]\r\n };\r\n\r\n var filename = \"Sales Data\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n DocType: row.docType, Company: row.company, Operator: row.operator, FullName: row.fullName, Branch: row.branch,\r\n TotalRecords: row.totalRecords, TotalNumberOfLines: row.totalNumberOfLines,\r\n TotalGrossMerchandise: row.totalGrossMerchandise, TotalDiscountMerchandise: row.totalDiscountMerchandise,\r\n TotalNetMerchandise: row.totalNetMerchandise,\r\n TotalTaxValue: row.totalTaxValue, TotalInvoiceValue: row.totalInvoiceValue,\r\n TotalInvoiceCost: row.totalInvoiceCost, TotalInvoiceProfit: row.totalInvoiceProfit, TotalInvoiceGP: row.totalInvoiceGP\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n results(x: SalesReportData[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (x && x[0] && x.length > 0) {\r\n const details = x;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n let results = [...details];\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"DocType\", \"Company\", \"Operator\", \"Branch\", \"Invoice\", \"Customer\", \"Rep\",\r\n \"NumberOfLines\", \"GrossMerchandise\", \"DiscountMerchandise\",\r\n \"NetMerchandise\", \"TotalTax\", \"InvoiceTotal\", \"InvoiceCost\", \"InvoiceProfit\", \"InvoiceGP\"]\r\n };\r\n\r\n var filename = \"Sales Data Details\";\r\n var selectRows = [...results];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n DocType: row.docType, Company: row.company, Operator: row.operator, Branch: row.branch,\r\n Invoice: row.invoice, Customer: row.customer, Rep: row.rep,\r\n NumberOfLines: row.numberOfLines,\r\n GrossMerchandise: row.grossMerchandise, DiscountMerchandise: row.discountMerchandise,\r\n NetMerchandise: row.netMerchandise,\r\n TotalTax: row.totalTax, InvoiceTotal: row.invoiceTotal,\r\n InvoiceCost: row.invoiceCost, InvoiceProfit: row.invoiceProfit, InvoiceGP: row.invoiceGP\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n else {\r\n this.alertService.showStickyMessage('No results', 'No results found, try adjusting your search criteria',\r\n MessageSeverity.warn);\r\n }\r\n\r\n \r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVwb3J0cy9yZXBvcnRzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'reports',\r\n templateUrl: './reports.component.html',\r\n styleUrls: ['./reports.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ReportsComponent {\r\n\r\n isListActivated = false;\r\n isReprintActivated = false;\r\n isInvoiceStatusActivated = true;\r\n isProductivityActivated = false;\r\n isControlReportActivated = false;\r\n isDeliveryReportActivated = false;\r\n isCollectionsReportActivated = false;\r\n isSalesReportActivated = false;\r\n isQuoteSalesReportActivated = false;\r\n isDebtorsReleaseReportActivated = false;\r\n isCreditorsReportActivated = false;\r\n isCMSReportActivated = false;\r\n isInvoiceTrackingPurgeActivated = false;\r\n isBankEFTExportActivated = false;\r\n isInventoryMovementsReportActivated = false;\r\n isInventoryAdjustmentsReportActivated = false;\r\n isCollapsed = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly reportsItsListTab = 'itslist';\r\n readonly reportsInvoiceReprintTab = 'reprint';\r\n readonly reportsInvoiceStatusTab = 'invoicestatus';\r\n readonly reportsSalesReportTab = 'salesreport';\r\n readonly reportsQuoteSalesReportTab = 'quotesalesreport';\r\n readonly reportsDebtorsReleaseReportTab = 'debtorsreleasereport';\r\n readonly reportsCreditorsReportTab = 'creditorsreport';\r\n readonly reportInvoiceTrackingPurgeTab = 'invoicetrackingpurge';\r\n readonly reportsProductivityTab = 'productivity';\r\n readonly reportsInventoryMovementsReportTab = 'inventorymovementreport';\r\n readonly reportsInventoryAdjustmentsReportTab = 'inventoryadjustmentreport';\r\n readonly reportsCMSTab = 'cms';\r\n readonly reportsControlTab = 'control';\r\n readonly reportsDeliveryTab = 'delivery';\r\n readonly reportsCollectionsTab = 'collections';\r\n readonly bankeftexportTab = 'bankeftexport';\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private accountService: AccountService,\r\n private configurations: ConfigurationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n }\r\n \r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n showContent(anchor: string) {\r\n\r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.reportsItsListTab}Tab`);\r\n \r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isListActivated = activeTab == this.reportsItsListTab;\r\n this.isReprintActivated = activeTab == this.reportsInvoiceReprintTab;\r\n this.isInvoiceStatusActivated = activeTab == this.reportsInvoiceStatusTab;\r\n this.isSalesReportActivated = activeTab == this.reportsSalesReportTab;\r\n this.isQuoteSalesReportActivated = activeTab == this.reportsQuoteSalesReportTab;\r\n this.isDebtorsReleaseReportActivated = activeTab == this.reportsDebtorsReleaseReportTab;\r\n this.isCreditorsReportActivated = activeTab == this.reportsCreditorsReportTab;\r\n this.isInvoiceTrackingPurgeActivated = activeTab == this.reportInvoiceTrackingPurgeTab;\r\n this.isProductivityActivated = activeTab == this.reportsProductivityTab;\r\n this.isControlReportActivated = activeTab == this.reportsControlTab;\r\n this.isDeliveryReportActivated = activeTab == this.reportsDeliveryTab;\r\n this.isCollectionsReportActivated = activeTab == this.reportsCollectionsTab;\r\n this.isBankEFTExportActivated = activeTab == this.bankeftexportTab;\r\n this.isInventoryMovementsReportActivated = activeTab == this.reportsInventoryMovementsReportTab;\r\n this.isInventoryAdjustmentsReportActivated = activeTab == this.reportsInventoryAdjustmentsReportTab;\r\n this.isCMSReportActivated = activeTab == this.reportsCMSTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isListActivated = activeTab == this.reportsItsListTab;\r\n this.isReprintActivated = activeTab == this.reportsInvoiceReprintTab;\r\n this.isInvoiceStatusActivated = activeTab == this.reportsInvoiceStatusTab;\r\n this.isSalesReportActivated = activeTab == this.reportsSalesReportTab;\r\n this.isQuoteSalesReportActivated = activeTab == this.reportsQuoteSalesReportTab;\r\n this.isDebtorsReleaseReportActivated = activeTab == this.reportsDebtorsReleaseReportTab;\r\n this.isCreditorsReportActivated = activeTab == this.reportsCreditorsReportTab;\r\n this.isInvoiceTrackingPurgeActivated = activeTab == this.reportInvoiceTrackingPurgeTab;\r\n this.isProductivityActivated = activeTab == this.reportsProductivityTab;\r\n this.isControlReportActivated = activeTab == this.reportsControlTab;\r\n this.isDeliveryReportActivated = activeTab == this.reportsDeliveryTab;\r\n this.isCollectionsReportActivated = activeTab == this.reportsCollectionsTab;\r\n this.isBankEFTExportActivated = activeTab == this.bankeftexportTab;\r\n this.isInventoryMovementsReportActivated = activeTab == this.reportsInventoryMovementsReportTab;\r\n this.isInventoryAdjustmentsReportActivated = activeTab == this.reportsInventoryAdjustmentsReportTab;\r\n this.isCMSReportActivated = activeTab == this.reportsCMSTab;\r\n\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n \r\n\r\n get canViewRerpintReport() {\r\n return this.accountService.userHasPermission(Permission.reprintReportsPermission);\r\n }\r\n\r\n\r\n get canViewSalesReports() {\r\n return this.accountService.userHasPermission(Permission.salesReportsPermission);\r\n }\r\n\r\n get canViewDebtorsReleaseReports() {\r\n return this.accountService.userHasPermission(Permission.debtorsReleaseReportsPermission);\r\n }\r\n\r\n get canViewProductivityReport() {\r\n return this.accountService.userHasPermission(Permission.productivityReportsPermission);\r\n }\r\n\r\n get canViewControlReport() {\r\n return this.accountService.userHasPermission(Permission.itsControlReportsPermission);\r\n }\r\n\r\n get canViewBankExport() {\r\n return this.accountService.userHasPermission(Permission.bankEFTExportPermission);\r\n }\r\n\r\n\r\n get canViewCreditNoteReports() {\r\n //TODO\r\n return this.accountService.userHasPermission(Permission.debtorsReleaseReportsPermission);\r\n }\r\n\r\n\r\n get canViewCMSReport() {\r\n //TODO\r\n return true;\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2FsZXNvcmRlcnMvc2FsZXNvcmRlcnMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\n\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n@Component({\r\n selector: 'salesorders',\r\n templateUrl: './salesorders.component.html',\r\n styleUrls: ['./salesorders.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class SalesOrdersComponent {\r\n\r\n isListActivated = true;\r\n isViewActivated = false;\r\n isInvoiceViewActivated = false;\r\n isPurchaseOrderViewActivated = false;\r\n isCartViewActivated = false;\r\n isCollapsed = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly salesordersListTab = 'salesorders';\r\n readonly salesordersViewTab = 'view';\r\n readonly invoiceViewTab = 'invoice';\r\n readonly purchaseorderTab = 'purchaseorder';\r\n readonly cartViewTab = 'cart';\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @Input()\r\n isSearch: boolean;\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n id: any = \"\";\r\n cartId: string;\r\n salesorderId: string;\r\n invoiceNumber: string;\r\n purchaseorder: string;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute,\r\n private configurations: ConfigurationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let salesorderId = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n let invoiceNumber = sessionStorage.getItem(localStorageActions.InvoiceNumber);\r\n let purchaseorder = sessionStorage.getItem(localStorageActions.PurchaseOrder);\r\n this.salesorderId = salesorderId;\r\n this.invoiceNumber = invoiceNumber;\r\n this.purchaseorder = purchaseorder;\r\n\r\n\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n\r\n if (action) {\r\n this.id = action;\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor, this.id));\r\n } else {\r\n\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n // this.router.navigate(['salesorders']);\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n showContent(anchor: string, test?: any) {\r\n\r\n this.id = sessionStorage.getItem(localStorageActions.Customer);\r\n this.salesorderId = sessionStorage.getItem(localStorageActions.SalesOrderNumber);\r\n this.invoiceNumber = sessionStorage.getItem(localStorageActions.InvoiceNumber);\r\n this.purchaseorder = sessionStorage.getItem(localStorageActions.PurchaseOrder);\r\n \r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.salesordersListTab}Tab`);\r\n\r\n }\r\n\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isListActivated = activeTab == this.salesordersListTab;\r\n this.isViewActivated = activeTab == this.salesordersViewTab;\r\n this.isInvoiceViewActivated = activeTab == this.invoiceViewTab;\r\n this.isPurchaseOrderViewActivated = activeTab == this.purchaseorderTab;\r\n this.isCartViewActivated = activeTab == this.cartViewTab;\r\n\r\n this.router.navigate([], { fragment: activeTab, queryParams: { customer: this.id, salesorderId: this.salesorderId } });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isListActivated = activeTab == this.salesordersListTab;\r\n this.isViewActivated = activeTab == this.salesordersViewTab;\r\n this.isInvoiceViewActivated = activeTab == this.invoiceViewTab;\r\n this.isPurchaseOrderViewActivated = activeTab == this.purchaseorderTab;\r\n this.isCartViewActivated = activeTab == this.cartViewTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n get canViewCustomers() {\r\n return true;\r\n }\r\n\r\n get canViewMovements() {\r\n return true;//TODO: this.accountService.userHasPermission(Permission.viewCustomerMovementsPermission);\r\n }\r\n\r\n get canViewPayments() {\r\n return true;//TODO: this.accountService.userHasPermission(Permission.viewCustomerPaymentsPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameNoteAttachmentDelete
\\r\\n {{row.heading}} \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
{{row.note}}
\\r\\n
\\r\\n {{row.documentName}} \\r\\n \\r\\n Edit |\\r\\n Delete \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Info Note

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{infoNoteDetail.documentName}}\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2V0dGluZ3NcXGFkbWluLWNvbXBvbmVudHNcXHNldHRpbmdzLWluZm8tZG9jcy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL3NldHRpbmdzLWluZm8tZG9jcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4udGJvZHkge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcbiJdfQ== */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { Brand } from '../../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CMStockCode } from '../../../models/cms-stockcode.model';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { InfoBoardNotes } from '../../../models/info-board-notes.model';\r\n\r\n@Component({\r\n selector: 'info-docs',\r\n templateUrl: './settings-info-docs.component.html',\r\n styleUrls: ['./settings-info-docs.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class InfoDocsComponent {\r\n\r\n\r\n rows: InfoBoardNotes[] = [];\r\n rowsCache: InfoBoardNotes[];\r\n infoNoteDetail: InfoBoardNotes = new InfoBoardNotes();\r\n\r\n @ViewChild('infoNoteModal')\r\n infoNoteModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getAllInfoNotes().subscribe(x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDataLoadSuccessful(infoNotes: InfoBoardNotes[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (infoNotes[0]) {\r\n var links = infoNotes.filter(x => x.informationBoardName == \"NextGenDocs\");\r\n this.rowsCache = [...links];\r\n const updateRows = this.rowsCache;\r\n \r\n this.rows = [...updateRows];\r\n\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.informationBoardName, r.note));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n deleteRow(row: InfoBoardNotes) {\r\n //Check that brand doesnt have any stock codes assigned\r\n //this.sysproService.getStockCodesForBrand(row.id).subscribe(x => this.onValidationSuccesful(x, row), error => this.onPostDataLoadFailed(error));\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.deleteInfoNote(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n onValidationSuccesful(x: CMStockCode[], row: Brand): void {\r\n console.log(x);\r\n if (x && x.length >= 1) {\r\n this.alertService.showMessage('Warning', `You cannot delete a brand with stock codes associated. There are ` + x.length + ' items linked to this brand ', MessageSeverity.warn);\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.deleteInfoNote(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n\r\n selectRow(row: InfoBoardNotes) {\r\n this.infoNoteDetail = new InfoBoardNotes();\r\n this.infoNoteDetail = row;\r\n\r\n if (!this.infoNoteModal) {\r\n setTimeout(() => {\r\n if (this.infoNoteModal) {\r\n this.infoNoteModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.infoNoteModal.show();\r\n }\r\n }\r\n\r\n enableEditMethod(row: InfoBoardNotes, i) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n console.log(i, row);\r\n }\r\n\r\n saveSegment(row: InfoBoardNotes) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateInfoNote(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n infoNoteModalHide() {\r\n this.infoNoteDetail = new InfoBoardNotes();\r\n this.newformData = new FormData();\r\n this.infoNoteModal.hide();\r\n }\r\n\r\n newInfoNote() {\r\n\r\n this.infoNoteDetail = new InfoBoardNotes();\r\n this.infoNoteDetail.informationBoardName = \"NextGenDocs\";\r\n this.infoNoteDetail.createdBy = this.accountService.currentUser.email;\r\n this.infoNoteDetail.documentName = \"\";\r\n this.infoNoteDetail.status = \"R\";\r\n\r\n if (!this.infoNoteModal) {\r\n setTimeout(() => {\r\n if (this.infoNoteModal) {\r\n this.infoNoteModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.infoNoteModal.show();\r\n }\r\n\r\n }\r\n\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newformData.append('file', file);\r\n // this.sysproService.postFileData(formData, \"BRAND\", row.brandName).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n //this.myForm.patchValue({\r\n // fileSource: file\r\n //});\r\n }\r\n }\r\n\r\n saveInfoNote() {\r\n if (this.infoNoteDetail.id > 0) {\r\n //Update\r\n if (this.infoNoteDetail) {\r\n\r\n this.infoNoteDetail.modifiedBy = this.accountService.currentUser.email;\r\n if (this.newformData.has('file')) {\r\n\r\n this.alertService.startLoadingMessage('Uploading...');\r\n this.sysproService.postInfoFile(this.newformData, \"INFOBOARD\", this.infoNoteDetail.heading + \"_\" + this.infoNoteDetail.id).subscribe(x =>\r\n this.newFilePostedSuccess(x, this.infoNoteDetail.id),\r\n error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateInfoNote(this.infoNoteDetail, this.infoNoteDetail.id).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n else {\r\n //save new\r\n if (this.rowsCache.filter(x => x.heading == this.infoNoteDetail.heading).length >= 1) {\r\n this.alertService.showMessage('Warning', `This note name already exists`, MessageSeverity.warn);\r\n }\r\n else {\r\n if (this.newformData.has('file')) {\r\n this.alertService.startLoadingMessage('Uploading...');\r\n this.sysproService.postInfoFile(this.newformData, \"INFOBOARD\", this.infoNoteDetail.heading).subscribe(x => this.newFilePostedSuccess(x, 0),\r\n error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.addInfoNote(this.infoNoteDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n \r\n }\r\n removeAttachment() {\r\n this.newformData = new FormData();\r\n this.infoNoteDetail.documentName = \"\";\r\n }\r\n\r\n newFilePostedSuccess(x: any, id: number) {\r\n\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n this.infoNoteDetail.documentName = x.fileName;\r\n\r\n if (id > 0) {\r\n this.infoNoteDetail.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updateInfoNote(this.infoNoteDetail, id).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.infoNoteDetail.createdBy = this.accountService.currentUser.email;\r\n this.sysproService.addInfoNote(this.infoNoteDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n onSaveSuccesful(): void {\r\n\r\n this.infoNoteModalHide(); \r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n //get f() {\r\n // return this.myForm.controls;\r\n //}\r\n downloadAttachment(doc: string) {\r\n\r\n this.alertService.startLoadingMessage('downloading...');\r\n this.sysproService.getInfoFile(doc,0).subscribe(x => this.onFileSuccessful(x, doc), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, fileName: string): void {\r\n var test = x;\r\n\r\n this.alertService.stopLoadingMessage();\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n onFileChange(event, row: InfoBoardNotes) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n this.sysproService.postFileData(formData, \"INFOBOARD\", row.informationBoardName).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n //this.myForm.patchValue({\r\n // fileSource: file\r\n //});\r\n }\r\n }\r\n filePostedSuccess(result: any, row: InfoBoardNotes) {\r\n\r\n console.log(result);\r\n row.documentName = result.fileName;\r\n this.saveSegment(row);\r\n }\r\n\r\n //submit() {\r\n // const formData = new FormData();\r\n\r\n // formData.append('file', this.myForm.get('fileSource').value);\r\n\r\n // this.sysproService.postFileData(formData).subscribe(x => this.onPostDataSuccessful([x]), error => this.onPostDataLoadFailed(error));\r\n //}\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n //onPostDataSuccessful(arg0: any[]) {\r\n // throw new Error(\"Method not implemented.\");\r\n //}\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameNoteAttachmentDelete
\\r\\n {{row.heading}} \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
{{row.note}}
\\r\\n
\\r\\n {{row.documentName}} \\r\\n \\r\\n Edit |\\r\\n Delete \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Info Note

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{infoNoteDetail.documentName}}\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2V0dGluZ3NcXGFkbWluLWNvbXBvbmVudHNcXHNldHRpbmdzLWluZm8uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2V0dGluZ3MvYWRtaW4tY29tcG9uZW50cy9zZXR0aW5ncy1pbmZvLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi50Ym9keSB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbn1cclxuIl19 */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { Brand } from '../../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CMStockCode } from '../../../models/cms-stockcode.model';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { InfoBoardNotes } from '../../../models/info-board-notes.model';\r\n\r\n@Component({\r\n selector: 'info-settings',\r\n templateUrl: './settings-info.component.html',\r\n styleUrls: ['./settings-info.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class InfoSettingsComponent {\r\n\r\n\r\n rows: InfoBoardNotes[] = [];\r\n rowsCache: InfoBoardNotes[];\r\n infoNoteDetail: InfoBoardNotes = new InfoBoardNotes();\r\n\r\n @ViewChild('infoNoteModal')\r\n infoNoteModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getAllInfoNotes().subscribe(x => this.onDataLoadSuccessful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDataLoadSuccessful(infoNotes: InfoBoardNotes[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (infoNotes[0]) {\r\n var links = infoNotes.filter(x => x.informationBoardName == \"NextGenLinks\");\r\n this.rowsCache = [...links];\r\n const updateRows = this.rowsCache;\r\n \r\n this.rows = [...updateRows];\r\n\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.informationBoardName, r.note));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n deleteRow(row: InfoBoardNotes) {\r\n //Check that brand doesnt have any stock codes assigned\r\n //this.sysproService.getStockCodesForBrand(row.id).subscribe(x => this.onValidationSuccesful(x, row), error => this.onPostDataLoadFailed(error));\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.deleteInfoNote(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n onValidationSuccesful(x: CMStockCode[], row: Brand): void {\r\n console.log(x);\r\n if (x && x.length >= 1) {\r\n this.alertService.showMessage('Warning', `You cannot delete a brand with stock codes associated. There are ` + x.length + ' items linked to this brand ', MessageSeverity.warn);\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.deleteInfoNote(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n\r\n selectRow(row: InfoBoardNotes) {\r\n this.infoNoteDetail = new InfoBoardNotes();\r\n this.infoNoteDetail = row;\r\n\r\n if (!this.infoNoteModal) {\r\n setTimeout(() => {\r\n if (this.infoNoteModal) {\r\n this.infoNoteModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.infoNoteModal.show();\r\n }\r\n }\r\n\r\n enableEditMethod(row: InfoBoardNotes, i) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n console.log(i, row);\r\n }\r\n\r\n saveSegment(row: InfoBoardNotes) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateInfoNote(row, row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n infoNoteModalHide() {\r\n this.infoNoteDetail = new InfoBoardNotes();\r\n this.newformData = new FormData();\r\n this.infoNoteModal.hide();\r\n }\r\n\r\n newInfoNote() {\r\n\r\n this.infoNoteDetail = new InfoBoardNotes();\r\n this.infoNoteDetail.informationBoardName = \"NextGenLinks\";\r\n this.infoNoteDetail.createdBy = this.accountService.currentUser.email;\r\n this.infoNoteDetail.documentName = \"\";\r\n this.infoNoteDetail.status = \"R\";\r\n\r\n if (!this.infoNoteModal) {\r\n setTimeout(() => {\r\n if (this.infoNoteModal) {\r\n this.infoNoteModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.infoNoteModal.show();\r\n }\r\n\r\n }\r\n\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newformData.append('file', file);\r\n // this.sysproService.postFileData(formData, \"BRAND\", row.brandName).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n //this.myForm.patchValue({\r\n // fileSource: file\r\n //});\r\n }\r\n }\r\n\r\n saveInfoNote() {\r\n if (this.infoNoteDetail.id > 0) {\r\n //Update\r\n if (this.infoNoteDetail) {\r\n\r\n this.infoNoteDetail.modifiedBy = this.accountService.currentUser.email;\r\n if (this.newformData.has('file')) {\r\n\r\n this.alertService.startLoadingMessage('Uploading...');\r\n this.sysproService.postInfoFile(this.newformData, \"INFOBOARD\", this.infoNoteDetail.heading + \"_\" + this.infoNoteDetail.id).subscribe(x =>\r\n this.newFilePostedSuccess(x, this.infoNoteDetail.id),\r\n error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.updateInfoNote(this.infoNoteDetail, this.infoNoteDetail.id).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n else {\r\n //save new\r\n if (this.rowsCache.filter(x => x.heading == this.infoNoteDetail.heading).length >= 1) {\r\n this.alertService.showMessage('Warning', `This note name already exists`, MessageSeverity.warn);\r\n }\r\n else {\r\n if (this.newformData.has('file')) {\r\n this.alertService.startLoadingMessage('Uploading...');\r\n this.sysproService.postInfoFile(this.newformData, \"INFOBOARD\", this.infoNoteDetail.heading).subscribe(x => this.newFilePostedSuccess(x, 0),\r\n error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.sysproService.addInfoNote(this.infoNoteDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n \r\n }\r\n removeAttachment() {\r\n this.newformData = new FormData();\r\n this.infoNoteDetail.documentName = \"\";\r\n }\r\n\r\n newFilePostedSuccess(x: any, id: number) {\r\n\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n this.infoNoteDetail.documentName = x.fileName;\r\n\r\n if (id > 0) {\r\n this.infoNoteDetail.modifiedBy = this.accountService.currentUser.email;\r\n this.sysproService.updateInfoNote(this.infoNoteDetail, id).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.infoNoteDetail.createdBy = this.accountService.currentUser.email;\r\n this.sysproService.addInfoNote(this.infoNoteDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n }\r\n onSaveSuccesful(): void {\r\n\r\n this.infoNoteModalHide(); \r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n //get f() {\r\n // return this.myForm.controls;\r\n //}\r\n downloadAttachment(doc: string) {\r\n\r\n this.alertService.startLoadingMessage('downloading...');\r\n this.sysproService.getInfoFile(doc,0).subscribe(x => this.onFileSuccessful(x, doc), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, fileName: string): void {\r\n var test = x;\r\n\r\n this.alertService.stopLoadingMessage();\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n onFileChange(event, row: InfoBoardNotes) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n this.sysproService.postFileData(formData, \"INFOBOARD\", row.informationBoardName).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n //this.myForm.patchValue({\r\n // fileSource: file\r\n //});\r\n }\r\n }\r\n filePostedSuccess(result: any, row: InfoBoardNotes) {\r\n\r\n console.log(result);\r\n row.documentName = result.fileName;\r\n this.saveSegment(row);\r\n }\r\n\r\n //submit() {\r\n // const formData = new FormData();\r\n\r\n // formData.append('file', this.myForm.get('fileSource').value);\r\n\r\n // this.sysproService.postFileData(formData).subscribe(x => this.onPostDataSuccessful([x]), error => this.onPostDataLoadFailed(error));\r\n //}\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n //onPostDataSuccessful(arg0: any[]) {\r\n // throw new Error(\"Method not implemented.\");\r\n //}\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n

ITS Users

\\r\\n
\\r\\n
= 1\\\" class=\\\"row control-box\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Enrolled Users
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{ (value !== '1900-01-01T00:00:00') ? (value | date: 'yyyy/MM/dd HH:mm') : \\\"\\\" }}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n View\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Edit User:

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2V0dGluZ3NcXGFkbWluLWNvbXBvbmVudHNcXHNldHRpbmdzLklUUy1Vc2Vycy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL3NldHRpbmdzLklUUy1Vc2Vycy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4udGJvZHkge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcbiJdfQ== */\"","import { HttpClient } from '@angular/common/http';\r\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { WarehouseUserDetails } from '../../../models/warehouse-user.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n\r\n@Component({\r\n selector: 'ITS-User-settings',\r\n templateUrl: './settings.ITS-Users.component.html',\r\n styleUrls: ['./settings.ITS-Users.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ITSUserSettingsComponent {\r\n\r\n columns: any[] = [];\r\n\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('adminTemplate')\r\n adminTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n rows: any[];\r\n userrows: any[];\r\n enableUserEdit: boolean = false;\r\n enableUserEditIndex: number | null = null;\r\n\r\n isSaving: boolean = false;\r\n isUserCollapsed: boolean = true;\r\n users: WarehouseUserDetails[] = [];\r\n selectedUser: WarehouseUserDetails | null = null;\r\n usersCache: WarehouseUserDetails[] = [];\r\n\r\n\r\n @ViewChild('userModal')\r\n userModal: ModalDirective;\r\n\r\n showPassword: boolean = false;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private fowkesService: FowkesOnlineService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.setGrid();\r\n this.loadData();\r\n }\r\n setGrid() {\r\n this.columns = [\r\n { prop: 'branch', name: 'WH', width: 50, cellClass: \"left\" },\r\n { prop: 'userName', name: 'User Name', width: 200, cellClass: \"left\" },\r\n { prop: 'firstName', name: 'Firs tName', width: 200, cellClass: \"left\" },\r\n { prop: 'lastName', name: 'LastName', width: 200, cellClass: \"left\" },\r\n { prop: 'createdAt', name: 'Enrolled Date', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'isAdmin', name: 'Admin', width: 80, cellClass: \"left\", cellTemplate: this.adminTemplate }\r\n ]\r\n\r\n\r\n this.columns.push({ name: 'View', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setGrid();\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.getITSWarehouseUsers().subscribe(\r\n (x) => this.onUsersLoadSuccessful(x),\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n }\r\n\r\n refresh() {\r\n this.loadData();\r\n }\r\n\r\n onUsersLoadSuccessful(WarehouseUser: WarehouseUserDetails[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.users = WarehouseUser;\r\n this.usersCache = [...this.users];\r\n\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n var filterValues = this.usersCache.filter(r => Utilities.searchArray(value, false, r.firstName, r.lastName, r.userName));\r\n this.users = filterValues;\r\n }\r\n else {\r\n this.users = this.usersCache;\r\n }\r\n }\r\n\r\n selectUser(user: WarehouseUserDetails): void {\r\n this.selectedUser = { ...user };\r\n\r\n\r\n if (!this.userModal) {\r\n setTimeout(() => {\r\n if (this.userModal) {\r\n this.userModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.userModal.show();\r\n }\r\n }\r\n\r\n deleteUser(user: WarehouseUserDetails) {\r\n this.selectedUser = { ...user };\r\n const removeFingerprints = confirm(\"Do you want to delete the user's fingerprints as well?\");\r\n\r\n\r\n this.alertService.startLoadingMessage('updating user...');\r\n this.fowkesService.deleteITSWarehouseUser(this.selectedUser, removeFingerprints).subscribe(() => {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', 'Updated successfully', MessageSeverity.success);\r\n\r\n this.userModalhide();\r\n this.loadData();\r\n });\r\n\r\n }\r\n\r\n saveUser(): void {\r\n if (this.selectedUser) {\r\n this.fowkesService.updateITSWarehouseUser(this.selectedUser).subscribe(() => {\r\n this.fowkesService.getITSWarehouseUsers().subscribe(\r\n (x) => this.onUsersLoadSuccessful(x),\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n this.selectedUser = null;\r\n });\r\n }\r\n }\r\n\r\n enableUserEditMethod(row: any, i: number) {\r\n this.enableUserEdit = true;\r\n this.enableUserEditIndex = i;\r\n }\r\n\r\n saveUserSegment(row: any) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.fowkesService.updateITSWarehouseUser(row).subscribe(\r\n () => this.onUpdateSuccesful(),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n\r\n onUpdateSuccesful() {\r\n this.isSaving = false;\r\n this.enableUserEdit = false;\r\n this.enableUserEditIndex = null;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', 'Updated successfully', MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occurred whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n toggleUserSection() {\r\n this.isUserCollapsed = !this.isUserCollapsed;\r\n }\r\n\r\n togglePassword() {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n // Prevent autofill by setting `readonly` temporarily\r\n enableInput(event: FocusEvent) {\r\n const input = event.target as HTMLInputElement;\r\n input.removeAttribute(\"readonly\");\r\n }\r\n\r\n // Generate Random 5-character Password\r\n generateRandomPassword() {\r\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*\";\r\n let password = \"\";\r\n for (let i = 0; i < 5; i++) {\r\n password += chars.charAt(Math.floor(Math.random() * chars.length));\r\n }\r\n this.selectedUser.overridePassword = password;\r\n }\r\n\r\n userModalhide() {\r\n this.selectedUser = null;\r\n this.userModal.hide();\r\n }\r\n\r\n addNewUser(): void {\r\n\r\n this.selectedUser = new WarehouseUserDetails();\r\n\r\n\r\n if (!this.userModal) {\r\n setTimeout(() => {\r\n if (this.userModal) {\r\n this.userModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.userModal.show();\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
ITS Warehouses
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditBranchDefault Scanner File Save PathITS EnabledDelivery Enabled
\\r\\n \\r\\n \\r\\n Edit\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2V0dGluZ3NcXGFkbWluLWNvbXBvbmVudHNcXHNldHRpbmdzLklUUy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL3NldHRpbmdzLklUUy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4udGJvZHkge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcbiJdfQ== */\"","import { HttpClient } from '@angular/common/http';\r\nimport { Component, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { WarehouseApplicationDefault } from '../../../models/warehouse-application-settings.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n\r\n@Component({\r\n selector: 'ITS-settings',\r\n templateUrl: './settings.ITS.component.html',\r\n styleUrls: ['./settings.ITS.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ITSSettingsComponent {\r\n\r\n rows: any[];\r\n userrows: any[];\r\n enableEdit: boolean = false;\r\n enableEditIndex: number | null = null;\r\n loadingIndicator: boolean = false;\r\n isSaving: boolean = false;\r\n isWarehouseCollapsed: boolean = false;\r\n isUserCollapsed: boolean = true;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private fowkesService: FowkesOnlineService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.getITSWarehouseDefaults().subscribe(\r\n (x) => this.onDataLoadSuccessful(x),\r\n (error) => this.onDataLoadFailed(error)\r\n );\r\n\r\n }\r\n\r\n onDataLoadSuccessful(WarehouseApplicationDefault: any[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rows = WarehouseApplicationDefault;\r\n }\r\n\r\n\r\n enableEditMethod(row: any, i: number) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n }\r\n\r\n saveSegment(row: any) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.fowkesService.updateITSWarehouseDefaults(row).subscribe(\r\n () => this.onUpdateSuccesful(),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n\r\n\r\n onUpdateSuccesful() {\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.enableEditIndex = null;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', 'Updated successfully', MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occurred whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n toggleWarehouseSection() {\r\n this.isWarehouseCollapsed = !this.isWarehouseCollapsed;\r\n }\r\n\r\n downloadITSSetup() {\r\n\r\n this.fowkesService.getITSInstaller().subscribe((blob: Blob) => {\r\n const downloadUrl = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = downloadUrl;\r\n a.download = 'ITS_Setup.exe';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }, error => {\r\n console.error(\"Error downloading ITS Installer:\", error);\r\n alert(\"Failed to download ITS Installer. Please contact IT support.\");\r\n });\r\n\r\n //const filePath = \"\\\\\\\\FBSRVCPT07\\\\Temp\\\\New ITS\\\\OnlineInstall\\\\ITS_Setup.exe\";\r\n //const encodedPath = encodeURIComponent(filePath);\r\n //const downloadUrl = `api/download?path=${encodedPath}`;\r\n\r\n //window.open(downloadUrl, \"_blank\");\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n  \\r\\n  \\r\\n  \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n Edit\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Branch / Establishment

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2V0dGluZ3NcXGFkbWluLWNvbXBvbmVudHNcXHNldHRpbmdzLmJyYW5jaC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL3NldHRpbmdzLmJyYW5jaC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4udGJvZHkge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcbiJdfQ== */\"","import { Component, TemplateRef, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { Brand } from '../../../models/brand.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { Establishment } from '../../../models/company-establishment.model';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { ngxCsv } from 'ngx-csv';\r\n\r\n@Component({\r\n selector: 'branch-settings',\r\n templateUrl: './settings.branch.component.html',\r\n styleUrls: ['./settings.branch.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class BranchSettingsComponent {\r\n\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n columns: any[] = [];\r\n branchesCache: Establishment[] = [];\r\n establishmentsCache: Establishment[] = [];\r\n establishments: Establishment[] = [];\r\n establishmentDetail: Establishment;\r\n\r\n @ViewChild('establishmentModal')\r\n establishmentModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('companiesList')\r\n private companiesList;\r\n\r\n @ViewChild('companiesListSelector')\r\n private companiesListSelector;\r\n\r\n\r\n @ViewChild('establishmentTypeList')\r\n private establishmentTypeList;\r\n\r\n @ViewChild('establishmentTypeListSelector')\r\n private establishmentTypeListSelector;\r\n\r\n\r\n @ViewChild('citiesList')\r\n private citiesList;\r\n\r\n @ViewChild('citiesListSelector')\r\n private citiesListSelector;\r\n\r\n selectedCompany: string;\r\n\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n\r\n searchTerm: string = \"\";\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private fowkesService: FowkesOnlineService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadGrids();\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.loadGrids();\r\n }\r\n\r\n\r\n private loadGrids() {\r\n this.columns = [\r\n { prop: 'company', name: 'Company', width: 150},\r\n { prop: 'establishment', name: 'Establishment', width: 160 },\r\n { prop: 'establishmentType', name: 'Type', width: 80 },\r\n { prop: 'companyRegistration', name: 'Registration Number', width: 150 },\r\n { prop: 'taxNumber', name: 'Tax Number', width: 100 }, \r\n { prop: 'cityDiallingCode', name: 'Code', width: 80 },\r\n { prop: 'tel', name: 'Tel Number', width: 100 },\r\n { prop: 'fax', name: 'Fax Number', width: 100 }\r\n ];\r\n\r\n this.columns.push({ name: '', width: 200, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.getAllEstablishmentDetails().subscribe(x => this.onEstablishmentsLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onEstablishmentsLoadSuccessful(branches: any[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (branches[0]) {\r\n this.branchesCache = [...branches[0]];\r\n this.establishmentsCache = this.branchesCache.filter(x => x.establishmentType != \"Other\");\r\n\r\n this.establishmentsCache.forEach((branch, index, establishments) => {\r\n (branch).index = index + 1;\r\n this.sysproService.getEstablishmentDetails(branch.companyCode, branch.branchCode).subscribe(\r\n x => {\r\n var addDetails = x;\r\n branch.cityDiallingCode = \"(0\"+ addDetails.cityDiallingCode + \")\";\r\n\r\n }, error => this.onDataLoadFailed(error));\r\n });\r\n\r\n this.establishments = [...this.establishmentsCache];\r\n\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.establishments = this.establishmentsCache.filter(r => Utilities.searchArray(value, false, r.companyCode, r.company, r.establishment, r.branchCode, r.tel, r.fax));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.establishments = [...this.establishmentsCache];\r\n }\r\n }\r\n\r\n deleteRow(row: Establishment) {\r\n\r\n //Check that brand doesnt have any stock codes assigned\r\n // this.sysproService.getStockCodesForBrand(row.id).subscribe(x => this.onValidationSuccesful(x, row), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n //onValidationSuccesful(x: CMStockCode[], row: Brand): void {\r\n // console.log(x);\r\n // if (x && x.length >= 1) {\r\n // this.alertService.showMessage('Warning', `You cannot delete a brand with stock codes associated. There are ` + x.length + ' items linked to this brand ', MessageSeverity.warn);\r\n // }\r\n // else {\r\n // this.isSaving = true;\r\n // this.alertService.startLoadingMessage('Saving changes...');\r\n // this.sysproService.deleteBrand(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n // }\r\n //}\r\n\r\n editEstablishment(row: Establishment) {\r\n\r\n this.establishmentDetail = row;\r\n\r\n if (!this.establishmentModal) {\r\n setTimeout(() => {\r\n if (this.establishmentModal) {\r\n this.establishmentModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.establishmentModal.show();\r\n }\r\n\r\n }\r\n\r\n\r\n establishmentModalHide() {\r\n this.establishmentDetail = new Establishment();\r\n this.establishmentModal.hide();\r\n }\r\n\r\n newEstablishment() {\r\n this.establishmentDetail = new Establishment();\r\n\r\n let defaults = this.establishments[0];\r\n this.establishmentDetail.companyRegistration = defaults.companyRegistration;\r\n this.establishmentDetail.email = defaults.email;\r\n this.establishmentDetail.country = defaults.country;\r\n this.establishmentDetail.enabled = true;\r\n this.establishmentDetail.hoursWeekdays = \"Mon - Thur: \";\r\n this.establishmentDetail.hoursSaturdays = \"Friday: \";\r\n this.establishmentDetail.hoursSundays = \"Saturday: \";\r\n this.establishmentDetail.company = \"\";\r\n this.establishmentDetail.city = \"\";\r\n //this.establishmentDetail.cityDiallingCode = defaults.cityDiallingCode;\r\n\r\n if (!this.establishmentModal) {\r\n setTimeout(() => {\r\n if (this.establishmentModal) {\r\n this.establishmentModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.establishmentModal.show();\r\n }\r\n\r\n }\r\n\r\n saveSegment(row: Establishment) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.fowkesService.editEstablishment(row, row.establishmentId).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n saveEstablishment() {\r\n\r\n //Validate save\r\n if (this.establishmentDetail) {\r\n if (this.establishmentDetail.establishment) { \r\n \r\n if (!this.establishmentDetail.branchCode) {\r\n this.alertService.showMessage('Warning', `Make sure to enter a branch code`, MessageSeverity.warn);\r\n }\r\n else {\r\n\r\n this.establishmentDetail.addressLine2 = (this.establishmentDetail.addressLine2 ? this.establishmentDetail.addressLine2 : \"\");\r\n this.establishmentDetail.addressLine3 = (this.establishmentDetail.addressLine3 ? this.establishmentDetail.addressLine3 : \"\");\r\n this.establishmentDetail.addressLine4 = (this.establishmentDetail.addressLine4 ? this.establishmentDetail.addressLine4 : \"\");\r\n this.establishmentDetail.addressLine5 = (this.establishmentDetail.addressLine5 ? this.establishmentDetail.addressLine5 : \"\");\r\n\r\n this.establishmentDetail.postalAddress2 = (this.establishmentDetail.postalAddress2 ? this.establishmentDetail.postalAddress2 : \"\");\r\n this.establishmentDetail.postalAddress3 = (this.establishmentDetail.postalAddress3 ? this.establishmentDetail.postalAddress3 : \"\");\r\n this.establishmentDetail.postalAddress4 = (this.establishmentDetail.postalAddress4 ? this.establishmentDetail.postalAddress4 : \"\");\r\n this.establishmentDetail.postalAddress5 = (this.establishmentDetail.postalAddress5 ? this.establishmentDetail.postalAddress5 : \"\");\r\n\r\n\r\n this.establishmentDetail.comments = (this.establishmentDetail.comments ? this.establishmentDetail.comments : \"\");\r\n\r\n\r\n this.establishmentDetail.googleBusinessProfile = (this.establishmentDetail.googleBusinessProfile ? this.establishmentDetail.googleBusinessProfile : \"\");\r\n this.establishmentDetail.googleHyperlink = (this.establishmentDetail.googleHyperlink ? this.establishmentDetail.googleHyperlink : \"\");\r\n\r\n this.establishmentDetail.companyCode = (this.establishmentDetail.company == \"Fowkes Bros (PTY) Ltd\" ? \"FB\" : \"MA\");\r\n this.establishmentDetail.establishmentType = \"Branch\";\r\n\r\n if (this.establishmentDetail.establishmentId) {\r\n this.fowkesService.editEstablishment(this.establishmentDetail, this.establishmentDetail.establishmentId).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n if (this.establishmentsCache.filter(x => x.company == this.establishmentDetail.company && x.establishment == this.establishmentDetail.establishment).length >= 1) {\r\n this.alertService.showMessage('Warning', `This company / establishment already exists`, MessageSeverity.warn);\r\n }\r\n else {\r\n\r\n this.fowkesService.newEstablishment(this.establishmentDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n }\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter an establishment name`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n onSaveSuccesful(): void {\r\n\r\n this.establishmentModal.hide(); \r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n ExportResults() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Company\", \"Establishment\", \"Comments\", \"BranchCode\", \"Tel\", \"Fax\", \"Email\", \"CompanyRegistration\", \"TaxNumber\", \"AddressLine1\", \"AddressLine2\", \"AddressLine3\", \"AddressLine4\", \"AddressLine5\"\r\n , \"AreaCode\", \"PostalAddress1\", \"PostalAddress2\", \"PostalAddress3\", \"PostalAddress4\", \"PostalAddress5\", \"PostalCode\"\r\n , \"Enabled\", \"Country\", \"City\", \"Hours1\", \"Hours2\", \"Hours3\"]\r\n };\r\n\r\n var filename = \"Establishments\";\r\n var selectRows = [...this.establishments];\r\n\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n //let date = new Date(selectedHeader.).toISOString().split('T')[0];\r\n exportRows.push({\r\n Company: row.company, Establishment: row.establishment, Comments: row.comments, BranchCode: row.branchCode, Tel: row.tel, Fax: row.fax,\r\n Email: row.email, CompanyRegistration: row.companyRegistration, TaxNumber: row.taxNumber, AddressLine1: row.addressLine1, AddressLine2: row.addressLine2\r\n , AddressLine3: row.addressLine3, AddressLine4: row.addressLine4, AddressLine5: row.addressLine5, AreaCode: row.areaCode, PostalAddress1: row.postalAddress1\r\n , PostalAddress2: row.postalAddress2, PostalAddress3: row.postalAddress3, PostalAddress4: row.postalAddress4, PostalCode: row.postalCode\r\n , Enabled: row.enabled, Country: row.country, City: row.city, Hours1: row.hoursWeekdays, Hours2: row.hoursSaturdays, Hours3: row.hoursSundays\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n Edit\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Printer Settings

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2V0dGluZ3NcXGFkbWluLWNvbXBvbmVudHNcXHNldHRpbmdzLnByaW50ZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2V0dGluZ3MvYWRtaW4tY29tcG9uZW50cy9zZXR0aW5ncy5wcmludGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi50Ym9keSB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbn1cclxuIl19 */\"","import { HttpClient } from '@angular/common/http';\r\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Establishment } from '../../../models/company-establishment.model';\r\nimport { Printers } from '../../../models/printers.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { PrinterService } from '../../../services/printer.service';\r\n\r\n@Component({\r\n selector: 'printer-settings',\r\n templateUrl: './settings.printer.component.html',\r\n styleUrls: ['./settings.printer.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class PrinterSettingsComponent {\r\n\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n columns: any[] = [];\r\n\r\n\r\n printersCache: Printers[] = [];\r\n printers: Printers[] = [];\r\n printerDetail: Printers;\r\n\r\n\r\n @ViewChild('printerModal')\r\n printerModal: ModalDirective;\r\n\r\n branchesCache: Establishment[] = [];\r\n establishmentsCache: Establishment[] = [];\r\n establishments: Establishment[] = [];\r\n establishmentDetail: Establishment;\r\n\r\n @ViewChild('establishmentModal')\r\n establishmentModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('companiesList')\r\n private companiesList;\r\n\r\n @ViewChild('companiesListSelector')\r\n private companiesListSelector;\r\n\r\n\r\n selectedCompany: string;\r\n\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n\r\n searchTerm: string = \"\";\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private fowkesService: FowkesOnlineService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService, private printerService: PrinterService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadGrids();\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.loadGrids();\r\n }\r\n\r\n\r\n private loadGrids() {\r\n this.columns = [\r\n { prop: 'printerPath', name: 'Name', width: 200},\r\n { prop: 'comment', name: 'Comment', width: 250 },\r\n { prop: 'model', name: 'Model', width: 200 },\r\n { prop: 'enabled', name: 'Enabled', width: 80 },\r\n { name: '', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'barcodeStartSequence', name: 'Barcode Start Sequence', width: 200 },\r\n { prop: 'barcodeEndSequence', name: 'End Sequence', width: 80 }\r\n ];\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.printerService.GetPrinters().subscribe(x => this.onPrintersLoadSuccesful(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n onPrintersLoadSuccesful(printers: Printers[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (printers[0]) {\r\n this.printersCache = [...printers];\r\n this.printers = this.printersCache;\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.printers = this.printersCache.filter(r => Utilities.searchArray(value, false, r.printerPath, r.comment, r.barcodeStartSequence, r.barcodeEndSequence, r.location, r.model));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.printers = [...this.printersCache];\r\n }\r\n }\r\n\r\n deleteRow(row: Printers) {\r\n\r\n //Check that brand doesnt have any stock codes assigned\r\n // this.sysproService.getStockCodesForBrand(row.id).subscribe(x => this.onValidationSuccesful(x, row), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n\r\n editPrinter(row: Printers) {\r\n\r\n this.printerDetail = row;\r\n\r\n if (!this.printerModal) {\r\n setTimeout(() => {\r\n if (this.printerModal) {\r\n this.printerModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.printerModal.show();\r\n }\r\n\r\n }\r\n\r\n printerModalHide() {\r\n this.printerDetail = new Printers();\r\n this.printerModal.hide();\r\n }\r\n\r\n newPrinter() {\r\n this.printerDetail = new Printers();\r\n\r\n\r\n if (!this.printerModal) {\r\n setTimeout(() => {\r\n if (this.printerModal) {\r\n this.printerModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.printerModal.show();\r\n }\r\n\r\n }\r\n\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n savePrinter() {\r\n\r\n //Validate save\r\n if (this.printerDetail) {\r\n if (this.printerDetail.printerPath) { \r\n\r\n this.printerDetail.barcodeStartSequence = (this.printerDetail.barcodeStartSequence ? this.printerDetail.barcodeStartSequence : \"\");\r\n this.printerDetail.barcodeEndSequence = (this.printerDetail.barcodeEndSequence ? this.printerDetail.barcodeEndSequence : \"\");\r\n\r\n this.printerDetail.comment = (this.printerDetail.comment ? this.printerDetail.comment : \"\");\r\n\r\n \r\n if (this.printerDetail.printerId) {\r\n this.printerService.editPrinter(this.printerDetail, this.printerDetail.printerId).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n this.printerService.newPrinter(this.printerDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a printer name`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n onSaveSuccesful(): void {\r\n\r\n this.printerModal.hide(); \r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Vat %Effective DateDelete
{{row.value}}{{row.effectiveDate | date: 'yyyy/MM/dd'}}\\r\\n {{'users.management.Delete' | translate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
BranchPrice CodePrice Override PasswordInvoice Reprint PasswordSales Order Release PasswordPO Ledger Code
{{row.branch}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Update \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host ::ng-deep .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell {\\n white-space: normal !important;\\n word-wrap: break-word !important;\\n overflow: hidden !important;\\n line-height: 1; }\\n\\np {\\n font-family: Lato; }\\n\\n.datatable-scroller {\\n width: 100% !important; }\\n\\n.container {\\n height: 110px;\\n width: 110px;\\n margin: 10px;\\n border: solid 5px black;\\n background-color: white;\\n display: inline-block; }\\n\\ninput.form-control {\\n height: 18px;\\n font-size: 0.600rem; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.table tr {\\n height: 20px; }\\n\\n.tbody {\\n height: 500px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2V0dGluZ3NcXGFkbWluLWNvbXBvbmVudHNcXHNldHRpbmdzLnNlcnZpY2VzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBRUUsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQywyQkFBMkI7RUFDM0IsY0FBYyxFQUFBOztBQUdkO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0Usc0JBQXNCLEVBQUE7O0FBR3hCO0VBQ0UsYUFBYTtFQUNiLFlBQVk7RUFDWixZQUFZO0VBQ1osdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2QixxQkFBcUIsRUFBQTs7QUFHdkI7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBSXJCO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsWUFBWSxFQUFBOztBQUdkO0VBQ0UsWUFBWSxFQUFBOztBQUlkO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NldHRpbmdzL2FkbWluLWNvbXBvbmVudHMvc2V0dGluZ3Muc2VydmljZXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuOmhvc3QgOjpuZy1kZWVwIC5uZ3gtZGF0YXRhYmxlLm1hdGVyaWFsIC5kYXRhdGFibGUtYm9keSAuZGF0YXRhYmxlLWJvZHktcm93IC5kYXRhdGFibGUtYm9keS1jZWxsIHtcclxuICAvL3BhZGRpbmc6IDAgNXB4IDAgNXB4ICFpbXBvcnRhbnQ7IC8vIGFsaWduIHRoZSBoZWFkZXIgdGV4dFxyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgfVxyXG5cclxuICBwIHtcclxuICAgIGZvbnQtZmFtaWx5OiBMYXRvO1xyXG4gIH1cclxuXHJcbiAgLmRhdGF0YWJsZS1zY3JvbGxlciB7XHJcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmNvbnRhaW5lciB7XHJcbiAgICBoZWlnaHQ6IDExMHB4O1xyXG4gICAgd2lkdGg6IDExMHB4O1xyXG4gICAgbWFyZ2luOiAxMHB4O1xyXG4gICAgYm9yZGVyOiBzb2xpZCA1cHggYmxhY2s7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB9XHJcblxyXG4gIGlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICBmb250LXNpemU6IDAuNjAwcmVtO1xyXG4gIH1cclxuXHJcblxyXG4gIC50YWJsZSB0aCB7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgfVxyXG5cclxuICAudGFibGUgdGgsIC50YWJsZSB0ZCB7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgfVxyXG5cclxuICAudGFibGUgdHIge1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gIH1cclxuXHJcblxyXG4gIC50Ym9keSB7XHJcbiAgICBoZWlnaHQ6IDUwMHB4O1xyXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgfVxyXG4iXX0= */\"","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport * as moment from 'moment';\r\nimport { Branch } from '../../../models/branch.model';\r\nimport { ConfigurationSettings } from '../../../models/configuration-settings.model';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\n\r\n\r\n@Component({\r\n selector: 'settings-services',\r\n templateUrl: './settings.services.component.html',\r\n styleUrls: ['./settings.services.component.scss']\r\n})\r\nexport class SettingsServicesComponent implements OnInit {\r\n\r\n\r\n @ViewChild('table') table: DatatableComponent;\r\n loadingIndicator: boolean;\r\n\r\n scrollbarV = false;\r\n bodyHeight = 'auto';\r\n\r\n editing = {};\r\n\r\n private isEditMode = false;\r\n private isSaving = false;\r\n private showValidationErrors = false;\r\n \r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isGeneralEditor = false;\r\n\r\n\r\n @ViewChild('currentCustomer')\r\n currentCustomer: string;\r\n\r\n @ViewChild('customers')\r\n private customers;\r\n \r\n @ViewChild('vatCodeSelector')\r\n private vatCodeSelector;\r\n\r\n\r\n @ViewChild('effectiveDate')\r\n private effectiveDate;\r\n\r\n startDate = new Date().toISOString().slice(0, 16);\r\n\r\n \r\n @ViewChild('f')\r\n private form;\r\n columns: ({ prop: string; name: string; width: number; canAutoResize: boolean; } | { prop: string; name: string; width: number; canAutoResize?: undefined; })[];\r\n id: string;\r\n hasDetailRows: boolean;\r\n lastRow: number;\r\n rowsSaved: any;\r\n allBranches: any[];\r\n configSettings: ConfigurationSettings[];\r\n taxCode: string;\r\n newTaxValue: string;\r\n vatHistory: ConfigurationSettings[];\r\n \r\n constructor(private alertService: AlertService, private accountService: AccountService, private sysproService: SysproService,\r\n private router: Router, private fowkesOnline: FowkesOnlineService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.startLoadingMessage();\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesOnline.getBranches().subscribe(x => this.onBranchLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n this.sysproService.getConfigurationSettings().subscribe(x => this.onConfigLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n \r\n this.startDate = moment().format('YYYY-MM-DD');\r\n }\r\n onCurrentUserDataLoadFailed(error: any): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n\r\n onConfigLoadSuccessful(x: ConfigurationSettings[]): void {\r\n \r\n this.configSettings = x;\r\n this.vatHistory = x.filter(r => r.configuration == \"VAT\");\r\n //this.sysproService.getSysproTaxCodes().subscribe(x => this.onTaxCodesLoadSuccessful(x), error => this.onCurrentUserDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n private onBranchLoadSuccessful(branches: Branch[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.allBranches = branches;\r\n console.log(\"Branches\", this.allBranches);\r\n }\r\n\r\n\r\n deleteRow(row: ConfigurationSettings) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n console.log(row);\r\n this.sysproService.deleteConfigurationSettings(row.id, row.configuration).subscribe(x => this.onConfigLoadSuccessful(x), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n updateRow(row: Branch) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n console.log(row);\r\n this.sysproService.updateBranchSettings(row.branch, row.priceOverridePassword, row.invoiceReprintPassword, row.salesOrderPassword,\r\n row.priceCode, row.ledgerCode).subscribe(x => this.onBranchLoadSuccessful(x), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n //setSave(row: ArNarration) {\r\n // console.log(row);\r\n // this.rowsToSave = null;\r\n // this.isSaving = true;\r\n // this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n // this.sysproService.insertCustomerNotes(this.currentCustomer, row.line, row.notation).subscribe(_response => this.saveLinesSuccessHelper(), error => this.saveFailedHelper(error));\r\n\r\n //}\r\n\r\n\r\n\r\n\r\n save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.loadingIndicator = true;\r\n let stringDate: Date = new Date(this.startDate.toString());\r\n if (this.newTaxValue != \"\") {\r\n this.sysproService.updateConfigurationSettings(\"VAT\", this.newTaxValue, this.accountService.currentUser.userName, stringDate.toJSON()).subscribe(x => this.onConfigLoadSuccessful(x), error => this.saveFailedHelper(error));\r\n }\r\n this.sysproService.updateConfigurationSettings(\"TAXEXEMPT\", this.taxCode, this.accountService.currentUser.userName, null).subscribe(x => this.onConfigLoadSuccessful(x), error => this.saveFailedHelper(error));\r\n\r\n \r\n }\r\n\r\n \r\n\r\n\r\n private saveSuccessHelper() { \r\n\r\n this.isEditMode = false;\r\n\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n \r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Save Error', 'The below errors occured whilst saving your changes:', MessageSeverity.error, error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback) {\r\n this.changesFailedCallback();\r\n }\r\n }\r\n \r\n \r\n private cancel() {\r\n \r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.showMessage('Cancelled', 'Operation cancelled by user', MessageSeverity.default);\r\n this.alertService.resetStickyMessage();\r\n\r\n if (!this.isGeneralEditor) {\r\n this.isEditMode = false;\r\n }\r\n\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n\r\n private close() {\r\n \r\n this.resetForm();\r\n this.isEditMode = false;\r\n\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n } else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'dd MMM yyyy hh:mm'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Send Reply

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

Quote:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 400px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2V0dGluZ3NcXGFkbWluLWNvbXBvbmVudHNcXHdoYXRzYXBwLWluYm94LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NldHRpbmdzL2FkbWluLWNvbXBvbmVudHMvd2hhdHNhcHAtaW5ib3guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLnRib2R5IHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0MDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxufVxyXG4iXX0= */\"","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { User } from '../../../models/user.model';\r\nimport { Inbox, Outbox } from '../../../models/wapp-inbox.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { localStorageActions } from '../../../models/enums';\r\n\r\n@Component({\r\n selector: 'whatsapp-inbox',\r\n templateUrl: './whatsapp-inbox.component.html',\r\n styleUrls: ['./whatsapp-inbox.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class WhatsappInboxComponent {\r\n\r\n @Input()\r\n isSpecificUser: boolean;\r\n\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n columns: any[] = [];\r\n\r\n inboxCache: Inbox[] = [];\r\n inbox: Inbox[] = [];\r\n inboxDetail: Inbox\r\n\r\n\r\n outboxColumns: any[] = [];\r\n outboxDetail: Outbox;\r\n outbox: Outbox[] = [];\r\n outboxCache: Outbox[] = [];\r\n\r\n @ViewChild('whatsappModal')\r\n whatsappModal: ModalDirective;\r\n\r\n\r\n @ViewChild('quotesModal')\r\n quotesModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('quoteTemplate')\r\n quoteTemplate: TemplateRef;\r\n\r\n @ViewChild('resendTemplate')\r\n resendTemplate: TemplateRef;\r\n\r\n searchTerm: string = \"\";\r\n selectedQuote: string;\r\n user: User;\r\n selectedInvoice: any;\r\n\r\n\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(5, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n show: boolean;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n invoiceNumber: string;\r\n selectedSalesOrder: any;\r\n\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private fowkesService: FowkesOnlineService,\r\n private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService, private reportService: ReportService, private configurations: ConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadGrids();\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.loadGrids();\r\n }\r\n\r\n\r\n private loadGrids() {\r\n this.columns = [\r\n { prop: 'timestamp', name: 'Received On', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'profileName', name: 'Name', width: 100 },\r\n { prop: 'content', name: 'content', width: 200 },\r\n { name: 'Reply', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'senderNumber', name: 'Received From', width: 100 }\r\n ];\r\n\r\n\r\n this.outboxColumns = [\r\n { prop: 'sentAt', name: 'Sent On', width: 150, cellTemplate: this.dateTemplate },\r\n { prop: 'content', name: 'Content', width: 150 },\r\n { prop: 'bodyParameters', name: 'Reference', width: 200, cellTemplate: this.quoteTemplate },\r\n { prop: 'status', name: 'Status', width: 250 },\r\n { prop: 'toPhoneNumber', name: 'Sent To', width: 100 },\r\n { prop: 'nextGenUser', name: 'Sent By', width: 200 }\r\n ];\r\n }\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.selected = {\r\n startDate: moment().subtract(1, 'days'),\r\n endDate: moment().subtract(0, 'days').endOf('day')\r\n }\r\n\r\n\r\n this.sysproService.GetAllOutboxMessages().subscribe(x => this.OnOutboxLoaded(x), error => this.onDataLoadFailed(error));\r\n\r\n if (this.isSpecificUser) {\r\n //Get Outbox Messages for logged in user\r\n this.user = this.accountService.currentUser;\r\n this.sysproService.GetUserTel(this.user.userName).subscribe(x => this.onTelReceived(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n else {\r\n\r\n // this.sysproService.GetAllInboxMessages().subscribe(x => this.OnInboxLoaded(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onTelReceived(x: string): void {\r\n console.log(x);\r\n this.user.phoneNumber = x;\r\n }\r\n\r\n refresh() {\r\n this.loadData();\r\n }\r\n\r\n OnOutboxLoaded(x: Outbox[]): void {\r\n if (x[0]) {\r\n this.outboxCache = [...x];\r\n this.outbox = this.outboxCache;\r\n\r\n if (this.isSpecificUser) {\r\n this.outboxCache = this.outboxCache.filter(u => u.nextGenUser == this.user.userName);\r\n this.outbox = this.outboxCache;\r\n }\r\n\r\n //Filter out by company\r\n if (this.application == \"MaxArcusOnline\") {\r\n this.outboxCache = this.outboxCache.filter(u => u.nextGenUser.includes('maxarcus.co.za'));\r\n this.outbox = this.outboxCache;\r\n }\r\n else {\r\n this.outboxCache = this.outboxCache.filter(u => !u.nextGenUser.includes('maxarcus.co.za'));\r\n this.outbox = this.outboxCache;\r\n }\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n this.dateFilterChanged();\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n\r\n OnInboxLoaded(messages: Inbox[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (messages[0]) {\r\n this.inboxCache = [...messages];\r\n this.inbox = this.inboxCache;\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n dateFilterChanged() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.outbox = this.outboxCache;\r\n\r\n if (this.outboxCache && this.outboxCache.length >= 1) {\r\n \r\n this.outbox = this.outboxCache.filter(m => new Date(m.createdAt) >= new Date(startD) && new Date(m.createdAt) <= new Date(endD));\r\n }\r\n\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n }\r\n\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n\r\n this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //if (value.trim() != \"\") {\r\n // this.inbox = this.inboxCache.filter(r => Utilities.searchArray(value, false, r.content, r.profileName, r.senderNumber));\r\n // this.searchTerm = value;\r\n //}\r\n //else {\r\n // this.searchTerm = \"\";\r\n // this.inbox = [...this.inboxCache];\r\n //}\r\n if (value.trim() != \"\") {\r\n this.outbox = this.outboxCache.filter(r => Utilities.searchArray(value, false, r.content, r.bodyParameters, r.nextGenUser, r.toPhoneNumber, r.status));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.outbox = [...this.outboxCache];\r\n }\r\n }\r\n\r\n\r\n replyFreeText(row: Inbox) {\r\n\r\n this.inboxDetail = row;\r\n this.outboxDetail = new Outbox();\r\n\r\n this.outboxDetail.toPhoneNumber = this.inboxDetail.senderNumber;\r\n this.outboxDetail.content = \"Hi \" + this.inboxDetail.profileName;\r\n this.outboxDetail.nextGenUser = this.accountService.currentUser.userName;\r\n //Needs to be a single line\r\n if (!this.whatsappModal) {\r\n setTimeout(() => {\r\n if (this.whatsappModal) {\r\n this.whatsappModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.whatsappModal.show();\r\n }\r\n\r\n }\r\n\r\n resendMessage(row: Outbox) {\r\n\r\n this.outboxDetail = new Outbox();\r\n this.outboxDetail = row;\r\n\r\n if (row.toPhoneNumber) {\r\n this.sysproService.resendWhatsapp(this.outboxDetail, this.outboxDetail.nextGenUser).subscribe(x => this.onMessageSentSuccesful(), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n wappModalHide() {\r\n this.inboxDetail = new Inbox();\r\n this.outboxDetail = new Outbox();\r\n this.whatsappModal.hide();\r\n }\r\n\r\n\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n sendMessage() {\r\n //Validate save\r\n if (this.outboxDetail) {\r\n if (this.outboxDetail.content) {\r\n\r\n if (this.outboxDetail.toPhoneNumber) {\r\n this.sysproService.SendReplyMessage(this.outboxDetail.toPhoneNumber, this.outboxDetail.content.replace(/(\\r\\n|\\n|\\r)/gm, \" \"), this.outboxDetail.nextGenUser).subscribe(x => this.onMessageSentSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n this.alertService.showMessage('Warning', `Make sure to enter a phone number`, MessageSeverity.warn);\r\n\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a message`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n onMessageSentSuccesful(): void {\r\n this.whatsappModal.hide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Message sent successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n previewQuote(row: Outbox) {\r\n this.selectedQuote = row.bodyParameters;\r\n\r\n this.reportService.getFileStream(this.selectedQuote).subscribe(x => this.onFileSuccessful(x, row.bodyParameters), error => this.onDataLoadFailed(error));\r\n\r\n //if (sessionStorage.getItem(localStorageActions.QuoteNumber) != this.selectedQuote ) {\r\n // sessionStorage.setItem(localStorageActions.QuoteNumber, this.selectedQuote );\r\n //}\r\n\r\n //if (!!this.selectedQuote) {\r\n // if (!this.quotesModal) {\r\n // setTimeout(() => {\r\n // if (this.quotesModal) {\r\n // this.quotesModal.show();\r\n // }\r\n // });\r\n // }\r\n // else {\r\n // this.quotesModal.show();\r\n // }\r\n //}\r\n }\r\n\r\n quotesModalHide() {\r\n this.selectedQuote = null;\r\n this.quotesModal.hide();\r\n }\r\n\r\n gotToQuote() {\r\n this.router.navigate(['../../quotes'], { fragment: 'quote' });\r\n }\r\n\r\n\r\n previewPOD(row: Outbox) {\r\n this.sysproService.getFileStream(row.bodyParameters, 0).subscribe(x => this.onFileSuccessful(x, row.bodyParameters), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, fileName: string): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"SentOn\", \"content\", \"attachment\", \"status\", \"SentTo\", \"nextGenUser\"]\r\n };\r\n\r\n var filename = \"Whatsapps\";\r\n var selectRows = [...this.outbox];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n SentOn: (moment(row.sentAt)).format('DD-MMM-YYYY HH:mm'), content: row.content, attachment: row.bodyParameters,\r\n status: row.status, SentTo: row.toPhoneNumber, nextGenUser: row.nextGenUser\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n // this.alertService.showMessage(text, `Copied to Clipboard`, MessageSeverity.info);\r\n //copyTextToClipboard(text: string) {\r\n // // Assert that navigator.clipboard exists\r\n // const clipboard = (navigator as any).clipboard as Clipboard;\r\n // if (clipboard && typeof clipboard.writeText === 'function') {\r\n // clipboard.writeText(text).then(\r\n // () => {\r\n // console.log('Copying to clipboard was successful!');\r\n // this.alertService.showMessage(text, `Copied to Clipboard`, MessageSeverity.info);\r\n // },\r\n // (err) => {\r\n // console.error('Could not copy text: ', err);\r\n // }\r\n // );\r\n // } else {\r\n // console.error('Clipboard API is not available.');\r\n // // You might want to fallback to a different method if Clipboard API is not available\r\n // }\r\n //}\r\n\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ msg.profileName }} ({{ msg.senderNumber }})

\\r\\n

{{ msg.content }}

\\r\\n {{ msg.timestamp | date:'dd MMMM yyyy HH:mm:ss' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

{{ msg.content }}

\\r\\n \\\"Image\\r\\n \\r\\n \\r\\n Download Document\\r\\n \\r\\n
\\r\\n {{ msg.timestamp | date:'dd MMMM yyyy HH:mm:ss' }}\\r\\n
\\r\\n
\\r\\n \\r\\n
= 1\\\" class=\\\"reply-section\\\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"@charset \\\"UTF-8\\\";\\n.page-container {\\n padding: 20px;\\n /* Adds padding around the entire container for better spacing */\\n background-color: #fff;\\n /* Ensures a neutral background */\\n border-radius: 8px;\\n /* Optional: adds rounded corners for a softer design */\\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\\n /* Optional: adds subtle shadow for depth */ }\\n.chat-container {\\n display: flex;\\n flex-direction: column;\\n max-height: 500px;\\n /* Limits the height of the chat container */\\n overflow-y: auto;\\n /* Ensures scrolling within the container itself */\\n border: 1px solid #ccc;\\n background-color: #f9f9f9; }\\n.message-header {\\n cursor: pointer;\\n /* Indicates the header is clickable */\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n /* Prevents text selection on click */ }\\n.message-header:hover {\\n background-color: #f0f0f0;\\n /* Light background on hover to indicate interactiveness */ }\\n.message {\\n margin: 5px;\\n padding: 10px;\\n background-color: #f9f9f9;\\n /* Light background color for the message */\\n border: 1px solid #ccc;\\n /* Adds a light grey border */\\n border-radius: 15px;\\n /* Adds rounded corners */\\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\\n /* Optional: adds a subtle shadow for depth */\\n transition: all 0.3s ease;\\n /* Smooth transition for expanding details */ }\\n.expanded {\\n background-color: #eef;\\n /* Slightly different background for expanded messages */ }\\n.incoming, .outgoing {\\n padding: 8px;\\n margin-top: 2px;\\n border-radius: 12px;\\n /* Slightly less than the container to fit nicely within */ }\\n.incoming {\\n background-color: #e1f0c4;\\n /* Light green for incoming messages */\\n align-self: start; }\\n.outgoing {\\n background-color: #dcf8c6;\\n /* Light green, different shade for outgoing messages */\\n align-self: end; }\\n.timestamp {\\n display: block;\\n /* Ensures the timestamp appears on a new line */\\n font-size: 0.8em;\\n color: #666;\\n text-align: right;\\n /* Aligns timestamp to the right of the message */ }\\n.input-area {\\n display: flex;\\n padding: 10px;\\n border-top: 1px solid #ccc;\\n /* Adds a separator line above the input area */ }\\n.input-area input {\\n flex-grow: 1;\\n margin-right: 10px;\\n padding: 10px;\\n border: 1px solid #ccc;\\n border-radius: 20px; }\\n.input-area button {\\n padding: 10px 20px;\\n background-color: #009688;\\n color: white;\\n border: none;\\n border-radius: 20px;\\n cursor: pointer; }\\n.message-header {\\n font-size: 0.9em;\\n color: #333;\\n /* Darker text for better readability */\\n margin-bottom: 4px;\\n /* Space between header and message content */ }\\n.message-header strong {\\n color: #007bff;\\n /* Bootstrap’s theme color for links as an example */ }\\n.message-header span {\\n font-style: italic;\\n color: #555;\\n /* Slightly lighter color for telephone number */ }\\n.thread-container {\\n display: flex;\\n height: 75vh;\\n /* Ensures the container fits exactly in the viewport */ }\\n.list-panel {\\n width: 30%;\\n max-height: 75vh;\\n /* Ensures the list doesn't extend beyond the viewport height */\\n overflow-y: auto;\\n /* Makes it scrollable */\\n border-right: 1px solid #ccc; }\\n.detail-panel {\\n width: 70%;\\n max-height: 75vh;\\n /* Consistent height management for detail panel */\\n overflow-y: auto;\\n /* Allows scrolling within the detail panel */ }\\n.list-panel, .detail-panel {\\n max-height: calc(75vh - 10px);\\n /* Adjust 50px to your header/footer height */ }\\n.message-preview {\\n padding: 10px;\\n margin: 5px 10px;\\n background-color: #f9f9f9;\\n /* Light background color for better readability */\\n border: 1px solid #ccc;\\n /* Subtle border for definition */\\n border-radius: 15px;\\n /* Rounded corners for a softer, more modern look */\\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\\n /* Light shadow for depth */\\n cursor: pointer;\\n /* Indicates the element is clickable */\\n transition: background-color 0.3s, box-shadow 0.3s;\\n /* Smooth transition for hover effects */ }\\n.message-preview:hover {\\n background-color: #eef;\\n /* Slightly different background on hover for feedback */\\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\\n /* Stronger shadow on hover for emphasis */ }\\n/* Basic styling for the chat container */\\n.chat-container {\\n display: flex;\\n flex-direction: column;\\n padding: 10px; }\\n/* Styling for the reply section */\\n.reply-section {\\n display: flex;\\n margin-top: 10px;\\n padding: 10px;\\n background-color: #f4f4f4;\\n /* Light gray background */\\n border-top: 2px solid #ddd;\\n /* Adds a subtle border top for separation */\\n align-items: center;\\n /* Aligns the textarea and button vertically */ }\\n.reply-section textarea {\\n flex: 1;\\n /* Allows the textarea to fill the space */\\n height: 50px;\\n /* Fixed height for the textarea */\\n margin-right: 10px;\\n /* Spacing between the textarea and the button */\\n padding: 8px;\\n /* Padding inside the textarea */\\n border: 1px solid #ccc;\\n /* Subtle border for the textarea */\\n border-radius: 4px;\\n /* Rounded corners for the textarea */\\n resize: none;\\n /* Prevents resizing the textarea */ }\\n.reply-section button {\\n padding: 10px 20px;\\n /* Padding inside the button */\\n background-color: #007bff;\\n /* Bootstrap primary color for example */\\n color: white;\\n /* Text color for the button */\\n border: none;\\n /* No border for a modern look */\\n border-radius: 4px;\\n /* Rounded corners for the button */\\n cursor: pointer;\\n /* Pointer cursor on hover */\\n outline: none;\\n /* Removes the outline to keep focus style clean */ }\\n.reply-section button:hover {\\n background-color: #0056b3;\\n /* Darker shade on hover */ }\\n@media (max-width: 768px) {\\n .thread-container {\\n flex-direction: column; }\\n .list-panel, .detail-panel {\\n width: 100%;\\n max-height: 50vh;\\n /* Adjust each to take half of the viewport */ } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9hZG1pbi1jb21wb25lbnRzL3doYXRzYXBwLXNhbGVzLWluYm94LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NldHRpbmdzL2FkbWluLWNvbXBvbmVudHMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxzZXR0aW5nc1xcYWRtaW4tY29tcG9uZW50c1xcd2hhdHNhcHAtc2FsZXMtaW5ib3guY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCO0VBQ0UsYUFBYTtFQUFFLGdFQUFBO0VBQ2Ysc0JBQXNCO0VBQUUsaUNBQUE7RUFDeEIsa0JBQWtCO0VBQUUsdURBQUE7RUFDcEIsd0NBQXFDO0VBQUUsMkNBQUEsRUFBNEM7QUFHckY7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLGlCQUFpQjtFQUFFLDRDQUFBO0VBQ25CLGdCQUFnQjtFQUFFLGtEQUFBO0VBQ2xCLHNCQUFzQjtFQUN0Qix5QkFBeUIsRUFBQTtBQUUzQjtFQUNFLGVBQWU7RUFBRSxzQ0FBQTtFQUNqQix5QkFBaUI7S0FBakIsc0JBQWlCO1VBQWpCLGlCQUFpQjtFQUFFLHFDQUFBLEVBQXNDO0FBRzNEO0VBQ0UseUJBQXlCO0VBQUUsMERBQUEsRUFBMkQ7QUFHeEY7RUFDRSxXQUFXO0VBQ1gsYUFBYTtFQUNiLHlCQUF5QjtFQUFFLDJDQUFBO0VBQzNCLHNCQUFzQjtFQUFFLDZCQUFBO0VBQ3hCLG1CQUFtQjtFQUFFLHlCQUFBO0VBQ3JCLHdDQUFxQztFQUFFLDZDQUFBO0VBQ3ZDLHlCQUF5QjtFQUFFLDRDQUFBLEVBQTZDO0FBSTFFO0VBQ0Usc0JBQXNCO0VBQUUsd0RBQUEsRUFBeUQ7QUFHbkY7RUFDRSxZQUFZO0VBQ1osZUFBZTtFQUNmLG1CQUFtQjtFQUFFLDBEQUFBLEVBQTJEO0FBR2xGO0VBQ0UseUJBQXlCO0VBQUUsc0NBQUE7RUFDM0IsaUJBQWlCLEVBQUE7QUFHbkI7RUFDRSx5QkFBeUI7RUFBRSx1REFBQTtFQUMzQixlQUFlLEVBQUE7QUFHakI7RUFDRSxjQUFjO0VBQUUsZ0RBQUE7RUFDaEIsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxpQkFBaUI7RUFBRSxpREFBQSxFQUFrRDtBQUd2RTtFQUNFLGFBQWE7RUFDYixhQUFhO0VBQ2IsMEJBQTBCO0VBQUUsK0NBQUEsRUFBZ0Q7QUFHOUU7RUFDRSxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsbUJBQW1CLEVBQUE7QUFHckI7RUFDRSxrQkFBa0I7RUFDbEIseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGVBQWUsRUFBQTtBQUVqQjtFQUNFLGdCQUFnQjtFQUNoQixXQUFXO0VBQUUsdUNBQUE7RUFDYixrQkFBa0I7RUFBRSw2Q0FBQSxFQUE4QztBQUdwRTtFQUNFLGNBQWM7RUFBRSxvREFBQSxFQUFzRDtBQUd4RTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQUUsZ0RBQUEsRUFBaUQ7QUFFaEU7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUFFLHVEQUFBLEVBQXdEO0FBR3hFO0VBQ0UsVUFBVTtFQUNWLGdCQUFnQjtFQUFFLCtEQUFBO0VBQ2xCLGdCQUFnQjtFQUFFLHdCQUFBO0VBQ2xCLDRCQUE0QixFQUFBO0FBRzlCO0VBQ0UsVUFBVTtFQUNWLGdCQUFnQjtFQUFFLGtEQUFBO0VBQ2xCLGdCQUFnQjtFQUFFLDZDQUFBLEVBQThDO0FBR2xFO0VBQ0UsNkJBQTZCO0VBQUUsNkNBQUEsRUFBOEM7QUFHL0U7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtFQUFFLGtEQUFBO0VBQzNCLHNCQUFzQjtFQUFFLGlDQUFBO0VBQ3hCLG1CQUFtQjtFQUFFLG1EQUFBO0VBQ3JCLHlDQUFzQztFQUFFLDJCQUFBO0VBQ3hDLGVBQWU7RUFBRSx1Q0FBQTtFQUNqQixrREFBa0Q7RUFBRSx3Q0FBQSxFQUF5QztBQUcvRjtFQUNFLHNCQUFzQjtFQUFFLHdEQUFBO0VBQ3hCLHdDQUFxQztFQUFFLDBDQUFBLEVBQTJDO0FBR3BGLHlDQUFBO0FBQ0E7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLGFBQWEsRUFBQTtBQUdmLGtDQUFBO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYix5QkFBeUI7RUFBRSwwQkFBQTtFQUMzQiwwQkFBMEI7RUFBRSw0Q0FBQTtFQUM1QixtQkFBbUI7RUFBRSw4Q0FBQSxFQUErQztBQUd0RTtFQUNFLE9BQU87RUFBRSwwQ0FBQTtFQUNULFlBQVk7RUFBRSxrQ0FBQTtFQUNkLGtCQUFrQjtFQUFFLGdEQUFBO0VBQ3BCLFlBQVk7RUFBRSxnQ0FBQTtFQUNkLHNCQUFzQjtFQUFFLG1DQUFBO0VBQ3hCLGtCQUFrQjtFQUFFLHFDQUFBO0VBQ3BCLFlBQVk7RUFBRSxtQ0FBQSxFQUFvQztBQUdwRDtFQUNFLGtCQUFrQjtFQUFFLDhCQUFBO0VBQ3BCLHlCQUF5QjtFQUFFLHdDQUFBO0VBQzNCLFlBQVk7RUFBRSw4QkFBQTtFQUNkLFlBQVk7RUFBRSxnQ0FBQTtFQUNkLGtCQUFrQjtFQUFFLG1DQUFBO0VBQ3BCLGVBQWU7RUFBRSw0QkFBQTtFQUNqQixhQUFhO0VBQUUsa0RBQUEsRUFBbUQ7QUFHcEU7RUFDRSx5QkFBeUI7RUFBRSwwQkFBQSxFQUEyQjtBQUl4RDtFQUNFO0lBQ0Usc0JBQXNCLEVBQUE7RUFHeEI7SUFDRSxXQUFXO0lBQ1gsZ0JBQWdCO0lBQUUsNkNBQUEsRUFBOEMsRUFDakUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NldHRpbmdzL2FkbWluLWNvbXBvbmVudHMvd2hhdHNhcHAtc2FsZXMtaW5ib3guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4ucGFnZS1jb250YWluZXIge1xuICBwYWRkaW5nOiAyMHB4O1xuICAvKiBBZGRzIHBhZGRpbmcgYXJvdW5kIHRoZSBlbnRpcmUgY29udGFpbmVyIGZvciBiZXR0ZXIgc3BhY2luZyAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAvKiBFbnN1cmVzIGEgbmV1dHJhbCBiYWNrZ3JvdW5kICovXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgLyogT3B0aW9uYWw6IGFkZHMgcm91bmRlZCBjb3JuZXJzIGZvciBhIHNvZnRlciBkZXNpZ24gKi9cbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgLyogT3B0aW9uYWw6IGFkZHMgc3VidGxlIHNoYWRvdyBmb3IgZGVwdGggKi8gfVxuXG4uY2hhdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgLyogTGltaXRzIHRoZSBoZWlnaHQgb2YgdGhlIGNoYXQgY29udGFpbmVyICovXG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC8qIEVuc3VyZXMgc2Nyb2xsaW5nIHdpdGhpbiB0aGUgY29udGFpbmVyIGl0c2VsZiAqL1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyB9XG5cbi5tZXNzYWdlLWhlYWRlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogSW5kaWNhdGVzIHRoZSBoZWFkZXIgaXMgY2xpY2thYmxlICovXG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAvKiBQcmV2ZW50cyB0ZXh0IHNlbGVjdGlvbiBvbiBjbGljayAqLyB9XG5cbi5tZXNzYWdlLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIC8qIExpZ2h0IGJhY2tncm91bmQgb24gaG92ZXIgdG8gaW5kaWNhdGUgaW50ZXJhY3RpdmVuZXNzICovIH1cblxuLm1lc3NhZ2Uge1xuICBtYXJnaW46IDVweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgLyogTGlnaHQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG1lc3NhZ2UgKi9cbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgLyogQWRkcyBhIGxpZ2h0IGdyZXkgYm9yZGVyICovXG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIC8qIEFkZHMgcm91bmRlZCBjb3JuZXJzICovXG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC8qIE9wdGlvbmFsOiBhZGRzIGEgc3VidGxlIHNoYWRvdyBmb3IgZGVwdGggKi9cbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgLyogU21vb3RoIHRyYW5zaXRpb24gZm9yIGV4cGFuZGluZyBkZXRhaWxzICovIH1cblxuLmV4cGFuZGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjtcbiAgLyogU2xpZ2h0bHkgZGlmZmVyZW50IGJhY2tncm91bmQgZm9yIGV4cGFuZGVkIG1lc3NhZ2VzICovIH1cblxuLmluY29taW5nLCAub3V0Z29pbmcge1xuICBwYWRkaW5nOiA4cHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgLyogU2xpZ2h0bHkgbGVzcyB0aGFuIHRoZSBjb250YWluZXIgdG8gZml0IG5pY2VseSB3aXRoaW4gKi8gfVxuXG4uaW5jb21pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFmMGM0O1xuICAvKiBMaWdodCBncmVlbiBmb3IgaW5jb21pbmcgbWVzc2FnZXMgKi9cbiAgYWxpZ24tc2VsZjogc3RhcnQ7IH1cblxuLm91dGdvaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjZjhjNjtcbiAgLyogTGlnaHQgZ3JlZW4sIGRpZmZlcmVudCBzaGFkZSBmb3Igb3V0Z29pbmcgbWVzc2FnZXMgKi9cbiAgYWxpZ24tc2VsZjogZW5kOyB9XG5cbi50aW1lc3RhbXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyogRW5zdXJlcyB0aGUgdGltZXN0YW1wIGFwcGVhcnMgb24gYSBuZXcgbGluZSAqL1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIC8qIEFsaWducyB0aW1lc3RhbXAgdG8gdGhlIHJpZ2h0IG9mIHRoZSBtZXNzYWdlICovIH1cblxuLmlucHV0LWFyZWEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgLyogQWRkcyBhIHNlcGFyYXRvciBsaW5lIGFib3ZlIHRoZSBpbnB1dCBhcmVhICovIH1cblxuLmlucHV0LWFyZWEgaW5wdXQge1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogMjBweDsgfVxuXG4uaW5wdXQtYXJlYSBidXR0b24ge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDk2ODg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLm1lc3NhZ2UtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY29sb3I6ICMzMzM7XG4gIC8qIERhcmtlciB0ZXh0IGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkgKi9cbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAvKiBTcGFjZSBiZXR3ZWVuIGhlYWRlciBhbmQgbWVzc2FnZSBjb250ZW50ICovIH1cblxuLm1lc3NhZ2UtaGVhZGVyIHN0cm9uZyB7XG4gIGNvbG9yOiAjMDA3YmZmO1xuICAvKiBCb290c3RyYXDigJlzIHRoZW1lIGNvbG9yIGZvciBsaW5rcyBhcyBhbiBleGFtcGxlICovIH1cblxuLm1lc3NhZ2UtaGVhZGVyIHNwYW4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjNTU1O1xuICAvKiBTbGlnaHRseSBsaWdodGVyIGNvbG9yIGZvciB0ZWxlcGhvbmUgbnVtYmVyICovIH1cblxuLnRocmVhZC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDc1dmg7XG4gIC8qIEVuc3VyZXMgdGhlIGNvbnRhaW5lciBmaXRzIGV4YWN0bHkgaW4gdGhlIHZpZXdwb3J0ICovIH1cblxuLmxpc3QtcGFuZWwge1xuICB3aWR0aDogMzAlO1xuICBtYXgtaGVpZ2h0OiA3NXZoO1xuICAvKiBFbnN1cmVzIHRoZSBsaXN0IGRvZXNuJ3QgZXh0ZW5kIGJleW9uZCB0aGUgdmlld3BvcnQgaGVpZ2h0ICovXG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC8qIE1ha2VzIGl0IHNjcm9sbGFibGUgKi9cbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYzsgfVxuXG4uZGV0YWlsLXBhbmVsIHtcbiAgd2lkdGg6IDcwJTtcbiAgbWF4LWhlaWdodDogNzV2aDtcbiAgLyogQ29uc2lzdGVudCBoZWlnaHQgbWFuYWdlbWVudCBmb3IgZGV0YWlsIHBhbmVsICovXG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC8qIEFsbG93cyBzY3JvbGxpbmcgd2l0aGluIHRoZSBkZXRhaWwgcGFuZWwgKi8gfVxuXG4ubGlzdC1wYW5lbCwgLmRldGFpbC1wYW5lbCB7XG4gIG1heC1oZWlnaHQ6IGNhbGMoNzV2aCAtIDEwcHgpO1xuICAvKiBBZGp1c3QgNTBweCB0byB5b3VyIGhlYWRlci9mb290ZXIgaGVpZ2h0ICovIH1cblxuLm1lc3NhZ2UtcHJldmlldyB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbjogNXB4IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIC8qIExpZ2h0IGJhY2tncm91bmQgY29sb3IgZm9yIGJldHRlciByZWFkYWJpbGl0eSAqL1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAvKiBTdWJ0bGUgYm9yZGVyIGZvciBkZWZpbml0aW9uICovXG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIC8qIFJvdW5kZWQgY29ybmVycyBmb3IgYSBzb2Z0ZXIsIG1vcmUgbW9kZXJuIGxvb2sgKi9cbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIC8qIExpZ2h0IHNoYWRvdyBmb3IgZGVwdGggKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiBJbmRpY2F0ZXMgdGhlIGVsZW1lbnQgaXMgY2xpY2thYmxlICovXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgYm94LXNoYWRvdyAwLjNzO1xuICAvKiBTbW9vdGggdHJhbnNpdGlvbiBmb3IgaG92ZXIgZWZmZWN0cyAqLyB9XG5cbi5tZXNzYWdlLXByZXZpZXc6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVmO1xuICAvKiBTbGlnaHRseSBkaWZmZXJlbnQgYmFja2dyb3VuZCBvbiBob3ZlciBmb3IgZmVlZGJhY2sgKi9cbiAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgLyogU3Ryb25nZXIgc2hhZG93IG9uIGhvdmVyIGZvciBlbXBoYXNpcyAqLyB9XG5cbi8qIEJhc2ljIHN0eWxpbmcgZm9yIHRoZSBjaGF0IGNvbnRhaW5lciAqL1xuLmNoYXQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4vKiBTdHlsaW5nIGZvciB0aGUgcmVwbHkgc2VjdGlvbiAqL1xuLnJlcGx5LXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICAvKiBMaWdodCBncmF5IGJhY2tncm91bmQgKi9cbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNkZGQ7XG4gIC8qIEFkZHMgYSBzdWJ0bGUgYm9yZGVyIHRvcCBmb3Igc2VwYXJhdGlvbiAqL1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvKiBBbGlnbnMgdGhlIHRleHRhcmVhIGFuZCBidXR0b24gdmVydGljYWxseSAqLyB9XG5cbi5yZXBseS1zZWN0aW9uIHRleHRhcmVhIHtcbiAgZmxleDogMTtcbiAgLyogQWxsb3dzIHRoZSB0ZXh0YXJlYSB0byBmaWxsIHRoZSBzcGFjZSAqL1xuICBoZWlnaHQ6IDUwcHg7XG4gIC8qIEZpeGVkIGhlaWdodCBmb3IgdGhlIHRleHRhcmVhICovXG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgLyogU3BhY2luZyBiZXR3ZWVuIHRoZSB0ZXh0YXJlYSBhbmQgdGhlIGJ1dHRvbiAqL1xuICBwYWRkaW5nOiA4cHg7XG4gIC8qIFBhZGRpbmcgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAvKiBTdWJ0bGUgYm9yZGVyIGZvciB0aGUgdGV4dGFyZWEgKi9cbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAvKiBSb3VuZGVkIGNvcm5lcnMgZm9yIHRoZSB0ZXh0YXJlYSAqL1xuICByZXNpemU6IG5vbmU7XG4gIC8qIFByZXZlbnRzIHJlc2l6aW5nIHRoZSB0ZXh0YXJlYSAqLyB9XG5cbi5yZXBseS1zZWN0aW9uIGJ1dHRvbiB7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgLyogUGFkZGluZyBpbnNpZGUgdGhlIGJ1dHRvbiAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICAvKiBCb290c3RyYXAgcHJpbWFyeSBjb2xvciBmb3IgZXhhbXBsZSAqL1xuICBjb2xvcjogd2hpdGU7XG4gIC8qIFRleHQgY29sb3IgZm9yIHRoZSBidXR0b24gKi9cbiAgYm9yZGVyOiBub25lO1xuICAvKiBObyBib3JkZXIgZm9yIGEgbW9kZXJuIGxvb2sgKi9cbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAvKiBSb3VuZGVkIGNvcm5lcnMgZm9yIHRoZSBidXR0b24gKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiBQb2ludGVyIGN1cnNvciBvbiBob3ZlciAqL1xuICBvdXRsaW5lOiBub25lO1xuICAvKiBSZW1vdmVzIHRoZSBvdXRsaW5lIHRvIGtlZXAgZm9jdXMgc3R5bGUgY2xlYW4gKi8gfVxuXG4ucmVwbHktc2VjdGlvbiBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1NmIzO1xuICAvKiBEYXJrZXIgc2hhZGUgb24gaG92ZXIgKi8gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnRocmVhZC1jb250YWluZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmxpc3QtcGFuZWwsIC5kZXRhaWwtcGFuZWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDUwdmg7XG4gICAgLyogQWRqdXN0IGVhY2ggdG8gdGFrZSBoYWxmIG9mIHRoZSB2aWV3cG9ydCAqLyB9IH1cbiIsIi5wYWdlLWNvbnRhaW5lciB7XHJcbiAgcGFkZGluZzogMjBweDsgLyogQWRkcyBwYWRkaW5nIGFyb3VuZCB0aGUgZW50aXJlIGNvbnRhaW5lciBmb3IgYmV0dGVyIHNwYWNpbmcgKi9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyAvKiBFbnN1cmVzIGEgbmV1dHJhbCBiYWNrZ3JvdW5kICovXHJcbiAgYm9yZGVyLXJhZGl1czogOHB4OyAvKiBPcHRpb25hbDogYWRkcyByb3VuZGVkIGNvcm5lcnMgZm9yIGEgc29mdGVyIGRlc2lnbiAqL1xyXG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMSk7IC8qIE9wdGlvbmFsOiBhZGRzIHN1YnRsZSBzaGFkb3cgZm9yIGRlcHRoICovXHJcbn1cclxuXHJcbi5jaGF0LWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIG1heC1oZWlnaHQ6IDUwMHB4OyAvKiBMaW1pdHMgdGhlIGhlaWdodCBvZiB0aGUgY2hhdCBjb250YWluZXIgKi9cclxuICBvdmVyZmxvdy15OiBhdXRvOyAvKiBFbnN1cmVzIHNjcm9sbGluZyB3aXRoaW4gdGhlIGNvbnRhaW5lciBpdHNlbGYgKi9cclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XHJcbn1cclxuLm1lc3NhZ2UtaGVhZGVyIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7IC8qIEluZGljYXRlcyB0aGUgaGVhZGVyIGlzIGNsaWNrYWJsZSAqL1xyXG4gIHVzZXItc2VsZWN0OiBub25lOyAvKiBQcmV2ZW50cyB0ZXh0IHNlbGVjdGlvbiBvbiBjbGljayAqL1xyXG59XHJcblxyXG4ubWVzc2FnZS1oZWFkZXI6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IC8qIExpZ2h0IGJhY2tncm91bmQgb24gaG92ZXIgdG8gaW5kaWNhdGUgaW50ZXJhY3RpdmVuZXNzICovXHJcbn1cclxuXHJcbi5tZXNzYWdlIHtcclxuICBtYXJnaW46IDVweDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IC8qIExpZ2h0IGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBtZXNzYWdlICovXHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgLyogQWRkcyBhIGxpZ2h0IGdyZXkgYm9yZGVyICovXHJcbiAgYm9yZGVyLXJhZGl1czogMTVweDsgLyogQWRkcyByb3VuZGVkIGNvcm5lcnMgKi9cclxuICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLDAsMCwwLjEpOyAvKiBPcHRpb25hbDogYWRkcyBhIHN1YnRsZSBzaGFkb3cgZm9yIGRlcHRoICovXHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgLyogU21vb3RoIHRyYW5zaXRpb24gZm9yIGV4cGFuZGluZyBkZXRhaWxzICovXHJcbn1cclxuXHJcblxyXG4uZXhwYW5kZWQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWY7IC8qIFNsaWdodGx5IGRpZmZlcmVudCBiYWNrZ3JvdW5kIGZvciBleHBhbmRlZCBtZXNzYWdlcyAqL1xyXG59XHJcblxyXG4uaW5jb21pbmcsIC5vdXRnb2luZyB7XHJcbiAgcGFkZGluZzogOHB4O1xyXG4gIG1hcmdpbi10b3A6IDJweDtcclxuICBib3JkZXItcmFkaXVzOiAxMnB4OyAvKiBTbGlnaHRseSBsZXNzIHRoYW4gdGhlIGNvbnRhaW5lciB0byBmaXQgbmljZWx5IHdpdGhpbiAqL1xyXG59XHJcblxyXG4uaW5jb21pbmcge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMWYwYzQ7IC8qIExpZ2h0IGdyZWVuIGZvciBpbmNvbWluZyBtZXNzYWdlcyAqL1xyXG4gIGFsaWduLXNlbGY6IHN0YXJ0O1xyXG59XHJcblxyXG4ub3V0Z29pbmcge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2Y4YzY7IC8qIExpZ2h0IGdyZWVuLCBkaWZmZXJlbnQgc2hhZGUgZm9yIG91dGdvaW5nIG1lc3NhZ2VzICovXHJcbiAgYWxpZ24tc2VsZjogZW5kO1xyXG59XHJcblxyXG4udGltZXN0YW1wIHtcclxuICBkaXNwbGF5OiBibG9jazsgLyogRW5zdXJlcyB0aGUgdGltZXN0YW1wIGFwcGVhcnMgb24gYSBuZXcgbGluZSAqL1xyXG4gIGZvbnQtc2l6ZTogMC44ZW07XHJcbiAgY29sb3I6ICM2NjY7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IC8qIEFsaWducyB0aW1lc3RhbXAgdG8gdGhlIHJpZ2h0IG9mIHRoZSBtZXNzYWdlICovXHJcbn1cclxuXHJcbi5pbnB1dC1hcmVhIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7IC8qIEFkZHMgYSBzZXBhcmF0b3IgbGluZSBhYm92ZSB0aGUgaW5wdXQgYXJlYSAqL1xyXG59XHJcblxyXG4uaW5wdXQtYXJlYSBpbnB1dCB7XHJcbiAgZmxleC1ncm93OiAxO1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcclxufVxyXG5cclxuLmlucHV0LWFyZWEgYnV0dG9uIHtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTY4ODtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbi5tZXNzYWdlLWhlYWRlciB7XHJcbiAgZm9udC1zaXplOiAwLjllbTtcclxuICBjb2xvcjogIzMzMzsgLyogRGFya2VyIHRleHQgZm9yIGJldHRlciByZWFkYWJpbGl0eSAqL1xyXG4gIG1hcmdpbi1ib3R0b206IDRweDsgLyogU3BhY2UgYmV0d2VlbiBoZWFkZXIgYW5kIG1lc3NhZ2UgY29udGVudCAqL1xyXG59XHJcblxyXG4ubWVzc2FnZS1oZWFkZXIgc3Ryb25nIHtcclxuICBjb2xvcjogIzAwN2JmZjsgLyogQm9vdHN0cmFw4oCZcyB0aGVtZSBjb2xvciBmb3IgbGlua3MgYXMgYW4gZXhhbXBsZSAqL1xyXG59XHJcblxyXG4ubWVzc2FnZS1oZWFkZXIgc3BhbiB7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIGNvbG9yOiAjNTU1OyAvKiBTbGlnaHRseSBsaWdodGVyIGNvbG9yIGZvciB0ZWxlcGhvbmUgbnVtYmVyICovXHJcbn1cclxuLnRocmVhZC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgaGVpZ2h0OiA3NXZoOyAvKiBFbnN1cmVzIHRoZSBjb250YWluZXIgZml0cyBleGFjdGx5IGluIHRoZSB2aWV3cG9ydCAqL1xyXG59XHJcblxyXG4ubGlzdC1wYW5lbCB7XHJcbiAgd2lkdGg6IDMwJTtcclxuICBtYXgtaGVpZ2h0OiA3NXZoOyAvKiBFbnN1cmVzIHRoZSBsaXN0IGRvZXNuJ3QgZXh0ZW5kIGJleW9uZCB0aGUgdmlld3BvcnQgaGVpZ2h0ICovXHJcbiAgb3ZlcmZsb3cteTogYXV0bzsgLyogTWFrZXMgaXQgc2Nyb2xsYWJsZSAqL1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XHJcbn1cclxuXHJcbi5kZXRhaWwtcGFuZWwge1xyXG4gIHdpZHRoOiA3MCU7XHJcbiAgbWF4LWhlaWdodDogNzV2aDsgLyogQ29uc2lzdGVudCBoZWlnaHQgbWFuYWdlbWVudCBmb3IgZGV0YWlsIHBhbmVsICovXHJcbiAgb3ZlcmZsb3cteTogYXV0bzsgLyogQWxsb3dzIHNjcm9sbGluZyB3aXRoaW4gdGhlIGRldGFpbCBwYW5lbCAqL1xyXG59XHJcblxyXG4ubGlzdC1wYW5lbCwgLmRldGFpbC1wYW5lbCB7XHJcbiAgbWF4LWhlaWdodDogY2FsYyg3NXZoIC0gMTBweCk7IC8qIEFkanVzdCA1MHB4IHRvIHlvdXIgaGVhZGVyL2Zvb3RlciBoZWlnaHQgKi9cclxufVxyXG5cclxuLm1lc3NhZ2UtcHJldmlldyB7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBtYXJnaW46IDVweCAxMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IC8qIExpZ2h0IGJhY2tncm91bmQgY29sb3IgZm9yIGJldHRlciByZWFkYWJpbGl0eSAqL1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IC8qIFN1YnRsZSBib3JkZXIgZm9yIGRlZmluaXRpb24gKi9cclxuICBib3JkZXItcmFkaXVzOiAxNXB4OyAvKiBSb3VuZGVkIGNvcm5lcnMgZm9yIGEgc29mdGVyLCBtb3JlIG1vZGVybiBsb29rICovXHJcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwwLDAsMC4wNSk7IC8qIExpZ2h0IHNoYWRvdyBmb3IgZGVwdGggKi9cclxuICBjdXJzb3I6IHBvaW50ZXI7IC8qIEluZGljYXRlcyB0aGUgZWxlbWVudCBpcyBjbGlja2FibGUgKi9cclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGJveC1zaGFkb3cgMC4zczsgLyogU21vb3RoIHRyYW5zaXRpb24gZm9yIGhvdmVyIGVmZmVjdHMgKi9cclxufVxyXG5cclxuLm1lc3NhZ2UtcHJldmlldzpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjsgLyogU2xpZ2h0bHkgZGlmZmVyZW50IGJhY2tncm91bmQgb24gaG92ZXIgZm9yIGZlZWRiYWNrICovXHJcbiAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYmEoMCwwLDAsMC4xKTsgLyogU3Ryb25nZXIgc2hhZG93IG9uIGhvdmVyIGZvciBlbXBoYXNpcyAqL1xyXG59XHJcblxyXG4vKiBCYXNpYyBzdHlsaW5nIGZvciB0aGUgY2hhdCBjb250YWluZXIgKi9cclxuLmNoYXQtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLyogU3R5bGluZyBmb3IgdGhlIHJlcGx5IHNlY3Rpb24gKi9cclxuLnJlcGx5LXNlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7IC8qIExpZ2h0IGdyYXkgYmFja2dyb3VuZCAqL1xyXG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZGRkOyAvKiBBZGRzIGEgc3VidGxlIGJvcmRlciB0b3AgZm9yIHNlcGFyYXRpb24gKi9cclxuICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBBbGlnbnMgdGhlIHRleHRhcmVhIGFuZCBidXR0b24gdmVydGljYWxseSAqL1xyXG59XHJcblxyXG4ucmVwbHktc2VjdGlvbiB0ZXh0YXJlYSB7XHJcbiAgZmxleDogMTsgLyogQWxsb3dzIHRoZSB0ZXh0YXJlYSB0byBmaWxsIHRoZSBzcGFjZSAqL1xyXG4gIGhlaWdodDogNTBweDsgLyogRml4ZWQgaGVpZ2h0IGZvciB0aGUgdGV4dGFyZWEgKi9cclxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7IC8qIFNwYWNpbmcgYmV0d2VlbiB0aGUgdGV4dGFyZWEgYW5kIHRoZSBidXR0b24gKi9cclxuICBwYWRkaW5nOiA4cHg7IC8qIFBhZGRpbmcgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IC8qIFN1YnRsZSBib3JkZXIgZm9yIHRoZSB0ZXh0YXJlYSAqL1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDsgLyogUm91bmRlZCBjb3JuZXJzIGZvciB0aGUgdGV4dGFyZWEgKi9cclxuICByZXNpemU6IG5vbmU7IC8qIFByZXZlbnRzIHJlc2l6aW5nIHRoZSB0ZXh0YXJlYSAqL1xyXG59XHJcblxyXG4ucmVwbHktc2VjdGlvbiBidXR0b24ge1xyXG4gIHBhZGRpbmc6IDEwcHggMjBweDsgLyogUGFkZGluZyBpbnNpZGUgdGhlIGJ1dHRvbiAqL1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7IC8qIEJvb3RzdHJhcCBwcmltYXJ5IGNvbG9yIGZvciBleGFtcGxlICovXHJcbiAgY29sb3I6IHdoaXRlOyAvKiBUZXh0IGNvbG9yIGZvciB0aGUgYnV0dG9uICovXHJcbiAgYm9yZGVyOiBub25lOyAvKiBObyBib3JkZXIgZm9yIGEgbW9kZXJuIGxvb2sgKi9cclxuICBib3JkZXItcmFkaXVzOiA0cHg7IC8qIFJvdW5kZWQgY29ybmVycyBmb3IgdGhlIGJ1dHRvbiAqL1xyXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogUG9pbnRlciBjdXJzb3Igb24gaG92ZXIgKi9cclxuICBvdXRsaW5lOiBub25lOyAvKiBSZW1vdmVzIHRoZSBvdXRsaW5lIHRvIGtlZXAgZm9jdXMgc3R5bGUgY2xlYW4gKi9cclxufVxyXG5cclxuLnJlcGx5LXNlY3Rpb24gYnV0dG9uOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1NmIzOyAvKiBEYXJrZXIgc2hhZGUgb24gaG92ZXIgKi9cclxufVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC50aHJlYWQtY29udGFpbmVyIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG5cclxuICAubGlzdC1wYW5lbCwgLmRldGFpbC1wYW5lbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC1oZWlnaHQ6IDUwdmg7IC8qIEFkanVzdCBlYWNoIHRvIHRha2UgaGFsZiBvZiB0aGUgdmlld3BvcnQgKi9cclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0= */\"","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { User } from '../../../models/user.model';\r\nimport { Inbox, InboxMessageDetails, Message, Outbox } from '../../../models/wapp-inbox.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { ngxCsv } from 'ngx-csv/ngx-csv';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { localStorageActions } from '../../../models/enums';\r\n\r\n@Component({\r\n selector: 'whatsapp-sales-inbox',\r\n templateUrl: './whatsapp-sales-inbox.component.html',\r\n styleUrls: ['./whatsapp-sales-inbox.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class WhatsappSalesInboxComponent {\r\n\r\n @Input()\r\n isSpecificUser: boolean;\r\n\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n columns: any[] = [];\r\n\r\n inboxCache: Inbox[] = [];\r\n inbox: Inbox[] = [];\r\n inboxDetail: Inbox\r\n\r\n\r\n outboxColumns: any[] = [];\r\n outboxDetail: Outbox;\r\n outbox: Outbox[] = [];\r\n outboxCache: Outbox[] = [];\r\n\r\n @ViewChild('whatsappModal')\r\n whatsappModal: ModalDirective;\r\n\r\n\r\n @ViewChild('quotesModal')\r\n quotesModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('quoteTemplate')\r\n quoteTemplate: TemplateRef;\r\n\r\n @ViewChild('resendTemplate')\r\n resendTemplate: TemplateRef;\r\n\r\n searchTerm: string = \"\";\r\n selectedQuote: string;\r\n user: User;\r\n selectedInvoice: any;\r\n\r\n messages: InboxMessageDetails[] = []; // Would typically be fetched from a service\r\n messagesCache: InboxMessageDetails[] = [];\r\n newMessage: string = '';\r\n selectedSenderMessages: InboxMessageDetails[] = [];\r\n groupedMessages: { [key: string]: InboxMessageDetails[] } = {};\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(5, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n show: boolean;\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n invoiceNumber: string;\r\n selectedSalesOrder: any;\r\n\r\n replyContent: string = '';\r\n selectedMessageId: string; // You need to set this when a message is selected\r\n selectedSenderNumber: any;\r\n\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private fowkesService: FowkesOnlineService,\r\n private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService, private reportService: ReportService, private configurations: ConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadGrids();\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.loadGrids();\r\n }\r\n\r\n\r\n private loadGrids() {\r\n this.columns = [\r\n { prop: 'timestamp', name: 'Received On', width: 120, cellTemplate: this.dateTemplate },\r\n { prop: 'profileName', name: 'Name', width: 100 },\r\n { prop: 'content', name: 'content', width: 200 },\r\n { name: 'Reply', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'senderNumber', name: 'Received From', width: 100 }\r\n ];\r\n\r\n\r\n this.outboxColumns = [\r\n { prop: 'sentAt', name: 'Sent On', width: 150, cellTemplate: this.dateTemplate },\r\n { prop: 'content', name: 'Content', width: 150 },\r\n { prop: 'bodyParameters', name: 'Reference', width: 200, cellTemplate: this.quoteTemplate },\r\n { prop: 'status', name: 'Status', width: 250 },\r\n { prop: 'toPhoneNumber', name: 'Sent To', width: 100 },\r\n { prop: 'nextGenUser', name: 'Sent By', width: 200 }\r\n ];\r\n }\r\n\r\n loadData() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sysproService.GetInboxMessagesAsync().subscribe(x => this.OnInboxLoaded(x), error => this.onDataLoadFailed(error));\r\n\r\n if (this.isSpecificUser) {\r\n //Get Outbox Messages for logged in user\r\n this.user = this.accountService.currentUser;\r\n this.sysproService.GetUserTel(this.user.userName).subscribe(x => this.onTelReceived(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n else {\r\n\r\n //this.selected = {\r\n // startDate: moment().subtract(1, 'days'),\r\n // endDate: moment().subtract(0, 'days').endOf('day')\r\n //}\r\n //this.sysproService.GetAllOutboxMessages().subscribe(x => this.OnOutboxLoaded(x), error => this.onDataLoadFailed(error));\r\n // this.sysproService.GetAllInboxMessages().subscribe(x => this.OnInboxLoaded(x), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n }\r\n\r\n sendReply(messageId: string): void {\r\n const replyRequest = {\r\n replyToMessageId: messageId,\r\n content: this.replyContent,\r\n to: this.selectedSenderNumber // You need to have this from message selection\r\n };\r\n\r\n //this.messageService.replyToMessage(replyRequest).subscribe({\r\n // next: (response) => {\r\n // console.log('Reply sent successfully');\r\n // this.replyContent = ''; // Clear the input field\r\n // },\r\n // error: (error) => {\r\n // console.error('Failed to send reply', error);\r\n // }\r\n //});\r\n }\r\n\r\n toggleMessage(message: Message): void {\r\n message.isExpanded = !message.isExpanded; // Toggle the expanded state\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onTelReceived(x: string): void {\r\n console.log(x);\r\n this.user.phoneNumber = x;\r\n }\r\n\r\n refresh() {\r\n this.loadData();\r\n }\r\n\r\n OnOutboxLoaded(x: Outbox[]): void {\r\n if (x[0]) {\r\n this.outboxCache = [...x];\r\n this.outbox = this.outboxCache;\r\n\r\n if (this.isSpecificUser) {\r\n this.outboxCache = this.outboxCache.filter(u => u.nextGenUser == this.user.userName);\r\n this.outbox = this.outboxCache;\r\n }\r\n\r\n //Filter out by company\r\n if (this.application == \"MaxArcusOnline\") {\r\n this.outboxCache = this.outboxCache.filter(u => u.nextGenUser.includes('maxarcus.co.za'));\r\n this.outbox = this.outboxCache;\r\n }\r\n else {\r\n this.outboxCache = this.outboxCache.filter(u => !u.nextGenUser.includes('maxarcus.co.za'));\r\n this.outbox = this.outboxCache;\r\n }\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n this.dateFilterChanged();\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n // Update to handle an array of Inbox items\r\n private mapInboxToMessages(inboxes: Inbox[]): Message[] {\r\n return inboxes.map(inbox => ({\r\n id: inbox.id,\r\n senderName: inbox.profileName, // Assuming the profileName is what you use as senderName\r\n senderNumber: inbox.senderNumber,\r\n content: inbox.content,\r\n timestamp: new Date(inbox.timestamp), // Convert string or number to Date object\r\n isIncoming: this.determineIncoming(inbox), // Implement this based on your logic\r\n isExpanded: false\r\n }));\r\n }\r\n\r\n OnInboxLoaded(messages: InboxMessageDetails[]): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (messages && messages.length > 0) {\r\n\r\n const grouped = messages.reduce((acc, message) => {\r\n acc[message.senderNumber] = acc[message.senderNumber] || [];\r\n acc[message.senderNumber].push(message);\r\n return acc;\r\n }, {} as { [key: string]: InboxMessageDetails[] });\r\n\r\n this.messages = Object.values(grouped).map(group => {\r\n return group.reduce((prev, current) => {\r\n return (new Date(prev.timestamp) > new Date(current.timestamp)) ? prev : current;\r\n });\r\n }).sort((a, b) => +new Date(b.timestamp) - +new Date(a.timestamp)); // Sort messages by most recent\r\n\r\n //this.messages = messages.sort((a, b) => +new Date(b.timestamp) - +new Date(a.timestamp));\r\n this.messagesCache = messages;\r\n\r\n if (this.searchTerm.trim() !== \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n } else {\r\n this.emptyDetails = true;\r\n this.messages = []; // Ensure messages is an empty array if no data is available\r\n }\r\n }\r\n\r\n private determineIncoming(inbox: Inbox): boolean {\r\n // Implement logic to determine if a message is incoming\r\n // This could be based on comparing senderNumber and receiverNumber\r\n return true; // Placeholder\r\n }\r\n\r\n openThread(senderNumber: string) {\r\n this.selectedSenderMessages = this.messagesCache.filter(msg => msg.senderNumber === senderNumber);\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n\r\n dateFilterChanged() {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.outbox = this.outboxCache;\r\n\r\n if (this.outboxCache && this.outboxCache.length >= 1) {\r\n \r\n this.outbox = this.outboxCache.filter(m => new Date(m.createdAt) >= new Date(startD) && new Date(m.createdAt) <= new Date(endD));\r\n }\r\n\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n\r\n this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.dateFilterChanged();\r\n this.show = false;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.searchTerm = value.trim();\r\n if (this.searchTerm) {\r\n this.messages = this.messagesCache.filter(r => Utilities.searchArray(this.searchTerm, false, r.content, r.profileName, r.senderNumber));\r\n } else {\r\n this.messages = [...this.messagesCache];\r\n }\r\n }\r\n\r\n\r\n replyFreeText(row: Inbox) {\r\n\r\n this.inboxDetail = row;\r\n this.outboxDetail = new Outbox();\r\n\r\n this.outboxDetail.toPhoneNumber = this.inboxDetail.senderNumber;\r\n this.outboxDetail.content = \"Hi \" + this.inboxDetail.profileName;\r\n this.outboxDetail.nextGenUser = this.accountService.currentUser.userName;\r\n //Needs to be a single line\r\n if (!this.whatsappModal) {\r\n setTimeout(() => {\r\n if (this.whatsappModal) {\r\n this.whatsappModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.whatsappModal.show();\r\n }\r\n\r\n }\r\n\r\n resendMessage(row: Outbox) {\r\n\r\n this.outboxDetail = new Outbox();\r\n this.outboxDetail = row;\r\n\r\n if (row.toPhoneNumber) {\r\n this.sysproService.resendWhatsapp(this.outboxDetail, this.outboxDetail.nextGenUser).subscribe(x => this.onMessageSentSuccesful(), error => this.onPostDataLoadFailed(error));\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n wappModalHide() {\r\n this.inboxDetail = new Inbox();\r\n this.outboxDetail = new Outbox();\r\n this.whatsappModal.hide();\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n sendMessage() {\r\n //Validate save\r\n if (this.outboxDetail) {\r\n if (this.outboxDetail.content) {\r\n\r\n if (this.outboxDetail.toPhoneNumber) {\r\n this.sysproService.SendReplyMessage(this.outboxDetail.toPhoneNumber, this.outboxDetail.content.replace(/(\\r\\n|\\n|\\r)/gm, \" \"), this.outboxDetail.nextGenUser).subscribe(x => this.onMessageSentSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n\r\n this.alertService.showMessage('Warning', `Make sure to enter a phone number`, MessageSeverity.warn);\r\n\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a message`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n onMessageSentSuccesful(): void {\r\n this.whatsappModal.hide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Message sent successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n previewQuote(row: Outbox) {\r\n this.selectedQuote = row.bodyParameters;\r\n\r\n this.reportService.getFileStream(this.selectedQuote).subscribe(x => this.onFileSuccessful(x, row.bodyParameters), error => this.onDataLoadFailed(error));\r\n\r\n //if (sessionStorage.getItem(localStorageActions.QuoteNumber) != this.selectedQuote ) {\r\n // sessionStorage.setItem(localStorageActions.QuoteNumber, this.selectedQuote );\r\n //}\r\n\r\n //if (!!this.selectedQuote) {\r\n // if (!this.quotesModal) {\r\n // setTimeout(() => {\r\n // if (this.quotesModal) {\r\n // this.quotesModal.show();\r\n // }\r\n // });\r\n // }\r\n // else {\r\n // this.quotesModal.show();\r\n // }\r\n //}\r\n }\r\n\r\n quotesModalHide() {\r\n this.selectedQuote = null;\r\n this.quotesModal.hide();\r\n }\r\n\r\n gotToQuote() {\r\n this.router.navigate(['../../quotes'], { fragment: 'quote' });\r\n }\r\n\r\n\r\n previewPOD(row: Outbox) {\r\n this.sysproService.getFileStream(row.bodyParameters, 0).subscribe(x => this.onFileSuccessful(x, row.bodyParameters), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, fileName: string): void {\r\n var test = x;\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n //}\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n console.log(test);\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"SentOn\", \"content\", \"attachment\", \"status\", \"SentTo\", \"nextGenUser\"]\r\n };\r\n\r\n var filename = \"Whatsapps\";\r\n var selectRows = [...this.outbox];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n\r\n exportRows.push({\r\n SentOn: (moment(row.sentAt)).format('DD-MMM-YYYY HH:mm'), content: row.content, attachment: row.bodyParameters,\r\n status: row.status, SentTo: row.toPhoneNumber, nextGenUser: row.nextGenUser\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n // this.alertService.showMessage(text, `Copied to Clipboard`, MessageSeverity.info);\r\n //copyTextToClipboard(text: string) {\r\n // // Assert that navigator.clipboard exists\r\n // const clipboard = (navigator as any).clipboard as Clipboard;\r\n // if (clipboard && typeof clipboard.writeText === 'function') {\r\n // clipboard.writeText(text).then(\r\n // () => {\r\n // console.log('Copying to clipboard was successful!');\r\n // this.alertService.showMessage(text, `Copied to Clipboard`, MessageSeverity.info);\r\n // },\r\n // (err) => {\r\n // console.error('Could not copy text: ', err);\r\n // }\r\n // );\r\n // } else {\r\n // console.error('Clipboard API is not available.');\r\n // // You might want to fallback to a different method if Clipboard API is not available\r\n // }\r\n //}\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".separator-hr {\\n margin-top: 0;\\n margin-bottom: 10px; }\\n\\n[hidden] {\\n display: none; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHNldHRpbmdzXFxzZXR0aW5ncy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGFBQWE7RUFDYixtQkFBbUIsRUFBQTs7QUNFdkI7RURFSSxhQUFhLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NldHRpbmdzL3NldHRpbmdzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuW2hpZGRlbl0ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG4iLCIuc2VwYXJhdG9yLWhyIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiJdfQ== */\"","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { Router, NavigationExtras, ActivatedRoute } from '@angular/router';\r\n\r\n\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from '../../directives/bootstrap-tab.directive';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class SettingsComponent implements OnInit, OnDestroy {\r\n\r\n isProfileActivated = false;\r\n isPreferencesActivated = true;\r\n isUsersActivated = false;\r\n isRolesActivated = false;\r\n isConfigActivated = false;\r\n isServiceSettingsActivated = false;\r\n isBranchSettingsActivated = false;\r\n isPrinterSettingsActivated = false;\r\n isInfoSettingsActivated = false;\r\n isInfoDocsActivated = false;\r\n isInboxActivated = false;\r\n isSalesInboxActivated = false;\r\n isITSSettingsActivated = false;\r\n isITSUserSettingsActivated = false;\r\n\r\n isCollapsed = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly profileTab = 'profile';\r\n readonly preferencesTab = 'preferences';\r\n readonly usersTab = 'users';\r\n readonly rolesTab = 'roles';\r\n readonly configTab = 'configuration';\r\n readonly branchsettingsTab = 'branchsettings';\r\n readonly printersettingsTab = 'printersettings';\r\n readonly servicesettingsTab = 'servicesettings';\r\n readonly infosettingsTab = 'infosettings';\r\n readonly infodocsTab = 'infodocs';\r\n readonly inboxTab = 'inbox';\r\n readonly salesinboxTab = 'salesinbox';\r\n readonly itssettingsTab = 'itssettings';\r\n readonly itsuserTab = 'itsusersettings';\r\n\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private configurations: ConfigurationService, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n showContent(anchor: string) {\r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n }\r\n\r\n if ((this.isFragmentEquals(anchor, this.usersTab) && !this.canViewUsers) ||\r\n (this.isFragmentEquals(anchor, this.rolesTab) && !this.canViewRoles)) {\r\n return;\r\n }\r\n\r\n this.tab.show(`#${anchor || this.preferencesTab}Tab`);\r\n }\r\n\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isProfileActivated = activeTab == this.profileTab;\r\n this.isPreferencesActivated = activeTab == this.preferencesTab;\r\n this.isUsersActivated = activeTab == this.usersTab;\r\n this.isRolesActivated = activeTab == this.rolesTab;\r\n this.isConfigActivated = activeTab == this.configTab;\r\n this.isBranchSettingsActivated = activeTab == this.branchsettingsTab;\r\n this.isPrinterSettingsActivated = activeTab == this.printersettingsTab;\r\n this.isServiceSettingsActivated = activeTab == this.servicesettingsTab;\r\n this.isInfoSettingsActivated = activeTab == this.infosettingsTab;\r\n this.isInfoDocsActivated = activeTab == this.infodocsTab;\r\n this.isInboxActivated = activeTab == this.inboxTab;\r\n this.isSalesInboxActivated = activeTab == this.salesinboxTab;\r\n this.isITSSettingsActivated = activeTab == this.itssettingsTab;\r\n this.isITSUserSettingsActivated = activeTab == this.itsuserTab;\r\n\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n get canManageUsers() {\r\n return this.accountService.userHasPermission(Permission.manageUsersPermission);\r\n }\r\n\r\n\r\n get canViewUsers() {\r\n return this.accountService.userHasPermission(Permission.viewUsersPermission);\r\n }\r\n\r\n get canViewRoles() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n\r\n get canViewConfiguration() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\"","module.exports = \".address {\\n margin-bottom: 16px; }\\n .address .form-group {\\n margin-bottom: 16px; }\\n .address .city-state {\\n display: flex; }\\n .address .city-state .city {\\n flex: 1;\\n margin-right: 16px; }\\n .address .city-state .state {\\n flex: 0 0 auto;\\n margin-right: 16px; }\\n .address .city-state .zip {\\n flex: 0 0 100px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90ZW1wbGF0ZXMvQzpcXFNWTlxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcRm93a2VzQ29yZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFx0ZW1wbGF0ZXNcXGFkZHJlc3MuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxtQkFBd0IsRUFBQTtFQUQxQjtJQUlJLG1CQUF3QixFQUFBO0VBSjVCO0lBUUksYUFBYSxFQUFBO0VBUmpCO01BV00sT0FBTztNQUNQLGtCQUF1QixFQUFBO0VBWjdCO01BZ0JNLGNBQWM7TUFDZCxrQkFBdUIsRUFBQTtFQWpCN0I7TUFxQk0sZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy90ZW1wbGF0ZXMvYWRkcmVzcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiRiYXNlOiA4cHg7XHJcblxyXG4uYWRkcmVzcyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogJGJhc2UgKiAyO1xyXG5cclxuICAuZm9ybS1ncm91cCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZSAqIDI7XHJcbiAgfVxyXG5cclxuICAuY2l0eS1zdGF0ZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgIC5jaXR5IHtcclxuICAgICAgZmxleDogMTtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAkYmFzZSAqIDI7XHJcbiAgICB9XHJcblxyXG4gICAgLnN0YXRlIHtcclxuICAgICAgZmxleDogMCAwIGF1dG87XHJcbiAgICAgIG1hcmdpbi1yaWdodDogJGJhc2UgKiAyO1xyXG4gICAgfVxyXG5cclxuICAgIC56aXAge1xyXG4gICAgICBmbGV4OiAwIDAgMTAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import { Component, ViewChild, ElementRef, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'address.component',\r\n templateUrl: './address.component.html',\r\n styleUrls: ['./address.component.scss']\r\n})\r\nexport class AddressComponent {\r\n\r\n @Input()\r\n placeholder = 'Search...';\r\n\r\n @Output()\r\n searchChange = new EventEmitter();\r\n\r\n @ViewChild('searchInput')\r\n searchInput: ElementRef;\r\n\r\n\r\n onValueChange(value: string) {\r\n setTimeout(() => this.searchChange.emit(value));\r\n }\r\n\r\n\r\n clear() {\r\n this.searchInput.nativeElement.value = '';\r\n this.onValueChange(this.searchInput.nativeElement.value);\r\n }\r\n}\r\n\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

{{ result.message }}

\\r\\n

File saved at: {{ result.fileName }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Registration PlateVehicle DescriptionPrintDelete
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Print \\r\\n \\r\\n Delete \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

New Vehicle

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90cmFja2luZy9maW5nZXJ0cHJpbnQtY29tcG9uZW50cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHRyYWNraW5nXFxmaW5nZXJ0cHJpbnQtY29tcG9uZW50c1xcdHJhY2tpbmctZmluZ2VycHJpbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdHJhY2tpbmcvZmluZ2VydHByaW50LWNvbXBvbmVudHMvdHJhY2tpbmctZmluZ2VycHJpbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLnRib2R5IHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxufVxyXG4iXX0= */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { Brand } from '../../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CMStockCode } from '../../../models/cms-stockcode.model';\r\nimport { ITSVehicles } from '../../../models/invoice-tracking-vehicles.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\n\r\n@Component({\r\n selector: 'tracking-fingerprint',\r\n templateUrl: './tracking-fingerprint.component.html',\r\n styleUrls: ['./tracking-fingerprint.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class TrackingFingerPrintComponent {\r\n\r\n @ViewChild('vehicleModal')\r\n vehicleModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n rows: ITSVehicles[] = [];\r\n rowsCache: ITSVehicles[];\r\n\r\n vehicleDetail: ITSVehicles = new ITSVehicles();\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n cardType: string;\r\n src: string;\r\n result: any;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService, private fowkesService: FowkesOnlineService, private configurations: ConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n captureFingerprint(): void {\r\n const fingerprintData = this.getFingerprintData();\r\n\r\n this.fowkesService.verify(fingerprintData).subscribe(response => {\r\n if (response) {\r\n // Handle successful verification\r\n } else {\r\n // Handle failed verification\r\n }\r\n });\r\n }\r\n\r\n getFingerprintData(): any {\r\n // Implement logic to get fingerprint data from the scanner\r\n return {};\r\n }\r\n\r\n scanFingerprint() {\r\n this.fowkesService.scanFingerprint().subscribe(\r\n (data) => {\r\n this.result = data;\r\n },\r\n (error) => {\r\n this.result = { message: 'An error occurred' };\r\n }\r\n );\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.fowkesService.getAllVehicles().subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDataLoadSuccessful(vehicles: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (vehicles[0]) {\r\n\r\n this.rowsCache = [...vehicles[0]];\r\n this.rows = [...this.rowsCache];\r\n\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.vehicleName, r.vehicleDescription, r.vehicleNumber));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n //onValidationSuccesful(x: CMStockCode[], row: Brand): void {\r\n // console.log(x);\r\n // if (x && x.length >= 1) {\r\n // this.alertService.showMessage('Warning', `You cannot delete a brand with stock codes associated. There are ` + x.length + ' items linked to this brand ', MessageSeverity.warn);\r\n // }\r\n // else {\r\n // this.isSaving = true;\r\n // this.alertService.startLoadingMessage('Saving changes...');\r\n // this.sysproService.deleteBrand(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n // }\r\n //}\r\n\r\n enableEditMethod(row: ITSVehicles, i) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n console.log(i, row);\r\n }\r\n\r\n saveSegment(row: ITSVehicles) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n row.createdBy = this.accountService.currentUser.email;\r\n this.fowkesService.updateVehicle(row.id, row).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n vehicleModalHide() {\r\n this.vehicleDetail = new ITSVehicles();\r\n this.vehicleModal.hide();\r\n }\r\n\r\n newVehicle() {\r\n\r\n if (!this.vehicleModal) {\r\n setTimeout(() => {\r\n if (this.vehicleModal) {\r\n this.vehicleModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.vehicleModal.show();\r\n }\r\n\r\n }\r\n\r\n saveVehicle() {\r\n\r\n //Validate save\r\n if (this.vehicleDetail) {\r\n if (this.vehicleDetail.vehicleNumber) {\r\n if (this.rowsCache.filter(x => x.vehicleNumber == this.vehicleDetail.vehicleNumber).length >= 1) {\r\n this.alertService.showMessage('Warning', `This Vehicle already exists`, MessageSeverity.warn);\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.vehicleDetail.createdBy = this.accountService.currentUser.email;\r\n this.vehicleDetail.vehicleName = this.vehicleDetail.vehicleDescription;\r\n this.fowkesService.addNewVehicle(this.vehicleDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n //else {\r\n // if (this.newformData.has('file')) {\r\n // this.sysproService.postFileData(this.newformData, \"BRAND\", this.brandDetail.brandName.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.newFilePostedSuccess(x), error => this.onPostDataLoadFailed(error));\r\n // }\r\n // else {\r\n // this.alertService.showMessage('Warning', `Remeber to add a file first`, MessageSeverity.warn);\r\n // }\r\n //}\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a driver name`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n onSaveSuccesful(): void {\r\n\r\n this.vehicleModalHide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n deleteRow(row: ITSVehicles) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.vehicleName + ' - ' + row.vehicleNumber + '\\\"?', DialogType.confirm, () => this.deleteRowHelper(row));\r\n }\r\n\r\n deleteRowHelper(row: ITSVehicles) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.deleteVehicle(row.id).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.vehicleNumber + ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n printCard(row: ITSVehicles) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.cardType = \"VehicleCard\";\r\n this.fowkesService.getPrintCardPDF(this.cardType, row.vehicleNumber, this.application).subscribe(x => this.onFileSuccessful(x, false, row.vehicleNumber), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onFileSuccessful(x: Blob, preview: boolean, id: string): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.cardType + \"_\" + id + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n //onPostDataSuccessful(arg0: any[]) {\r\n // throw new Error(\"Method not implemented.\");\r\n //}\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ProvinceCitySuburbStreet CodePO Box CodeDelete
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Delete \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

New Area

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90cmFja2luZy90cmFja2luZy1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcdHJhY2tpbmdcXHRyYWNraW5nLWNvbXBvbmVudHNcXHRyYWNraW5nLWFyZWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3RyYWNraW5nL3RyYWNraW5nLWNvbXBvbmVudHMvdHJhY2tpbmctYXJlYXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLnRib2R5IHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxufVxyXG4iXX0= */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { Brand } from '../../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ITSDriver } from '../../../models/invoice-tracking-driver.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { TrackingAreas } from '../../../models/invoice-tracking-areas.model';\r\n\r\n@Component({\r\n selector: 'tracking-areas',\r\n templateUrl: './tracking-areas.component.html',\r\n styleUrls: ['./tracking-areas.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class TrackingAreasComponent {\r\n\r\n @ViewChild('areaModal')\r\n areaModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n rows: TrackingAreas[] = [];\r\n rowsCache: TrackingAreas[];\r\n areaDetail: TrackingAreas = new TrackingAreas();\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService, private fowkesService: FowkesOnlineService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.fowkesService.getAllTrackingAreas().subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDataLoadSuccessful(areas: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (areas[0]) {\r\n\r\n this.rowsCache = [...areas[0]]; \r\n this.rows = [...this.rowsCache];\r\n\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.area, r.city, r.poBoxCode, r.streetCode, r.suburb, r.province));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n\r\n enableEditMethod(row: ITSDriver, i) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n console.log(i, row);\r\n }\r\n\r\n saveSegment(row: ITSDriver) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n row.createdBy = this.accountService.currentUser.email;\r\n this.fowkesService.updateDriver(row.id, row).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n areaModalHide() {\r\n this.areaDetail = new TrackingAreas();\r\n this.areaModal.hide();\r\n }\r\n\r\n newArea() {\r\n\r\n this.areaDetail = new TrackingAreas();\r\n if (!this.areaModal) {\r\n setTimeout(() => {\r\n if (this.areaModal) {\r\n this.areaModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.areaModal.show();\r\n }\r\n\r\n }\r\n\r\n saveArea() {\r\n\r\n //Validate save\r\n if (this.areaDetail) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n this.fowkesService.addNewTrackingArea(this.areaDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n \r\n }\r\n\r\n onSaveSuccesful(): void {\r\n\r\n this.areaModalHide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n deleteRow(row: TrackingAreas) {\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.deleteDriver(row.id).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Cage CodeDescriptionModifyDetailsPrintDelete
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Save\\r\\n \\r\\n \\r\\n Cancel\\r\\n \\r\\n \\r\\n \\r\\n View Details \\r\\n \\r\\n Print \\r\\n \\r\\n Delete \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

New Cage - {{ generatedCageCode }} Update Cage - {{ generatedCageCode }} ( {{driverCageDetail.cageDescription}} )

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Add\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n

Selected Areas:

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ProvinceCitySuburbStreet CodeAction
{{ area.province }}{{ area.city }}{{ area.suburb }}{{ area.streetCode }}\\r\\n Remove \\r\\n
{{ area.province }}{{ area.city }}{{ area.suburb }}{{ area.streetCode }}\\r\\n Remove \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n.datatable {\\n height: 300px;\\n /* Set your desired height here */ }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90cmFja2luZy90cmFja2luZy1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcdHJhY2tpbmdcXHRyYWNraW5nLWNvbXBvbmVudHNcXHRyYWNraW5nLWNhZ2VzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsYUFBYTtFQUFFLGlDQUFBLEVBQWtDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy90cmFja2luZy90cmFja2luZy1jb21wb25lbnRzL3RyYWNraW5nLWNhZ2VzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi50Ym9keSB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbn1cclxuXHJcbi5kYXRhdGFibGUge1xyXG4gIGhlaWdodDogMzAwcHg7IC8qIFNldCB5b3VyIGRlc2lyZWQgaGVpZ2h0IGhlcmUgKi9cclxufVxyXG4iXX0= */\"","import { Component, TemplateRef, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { Brand } from '../../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CMStockCode } from '../../../models/cms-stockcode.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ITSDriverCages, ITSDriverCagesDetail } from '../../../models/invoice-tracking-driver-cages.model';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { TrackingAreas } from '../../../models/invoice-tracking-areas.model';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\n\r\n@Component({\r\n selector: 'tracking-cages',\r\n templateUrl: './tracking-cages.component.html',\r\n styleUrls: ['./tracking-cages.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class TrackingCagesComponent {\r\n\r\n columns: any[] = [];\r\n\r\n @ViewChild('cageModal')\r\n cageModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n rows: ITSDriverCages[] = [];\r\n rowsCache: ITSDriverCages[];\r\n\r\n selectedArea: TrackingAreas = new TrackingAreas();\r\n areas: TrackingAreas[] = [];\r\n\r\n @ViewChild('areasSelect')\r\n private areasSelect;\r\n\r\n @ViewChild('areasSelector')\r\n private areasSelector;\r\n\r\n driverCageDetail: ITSDriverCages = new ITSDriverCages();\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n cardType: string;\r\n src: string;\r\n selectedCageDetails: ITSDriverCagesDetail[];\r\n selectedAreas: TrackingAreas[] = [];\r\n selectedSavedAreas: TrackingAreas[] = [];\r\n areasCache: TrackingAreas[];\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n existingCages: any;\r\n nextCageNumber: number;\r\n generatedCageCode: string;\r\n\r\n isNewCage: boolean;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService, private fowkesService: FowkesOnlineService, private configurations: ConfigurationService) {\r\n }\r\n\r\n SetDataGrid() {\r\n\r\n this.columns = [\r\n { prop: 'province', name: 'Province', width: 150 },\r\n { prop: 'city', name: 'City', width: 150 },\r\n { prop: 'suburb', name: 'Suburb', width: 150 },\r\n { prop: 'streetCode', name: 'Street Code', width: 150 },\r\n {\r\n prop: 'select',\r\n name: 'Select',\r\n width: 80,\r\n sortable: false,\r\n cellTemplate: this.selectTemplate,\r\n cellClass: 'center'\r\n }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.isNewCage = true;\r\n this.SetDataGrid();\r\n this.loadData();\r\n this.loadAreas();\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.SetDataGrid();\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.getAllDriverCages().subscribe(\r\n (cages) => {\r\n this.fowkesService.getAllDriverCagesDetail().subscribe(\r\n (cageDetails) => {\r\n this.fowkesService.getAllTrackingAreas().subscribe(\r\n (areas) => {\r\n this.onDataLoadSuccessful(cages, cageDetails, areas);\r\n },\r\n (error: any) => {\r\n this.onDataLoadFailed(error);\r\n }\r\n );\r\n },\r\n (error: any) => {\r\n this.onDataLoadFailed(error);\r\n }\r\n );\r\n },\r\n (error: any) => {\r\n this.onDataLoadFailed(error);\r\n }\r\n );\r\n }\r\n\r\n loadAreas() {\r\n this.fowkesService.getAllTrackingAreas().subscribe((areas) => {\r\n let details = areas;\r\n details.forEach((line, index, details) => {\r\n (line).index = index + 1;\r\n });\r\n\r\n this.areas = areas;\r\n this.areasCache = [...areas];\r\n });\r\n }\r\n\r\n onAreaSearch(searchTerm: string) {\r\n if (searchTerm.trim() === '') {\r\n this.areas = this.areasCache;\r\n } else {\r\n this.areas = this.areas.filter(area =>\r\n area.province.toLowerCase().includes(searchTerm.toLowerCase()) ||\r\n area.city.toLowerCase().includes(searchTerm.toLowerCase()) ||\r\n area.suburb.toLowerCase().includes(searchTerm.toLowerCase()) ||\r\n area.streetCode.toLowerCase().includes(searchTerm.toLowerCase())\r\n );\r\n }\r\n }\r\n\r\n onAreaSelectChange(row: TrackingAreas) {\r\n if (this.isNewCage) {\r\n if (row) {\r\n const selectedArea = this.areas.find((area) => area.id === row.id);\r\n if (selectedArea) {\r\n this.selectedAreas.push(selectedArea);\r\n this.removeItemFromMainList(row.id);\r\n }\r\n }\r\n }\r\n else {\r\n if (row) {\r\n const selectedArea = this.areas.find((area) => area.id === row.id);\r\n if (selectedArea) {\r\n\r\n //Add to db\r\n var cageDetails = new ITSDriverCagesDetail(); \r\n cageDetails.id = 0;\r\n cageDetails.cageId = this.driverCageDetail.id;\r\n cageDetails.areaDescription = `${selectedArea.province} ${selectedArea.city} ${selectedArea.suburb} ${selectedArea.streetCode}`;\r\n cageDetails.areaId = selectedArea.id;\r\n cageDetails.province = selectedArea.province;\r\n cageDetails.city = selectedArea.city;\r\n cageDetails.suburb = selectedArea.suburb;\r\n cageDetails.streetCode = selectedArea.streetCode;\r\n \r\n this.fowkesService.addNewDriverCageDetail(cageDetails).\r\n subscribe(x => { this.selectedSavedAreas.push(selectedArea); }, error => this.onDataLoadFailed(error));\r\n\r\n this.removeItemFromMainList(row.id);\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeSelectedArea(area: TrackingAreas) {\r\n if (this.isNewCage) {\r\n const selectedArea = this.selectedAreas.find((area) => area.id === area.id);\r\n if (selectedArea) {\r\n this.areas.push(selectedArea);\r\n this.areas = [...this.areas];\r\n this.removeItemFromDetailList(selectedArea.id);\r\n }\r\n }\r\n }\r\n\r\n removeSelectedSavedArea(area: TrackingAreas) {\r\n if (!this.isNewCage) {\r\n const selectedArea = this.selectedAreas.find((area) => area.id === area.id);\r\n if (selectedArea) {\r\n this.areas.push(selectedArea);\r\n this.areas = [...this.areas];\r\n //Remove straight from db\r\n var savedArea = this.driverCageDetail.cageDetails.find(x => x.areaId === selectedArea.id)\r\n this.fowkesService.deleteDriverCageDetail(savedArea.id).\r\n subscribe(x => { this.removeItemFromSavedlList(savedArea.id) }, error => this.onDataLoadFailed(error));\r\n }\r\n }\r\n }\r\n\r\n isSelectedArea(area: TrackingAreas): boolean {\r\n return this.selectedAreas.some(a => a.id === area.id);\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.cageName, r.cageDescription, r.cageNumber));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n onDataLoadSuccessful(cages: ITSDriverCages[], cageDetails: ITSDriverCagesDetail[], areas: TrackingAreas[]) {\r\n // Assuming each cage can have multiple details, use a dictionary to store details by CageId\r\n const cageDetailsDict: { [key: number]: ITSDriverCagesDetail[] } = {};\r\n\r\n // Group ITSDriverCagesDetail by CageId using the dictionary\r\n for (const detail of cageDetails) {\r\n if (!cageDetailsDict[detail.cageId]) {\r\n cageDetailsDict[detail.cageId] = [];\r\n }\r\n cageDetailsDict[detail.cageId].push(detail);\r\n }\r\n\r\n // Populate the rows array with combined data\r\n this.rows = cages.map((cage) => {\r\n return {\r\n ...cage,\r\n cageDetails: cageDetailsDict[cage.id] || [], // Add cageDetails array to each cage object\r\n };\r\n });\r\n\r\n // Store a cache of rows to use in filtering\r\n this.rowsCache = this.rows.slice(0);\r\n\r\n // Store areas for use in the template\r\n this.areas = areas;\r\n this.areasCache = [...areas];\r\n\r\n this.calculateNextCageNumber();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n calculateNextCageNumber() {\r\n this.existingCages = this.rows;\r\n // Sort the existing cage data based on the cage number in descending order\r\n this.existingCages.sort((a, b) => {\r\n const aNumber = parseInt(a.id);\r\n const bNumber = parseInt(b.id);\r\n return bNumber - aNumber;\r\n });\r\n\r\n // Get the highest cage number\r\n const highestCageNumber = this.existingCages.length > 0 ? parseInt(this.existingCages[0].id) : 0;\r\n\r\n // Calculate the next cage number\r\n this.nextCageNumber = highestCageNumber + 1;\r\n this.generatedCageCode = `CAGE${this.nextCageNumber.toString().padStart(5, '0')}`;\r\n }\r\n\r\n\r\n saveDriversCage() {\r\n\r\n if (this.isNewCage) {\r\n if (this.driverCageDetail && this.driverCageDetail.cageDescription) {\r\n // Generate cage number based on cage name\r\n this.driverCageDetail.cageNumber = this.generatedCageCode;\r\n this.driverCageDetail.cageName = this.driverCageDetail.cageDescription;\r\n\r\n // Check if the cage number already exists in the rowsCache\r\n if (this.rowsCache.some((x) => x.cageNumber === this.driverCageDetail.cageNumber)) {\r\n this.alertService.showMessage('Warning', `This Drive Cage already exists`, MessageSeverity.warn);\r\n return; // Stop execution if cage number exists\r\n }\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n\r\n // Set createdBy and modifiedBy properties with the current user's email\r\n const currentUserEmail = this.accountService.currentUser.email;\r\n this.driverCageDetail.createdBy = currentUserEmail;\r\n this.driverCageDetail.modifiedBy = currentUserEmail;\r\n\r\n // Convert selectedAreas to ITSDriverCagesDetail format\r\n this.driverCageDetail.cageDetails = this.selectedAreas.map(area => ({\r\n id: 0,\r\n cageId: 0,\r\n areaDescription: `${area.province} ${area.city} ${area.suburb} ${area.streetCode}`,\r\n areaId: area.id,\r\n province: area.province,\r\n city: area.city,\r\n suburb: area.suburb,\r\n streetCode: area.streetCode\r\n }));\r\n\r\n // Create the DTO object to send both the header and details\r\n const driverCageDto: any = {\r\n DriverCage: this.driverCageDetail,\r\n CageDetails: this.driverCageDetail.cageDetails\r\n };\r\n\r\n // Call the service method to add a new driver cage\r\n this.fowkesService.addNewDriverCage(driverCageDto).subscribe(\r\n (result: ITSDriverCages) => {\r\n this.onSaveSuccessful();\r\n },\r\n (error: any) => {\r\n this.onDataLoadFailed(error);\r\n }\r\n );\r\n } else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a cage description`, MessageSeverity.warn);\r\n }\r\n }\r\n else {\r\n this.onSaveSuccessful();\r\n }\r\n \r\n }\r\n\r\n\r\n onSaveSuccessful(): void {\r\n this.cageModalHide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n newDriversCage() {\r\n this.isNewCage = true;\r\n this.driverCageDetail = new ITSDriverCages();\r\n this.calculateNextCageNumber();\r\n\r\n setTimeout(() => {\r\n if (this.areasSelector) {\r\n this.areasSelector.refresh();\r\n }\r\n });\r\n\r\n\r\n if (!this.cageModal) {\r\n setTimeout(() => {\r\n if (this.cageModal) {\r\n this.cageModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.cageModal.show();\r\n }\r\n\r\n }\r\n\r\n showCageDetailsModal(cage: ITSDriverCages) {\r\n this.isNewCage = false;\r\n this.driverCageDetail = cage;\r\n this.generatedCageCode = cage.cageNumber;\r\n\r\n for (var cageArea of cage.cageDetails) {\r\n //Add area to edit list\r\n const selectedArea = this.areas.find((area) => area.id === cageArea.areaId);\r\n if (selectedArea) {\r\n this.selectedSavedAreas.push(selectedArea);\r\n }\r\n //Remove area from select list\r\n this.removeItemFromMainList(selectedArea.id);\r\n } \r\n\r\n if (!this.cageModal) {\r\n setTimeout(() => {\r\n if (this.cageModal) {\r\n this.cageModal.show();\r\n }\r\n });\r\n } else {\r\n this.cageModal.show();\r\n }\r\n }\r\n\r\n removeItemFromMainList = (removeId) => {\r\n this.areas = this.areas.filter(obj => obj.id !== removeId);\r\n }\r\n\r\n\r\n removeItemFromDetailList = (removeId) => {\r\n this.selectedAreas = this.selectedAreas.filter(obj => obj.id !== removeId);\r\n }\r\n\r\n\r\n removeItemFromSavedlList = (removeId) => {\r\n this.selectedSavedAreas = this.selectedSavedAreas.filter(obj => obj.id !== removeId);\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n enableEditMethod(row: ITSDriverCages, i) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n console.log(i, row);\r\n }\r\n\r\n\r\n cageModalHide() {\r\n this.driverCageDetail = new ITSDriverCages();\r\n this.selectedAreas = [];\r\n this.cageModal.hide();\r\n }\r\n\r\n\r\n toggleEdit(row: ITSDriverCages, index: number) {\r\n this.enableEdit = !this.enableEdit;\r\n this.enableEditIndex = this.enableEdit ? index : null;\r\n\r\n if (!this.enableEdit) {\r\n // Reset changes and reload the data to cancel editing\r\n this.loadData();\r\n }\r\n }\r\n\r\n saveSegment(row: ITSDriverCages) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n row.createdBy = this.accountService.currentUser.email;\r\n this.fowkesService.updateDriverCage(row.id, row).subscribe(\r\n () => {\r\n this.onUpdateSuccessful();\r\n },\r\n (error: any) => {\r\n this.onDataLoadFailed(error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateSuccessful(): void {\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.enableEditIndex = null;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n onSaveSuccesful(): void {\r\n\r\n this.cageModalHide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n deleteRow(row: ITSDriverCages) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.cageName + ' - ' + row.cageNumber + '\\\"?', DialogType.confirm, () => this.deleteRowHelper(row));\r\n }\r\n\r\n deleteRowHelper(row: ITSDriverCages) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.deleteDriverCage(row.id).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.cageName + ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n printCard(row: ITSDriverCages) {\r\n this.cardType = \"CageCard\";\r\n this.fowkesService.getPrintCardPDF(this.cardType, row.cageNumber, this.application).subscribe(x => this.onFileSuccessful(x, false, row.cageNumber), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n\r\n onFileSuccessful(x: Blob, preview: boolean, id: string): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.cardType + \"_\" + id + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n \r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row\\\" style=\\\"margin: 2px 0 2px 0\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n # {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{value | date:'dd MMM yyyy'}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\\"{{row.driverName}}\\\" {{value}} : ({{row.driverCode}})\\r\\n = 1\\\" class=\\\"btn btn-link btn-sm\\\" href=\\\"javascript:;\\\" (click)=\\\"viewDetails(row)\\\">View\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

ITS:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"input.form-control {\\n height: 18px;\\n font-size: 0.600rem; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.table tr {\\n height: 20px; }\\n\\n.card-body .row {\\n height: 18px; }\\n\\n.card-body .col-form-label {\\n font-size: smaller; }\\n\\n.tbody {\\n height: 350px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 98%; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.modal-full {\\n min-width: 100%;\\n margin: 0; }\\n\\n.modal-full .modal-content {\\n min-height: 100vh; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.col-form-label {\\n line-height: 1; }\\n\\n[data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\"... see less \\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... see more \\\"; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90cmFja2luZy90cmFja2luZy1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcdHJhY2tpbmdcXHRyYWNraW5nLWNvbXBvbmVudHNcXHRyYWNraW5nLWRyaXZlcnMtcmVwb3J0LWNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3RyYWNraW5nL3RyYWNraW5nLWNvbXBvbmVudHMvdHJhY2tpbmctZHJpdmVycy1yZXBvcnQtY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsWUFBWSxFQUFBOztBQUdkO0VBQ0UsWUFBWSxFQUFBOztBQUlkO0VBRUksWUFBWSxFQUFBOztBQUZoQjtFQU1JLGtCQUFrQixFQUFBOztBQUt0QjtFQUNFLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixVQUFVLEVBQUE7O0FBR1o7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCLEVBQUE7O0FBRmxCO0lBS0ksZ0JBQWdCLEVBQUE7O0FBSXBCO0VBQ0UsZUFBZTtFQUNmLFNBQVMsRUFBQTs7QUFHWDtFQUNFLGlCQUFpQixFQUFBOztBQUtuQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxTQUFTLEVBQUE7O0FBR1g7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsY0FBYyxFQUFBOztBQ3RCaEI7RUQyQkUsZ0JBQWdCLEVBQUE7O0FDeEJsQjtFRDZCRSxnQkFBZ0IsRUFBQTs7QUMxQmxCO0VEK0JFLHdCQUF3QixFQUFBOztBQzVCMUI7RURpQ0Usd0JBQXdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3RyYWNraW5nL3RyYWNraW5nLWNvbXBvbmVudHMvdHJhY2tpbmctZHJpdmVycy1yZXBvcnQtY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMThweDtcclxuICBmb250LXNpemU6IDAuNjAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLnRhYmxlIHRyIHtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcblxyXG4uY2FyZC1ib2R5IHtcclxuICAucm93IHtcclxuICAgIGhlaWdodDogMThweDtcclxuICB9XHJcblxyXG4gIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnRib2R5IHtcclxuICBoZWlnaHQ6IDM1MHB4O1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgd2lkdGg6IDk4JTtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgcGFkZGluZy10b3A6IDNweDtcclxuXHJcbiAgLnRvZ2dsZS5idG4tc20ge1xyXG4gICAgbWluLWhlaWdodDogMjdweDtcclxuICB9XHJcbn1cclxuXHJcbi5tb2RhbC1mdWxsIHtcclxuICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubW9kYWwtZnVsbCAubW9kYWwtY29udGVudCB7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcblxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgY29sb3I6ICM3Nzc7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmNvbC1mb3JtLWxhYmVsIHtcclxuICBsaW5lLWhlaWdodDogMTtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLmZhOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGYxM2FcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBzZWUgbGVzcyBcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIG1vcmUgXCI7XHJcbn1cclxuIiwiaW5wdXQuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmb250LXNpemU6IDAuNjAwcmVtOyB9XG5cbi50YWJsZSB0aCB7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjsgfVxuXG4udGFibGUgdGgsIC50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4udGFibGUgdHIge1xuICBoZWlnaHQ6IDIwcHg7IH1cblxuLmNhcmQtYm9keSAucm93IHtcbiAgaGVpZ2h0OiAxOHB4OyB9XG5cbi5jYXJkLWJvZHkgLmNvbC1mb3JtLWxhYmVsIHtcbiAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbi50Ym9keSB7XG4gIGhlaWdodDogMzUwcHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgd2lkdGg6IDk4JTsgfVxuXG4uY2hlY2tib3gge1xuICBoZWlnaHQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAzcHg7IH1cbiAgLmNoZWNrYm94IC50b2dnbGUuYnRuLXNtIHtcbiAgICBtaW4taGVpZ2h0OiAyN3B4OyB9XG5cbi5tb2RhbC1mdWxsIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLm1vZGFsLWZ1bGwgLm1vZGFsLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDsgfVxuXG4udXNlci1yb2xlIHtcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuXG4uY29udHJvbC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLnNlYXJjaC1ib3gge1xuICBtYXJnaW46IDA7IH1cblxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xuICBwYWRkaW5nLXRvcDogM3B4O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtaW4td2lkdGg6IDEwMHB4OyB9XG5cbi51c2VyLWRpc2FibGVkIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ubG9ja2VkLW91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcbiAgY29sb3I6IHdoaXRlc21va2U7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtZm9ybS1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOVwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2FcIjsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBsZXNzIFwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiOyB9XG4iXX0= */\"","import { Component, OnInit, ViewChild, Input, TemplateRef, OnChanges, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { InvoiceTrackingStatus } from 'src/app/models/invoice-tracking-status.model';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { SalesOrderList } from '../../../models/salesorder-list.model';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { User } from '../../../models/user.model';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { InvoiceBarcode } from '../../../models/invoice-barcode.model';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { ITSParcelTracking, ITSParcelTrackingDetail } from '../../../models/invoice-tracking-parcels.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ITSDriversLog, ITSParcelTrackingDetailLog } from '../../../models/invoice-tracking-drivers-log.model';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { forkJoin } from 'rxjs';\r\nimport { ITSDriversReport } from '../../../models/invoice-tracking-driver-report.model';\r\n\r\n\r\n@Component({\r\n selector: 'tracking-drivers-report',\r\n templateUrl: './tracking-drivers-report-component.html',\r\n styleUrls: ['./tracking-drivers-report-component.scss']\r\n})\r\nexport class TrackingDriversReportComponent implements OnInit\r\n{\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n columns: any[] = [];\r\n rowsHeader: ITSDriversReport[] = [];\r\n rowsHeaderCache: ITSDriversReport[] = [];\r\n\r\n rowsDetail: ITSParcelTrackingDetail[] = [];\r\n rowsDetailCache: ITSParcelTrackingDetail[] = [];\r\n\r\n trackingHeader: ITSParcelTracking;\r\n\r\n rowsDriverLogHeader: ITSDriversLog[] = [];\r\n rowsDriverLogHeaderCache: ITSDriversLog[] = [];\r\n\r\n rowsParcelDetail: ITSParcelTrackingDetailLog[] = [];\r\n rowsParcelDetailCache: ITSParcelTrackingDetailLog[] = [];\r\n\r\n\r\n @ViewChild('salesOrderModal')\r\n salesOrderModal: ModalDirective;\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n\r\n @ViewChild('reportDetailModal')\r\n reportDetailModal: ModalDirective;\r\n\r\n @ViewChild('returnedModal')\r\n returnedModal: ModalDirective;\r\n\r\n @ViewChild('notesModal')\r\n notesModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('nameTemplate')\r\n nameTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('salesOrderTemplate')\r\n salesOrderTemplate: TemplateRef;\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('previewTemplate')\r\n previewTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n\r\n @ViewChild('changedSelector')\r\n private changedSelector;\r\n\r\n private isEditMode = false;\r\n loadingIndicator: boolean;\r\n result: InvoiceTrackingStatus;\r\n ITSObject: InvoiceTrackingStatus = new InvoiceTrackingStatus();\r\n \r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @Input()\r\n stockCode: string;\r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n invoiceTracking: InvoiceTrackingStatus;\r\n hasDuplicates: boolean;\r\n noResults: boolean;\r\n user: User;\r\n\r\n\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n enabled: boolean;\r\n\r\n driverSearch: string;\r\n driverCageSearch: string;\r\n vehicleSearch: string;\r\n barcodeSearch: string;\r\n addedPackage: string;\r\n\r\n @Input()\r\n selectedInvoice: string;\r\n\r\n @ViewChild('input1') input1!: ElementRef;\r\n @ViewChild('input2') input2!: ElementRef;\r\n @ViewChild('input3') input3!: ElementRef;\r\n @ViewChild('input4') input4!: ElementRef;\r\n inputList: string[] = [];\r\n\r\n barcodeList: InvoiceBarcode[];\r\n inputCount: { [key: string]: number } = {};\r\n driversLogHeader: ITSDriversLog;\r\n cardType: string;\r\n src: string;\r\n\r\n totalParcels: number;\r\n totalInvoices: number;\r\n totalDespatched: number;\r\n totalReturned: number;\r\n loaded: boolean;\r\n\r\n returnedParcels: number = 0;\r\n returnedReason: string = '';\r\n currentReturnedRow: ITSParcelTrackingDetail;\r\n\r\n despatchedParcels: number = 0;\r\n changedReason: string = '';\r\n currentUpdatingRow: ITSParcelTrackingDetailLog;\r\n\r\n updatingNotes: string = '';\r\n\r\n selectedCustomer: string;\r\n comment: string;\r\n sortBy: string;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private sysproService: SysproService, private configurations: ConfigurationService,\r\n private alertService: AlertService, private accountService: AccountService, private elementRef: ElementRef, private fowkesService: FowkesOnlineService,) {\r\n\r\n }\r\n\r\n private setData() {\r\n \r\n this.columns = [\r\n\r\n { prop: 'driverCode', name: 'Driver', width: 100 },\r\n { prop: 'driverName', name: 'Name', width: 200}, \r\n { prop: 'totalCustomers', name: '#Customers', width: 100, cellClass: \"right\" },\r\n { prop: 'totalInvoicesDelivered', name: '#Invoices', width: 100, cellClass: \"right\" },\r\n { prop: 'totalInvoiceLinesDelivered', name: '#Invoice Lines', width: 100, cellClass: \"right\" },\r\n { prop: 'totalInvoiceLineItemsDelivered', name: '#Items', width: 100, cellClass: \"right\" },\r\n { prop: 'totalParcelsDelivered', name: '#Parcels', width: 100, cellClass: \"right\" },\r\n { prop: 'totalInvoicesReturned', name: '#Invoices Returned', width: 130, cellClass: \"right\" },\r\n { prop: 'totalParcelsReturned', name: '#Parcels Returned', width: 130, cellClass: \"right\" },\r\n ];\r\n\r\n\r\n //this.columns.push({ name: 'View', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n\r\n }\r\n\r\n refresh() {\r\n this.selected = {\r\n startDate: moment().startOf('month'),\r\n endDate: moment().endOf('month')\r\n }\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.setData();\r\n this.reset();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n //this.sortBy = \"ID\";\r\n this.user = this.accountService.currentUser;\r\n\r\n this.selected = {\r\n startDate: moment().startOf('month'),\r\n endDate: moment().endOf('month')\r\n }\r\n \r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.setData();\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n // this.sortBy = \"ID\";\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.totalInvoices = 0;\r\n this.totalParcels = 0;\r\n this.totalDespatched = 0;\r\n this.totalReturned = 0;\r\n\r\n this.loaded = false;\r\n\r\n this.fowkesService.getITSDriversReport(startD.toJSON(), endD.toJSON()).subscribe(x => this.onReportSearchSuccesful([x], startD, endD), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n\r\n\r\n\r\n onReportSearchSuccesful(drivers: any[], startD: Date, endD: Date): void {\r\n\r\n if (drivers[0]) {\r\n this.rowsHeaderCache = drivers[0];\r\n this.rowsHeader = [...this.rowsHeaderCache];\r\n\r\n this.rowsHeader = this.rowsHeader.sort((a, b) => b.totalInvoiceLinesDelivered - a.totalInvoiceLinesDelivered);\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n }\r\n else {\r\n\r\n this.rowsHeaderCache = null;\r\n this.rowsHeader = null;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('', `No details found for selected date range`, MessageSeverity.info);\r\n }\r\n }\r\n\r\n onLogDetailSearchSuccesful(details: any[]): void {\r\n if (details[0] && details[0].length > 0) {\r\n \r\n this.rowsDriverLogHeaderCache.forEach(headerRow => {\r\n // Filter the details based on the trackingHeaderId of the current header row\r\n const matchedDetails = details[0].filter(detail => detail.trackingHeaderId === headerRow.id);\r\n\r\n // Assign the matched details to the header row (you can further process the data if needed)\r\n headerRow.details = matchedDetails;\r\n\r\n });\r\n\r\n this.rowsDriverLogHeader = [...this.rowsDriverLogHeaderCache];\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n else {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('', `No details found for selected date range`, MessageSeverity.info);\r\n }\r\n }\r\n\r\n \r\n toggle() {\r\n this.show = true;\r\n }\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n filterChanged() {\r\n\r\n this.reset();\r\n\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rowsHeader = this.rowsHeaderCache.filter(r => Utilities.searchArray(value, false, r.driverCode, r.driverName));\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n this.setData();\r\n }\r\n\r\n viewDetails(row: ITSDriversLog) {\r\n\r\n this.sortBy = \"ID\";\r\n this.driversLogHeader = new ITSDriversLog();\r\n this.driversLogHeader = row;\r\n\r\n this.rowsParcelDetail = row.details;\r\n if (!this.reportDetailModal) {\r\n setTimeout(() => {\r\n if (this.reportDetailModal) {\r\n this.reportDetailModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.reportDetailModal.show();\r\n }\r\n\r\n this.totalInvoices = this.rowsParcelDetail.length;\r\n this.totalParcels = this.rowsParcelDetail.reduce((total, row) => total + row.scannedCount, 0);\r\n this.totalDespatched = this.rowsParcelDetail.reduce((total, row) => total + row.itsParcelCount, 0);\r\n this.totalReturned = this.rowsParcelDetail.reduce((total, row) => total + row.undeliveredCount, 0);\r\n\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n viewSalesInvoice() {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.salesOrder);\r\n sessionStorage.setItem(localStorageActions.Customer, this.ITSObject.customerCode);\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.ITSObject.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: this.ITSObject.customerCode } });\r\n }\r\n\r\n\r\n viewCreditNote() {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.creditNoteNumber);\r\n sessionStorage.setItem(localStorageActions.Customer, this.ITSObject.customerCode);\r\n sessionStorage.removeItem(localStorageActions.InvoiceNumber);\r\n // sessionStorage.setItem(localStorageActions.InvoiceNumber, this.ITSObject.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: this.ITSObject.customerCode, credit: \"C\" } });\r\n }\r\n\r\n viewTransfer() {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.salesOrder);\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.ITSObject.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: 'TRANSFER' } });\r\n }\r\n\r\n\r\n viewDocuments() {\r\n sessionStorage.removeItem(localStorageActions.PODReference);\r\n sessionStorage.setItem(localStorageActions.PODReference, this.ITSObject.invoiceNumber);\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.salesOrder);\r\n this.router.navigate(['../pods'], { fragment: 'view', queryParams: { invoice: this.ITSObject.salesOrder } });\r\n }\r\n\r\n viewITS() {\r\n this.router.navigate(['/reports'], { fragment: 'invoicestatus' });\r\n }\r\n\r\n\r\n controlReport() {\r\n this.router.navigate(['/reports'], { fragment: 'control' });\r\n }\r\n\r\n\r\n\r\n reportDetailModalHide() {\r\n this.driversLogHeader = null;\r\n if (this.reportDetailModal) {\r\n this.reportDetailModal.hide();\r\n }\r\n this.filterChanged();\r\n }\r\n\r\n\r\n previewITS(row: ITSParcelTrackingDetail) {\r\n\r\n this.selectedInvoice = row.invoiceNumber;\r\n this.selectedCustomer = row.customer;\r\n\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != row.invoiceNumber) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoiceNumber);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != row.customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n }\r\n\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n itsModalHide() {\r\n this.selectedInvoice = null;\r\n if (this.itsModal) {\r\n this.itsModal.hide();\r\n }\r\n }\r\n\r\n gotToITS() {\r\n\r\n this.router.navigate(['../../reports'], { fragment: 'invoicestatus', queryParams: { customer: this.selectedCustomer } });\r\n }\r\n\r\n\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Driver\", \"DriverName\", \"totalCustomers\", \"totalInvoicesDelivered\", \"totalInvoiceLinesDelivered\", \"totalInvoiceLineItemsDelivered\", \"totalParcelsDelivered\", \"totalInvoicesReturned\", \"totalParcelsReturned\"]\r\n };\r\n\r\n var filename = \"DriversReport\";\r\n var selectRows = [...this.rowsHeader];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n \r\n exportRows.push({\r\n Driver: row.driverCode, DriverName: row.driverName, totalCustomers: row.totalCustomers, totalInvoicesDelivered: row.totalInvoicesDelivered,\r\n totalInvoiceLinesDelivered: row.totalInvoiceLinesDelivered, totalInvoiceLineItemsDelivered: row.totalInvoiceLineItemsDelivered, totalParcelsDelivered: row.totalParcelsDelivered,\r\n totalInvoicesReturned: row.totalInvoicesReturned, totalParcelsReturned: row.totalParcelsReturned\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n resultDetails() {\r\n const options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Id\", \"Date\", \"Driver\", \"DriverName\", \"Vehicle\", \"VehicleDescription\", \"Cage\", \"CageDescription\", \"NoParcels\", \"Returned\",\r\n \"Detail_InvoiceNumber\", \"Detail_Customer\", \"Detail_Customer_Name\", \"Parcel_Count\", \"Parcels_Scanned\", \"Detail_ScannedDate\"] // ... Invoice\tCustomer\tCustomer Name\t#Parcels\t#Scanned\tTelephone\tAddress\t#Returned\r\n };\r\n\r\n var filename = \"DriversLogDetails\";\r\n var selectRows = [...this.rowsDriverLogHeader];\r\n var exportRows = [];\r\n for (let row of selectRows) {\r\n const date = new Date(row.trackingInsertDate).toISOString().split('T')[0];\r\n const headerData = {\r\n Id: row.id, Date: date, Driver: row.driverCode, DriverName: row.driverName, Vehicle: row.vehicleNumber, VehicleDescription: row.vehicleDescription,\r\n Cage: row.cageNumber, CageDescription: row.cageDescription, NoParcels: row.totalParcels, Returned: row.totalParcelsUndelivered\r\n };\r\n\r\n if (row.details && row.details.length) {\r\n for (let detail of row.details) {\r\n exportRows.push({\r\n ...headerData,\r\n Detail_InvoiceNumber: detail.invoiceNumber,\r\n Detail_Customer: detail.customer,\r\n Detail_Customer_Name: detail.customerName,\r\n Parcel_Count: detail.itsParcelCount,\r\n Parcels_Scanned: detail.scannedCount,\r\n Detail_ScannedDate: detail.scannedDate,\r\n // ... other detail fields here\r\n });\r\n }\r\n } else {\r\n exportRows.push(headerData);\r\n }\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Driver NameEmployee CodeDriver TelChange ImageModifyPrintDelete
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\\"{{row.driverImage}}\\\"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Save\\r\\n \\r\\n \\r\\n Cancel\\r\\n \\r\\n \\r\\n \\r\\n Print \\r\\n \\r\\n Delete \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

New Driver

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90cmFja2luZy90cmFja2luZy1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcdHJhY2tpbmdcXHRyYWNraW5nLWNvbXBvbmVudHNcXHRyYWNraW5nLWRyaXZlcnMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdHJhY2tpbmcvdHJhY2tpbmctY29tcG9uZW50cy90cmFja2luZy1kcml2ZXJzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi50Ym9keSB7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbn1cclxuIl19 */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { Brand } from '../../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ITSDriver } from '../../../models/invoice-tracking-driver.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\n\r\n@Component({\r\n selector: 'tracking-drivers',\r\n templateUrl: './tracking-drivers.component.html',\r\n styleUrls: ['./tracking-drivers.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class TrackingDriversComponent {\r\n\r\n @ViewChild('driverModal')\r\n driverModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n rows: ITSDriver[] = [];\r\n rowsCache: ITSDriver[];\r\n driverDetail: ITSDriver = new ITSDriver();\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n cardType: string;\r\n src: string;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService, private fowkesService: FowkesOnlineService, private configurations: ConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.fowkesService.getAllDrivers().subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDataLoadSuccessful(drivers: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (drivers[0]) {\r\n\r\n this.rowsCache = [...drivers[0]]; \r\n this.rows = [...this.rowsCache];\r\n\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.driverName, r.driverCode));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n\r\n\r\n toggleEdit(row: ITSDriver, index: number) {\r\n this.enableEdit = !this.enableEdit;\r\n this.enableEditIndex = this.enableEdit ? index : null;\r\n\r\n if (!this.enableEdit) {\r\n // Reset changes and reload the data to cancel editing\r\n this.loadData();\r\n }\r\n }\r\n\r\n //saveSegment(row: ITSDriverCages) {\r\n // this.isSaving = true;\r\n // this.alertService.startLoadingMessage('Saving changes...');\r\n // row.createdBy = this.accountService.currentUser.email;\r\n // this.fowkesService.updateDriverCage(row.id, row).subscribe(\r\n // () => {\r\n // this.onUpdateSuccessful();\r\n // },\r\n // (error: any) => {\r\n // this.onDataLoadFailed(error);\r\n // }\r\n // );\r\n //}\r\n\r\n //enableEditMethod(row: ITSDriver, i) {\r\n // this.enableEdit = true;\r\n // this.enableEditIndex = i;\r\n // console.log(i, row);\r\n //}\r\n\r\n saveSegment(row: ITSDriver) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n row.createdBy = this.accountService.currentUser.email;\r\n this.fowkesService.updateDriver(row.id, row).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n driverModalHide() {\r\n this.driverDetail = new ITSDriver();\r\n this.newformData = new FormData();\r\n this.driverModal.hide();\r\n }\r\n\r\n newDriver() {\r\n\r\n if (!this.driverModal) {\r\n setTimeout(() => {\r\n if (this.driverModal) {\r\n this.driverModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.driverModal.show();\r\n }\r\n\r\n }\r\n\r\n saveDriver() {\r\n\r\n //Validate save\r\n if (this.driverDetail) {\r\n if (this.driverDetail.driverCode) {\r\n if (this.rowsCache.filter(x => x.driverCode == this.driverDetail.driverCode).length >= 1) {\r\n this.alertService.showMessage('Warning', `This Driver name already exists`, MessageSeverity.warn);\r\n }\r\n else {\r\n if (this.newformData.has('file')) {\r\n this.sysproService.postDocument(this.newformData, \"DRIVER\", this.driverDetail.driverCode).subscribe(x => this.newFilePostedSuccess(x), error => this.onPostDataLoadFailed(error));\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Remeber to add a file first`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a driver employee code`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n newFilePostedSuccess(x: any) {\r\n\r\n console.log(x);\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.driverDetail.createdBy = this.accountService.currentUser.email;\r\n this.driverDetail.driverImage = x.fileName;\r\n\r\n this.fowkesService.addNewDriver(this.driverDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onSaveSuccesful(): void {\r\n\r\n this.driverModalHide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n onNewFile(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n this.newformData.append('file', file);\r\n }\r\n }\r\n\r\n onFileChange(event, row: ITSDriver) {\r\n\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n this.sysproService.postDocument(formData, \"DRIVER\", row.driverCode).subscribe(x => this.filePostedSuccess(x, row), error => this.onPostDataLoadFailed(error));\r\n \r\n }\r\n }\r\n\r\n\r\n filePostedSuccess(result: any, row: ITSDriver) {\r\n\r\n console.log(result);\r\n row.driverImage = result.fileName;\r\n\r\n this.saveSegment(row);\r\n }\r\n\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n printCard(row: ITSDriver) {\r\n this.cardType = \"DriverCard\";\r\n this.fowkesService.getPrintCardPDF(this.cardType, row.driverCode, this.application).subscribe(x => this.onFileSuccessful(x, false, row.driverCode), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onFileSuccessful(x: Blob, preview: boolean, id: string): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.cardType + \"_\" + id + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n deleteRow(row: ITSDriver) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.driverName + ' - ' + row.driverCode + '\\\"?', DialogType.confirm, () => this.deleteRowHelper(row));\r\n }\r\n\r\n deleteRowHelper(row: ITSDriver) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.deleteDriver(row.id).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.driverName + ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
= 1\\\" class=\\\"row\\\" style=\\\"margin: 2px 0 2px 0\\\">\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n # {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{value | date:'dd MMM yyyy'}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\\"{{row.driverName}}\\\" {{value}} : ({{row.driverCode}})\\r\\n = 1\\\" class=\\\"btn btn-link btn-sm\\\" href=\\\"javascript:;\\\" (click)=\\\"viewDetails(row)\\\">View\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\\"{{ Drivers Log:\\r\\n {{ driversLogHeader.driverName }}\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0, '': row.undeliveredStatus == ''}\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
InvoiceCustomerCustomer Name#Parcels#ScannedTelephoneAddress#Returned
\\r\\n \\r\\n {{row.invoiceNumber}}\\r\\n \\r\\n {{row.customer}}\\r\\n {{row.customerName}}\\r\\n
{{row.shippingInstrs}}\\r\\n
{{row.specialInstrs}}\\r\\n
{{row.itsParcelCount}}\\r\\n \\r\\n {{row.telephone }}
{{row.addTelephone}}
\\r\\n
\\r\\n
{{row.shipToAddr1 }}
\\r\\n
{{row.shipToAddr2 }}
\\r\\n
{{row.shipToAddr3 }}
\\r\\n
{{row.shipToAddr4 }}
\\r\\n
{{row.shipToAddr5 }}
\\r\\n
{{row.shipPostalCode }}
\\r\\n
\\r\\n
{{row.undeliveredCount}}\\r\\n
\\r\\n Reprint\\r\\n
\\r\\n
\\r\\n Despatch Notes\\r\\n
\\r\\n
\\r\\n Return Parcel\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Total Invoices: {{ totalInvoices }}\\r\\n
\\r\\n
\\r\\n Total Despatched: {{ totalDespatched }}\\r\\n
\\r\\n
\\r\\n Total Received: {{ totalParcels }}\\r\\n
\\r\\n
\\r\\n Total Returned: {{ totalReturned }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Mark Parcels as Returned
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Additional Details
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

ITS:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"input.form-control {\\n height: 18px;\\n font-size: 0.600rem; }\\n\\n.table th {\\n font-size: smaller; }\\n\\n.table th, .table td {\\n padding: 5px; }\\n\\n.table tr {\\n height: 20px; }\\n\\n.card-body .row {\\n height: 18px; }\\n\\n.card-body .col-form-label {\\n font-size: smaller; }\\n\\n.tbody {\\n height: 350px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px;\\n width: 98%; }\\n\\n.checkbox {\\n height: 10px;\\n padding-top: 3px; }\\n\\n.checkbox .toggle.btn-sm {\\n min-height: 27px; }\\n\\n.modal-full {\\n min-width: 100%;\\n margin: 0; }\\n\\n.modal-full .modal-content {\\n min-height: 100vh; }\\n\\n.user-role {\\n font-size: 0.8em !important;\\n margin-right: 1px; }\\n\\n.control-box {\\n margin-bottom: 5px; }\\n\\n.search-box {\\n margin: 0; }\\n\\n.nav-item.toolbaritem a {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n min-width: 100px; }\\n\\n.user-disabled {\\n color: #777;\\n font-style: italic; }\\n\\n.locked-out {\\n background-color: orangered;\\n color: whitesmoke;\\n width: 100%;\\n display: inline-block;\\n padding-left: 5px; }\\n\\n.col-form-label {\\n line-height: 1; }\\n\\n[data-toggle=\\\"collapse\\\"] .fa:before {\\n content: \\\"\\\\f139\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .fa:before {\\n content: \\\"\\\\f13a\\\"; }\\n\\n[data-toggle=\\\"collapse\\\"] .txt:before {\\n content: \\\"... see less \\\"; }\\n\\n[data-toggle=\\\"collapse\\\"].collapsed .txt:before {\\n content: \\\"... see more \\\"; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90cmFja2luZy90cmFja2luZy1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcdHJhY2tpbmdcXHRyYWNraW5nLWNvbXBvbmVudHNcXHRyYWNraW5nLWludm9pY2Utc3RhdHVzLWNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3RyYWNraW5nL3RyYWNraW5nLWNvbXBvbmVudHMvdHJhY2tpbmctaW52b2ljZS1zdGF0dXMtY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsWUFBWSxFQUFBOztBQUdkO0VBQ0UsWUFBWSxFQUFBOztBQUlkO0VBRUksWUFBWSxFQUFBOztBQUZoQjtFQU1JLGtCQUFrQixFQUFBOztBQUt0QjtFQUNFLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixVQUFVLEVBQUE7O0FBR1o7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCLEVBQUE7O0FBRmxCO0lBS0ksZ0JBQWdCLEVBQUE7O0FBSXBCO0VBQ0UsZUFBZTtFQUNmLFNBQVMsRUFBQTs7QUFHWDtFQUNFLGlCQUFpQixFQUFBOztBQUtuQjtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxTQUFTLEVBQUE7O0FBR1g7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsY0FBYyxFQUFBOztBQ3RCaEI7RUQyQkUsZ0JBQWdCLEVBQUE7O0FDeEJsQjtFRDZCRSxnQkFBZ0IsRUFBQTs7QUMxQmxCO0VEK0JFLHdCQUF3QixFQUFBOztBQzVCMUI7RURpQ0Usd0JBQXdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3RyYWNraW5nL3RyYWNraW5nLWNvbXBvbmVudHMvdHJhY2tpbmctaW52b2ljZS1zdGF0dXMtY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogMThweDtcclxuICBmb250LXNpemU6IDAuNjAwcmVtO1xyXG59XHJcblxyXG4udGFibGUgdGgge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLnRhYmxlIHRyIHtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcblxyXG4uY2FyZC1ib2R5IHtcclxuICAucm93IHtcclxuICAgIGhlaWdodDogMThweDtcclxuICB9XHJcblxyXG4gIC5jb2wtZm9ybS1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnRib2R5IHtcclxuICBoZWlnaHQ6IDM1MHB4O1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgd2lkdGg6IDk4JTtcclxufVxyXG5cclxuLmNoZWNrYm94IHtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgcGFkZGluZy10b3A6IDNweDtcclxuXHJcbiAgLnRvZ2dsZS5idG4tc20ge1xyXG4gICAgbWluLWhlaWdodDogMjdweDtcclxuICB9XHJcbn1cclxuXHJcbi5tb2RhbC1mdWxsIHtcclxuICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubW9kYWwtZnVsbCAubW9kYWwtY29udGVudCB7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcblxyXG5cclxuLnVzZXItcm9sZSB7XHJcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogMXB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ib3gge1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xyXG4gIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDNweDtcclxuICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgY29sb3I6ICM3Nzc7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubG9ja2VkLW91dCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmNvbC1mb3JtLWxhYmVsIHtcclxuICBsaW5lLWhlaWdodDogMTtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7XHJcbn1cclxuXHJcblxyXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXS5jb2xsYXBzZWQgLmZhOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGYxM2FcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC50eHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIi4uLiBzZWUgbGVzcyBcIjtcclxufVxyXG5cclxuXHJcbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCIuLi4gc2VlIG1vcmUgXCI7XHJcbn1cclxuIiwiaW5wdXQuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmb250LXNpemU6IDAuNjAwcmVtOyB9XG5cbi50YWJsZSB0aCB7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjsgfVxuXG4udGFibGUgdGgsIC50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4udGFibGUgdHIge1xuICBoZWlnaHQ6IDIwcHg7IH1cblxuLmNhcmQtYm9keSAucm93IHtcbiAgaGVpZ2h0OiAxOHB4OyB9XG5cbi5jYXJkLWJvZHkgLmNvbC1mb3JtLWxhYmVsIHtcbiAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbi50Ym9keSB7XG4gIGhlaWdodDogMzUwcHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgd2lkdGg6IDk4JTsgfVxuXG4uY2hlY2tib3gge1xuICBoZWlnaHQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAzcHg7IH1cbiAgLmNoZWNrYm94IC50b2dnbGUuYnRuLXNtIHtcbiAgICBtaW4taGVpZ2h0OiAyN3B4OyB9XG5cbi5tb2RhbC1mdWxsIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLm1vZGFsLWZ1bGwgLm1vZGFsLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDsgfVxuXG4udXNlci1yb2xlIHtcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuXG4uY29udHJvbC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLnNlYXJjaC1ib3gge1xuICBtYXJnaW46IDA7IH1cblxuLm5hdi1pdGVtLnRvb2xiYXJpdGVtIGEge1xuICBwYWRkaW5nLXRvcDogM3B4O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtaW4td2lkdGg6IDEwMHB4OyB9XG5cbi51c2VyLWRpc2FibGVkIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ubG9ja2VkLW91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcbiAgY29sb3I6IHdoaXRlc21va2U7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5jb2wtZm9ybS1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdIC5mYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOVwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAuZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2FcIjsgfVxuXG5bZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBsZXNzIFwiOyB9XG5cbltkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdLmNvbGxhcHNlZCAudHh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiLi4uIHNlZSBtb3JlIFwiOyB9XG4iXX0= */\"","import { Component, OnInit, ViewChild, Input, TemplateRef, OnChanges, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { InvoiceTrackingStatus } from 'src/app/models/invoice-tracking-status.model';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { SalesOrderList } from '../../../models/salesorder-list.model';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { User } from '../../../models/user.model';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { InvoiceBarcode } from '../../../models/invoice-barcode.model';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { ITSParcelTracking, ITSParcelTrackingDetail } from '../../../models/invoice-tracking-parcels.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ITSDriversLog, ITSParcelTrackingDetailLog } from '../../../models/invoice-tracking-drivers-log.model';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { forkJoin } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'tracking-invoice-status',\r\n templateUrl: './tracking-invoice-status-component.html',\r\n styleUrls: ['./tracking-invoice-status-component.scss']\r\n})\r\nexport class TrackingInvoiceStatusComponent implements OnInit\r\n{\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n columns: any[] = [];\r\n rowsHeader: ITSParcelTracking[] = [];\r\n rowsHeaderCache: ITSParcelTracking[] = [];\r\n\r\n rowsDetail: ITSParcelTrackingDetail[] = [];\r\n rowsDetailCache: ITSParcelTrackingDetail[] = [];\r\n\r\n trackingHeader: ITSParcelTracking;\r\n\r\n rowsDriverLogHeader: ITSDriversLog[] = [];\r\n rowsDriverLogHeaderCache: ITSDriversLog[] = [];\r\n\r\n rowsParcelDetail: ITSParcelTrackingDetailLog[] = [];\r\n rowsParcelDetailCache: ITSParcelTrackingDetailLog[] = [];\r\n\r\n\r\n @ViewChild('salesOrderModal')\r\n salesOrderModal: ModalDirective;\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n\r\n @ViewChild('reportDetailModal')\r\n reportDetailModal: ModalDirective;\r\n\r\n @ViewChild('returnedModal')\r\n returnedModal: ModalDirective;\r\n\r\n @ViewChild('notesModal')\r\n notesModal: ModalDirective;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('nameTemplate')\r\n nameTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('salesOrderTemplate')\r\n salesOrderTemplate: TemplateRef;\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('previewTemplate')\r\n previewTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n\r\n @ViewChild('changedSelector')\r\n private changedSelector;\r\n\r\n private isEditMode = false;\r\n loadingIndicator: boolean;\r\n result: InvoiceTrackingStatus;\r\n ITSObject: InvoiceTrackingStatus = new InvoiceTrackingStatus();\r\n \r\n\r\n @ViewChild('searchResultSelector')\r\n private searchResultSelector;\r\n private selectUndefinedOptionValue: string = \"Please Select\";\r\n\r\n @Input()\r\n stockCode: string;\r\n searchResults: SalesOrderList[];\r\n searchType: string;\r\n searchText: string;\r\n searchResultSelected: SalesOrderList;\r\n invoiceTracking: InvoiceTrackingStatus;\r\n hasDuplicates: boolean;\r\n noResults: boolean;\r\n user: User;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n enabled: boolean;\r\n\r\n driverSearch: string;\r\n driverCageSearch: string;\r\n vehicleSearch: string;\r\n barcodeSearch: string;\r\n addedPackage: string;\r\n\r\n @Input()\r\n selectedInvoice: string;\r\n\r\n @ViewChild('input1') input1!: ElementRef;\r\n @ViewChild('input2') input2!: ElementRef;\r\n @ViewChild('input3') input3!: ElementRef;\r\n @ViewChild('input4') input4!: ElementRef;\r\n inputList: string[] = [];\r\n\r\n barcodeList: InvoiceBarcode[];\r\n inputCount: { [key: string]: number } = {};\r\n driversLogHeader: ITSDriversLog;\r\n cardType: string;\r\n src: string;\r\n\r\n totalParcels: number;\r\n totalInvoices: number;\r\n totalDespatched: number;\r\n totalReturned: number;\r\n loaded: boolean;\r\n\r\n returnedParcels: number = 0;\r\n returnedReason: string = '';\r\n currentReturnedRow: ITSParcelTrackingDetail;\r\n\r\n despatchedParcels: number = 0;\r\n changedReason: string = '';\r\n currentUpdatingRow: ITSParcelTrackingDetailLog;\r\n\r\n updatingNotes: string = '';\r\n\r\n selectedCustomer: string;\r\n comment: string;\r\n sortBy: string;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private sysproService: SysproService, private configurations: ConfigurationService,\r\n private alertService: AlertService, private accountService: AccountService, private elementRef: ElementRef, private fowkesService: FowkesOnlineService,) {\r\n\r\n }\r\n\r\n private setData() {\r\n \r\n this.columns = [\r\n { prop: 'id', name: '##', width: 50, cellTemplate: this.indexTemplate },\r\n { prop: 'trackingInsertDate', name: 'Date', width: 110, cellTemplate: this.dateTemplate },\r\n { prop: 'driverName', name: 'Driver Name', width: 250, cellTemplate: this.nameTemplate}, \r\n { prop: 'vehicleNumber', name: 'Vehicle Registration', width: 100, cellClass: \"center\" },\r\n { prop: 'vehicleDescription', name: 'Vehicle Description', width: 180 }, \r\n { prop: 'cageNumber', name: 'Cage', width: 100 },\r\n { prop: 'cageDescription', name: 'Cage Description', width: 150 },\r\n { prop: 'totalParcels', name: '#Parcels', width: 50 },\r\n { prop: 'totalParcelsUndelivered', name: 'Returned', width: 50 }, \r\n ];\r\n\r\n\r\n //this.columns.push({ name: 'View', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n\r\n }\r\n\r\n refresh() {\r\n this.selected = {\r\n startDate: moment().startOf('day'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.setData();\r\n this.reset();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.sortBy = \"ID\";\r\n this.user = this.accountService.currentUser;\r\n\r\n this.selected = {\r\n startDate: moment().startOf('day'),\r\n endDate: moment().endOf('day')\r\n }\r\n \r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.setData();\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sortBy = \"ID\";\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n\r\n this.totalInvoices = 0;\r\n this.totalParcels = 0;\r\n this.totalDespatched = 0;\r\n this.totalReturned = 0;\r\n\r\n this.loaded = false;\r\n\r\n this.fowkesService.getITSDriversLog(startD.toJSON(), endD.toJSON()).subscribe(x => this.onLogSearchSuccesful([x], startD, endD), error => this.onDataLoadFailed(error));\r\n \r\n }\r\n\r\n\r\n\r\n onLogSearchSuccesful(drivers: any[], startD: Date, endD: Date): void {\r\n\r\n\r\n if (drivers[0]) {\r\n this.rowsDriverLogHeaderCache = drivers[0];\r\n this.rowsDriverLogHeader = [...this.rowsDriverLogHeaderCache];\r\n\r\n\r\n if (this.rowsDriverLogHeader && this.rowsDriverLogHeader.length >= 1) {\r\n this.alertService.showMessage('', `Getting Details...`, MessageSeverity.info);\r\n // Use forkJoin to make individual calls for each header\r\n const detailObservables = this.rowsDriverLogHeaderCache.map(header =>\r\n this.fowkesService.getITSParcelTrackingDetailListForHeaderId(header.id)\r\n );\r\n\r\n forkJoin(detailObservables).subscribe(\r\n detailsList => {\r\n detailsList.forEach((details, index) => {\r\n this.rowsDriverLogHeaderCache[index].details = details;\r\n });\r\n\r\n this.rowsDriverLogHeader = [...this.rowsDriverLogHeaderCache];\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n },\r\n error => this.onDataLoadFailed(error)\r\n );\r\n }\r\n \r\n\r\n //this.fowkesService.getITSParcelTrackingDetail(startD.toJSON(), endD.toJSON()).subscribe(x => this.onLogDetailSearchSuccesful([x]), error => this.onDataLoadFailed(error)); \r\n\r\n }\r\n else {\r\n\r\n this.rowsDriverLogHeader = null;\r\n this.rowsDriverLogHeaderCache = null;\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('', `No logs found for selected date range`, MessageSeverity.info);\r\n }\r\n }\r\n\r\n onLogDetailSearchSuccesful(details: any[]): void {\r\n if (details[0] && details[0].length > 0) {\r\n \r\n this.rowsDriverLogHeaderCache.forEach(headerRow => {\r\n // Filter the details based on the trackingHeaderId of the current header row\r\n const matchedDetails = details[0].filter(detail => detail.trackingHeaderId === headerRow.id);\r\n\r\n // Assign the matched details to the header row (you can further process the data if needed)\r\n headerRow.details = matchedDetails;\r\n\r\n });\r\n\r\n this.rowsDriverLogHeader = [...this.rowsDriverLogHeaderCache];\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n else {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('', `No details found for selected date range`, MessageSeverity.info);\r\n }\r\n }\r\n\r\n \r\n toggle() {\r\n this.show = true;\r\n }\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n filterChanged() {\r\n\r\n this.reset();\r\n\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value != \"\") {\r\n this.rowsDriverLogHeader = this.rowsDriverLogHeaderCache.filter(r => Utilities.searchArray(value, false, r.id, r.driverCode, r.vehicleNumber, r.cageNumber, r.driverName, r.cageDescription, r.vehicleDescription));\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n this.setData();\r\n }\r\n\r\n viewDetails(row: ITSDriversLog) {\r\n\r\n this.sortBy = \"ID\";\r\n this.driversLogHeader = new ITSDriversLog();\r\n this.driversLogHeader = row;\r\n\r\n this.rowsParcelDetail = row.details;\r\n if (!this.reportDetailModal) {\r\n setTimeout(() => {\r\n if (this.reportDetailModal) {\r\n this.reportDetailModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.reportDetailModal.show();\r\n }\r\n\r\n this.totalInvoices = this.rowsParcelDetail.length;\r\n this.totalParcels = this.rowsParcelDetail.reduce((total, row) => total + row.scannedCount, 0);\r\n this.totalDespatched = this.rowsParcelDetail.reduce((total, row) => total + row.itsParcelCount, 0);\r\n this.totalReturned = this.rowsParcelDetail.reduce((total, row) => total + row.undeliveredCount, 0);\r\n\r\n }\r\n\r\n onScannedCountChanged(row: any, newValue: any) {\r\n // Parse the new value as an integer\r\n newValue = parseInt(newValue, 10);\r\n\r\n if (isNaN(newValue)) {\r\n return; // If parsing fails, don't proceed\r\n }\r\n\r\n // Update the scannedCount property of the row with the new value\r\n row.scannedCount = newValue;\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n // Call the updateparcels service endpoint to save the changes to the server\r\n this.fowkesService.updateparcels(row.id, newValue).subscribe(\r\n (response) => {\r\n console.log('Scanned count updated:', response);\r\n this.alertService.showMessage('', `Scanned count updated`, MessageSeverity.success);\r\n\r\n // Recalculate the total parcels after updating the scanned count\r\n this.totalParcels = this.rowsParcelDetail.reduce((total, row) => total + row.scannedCount, 0);\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n },\r\n (error) => {\r\n console.error('Error updating scanned count:', error);\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n );\r\n }\r\n\r\n\r\n onPrintAdditionalLabelsClick(row: any) {\r\n if (row) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n //Replacing with direct print\r\n this.alertService.showMessage('', `Label printing initiated`, MessageSeverity.success);\r\n\r\n this.fowkesService.printBarcodeLabelDirect(row.invoiceNumber, this.accountService.currentUser.email, row.salesOrder,\r\n 1, \"DESPATCH\").subscribe(x => this.alertService.showMessage('', `Label printed`, MessageSeverity.success), error => this.onDataLoadFailed(error));\r\n \r\n\r\n //this.fowkesService.initiatelabelprinting(row.id, 1).subscribe(\r\n // (response) => {\r\n // this.alertService.showMessage('', `Label printing initiated`, MessageSeverity.success);\r\n // // console.log('Label printing initiated:', response);\r\n // // this.fowkesService.printAdditionalLabels(row.invoiceNumber, this.accountService.currentUser.email, row.salesOrder, ).subscribe(x => this.onLabelSuccessful(x, false, row.invoiceNumber), error => this.onDataLoadFailed(error));\r\n // },\r\n // (error) => {\r\n // console.error('Error initiating label printing:', error);\r\n // }\r\n //);\r\n }\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n\r\n openReturnedModal(row: ITSParcelTrackingDetail) {\r\n // Set the current row\r\n this.currentReturnedRow = new ITSParcelTrackingDetail();\r\n this.currentReturnedRow = row;\r\n this.returnedParcels = row.scannedCount;\r\n\r\n if (!this.returnedModal) {\r\n setTimeout(() => {\r\n if (this.returnedModal) {\r\n this.returnedModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.returnedModal.show();\r\n }\r\n }\r\n\r\n markAsReturned() {\r\n // Update the returned parcel count and reason\r\n this.currentReturnedRow.undeliveredCount = this.returnedParcels;\r\n this.currentReturnedRow.undeliveredReason = this.returnedReason;\r\n\r\n // Set the undelivered status, date, and user\r\n this.currentReturnedRow.undeliveredStatus = 'Returned';\r\n this.currentReturnedRow.undeliveredDate = new Date();\r\n this.currentReturnedRow.undeliveredUser = this.accountService.currentUser.email;\r\n\r\n // Update the row in the database\r\n this.fowkesService.updateparcelsUndelivered(this.currentReturnedRow.id, this.currentReturnedRow.undeliveredCount, this.currentReturnedRow.undeliveredReason, this.currentReturnedRow.undeliveredUser).subscribe(\r\n (response) => {\r\n console.log('Undelivered flag updated:', response);\r\n this.alertService.showMessage('', `Parcel marked as returned`, MessageSeverity.success);\r\n },\r\n (error) => {\r\n console.error('Error updating undelivered flag:', error);\r\n }\r\n );\r\n\r\n this.closeReturned();\r\n }\r\n\r\n closeReturned() {\r\n // Close the modal\r\n this.returnedModal.hide();\r\n }\r\n\r\n\r\n\r\n onAddNotes(row: ITSParcelTrackingDetailLog) {\r\n // Set the current row\r\n this.currentUpdatingRow = new ITSParcelTrackingDetailLog();\r\n this.currentUpdatingRow = row;\r\n this.despatchedParcels = row.itsParcelCount;\r\n this.comment = \"\";\r\n this.changedReason = this.selectUndefinedOptionValue;\r\n\r\n if (!this.notesModal) {\r\n setTimeout(() => {\r\n if (this.notesModal) {\r\n this.notesModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.notesModal.show();\r\n }\r\n }\r\n\r\n setComment() {\r\n\r\n const today = new Date();\r\n const formattedDate = `${today.getDate()}/${today.getMonth() + 1}/${today.getFullYear()}`;\r\n this.comment = `${formattedDate} - ${this.accountService.currentUser.email}: Changed parcel count to ${this.despatchedParcels} due to reason: ${this.changedReason}.`;\r\n }\r\n\r\n updateDespatched() {\r\n\r\n if (this.changedReason == this.selectUndefinedOptionValue) {\r\n this.alertService.showMessage('Warning', `Please select a reason before saving`, MessageSeverity.warn);\r\n }\r\n else {\r\n // Update the despatched parcel count and reason\r\n this.currentUpdatingRow.itsParcelCount = this.despatchedParcels;\r\n this.currentUpdatingRow.itsUpdatedBy = this.accountService.currentUser.email;\r\n this.currentUpdatingRow.itsDespatchNotes = this.comment + \" \" + this.currentUpdatingRow.itsDespatchNotes;\r\n\r\n // Update the row in the database\r\n this.fowkesService.updateDespatchParcels(this.currentUpdatingRow.id, this.currentUpdatingRow).subscribe(\r\n (response) => {\r\n\r\n this.alertService.showMessage('', `Record Updated`, MessageSeverity.success);\r\n },\r\n (error) => {\r\n console.error('Error updating', error);\r\n }\r\n );\r\n\r\n this.closeNotes();\r\n }\r\n \r\n }\r\n\r\n closeNotes() {\r\n // Close the modal\r\n this.notesModal.hide();\r\n }\r\n\r\n\r\n //onUndeliveredChanged(row: ITSParcelTrackingDetail) {\r\n // // Toggle the undelivered flag\r\n // row.undeliveredStatus = \"Returned\";\r\n\r\n // // If the item is marked as undelivered, set the undelivered count and user\r\n // if (row.undeliveredStatus == \"Returned\") {\r\n // row.undeliveredCount = row.scannedCount;\r\n // row.undeliveredUser = 'current_user'; // You can set the appropriate user here\r\n // row.undeliveredStatus = 'Undelivered'; // Set the status\r\n // row.undeliveredDate = new Date(); // Set the undelivered date\r\n // } else {\r\n // // If the item is marked as delivered again, clear undelivered fields\r\n // row.undeliveredCount = null;\r\n // row.undeliveredUser = null;\r\n // row.undeliveredStatus = null;\r\n // row.undeliveredDate = null;\r\n // }\r\n\r\n // // Update the row in the database\r\n // this.fowkesService.updateUndeliveredFlag(row.id, row.undelivered).subscribe(\r\n // (response) => {\r\n // console.log('Undelivered flag updated:', response);\r\n // this.alertService.showMessage('', `Undelivered flag updated`, MessageSeverity.success);\r\n // },\r\n // (error) => {\r\n // console.error('Error updating undelivered flag:', error);\r\n // }\r\n // );\r\n //}\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve customers from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n\r\n viewSalesInvoice() {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.salesOrder);\r\n sessionStorage.setItem(localStorageActions.Customer, this.ITSObject.customerCode);\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.ITSObject.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: this.ITSObject.customerCode } });\r\n }\r\n\r\n\r\n viewCreditNote() {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.creditNoteNumber);\r\n sessionStorage.setItem(localStorageActions.Customer, this.ITSObject.customerCode);\r\n sessionStorage.removeItem(localStorageActions.InvoiceNumber);\r\n // sessionStorage.setItem(localStorageActions.InvoiceNumber, this.ITSObject.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: this.ITSObject.customerCode, credit: \"C\" } });\r\n }\r\n\r\n viewTransfer() {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.salesOrder);\r\n sessionStorage.setItem(localStorageActions.InvoiceNumber, this.ITSObject.invoiceNumber);\r\n this.router.navigate(['../../salesorders'], { fragment: 'invoice', queryParams: { customer: 'TRANSFER' } });\r\n }\r\n\r\n\r\n viewDocuments() {\r\n sessionStorage.removeItem(localStorageActions.PODReference);\r\n sessionStorage.setItem(localStorageActions.PODReference, this.ITSObject.invoiceNumber);\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, this.ITSObject.salesOrder);\r\n this.router.navigate(['../pods'], { fragment: 'view', queryParams: { invoice: this.ITSObject.salesOrder } });\r\n }\r\n\r\n viewITS() {\r\n this.router.navigate(['/reports'], { fragment: 'invoicestatus' });\r\n }\r\n\r\n\r\n controlReport() {\r\n this.router.navigate(['/reports'], { fragment: 'control' });\r\n }\r\n\r\n\r\n\r\n reportDetailModalHide() {\r\n this.driversLogHeader = null;\r\n if (this.reportDetailModal) {\r\n this.reportDetailModal.hide();\r\n }\r\n this.filterChanged();\r\n }\r\n\r\n\r\n changeSort(sortBy: string) {\r\n if (sortBy) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.sortBy = sortBy;\r\n\r\n if (sortBy === 'PostalCode') {\r\n\r\n this.rowsParcelDetail.sort((a, b) => a.shipPostalCode.localeCompare(b.shipPostalCode));\r\n } else if (sortBy === 'ID') {\r\n\r\n this.rowsParcelDetail.sort((a, b) => a.id - b.id);\r\n }\r\n\r\n // After sorting is done, stop the loading message and indicator\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n }\r\n\r\n\r\n\r\n printDriversLog(row: ITSDriversLog) {\r\n if (row) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.cardType = \"DriversLog\";\r\n this.fowkesService.getPrintLogBookPDF(this.cardType, row.id.toString(), this.sortBy).subscribe(x => this.onFileSuccessful(x, false, row.vehicleNumber), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n }\r\n\r\n\r\n onLabelSuccessful(x: Blob, preview: boolean, invoice: string): void {\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n \r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = \"Labels_\" + invoice + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n onFileSuccessful(x: Blob, preview: boolean, id: string): void {\r\n\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.loadingIndicator = false;\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.cardType + \"_\" + id + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n printService() {\r\n // this.fowkesService.RefireLogPrintingQueue().subscribe(x => this.refresh(), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n\r\n previewITS(row: ITSParcelTrackingDetail) {\r\n\r\n this.selectedInvoice = row.invoiceNumber;\r\n this.selectedCustomer = row.customer;\r\n\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != row.invoiceNumber) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoiceNumber);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != row.customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, row.customer);\r\n }\r\n\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n itsModalHide() {\r\n this.selectedInvoice = null;\r\n if (this.itsModal) {\r\n this.itsModal.hide();\r\n }\r\n }\r\n\r\n gotToITS() {\r\n\r\n this.router.navigate(['../../reports'], { fragment: 'invoicestatus', queryParams: { customer: this.selectedCustomer } });\r\n }\r\n\r\n\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Id\", \"Date\", \"Driver\", \"DriverName\", \"Vehicle\", \"VehicleDescription\", \"Cage\", \"CageDescription\", \"NoParcels\", \"Returned\"]\r\n };\r\n\r\n var filename = \"DriversLog\";\r\n var selectRows = [...this.rowsDriverLogHeader];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.trackingInsertDate).toISOString().split('T')[0];\r\n exportRows.push({\r\n Id: row.id, Date: date, Driver: row.driverCode, DriverName: row.driverName, Vehicle: row.vehicleNumber, VehicleDescription: row.vehicleDescription,\r\n Cage: row.cageNumber, CageDescription: row.cageDescription, NoParcels: row.totalParcels, Returned: row.totalParcelsUndelivered\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n\r\n resultDetails() {\r\n const options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Id\", \"Date\", \"Driver\", \"DriverName\", \"Vehicle\", \"VehicleDescription\", \"Cage\", \"CageDescription\", \"NoParcels\", \"Returned\",\r\n \"Detail_InvoiceNumber\", \"Detail_Customer\", \"Detail_Customer_Name\", \"Parcel_Count\", \"Parcels_Scanned\", \"Detail_ScannedDate\"] // ... Invoice\tCustomer\tCustomer Name\t#Parcels\t#Scanned\tTelephone\tAddress\t#Returned\r\n };\r\n\r\n var filename = \"DriversLogDetails\";\r\n var selectRows = [...this.rowsDriverLogHeader];\r\n var exportRows = [];\r\n for (let row of selectRows) {\r\n const date = new Date(row.trackingInsertDate).toISOString().split('T')[0];\r\n const headerData = {\r\n Id: row.id, Date: date, Driver: row.driverCode, DriverName: row.driverName, Vehicle: row.vehicleNumber, VehicleDescription: row.vehicleDescription,\r\n Cage: row.cageNumber, CageDescription: row.cageDescription, NoParcels: row.totalParcels, Returned: row.totalParcelsUndelivered\r\n };\r\n\r\n if (row.details && row.details.length) {\r\n for (let detail of row.details) {\r\n exportRows.push({\r\n ...headerData,\r\n Detail_InvoiceNumber: detail.invoiceNumber,\r\n Detail_Customer: detail.customer,\r\n Detail_Customer_Name: detail.customerName,\r\n Parcel_Count: detail.itsParcelCount,\r\n Parcels_Scanned: detail.scannedCount,\r\n Detail_ScannedDate: detail.scannedDate,\r\n // ... other detail fields here\r\n });\r\n }\r\n } else {\r\n exportRows.push(headerData);\r\n }\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{row.user_first_name}} {{row.user_last_name}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:'R':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Printed\\r\\n \\r\\n Not Printed\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value | date: 'yyyy/MM/dd h:mm a'}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n Despatch\\r\\n Resin\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

ITS:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\"","module.exports = \":host /deep/ .treeview-container .row-item {\\n margin-bottom: .3rem;\\n width: 400px; }\\n\\n:host /deep/ .treeview-container {\\n height: calc(100vh - 100px);\\n max-height: 1000px !important; }\\n\\n:host /deep/ .treeview-header {\\n visibility: hidden;\\n margin: -26px; }\\n\\n.tree-rows {\\n margin-left: 20px;\\n background-color: white;\\n height: 30px; }\\n\\n.tree-rows .categories {\\n border-bottom: 1px solid;\\n border-bottom-color: whitesmoke; }\\n\\n.tree-rows .items {\\n height: 20px; }\\n\\n.category-header {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.item-row {\\n padding: .2rem 1rem;\\n margin-bottom: -5px;\\n background-color: #ddd;\\n box-shadow: -1px 4px 31px -7px rgba(0, 0, 0, 0.75);\\n border-radius: 5px; }\\n\\n.content-container {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90cmFja2luZy90cmFja2luZy1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcdHJhY2tpbmdcXHRyYWNraW5nLWNvbXBvbmVudHNcXHRyYWNraW5nLXByaW50LWxhYmVscy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFvQjtFQUNwQixZQUFZLEVBQUE7O0FBR2Q7RUFDRSwyQkFBMkI7RUFDM0IsNkJBQTZCLEVBQUE7O0FBSS9CO0VBRUksa0JBQWtCO0VBQ3BCLGFBQWEsRUFBQTs7QUFHZjtFQUNFLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIsWUFBWSxFQUFBOztBQUhkO0lBTUksd0JBQXdCO0lBQ3hCLCtCQUErQixFQUFBOztBQVBuQztJQVdFLFlBQVksRUFBQTs7QUFJZDtFQUNFLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBR3RCLGtEQUErQztFQUMvQyxrQkFBa0IsRUFBQTs7QUFJcEI7RUFDRSxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUd0QixrREFBK0M7RUFDL0Msa0JBQWtCLEVBQUE7O0FBS3BCO0VBQ0UsMkJBQTJCO0VBQzNCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3RyYWNraW5nL3RyYWNraW5nLWNvbXBvbmVudHMvdHJhY2tpbmctcHJpbnQtbGFiZWxzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3QgL2RlZXAvIC50cmVldmlldy1jb250YWluZXIgLnJvdy1pdGVtIHtcclxuICBtYXJnaW4tYm90dG9tOiAuM3JlbTtcclxuICB3aWR0aDogNDAwcHg7XHJcbn1cclxuXHJcbjpob3N0IC9kZWVwLyAudHJlZXZpZXctY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XHJcbiAgbWF4LWhlaWdodDogMTAwMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG46aG9zdCAvZGVlcC8gLnRyZWV2aWV3LWhlYWRlciB7XHJcblxyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIG1hcmdpbjogLTI2cHg7XHJcbn1cclxuXHJcbi50cmVlLXJvd3Mge1xyXG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIGhlaWdodDogMzBweDtcclxuXHJcbiAgLmNhdGVnb3JpZXMge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogd2hpdGVzbW9rZTtcclxuICB9XHJcblxyXG4gIC5pdGVtcyB7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmNhdGVnb3J5LWhlYWRlciB7XHJcbiAgcGFkZGluZzogLjJyZW0gMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG5cclxuXHJcbi5pdGVtLXJvdyB7XHJcbiAgcGFkZGluZzogLjJyZW0gMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtMXB4IDRweCAzMXB4IC03cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAtbW96LWJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJveC1zaGFkb3c6IC0xcHggNHB4IDMxcHggLTdweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG5cclxuXHJcblxyXG4uY29udGVudC1jb250YWluZXIge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcbiJdfQ== */\"","import { HttpClient } from '@angular/common/http';\r\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { ITSLabelPrinting } from '../../../models/invoice-tracking-label-printing.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\n\r\n@Component({\r\n selector: 'tracking-print-labels',\r\n templateUrl: './tracking-print-labels.component.html',\r\n styleUrls: ['./tracking-print-labels.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class TrackingPrintLabelsComponent {\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n ranges = {\r\n 'All Dates': [moment().subtract(2, 'year').startOf('month'), moment()],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'This Year': [moment().startOf('year'), moment()],\r\n 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]\r\n };\r\n\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n\r\n show: boolean;\r\n\r\n columns: any[] = [];\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n\r\n @ViewChild('printedTemplate')\r\n printedTemplate: TemplateRef;\r\n\r\n @ViewChild('labelModal')\r\n labelModal: ModalDirective;\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n rows: ITSLabelPrinting[] = [];\r\n rowsCache: ITSLabelPrinting[];\r\n\r\n labelDetail: ITSLabelPrinting = new ITSLabelPrinting();\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n src: string;\r\n selectedInvoice: any;\r\n currentStatus: any;\r\n invoiceNumber: any;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService, private fowkesService: FowkesOnlineService, private configurations: ConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.setData();\r\n\r\n this.selected = {\r\n startDate: moment().startOf('day'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.setData();\r\n }\r\n\r\n private setData() {\r\n this.columns = [\r\n { prop: 'insertDate', name: 'Date', width: 140, cellTemplate: this.dateTemplate },\r\n { prop: 'invoiceNumber', name: 'Invoice', width: 100, cellTemplate: this.invoiceTemplate },\r\n { prop: 'numberOfLabels', name: '#Labels', width: 80 },\r\n { prop: 'operator', name: 'Operator', width: 120 },\r\n { prop: 'printed', name: 'Printed', width: 100, cellTemplate: this.printedTemplate },\r\n { prop: 'printedTo', name: 'Printer', width: 150 },\r\n { prop: 'printedDate', name: 'Date Printed', width: 140, cellTemplate: this.dateTemplate },\r\n { prop: 'despatchParcels', name: '#Parcels', width: 80 }\r\n ];\r\n\r\n this.columns.push({ name: 'Reprint Label', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n }\r\n\r\n\r\n toggle() {\r\n this.show = true;\r\n }\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.filterChanged();\r\n this.show = false;\r\n }\r\n\r\n filterChanged() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n refresh() {\r\n\r\n this.selected = {\r\n startDate: moment().startOf('day'),\r\n endDate: moment().endOf('day')\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n\r\n let startD: Date = new Date(this.selected.startDate.toString());\r\n let endD: Date = new Date(this.selected.endDate.toString());\r\n // Increase the end date by one day\r\n endD.setDate(endD.getDate() + 1);\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.getPrintingByDate(startD.toJSON(), endD.toJSON()).subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDataLoadSuccessful(labels: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (labels[0]) {\r\n\r\n this.rowsCache = [...labels[0]];\r\n this.rows = [...this.rowsCache];\r\n\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.salesOrder, r.invoiceNumber, r.operator, r.insertDate, r.printed, r.numberOfLabels));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n\r\n\r\n onPrintAdditionalLabelsClick(row: ITSLabelPrinting, selectedPrinter: string) {\r\n if (row) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.alertService.showMessage('', `Label printing initiated`, MessageSeverity.success);\r\n this.fowkesService.printBarcodeLabelDirect(row.invoiceNumber, this.accountService.currentUser.email, row.salesOrder, 1, selectedPrinter).subscribe(\r\n (response) => {\r\n this.refresh();\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n },\r\n (error) => {\r\n console.error('Error initiating label printing:', error);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n enableEditMethod(row: ITSLabelPrinting, i) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n console.log(i, row);\r\n }\r\n\r\n saveSegment(row: ITSLabelPrinting) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n // row.createdBy = this.accountService.currentUser.email;\r\n this.fowkesService.updatePrinting(row.id, row).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n labelModalHide() {\r\n this.labelDetail = new ITSLabelPrinting();\r\n this.labelModal.hide();\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n printService() {\r\n this.fowkesService.RefireLabelPrintingQueue().subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n previewITS(row: ITSLabelPrinting) {\r\n\r\n this.selectedInvoice = row.invoiceNumber;\r\n this.currentStatus = row.status;\r\n this.invoiceNumber = row.invoiceNumber;\r\n\r\n \r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != row.invoiceNumber) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoiceNumber);\r\n }\r\n\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n itsModalHide() {\r\n this.selectedInvoice = null;\r\n if (this.itsModal) {\r\n this.itsModal.hide();\r\n }\r\n }\r\n\r\n\r\n gotToITS() {\r\n\r\n this.router.navigate(['../../reports'], { fragment: 'invoicestatus', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n\r\n results() {\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n noDownload: false,\r\n headers: [\"Id\", \"Date\", \"Invoice\", \"Operator\", \"Printed\", \"Status\", \"NoOfLabels\", \"NoOfParcels\"]\r\n };\r\n\r\n var filename = \"Barcodes_Printed\";\r\n var selectRows = [...this.rows];\r\n var exportRows = [];\r\n for (var row of selectRows) {\r\n let date = new Date(row.insertDate).toISOString().split('T')[0];\r\n let printDate = new Date(row.printedDate).toISOString().split('T')[0];\r\n exportRows.push({\r\n Id: row.id, Date: date, Invoice: row.invoiceNumber, Operator: row.operator, Printed: printDate, Status: row.status,\r\n NoOfLabels: row.numberOfLabels, NoOfParcels: row.despatchParcels\r\n });\r\n }\r\n\r\n return new ngxCsv(exportRows, filename, options);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Registration PlateVehicle DescriptionPrintDelete
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Print \\r\\n \\r\\n Delete \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

New Vehicle

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".tbody {\\n height: calc(100vh - 200px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 3px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90cmFja2luZy90cmFja2luZy1jb21wb25lbnRzL0M6XFxTVk5cXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXEZvd2tlc0NvcmVcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcdHJhY2tpbmdcXHRyYWNraW5nLWNvbXBvbmVudHNcXHRyYWNraW5nLXZlaGljbGVzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3RyYWNraW5nL3RyYWNraW5nLWNvbXBvbmVudHMvdHJhY2tpbmctdmVoaWNsZXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLnRib2R5IHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXJnaW4tcmlnaHQ6IDNweDtcclxufVxyXG4iXX0= */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { Brand } from '../../../models/brand.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CMStockCode } from '../../../models/cms-stockcode.model';\r\nimport { ITSVehicles } from '../../../models/invoice-tracking-vehicles.model';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\n\r\n@Component({\r\n selector: 'tracking-vehicles',\r\n templateUrl: './tracking-vehicles.component.html',\r\n styleUrls: ['./tracking-vehicles.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class TrackingVehiclesComponent {\r\n\r\n @ViewChild('vehicleModal')\r\n vehicleModal: ModalDirective;\r\n\r\n emptyDetails: boolean;\r\n\r\n rows: ITSVehicles[] = [];\r\n rowsCache: ITSVehicles[];\r\n\r\n vehicleDetail: ITSVehicles = new ITSVehicles();\r\n\r\n isEditMode = false;\r\n enableEdit = false;\r\n enableEditIndex = null;\r\n\r\n myForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.minLength(3)]),\r\n file: new FormControl('', [Validators.required]),\r\n fileSource: new FormControl('', [Validators.required])\r\n });\r\n\r\n newformData = new FormData();\r\n isSaving: boolean;\r\n loadingIndicator: boolean;\r\n\r\n searchTerm: string = \"\";\r\n cardType: string;\r\n src: string;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute,\r\n private accountService: AccountService, private fowkesService: FowkesOnlineService, private configurations: ConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.fowkesService.getAllVehicles().subscribe(x => this.onDataLoadSuccessful([x]), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onDataLoadSuccessful(vehicles: any[]) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (vehicles[0]) {\r\n\r\n this.rowsCache = [...vehicles[0]];\r\n this.rows = [...this.rowsCache];\r\n\r\n\r\n if (this.searchTerm.trim() != \"\") {\r\n this.onSearchChanged(this.searchTerm);\r\n }\r\n\r\n }\r\n else {\r\n this.emptyDetails = true;\r\n }\r\n }\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (value.trim() != \"\") {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.vehicleName, r.vehicleDescription, r.vehicleNumber));\r\n this.searchTerm = value;\r\n }\r\n else {\r\n this.searchTerm = \"\";\r\n this.rows = [...this.rowsCache];\r\n }\r\n }\r\n\r\n //onValidationSuccesful(x: CMStockCode[], row: Brand): void {\r\n // console.log(x);\r\n // if (x && x.length >= 1) {\r\n // this.alertService.showMessage('Warning', `You cannot delete a brand with stock codes associated. There are ` + x.length + ' items linked to this brand ', MessageSeverity.warn);\r\n // }\r\n // else {\r\n // this.isSaving = true;\r\n // this.alertService.startLoadingMessage('Saving changes...');\r\n // this.sysproService.deleteBrand(row.id).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n // }\r\n //}\r\n\r\n enableEditMethod(row: ITSVehicles, i) {\r\n this.enableEdit = true;\r\n this.enableEditIndex = i;\r\n console.log(i, row);\r\n }\r\n\r\n saveSegment(row: ITSVehicles) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n row.createdBy = this.accountService.currentUser.email;\r\n this.fowkesService.updateVehicle(row.id, row).subscribe(x => this.onUpdateSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n\r\n onUpdateSuccesful(): void {\r\n\r\n this.isSaving = false;\r\n this.enableEdit = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n\r\n vehicleModalHide() {\r\n this.vehicleDetail = new ITSVehicles();\r\n this.vehicleModal.hide();\r\n }\r\n\r\n newVehicle() {\r\n\r\n if (!this.vehicleModal) {\r\n setTimeout(() => {\r\n if (this.vehicleModal) {\r\n this.vehicleModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.vehicleModal.show();\r\n }\r\n\r\n }\r\n\r\n saveVehicle() {\r\n\r\n //Validate save\r\n if (this.vehicleDetail) {\r\n if (this.vehicleDetail.vehicleNumber) {\r\n if (this.rowsCache.filter(x => x.vehicleNumber == this.vehicleDetail.vehicleNumber).length >= 1) {\r\n this.alertService.showMessage('Warning', `This Vehicle already exists`, MessageSeverity.warn);\r\n }\r\n else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage('Saving changes...');\r\n this.vehicleDetail.createdBy = this.accountService.currentUser.email;\r\n this.vehicleDetail.vehicleName = this.vehicleDetail.vehicleDescription;\r\n this.fowkesService.addNewVehicle(this.vehicleDetail).subscribe(x => this.onSaveSuccesful(), error => this.onPostDataLoadFailed(error));\r\n }\r\n //else {\r\n // if (this.newformData.has('file')) {\r\n // this.sysproService.postFileData(this.newformData, \"BRAND\", this.brandDetail.brandName.replace(/\\//g, \"--\").replace(/\\+/gi, \"___\").replace(/\\%/gi, \"---\")).subscribe(x => this.newFilePostedSuccess(x), error => this.onPostDataLoadFailed(error));\r\n // }\r\n // else {\r\n // this.alertService.showMessage('Warning', `Remeber to add a file first`, MessageSeverity.warn);\r\n // }\r\n //}\r\n }\r\n else {\r\n this.alertService.showMessage('Warning', `Make sure to enter a driver name`, MessageSeverity.warn);\r\n }\r\n }\r\n }\r\n\r\n onSaveSuccesful(): void {\r\n\r\n this.vehicleModalHide();\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage('Success', `Updated successfully`, MessageSeverity.success);\r\n this.loadData();\r\n }\r\n\r\n deleteRow(row: ITSVehicles) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.vehicleName + ' - ' + row.vehicleNumber + '\\\"?', DialogType.confirm, () => this.deleteRowHelper(row));\r\n }\r\n\r\n deleteRowHelper(row: ITSVehicles) {\r\n\r\n this.alertService.startLoadingMessage('Deleting...');\r\n this.loadingIndicator = true;\r\n\r\n this.fowkesService.deleteVehicle(row.id).subscribe(results => {\r\n\r\n this.loadData();\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage('Success', row.vehicleNumber + ` Successfully deleted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage('Delete Error', `An error occured whilst deleting the line.\\r\\nError: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n });\r\n }\r\n\r\n\r\n get application(): string {\r\n return this.configurations.applicationName;\r\n }\r\n\r\n printCard(row: ITSVehicles) {\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.cardType = \"VehicleCard\";\r\n this.fowkesService.getPrintCardPDF(this.cardType, row.vehicleNumber, this.application).subscribe(x => this.onFileSuccessful(x, false, row.vehicleNumber), error => this.onDataLoadFailed(error));\r\n\r\n }\r\n\r\n onFileSuccessful(x: Blob, preview: boolean, id: string): void {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n var test = x;\r\n\r\n const url = window.URL.createObjectURL(test);\r\n var newBlob = new Blob([x], { type: \"application/pdf\" });\r\n\r\n this.src = url;\r\n if (!preview) {\r\n console.log(x);\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n var link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.cardType + \"_\" + id + \".pdf\";\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n }\r\n else {\r\n //this.pdfModal.show();\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n\r\n setTimeout(() => {\r\n iframe.contentWindow.print();\r\n }, 1000);\r\n }\r\n }\r\n\r\n\r\n onPostDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`, MessageSeverity.error, error);\r\n }\r\n\r\n //onPostDataSuccessful(arg0: any[]) {\r\n // throw new Error(\"Method not implemented.\");\r\n //}\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdHJhY2tpbmcvdHJhY2tpbmcuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'tracking',\r\n templateUrl: './tracking.component.html',\r\n styleUrls: ['./tracking.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class TrackingComponent {\r\n\r\n isListActivated = false;\r\n isInvoiceStatusActivated = true;\r\n isInvoiceTrackingPurgeActivated = false;\r\n isDriversListActivated = false;\r\n isVehicleListActivated = false;\r\n isCageListActivated = false;\r\n isAreaListActivated = false;\r\n isPrintQueueActivated = false;\r\n isDriversReportActivated = false;\r\n isCollapsed = false;\r\n //isLogInActivated = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly reportsItsListTab = 'itslist';\r\n readonly reportsInvoiceStatusTab = 'invoicestatus';\r\n readonly reportInvoiceTrackingPurgeTab = 'invoicetrackingpurge';\r\n readonly driversListTab = 'driverslist';\r\n readonly vehiclesListTab = 'vehicleslist';\r\n readonly cagesListTab = 'cageslist';\r\n readonly areaListTab = 'arealist';\r\n readonly itsPrintQueueTab = 'itsprintqueue';\r\n readonly driversReportTab = 'itsdriversreport';\r\n //readonly loginTab = 'itslogin';\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private accountService: AccountService,\r\n private configurations: ConfigurationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n }\r\n \r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n showContent(anchor: string) {\r\n\r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.reportsItsListTab}Tab`);\r\n \r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n this.isListActivated = activeTab == this.reportsItsListTab;\r\n this.isInvoiceStatusActivated = activeTab == this.reportsInvoiceStatusTab;\r\n this.isInvoiceTrackingPurgeActivated = activeTab == this.reportInvoiceTrackingPurgeTab;\r\n\r\n this.isDriversListActivated = activeTab == this.driversListTab;\r\n this.isVehicleListActivated = activeTab == this.vehiclesListTab;\r\n this.isCageListActivated = activeTab == this.cagesListTab;\r\n this.isAreaListActivated = activeTab == this.areaListTab;\r\n this.isPrintQueueActivated = activeTab == this.itsPrintQueueTab;\r\n this.isDriversReportActivated = activeTab == this.driversReportTab;\r\n\r\n //this.isLogInActivated = activeTab == this.loginTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n this.isListActivated = activeTab == this.reportsItsListTab;\r\n this.isInvoiceStatusActivated = activeTab == this.reportsInvoiceStatusTab;\r\n this.isInvoiceTrackingPurgeActivated = activeTab == this.reportInvoiceTrackingPurgeTab;\r\n this.isDriversListActivated = activeTab == this.driversListTab;\r\n this.isVehicleListActivated = activeTab == this.vehiclesListTab;\r\n this.isCageListActivated = activeTab == this.cagesListTab;\r\n this.isAreaListActivated = activeTab == this.areaListTab;\r\n this.isPrintQueueActivated = activeTab == this.itsPrintQueueTab;\r\n this.isDriversReportActivated = activeTab == this.driversReportTab;\r\n\r\n //this.isLogInActivated = activeTab == this.loginTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n \r\n\r\n get canViewDriversLog() {\r\n return this.accountService.userHasPermission(Permission.viewITSConfigPermission);\r\n }\r\n\r\n\r\n get canManageDriversSetup() {\r\n return this.accountService.userHasPermission(Permission.manageITSConfigPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
Customer Insights
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 {{selected.startDate | date:'dd MMMM yyyy'}}
\\r\\n
 {{selected.endDate | date:'dd MMMM yyyy'}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ kpis.totalCustomers }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ kpis.totalOrders }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n R {{ kpis.totalRevenue | currency:' ':'symbol':'1.2' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ kpis.firstTimeOrders }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ kpis.returningOrders }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ kpis.customerRetentionRate | number: '1.0-2' }}%\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n R {{ kpis.oneTimeCustomerRevenue | currency:' ':'symbol':'1.2' }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n R {{ kpis.repeatCustomerRevenue | currency:' ':'symbol':'1.2' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ kpis.repeatCustomerSalesPercentage | number: '1.0-2' }}%\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
0\\\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Date Filtered: {{ selected.startDate | date:'dd MMM yyyy' }} - {{ selected.endDate | date:'dd MMM yyyy' }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ filteredCustomers.length }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ kpis.filteredTotalOrders }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n R {{ kpis.filteredTotalRevenue | currency:' ':'symbol':'1.2' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ kpis.filteredFirstTimeOrders }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ kpis.filteredReturningOrders }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ (kpis.filteredReturningOrders / kpis.filteredTotalOrders) * 100 | number: '1.0-2' }}%\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n R {{ kpis.filteredFirstTimeRevenue | currency:' ':'symbol':'1.2' }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n R {{ kpis.filteredRepeatRevenue | currency:' ':'symbol':'1.2' }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ kpis.filteredRepeatPercentage | number: '1.0-2' }}%\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n View Orders\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n R {{ value | currency:' ':'symbol':'1.2' }}\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Orders for {{ selectedCustomer?.name }}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{row.user_first_name}} {{row.user_last_name}} \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{value | currency:'R':'symbol':'1.2'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value | date: 'yyyy/MM/dd ' }}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Quote:

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

SALES ORDER:

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

ITS:

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".address-container {\\n max-width: 400px;\\n width: 100%;\\n position: relative;\\n background: #F9F9F9;\\n padding: 25px;\\n margin: 10px;\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); }\\n .address-container fieldset {\\n border: medium none !important;\\n margin: 0 0 10px;\\n min-width: 100%;\\n padding: 0;\\n width: 100%; }\\n /* Large */\\n .flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start;\\n border-bottom: 0.5px solid rgba(0, 0, 0, 0.1); }\\n .flex-distributed.columns {\\n padding: 10px; }\\n .control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .control-container .control-label {\\n padding: .10rem .50rem;\\n margin-bottom: 0px;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid #eee;\\n font-weight: bold;\\n width: 200px;\\n flex: none; }\\n .control-container .control-detail {\\n padding-left: 10px;\\n flex-grow: 2;\\n min-width: 200px; }\\n .control-container .control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n .row {\\n border: 1px solid #eee;\\n background-image: linear-gradient(white, white 10%, #f7f7f7);\\n border-radius: 3px; }\\n .control-label {\\n font-size: 13px;\\n padding: 3px;\\n margin-bottom: 0px;\\n min-width: 170px; }\\n .control-detail {\\n padding: 8px; }\\n .control-detail .nav-link {\\n padding: 0; }\\n .control-detail .no-padding {\\n padding: 2px; }\\n .control-detail-edit {\\n padding: 5px 10px 0 10px; }\\n .small-flex-distributed {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: space-between;\\n align-items: flex-start; }\\n .small-flex-distributed.columns {\\n padding: 5px; }\\n .small-control-container {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n align-items: baseline; }\\n .small-control-container .small-control-label {\\n padding: .05rem .25rem;\\n margin-bottom: 0px;\\n /*background-color: rgba(0, 0, 0, 0.03);\\r\\n border-bottom: 1px solid #eee;*/\\n font-weight: bold;\\n width: 120px; }\\n .small-control-container .small-control-detail {\\n padding-left: 10px;\\n min-width: 100px; }\\n .small-control-container .small-control-detail-edit {\\n padding-left: 10px;\\n flex: 3;\\n flex-grow: 2; }\\n /* Medium screens */\\n @media all and (max-width: 800px) {\\n .flex-distributed {\\n /* When on medium sized screens, we center it by evenly distributing empty space around items */\\n justify-content: space-around; } }\\n /* Small screens */\\n @media all and (max-width: 500px) {\\n .flex-distributed {\\n /* On small screens, we are no longer using row direction but column */\\n flex-direction: column; } }\\n .row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n width: 100%; }\\n .column {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n float: left; }\\n .column label {\\n padding: 5px; }\\n .separator-hr {\\n margin: 7px 5px;\\n border-top-style: dashed; }\\n .subseparator-hr {\\n margin: 7px 5px;\\n border-top-style: none !important; }\\n .last-separator-hr {\\n margin-top: 7px; }\\n .form-group {\\n margin-top: 0;\\n margin-bottom: 0; }\\n .form-control-plaintext {\\n min-height: 0; }\\n .checkbox {\\n padding-top: 0; }\\n .col-reset-default {\\n padding-right: 0; }\\n .col-set-default {\\n padding-left: 5px; }\\n .col-reset-default .btn,\\n.col-set-default .btn {\\n min-width: 150px; }\\n @media (min-width: 768px) {\\n .col-form-label {\\n padding-top: 5px; } }\\n .dashboard {\\n padding: 20px; }\\n .dashboard .filters {\\n margin-bottom: 20px; }\\n .dashboard .kpi-summary {\\n margin-bottom: 20px; }\\n .dashboard .kpi-summary .card-header {\\n background: #f9f9f9;\\n padding: 15px;\\n border-radius: 5px;\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); }\\n .dashboard .kpi-summary .card-header h5 {\\n font-size: 18px;\\n margin-bottom: 15px;\\n font-weight: 600; }\\n .dashboard .kpi-summary .card-header .row {\\n margin-bottom: 10px;\\n align-items: center; }\\n .dashboard .kpi-summary .card-header .row label {\\n font-size: 14px;\\n font-weight: 500;\\n margin: 0;\\n color: #666; }\\n .dashboard .kpi-summary .card-header .row .control-detail-edit strong {\\n font-size: 16px;\\n color: #333; }\\n @media (max-width: 768px) {\\n .dashboard .kpi-summary .row {\\n margin-bottom: 5px; }\\n .dashboard .kpi-summary .row label,\\n .dashboard .kpi-summary .row .control-detail-edit {\\n text-align: left; } }\\n .dashboard .customers-table ngx-datatable {\\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy93ZWIvY29tcG9uZW50cy9DOlxcU1ZOXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxGb3drZXNDb3JlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHdlYlxcY29tcG9uZW50c1xccmVwb3J0cy13ZWJzYWxlcy1jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy93ZWIvY29tcG9uZW50cy9yZXBvcnRzLXdlYnNhbGVzLWNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGFBQWE7RUFDYixZQUFZO0VBQ1osMEVBQTBFLEVBQUE7RUFQNUU7SUFVSSw4QkFBOEI7SUFDOUIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixVQUFVO0lBQ1YsV0FBVyxFQUFBO0VBSWYsVUFBQTtFQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLHVCQUF1QjtFQUN2Qiw2Q0FBMEMsRUFBQTtFQUk1QztFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixxQ0FBcUM7SUFDckMsNkJBQTZCO0lBQzdCLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osVUFBVSxFQUFBO0VBZGQ7SUFtQkksa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixnQkFBZ0IsRUFBQTtFQXJCcEI7SUEwQkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEI7RUFDRSxzQkFBc0I7RUFDdEIsNERBQWlHO0VBQ2pHLGtCQUFrQixFQUFBO0VBR3BCO0VBQ0UsZUFBZTtFQUVmLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxZQUFZLEVBQUE7RUFEZDtJQUlJLFVBQVUsRUFBQTtFQUtkO0VBQ0UsWUFBWSxFQUFBO0VBR2Q7RUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qix1QkFBdUIsRUFBQTtFQUV6QjtFQUNFLFlBQVksRUFBQTtFQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQjttQ0MxQitCO0lENEIvQixpQkFBaUI7SUFDakIsWUFBWSxFQUFBO0VBYmhCO0lBaUJJLGtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBQTtFQWxCcEI7SUFzQkksa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxZQUFZLEVBQUE7RUFJaEIsbUJBQUE7RUFDQTtFQUNFO0lBQ0UsK0ZBQUE7SUFDQSw2QkFBNkIsRUFBQSxFQUM5QjtFQUdILGtCQUFBO0VBQ0E7RUFDRTtJQUNFLHNFQUFBO0lBQ0Esc0JBQXNCLEVBQUEsRUFDdkI7RUFJSDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLFdBQVcsRUFBQTtFQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixPQUFPO0VBQ1AsV0FBVyxFQUFBO0VBSmI7SUFPSSxZQUFZLEVBQUE7RUFJZDtFQUNFLGVBQWU7RUFDZix3QkFBd0IsRUFBQTtFQUcxQjtFQUNFLGVBQWU7RUFDZixpQ0FBaUMsRUFBQTtFQUduQztFQUNFLGVBQWUsRUFBQTtFQUdqQjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFLGFBQWEsRUFBQTtFQUdmO0VBQ0UsY0FBYyxFQUFBO0VBR2hCO0VBQ0UsZ0JBQWdCLEVBQUE7RUFHbEI7RUFDRSxpQkFBaUIsRUFBQTtFQUduQjs7RUFFRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUNFO0lBQ0UsZ0JBQWdCLEVBQUEsRUFDakI7RUFFTDtFQUNFLGFBQWEsRUFBQTtFQURmO0lBSUksbUJBQW1CLEVBQUE7RUFKdkI7SUFRSSxtQkFBbUIsRUFBQTtFQVJ2QjtNQVdNLG1CQUFtQjtNQUNuQixhQUFhO01BQ2Isa0JBQWtCO01BQ2xCLHdDQUF3QyxFQUFBO0VBZDlDO1FBaUJRLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsZ0JBQWdCLEVBQUE7RUFuQnhCO1FBdUJRLG1CQUFtQjtRQUNuQixtQkFBbUIsRUFBQTtFQXhCM0I7VUEyQlUsZUFBZTtVQUNmLGdCQUFnQjtVQUNoQixTQUFTO1VBQ1QsV0FBVyxFQUFBO0VBOUJyQjtVQW1DWSxlQUFlO1VBQ2YsV0FBVyxFQUFBO0VBTW5CO01BMUNKO1FBNENRLGtCQUFrQixFQUFBO1FBNUMxQjs7VUFnRFUsZ0JBQWdCLEVBQUEsRUFDakI7RUFqRFQ7SUF5RE0sd0NBQXdDLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3dlYi9jb21wb25lbnRzL3JlcG9ydHMtd2Vic2FsZXMtY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmFkZHJlc3MtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xyXG4gIHBhZGRpbmc6IDI1cHg7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xyXG5cclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyogTGFyZ2UgKi9cclxuLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xyXG4gIC8vaGVpZ2h0OiAyNXB4O1xyXG59XHJcblxyXG4uZmxleC1kaXN0cmlidXRlZC5jb2x1bW5zIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG5cclxuICAuY29udHJvbC1sYWJlbCB7XHJcbiAgICBwYWRkaW5nOiAuMTByZW0gLjUwcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICBmbGV4OiBub25lO1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG5cclxuICB9XHJcblxyXG4gIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZsZXg6IDM7XHJcbiAgICBmbGV4LWdyb3c6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4ucm93IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2IoMjU1LCAyNTUsIDI1NSksIHJnYigyNTUsIDI1NSwgMjU1KSAxMCUsIHJnYigyNDcsIDI0NywgMjQ3KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4uY29udHJvbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gLy8gZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogM3B4O1xyXG4gIG1hcmdpbi1ib3R0b206IDBweDtcclxuICBtaW4td2lkdGg6IDE3MHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1kZXRhaWwge1xyXG4gIHBhZGRpbmc6IDhweDtcclxuXHJcbiAgLm5hdi1saW5rIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAycHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICBwYWRkaW5nOiA1cHggMTBweCAwIDEwcHg7XHJcbn1cclxuXHJcbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG59XHJcbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtbGFiZWwge1xyXG4gICAgcGFkZGluZzogLjA1cmVtIC4yNXJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyovXHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdpZHRoOiAxMjBweDtcclxuICB9XHJcblxyXG4gIC5zbWFsbC1jb250cm9sLWRldGFpbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gIH1cclxuXHJcbiAgLnNtYWxsLWNvbnRyb2wtZGV0YWlsLWVkaXQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgZmxleDogMztcclxuICAgIGZsZXgtZ3JvdzogMjtcclxuICB9XHJcbn1cclxuXHJcbi8qIE1lZGl1bSBzY3JlZW5zICovXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XHJcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xyXG4gICAgLyogV2hlbiBvbiBtZWRpdW0gc2l6ZWQgc2NyZWVucywgd2UgY2VudGVyIGl0IGJ5IGV2ZW5seSBkaXN0cmlidXRpbmcgZW1wdHkgc3BhY2UgYXJvdW5kIGl0ZW1zICovXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICB9XHJcbn1cclxuXHJcbi8qIFNtYWxsIHNjcmVlbnMgKi9cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcclxuICAuZmxleC1kaXN0cmlidXRlZCB7XHJcbiAgICAvKiBPbiBzbWFsbCBzY3JlZW5zLCB3ZSBhcmUgbm8gbG9uZ2VyIHVzaW5nIHJvdyBkaXJlY3Rpb24gYnV0IGNvbHVtbiAqL1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4ucm93IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uY29sdW1uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZmxleDogMTtcclxuICBmbG9hdDogbGVmdDtcclxuXHJcbiAgbGFiZWwge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDdweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbiAgfVxyXG5cclxuICAuc3Vic2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogN3B4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA3cHg7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1ncm91cCB7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAuY2hlY2tib3gge1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgfVxyXG5cclxuICAuY29sLXJlc2V0LWRlZmF1bHQge1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICB9XHJcblxyXG4gIC5jb2wtc2V0LWRlZmF1bHQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgfVxyXG5cclxuICAuY29sLXJlc2V0LWRlZmF1bHQgLmJ0bixcclxuICAuY29sLXNldC1kZWZhdWx0IC5idG4ge1xyXG4gICAgbWluLXdpZHRoOiAxNTBweDtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmNvbC1mb3JtLWxhYmVsIHtcclxuICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgIH1cclxuICB9XHJcbi5kYXNoYm9hcmQge1xyXG4gIHBhZGRpbmc6IDIwcHg7XHJcblxyXG4gIC5maWx0ZXJzIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgfVxyXG5cclxuICAua3BpLXN1bW1hcnkge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcbiAgICAuY2FyZC1oZWFkZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xyXG4gICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcblxyXG4gICAgICBoNSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnJvdyB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgY29sb3I6ICM2NjY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY29udHJvbC1kZXRhaWwtZWRpdCB7XHJcbiAgICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAucm93IHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcblxyXG4gICAgICAgIGxhYmVsLFxyXG4gICAgICAgIC5jb250cm9sLWRldGFpbC1lZGl0IHtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLmN1c3RvbWVycy10YWJsZSB7XHJcbiAgICBuZ3gtZGF0YXRhYmxlIHtcclxuICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiIsIi5hZGRyZXNzLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNGOUY5Rjk7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIG1hcmdpbjogMTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLmFkZHJlc3MtY29udGFpbmVyIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG1lZGl1bSBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4vKiBMYXJnZSAqL1xuLmZsZXgtZGlzdHJpYnV0ZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5mbGV4LWRpc3RyaWJ1dGVkLmNvbHVtbnMge1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5jb250cm9sLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuY29udHJvbC1jb250YWluZXIgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmc6IC4xMHJlbSAuNTByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGZsZXg6IG5vbmU7IH1cbiAgLmNvbnRyb2wtY29udGFpbmVyIC5jb250cm9sLWRldGFpbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXgtZ3JvdzogMjtcbiAgICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gIC5jb250cm9sLWNvbnRhaW5lciAuY29udHJvbC1kZXRhaWwtZWRpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZsZXg6IDM7XG4gICAgZmxleC1ncm93OiAyOyB9XG5cbi5yb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlIDEwJSwgI2Y3ZjdmNyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4uY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIG1pbi13aWR0aDogMTcwcHg7IH1cblxuLmNvbnRyb2wtZGV0YWlsIHtcbiAgcGFkZGluZzogOHB4OyB9XG4gIC5jb250cm9sLWRldGFpbCAubmF2LWxpbmsge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLmNvbnRyb2wtZGV0YWlsIC5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMnB4OyB9XG5cbi5jb250cm9sLWRldGFpbC1lZGl0IHtcbiAgcGFkZGluZzogNXB4IDEwcHggMCAxMHB4OyB9XG5cbi5zbWFsbC1mbGV4LWRpc3RyaWJ1dGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLnNtYWxsLWZsZXgtZGlzdHJpYnV0ZWQuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4uc21hbGwtY29udHJvbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLnNtYWxsLWNvbnRyb2wtY29udGFpbmVyIC5zbWFsbC1jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAuMDVyZW0gLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAvKmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAxMjBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgbWluLXdpZHRoOiAxMDBweDsgfVxuICAuc21hbGwtY29udHJvbC1jb250YWluZXIgLnNtYWxsLWNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmbGV4OiAzO1xuICAgIGZsZXgtZ3JvdzogMjsgfVxuXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIFdoZW4gb24gbWVkaXVtIHNpemVkIHNjcmVlbnMsIHdlIGNlbnRlciBpdCBieSBldmVubHkgZGlzdHJpYnV0aW5nIGVtcHR5IHNwYWNlIGFyb3VuZCBpdGVtcyAqL1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9IH1cblxuLyogU21hbGwgc2NyZWVucyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgLmZsZXgtZGlzdHJpYnV0ZWQge1xuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHdlIGFyZSBubyBsb25nZXIgdXNpbmcgcm93IGRpcmVjdGlvbiBidXQgY29sdW1uICovXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxO1xuICBmbG9hdDogbGVmdDsgfVxuICAuY29sdW1uIGxhYmVsIHtcbiAgICBwYWRkaW5nOiA1cHg7IH1cblxuLnNlcGFyYXRvci1ociB7XG4gIG1hcmdpbjogN3B4IDVweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkOyB9XG5cbi5zdWJzZXBhcmF0b3ItaHIge1xuICBtYXJnaW46IDdweCA1cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xuICBtYXJnaW4tdG9wOiA3cHg7IH1cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcbiAgbWluLWhlaWdodDogMDsgfVxuXG4uY2hlY2tib3gge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5jb2wtc2V0LWRlZmF1bHQge1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4uY29sLXJlc2V0LWRlZmF1bHQgLmJ0bixcbi5jb2wtc2V0LWRlZmF1bHQgLmJ0biB7XG4gIG1pbi13aWR0aDogMTUwcHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtZm9ybS1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDVweDsgfSB9XG5cbi5kYXNoYm9hcmQge1xuICBwYWRkaW5nOiAyMHB4OyB9XG4gIC5kYXNoYm9hcmQgLmZpbHRlcnMge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLmRhc2hib2FyZCAua3BpLXN1bW1hcnkge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICAuZGFzaGJvYXJkIC5rcGktc3VtbWFyeSAuY2FyZC1oZWFkZXIge1xuICAgICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG4gICAgICAuZGFzaGJvYXJkIC5rcGktc3VtbWFyeSAuY2FyZC1oZWFkZXIgaDUge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAgIC5kYXNoYm9hcmQgLmtwaS1zdW1tYXJ5IC5jYXJkLWhlYWRlciAucm93IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgICAuZGFzaGJvYXJkIC5rcGktc3VtbWFyeSAuY2FyZC1oZWFkZXIgLnJvdyBsYWJlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGNvbG9yOiAjNjY2OyB9XG4gICAgICAgIC5kYXNoYm9hcmQgLmtwaS1zdW1tYXJ5IC5jYXJkLWhlYWRlciAucm93IC5jb250cm9sLWRldGFpbC1lZGl0IHN0cm9uZyB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGNvbG9yOiAjMzMzOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAuZGFzaGJvYXJkIC5rcGktc3VtbWFyeSAucm93IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gICAgICAgIC5kYXNoYm9hcmQgLmtwaS1zdW1tYXJ5IC5yb3cgbGFiZWwsXG4gICAgICAgIC5kYXNoYm9hcmQgLmtwaS1zdW1tYXJ5IC5yb3cgLmNvbnRyb2wtZGV0YWlsLWVkaXQge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAuZGFzaGJvYXJkIC5jdXN0b21lcnMtdGFibGUgbmd4LWRhdGF0YWJsZSB7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuIl19 */\"","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap';\r\nimport { ngxCsv } from 'ngx-csv';\r\nimport { DaterangepickerComponent } from 'ngx-daterangepicker-material';\r\nimport { localStorageActions } from '../../../models/enums';\r\nimport { WebOrder } from '../../../models/web-order.model';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { FowkesOnlineService } from '../../../services/fowkes-online.service';\r\nimport { SysproService } from '../../../services/syspro.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n@Component({\r\n selector: 'reports-websales',\r\n templateUrl: './reports-websales-component.html',\r\n styleUrls: ['./reports-websales-component.scss']\r\n})\r\nexport class ReportsWebSalesComponent implements OnInit {\r\n\r\n\r\n private loadingIndicator: boolean;\r\n show: boolean;\r\n private selectUndefinedOptionValue: string = \"ALL\";\r\n\r\n columns: any[] = [];\r\n rows: WebOrder[] = [];\r\n rowsCache: WebOrder[] = [];\r\n customers: any[] = []; // List of customers with aggregated data\r\n detailRows: WebOrder[] = [];\r\n selectedCustomer: any;\r\n\r\n selectedQuote: string;\r\n selectedSalesOrder: string;\r\n selectedInvoice: string;\r\n\r\n kpis = {\r\n // Overall KPIs\r\n totalCustomers: 0, // Total number of distinct customers\r\n totalOrders: 0, // Total number of orders across all time\r\n totalRevenue: 0, // Total revenue from all orders\r\n firstTimeOrders: 0, // Total number of first-time orders across all time\r\n returningOrders: 0, // Total number of returning orders across all time\r\n customerRetentionRate: 0, // Percentage of customers who placed repeat orders\r\n repeatCustomerRevenue: 0, // Total revenue from repeat customers across all time\r\n oneTimeCustomerRevenue: 0, // Total revenue from one-time customers across all time\r\n repeatCustomerSalesPercentage: 0, // Percentage of total revenue from repeat customers\r\n averageOrderValue: 0, // Average value of orders across all time\r\n\r\n // Filtered KPIs (based on the selected date range)\r\n filteredTotalOrders: 0, // Total number of orders in the selected date range\r\n filteredTotalRevenue: 0, // Total revenue from orders in the selected date range\r\n filteredFirstTimeOrders: 0, // Number of first-time orders in the selected date range\r\n filteredReturningOrders: 0, // Number of returning orders in the selected date range\r\n filteredFirstTimeRevenue: 0, // Revenue from first-time orders in the selected date range\r\n filteredRepeatRevenue: 0, // Revenue from repeat orders in the selected date range\r\n filteredFirstTimePercentage: 0, // Percentage of revenue from first-time orders in the date range\r\n filteredRepeatPercentage: 0, // Percentage of revenue from repeat orders in the date range\r\n};\r\n\r\n @ViewChild('quotesModal')\r\n quotesModal: ModalDirective;\r\n\r\n @ViewChild('salesOrderModal')\r\n salesOrderModal: ModalDirective;\r\n\r\n @ViewChild('itsModal')\r\n itsModal: ModalDirective;\r\n\r\n @ViewChild('orderViewModal')\r\n orderViewModal: ModalDirective;\r\n\r\n @ViewChild('priceTemplate')\r\n priceTemplate: TemplateRef;\r\n\r\n @ViewChild('netTemplate')\r\n netTemplate: TemplateRef;\r\n\r\n @ViewChild('totalNetMerchandiseCell') totalNetMerchandiseCell: TemplateRef;\r\n\r\n @ViewChild('costTemplate')\r\n costTemplate: TemplateRef;\r\n\r\n @ViewChild('profitTemplate')\r\n profitTemplate: TemplateRef;\r\n\r\n @ViewChild('gpTemplate')\r\n gpTemplate: TemplateRef;\r\n\r\n @ViewChild('selectTemplate')\r\n selectTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('quoteTemplate')\r\n quoteTemplate: TemplateRef;\r\n\r\n @ViewChild('nameTemplate')\r\n nameTemplate: TemplateRef;\r\n\r\n @ViewChild('totalTemplate')\r\n totalTemplate: TemplateRef;\r\n\r\n @ViewChild('salesOrderTemplate')\r\n salesOrderTemplate: TemplateRef;\r\n\r\n @ViewChild('invoiceTemplate')\r\n invoiceTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('previewTemplate')\r\n previewTemplate: TemplateRef;\r\n\r\n @ViewChild(DaterangepickerComponent) picker: DaterangepickerComponent;\r\n\r\n\r\n //ranges = {\r\n // 'All Dates': [moment('2023-01-01').startOf('month'), moment()],\r\n // 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n // 'This Month to Date': [moment().startOf('month'), moment()],\r\n // 'Previous Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n // 'Current Quarter to Date': [moment().startOf('quarter'), moment()],\r\n // 'Previous Quarter': [\r\n // moment().subtract(1, 'quarter').startOf('quarter'),\r\n // moment().subtract(1, 'quarter').endOf('quarter')\r\n // ],\r\n // 'Current Year to Date': [moment().startOf('year'), moment()],\r\n // 'Previous Year': [\r\n // moment().subtract(1, 'year').startOf('year'),\r\n // moment().subtract(1, 'year').endOf('year')\r\n // ],\r\n // 'Last 12 Months': [moment().subtract(12, 'months'), moment()],\r\n //};\r\n\r\n selected: { startDate: Moment, endDate: Moment };\r\n ranges: { 'This Month': moment.Moment[]; 'Last Month': moment.Moment[]; 'Last 3 Months': moment.Moment[]; };\r\n\r\n totalNetMerchandiseSumm: number;\r\n totalInvoiceCostSumm: string;\r\n totalInvoiceSumm: string;\r\n weborders: WebOrder[];\r\n sumtotalExcluding: number;\r\n sumtotalVat: number;\r\n invoiceNumber: string;\r\n currentStatus: string;\r\n repeatCustomers: any[] = [];\r\n oneTimeCustomers: any[] = [];\r\n filteredCustomers: any[] = [];\r\n firstTimeCustomers: any[] = [];\r\n returnCustomers: any[] = [];\r\n \r\n\r\n constructor(private alertService: AlertService, private sysproService: SysproService, private router: Router, private route: ActivatedRoute, private fowkesOnline: FowkesOnlineService) {\r\n }\r\n\r\n\r\n private setData() {\r\n this.columns = [\r\n { prop: 'id', name: 'Order Id', width: 50 },\r\n { prop: 'created', name: 'Date', width: 100, cellTemplate: this.dateTemplate },\r\n { prop: 'placed_id', name: 'Waybill', width: 100, cellTemplate: this.selectTemplate },\r\n { prop: 'user_first_name', name: 'Customer Name', width: 150, cellTemplate: this.nameTemplate },\r\n { prop: 'grand_total', name: 'Total', width: 90, cellTemplate: this.totalTemplate, cellClass: \"right\" },\r\n { prop: 'internalStatus', name: 'Status', width: 100 },\r\n { prop: 'quoteNumber', name: 'Quote Number', width: 120, cellTemplate: this.quoteTemplate },\r\n { prop: 'salesOrder', name: 'SalesOrder', width: 100, cellTemplate: this.salesOrderTemplate },\r\n { prop: 'invoice', name: 'ITS', width: 100, cellTemplate: this.invoiceTemplate },\r\n { prop: 'user_email', name: 'Customer Email', width: 150 },\r\n { prop: 'user_contact_number', name: 'Customer Tel', width: 90 }\r\n ];\r\n\r\n }\r\n\r\n summaryTotal(cells: number[]): string {\r\n const filteredCells = cells.filter(cell => !!cell);\r\n return filteredCells.reduce((sum, cell) => (sum += cell), 0).toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n\r\n ngAfterViewInit() { \r\n this.setData();\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.setData();\r\n\r\n const currentYear = moment().year(); // Get the current year\r\n const startYear = 2022; // Start from 2022\r\n const yearRanges = {};\r\n\r\n // Generate year ranges dynamically\r\n for (let year = startYear; year <= currentYear; year++) {\r\n yearRanges[`${year}`] = [moment(`${year}-01-01`).startOf('year'), moment(`${year}-12-31`).endOf('year')];\r\n }\r\n\r\n // Define the new ranges\r\n this.ranges = { \r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [\r\n moment().subtract(1, 'month').startOf('month'),\r\n moment().subtract(1, 'month').endOf('month'),\r\n ],\r\n 'Last 3 Months': [\r\n moment().subtract(3, 'months').startOf('month'),\r\n moment().endOf('month'),\r\n ],\r\n ...yearRanges, // Append dynamically generated year ranges\r\n };\r\n\r\n this.selected = {\r\n startDate: moment('2022-01-01').startOf('month'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n } \r\n this.loadData();\r\n }\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.sysproService.getAllWebOrders().subscribe(x => this.processOrders(x), error => this.onDataLoadFailed(error));\r\n }\r\n\r\n refresh() {\r\n this.selected = {\r\n startDate: moment('2022-01-01').startOf('month'),\r\n endDate: moment().subtract(0, 'month').endOf('month')\r\n }\r\n\r\n this.customers = [];\r\n this.filteredCustomers = [];\r\n this.firstTimeCustomers = [];\r\n this.repeatCustomers = [];\r\n this.oneTimeCustomers = [];\r\n this.returnCustomers = [];\r\n\r\n this.loadData();\r\n }\r\n\r\n processOrders(orders: WebOrder[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = orders;\r\n \r\n // Filter out cancelled orders\r\n const filteredOrders = orders.filter(order => order.internalStatus !== \"CANCELLED\");\r\n\r\n //// Filter by date range\r\n //const filteredOrders = nonCancelledOrders.filter(order =>\r\n // moment(order.created).isBetween(this.selected.startDate, this.selected.endDate, 'day', '[]')\r\n //);\r\n\r\n // Group by customer\r\n const customerGroups = filteredOrders.reduce((acc, curr) => {\r\n const key = curr.user_email;\r\n if (!acc[key]) {\r\n acc[key] = {\r\n email: curr.user_email,\r\n name: `${curr.user_first_name} ${curr.user_last_name}`,\r\n orderCount: 0,\r\n totalRevenue: 0\r\n };\r\n }\r\n acc[key].orderCount++;\r\n acc[key].totalRevenue += curr.grand_total || 0;\r\n return acc;\r\n }, {});\r\n\r\n // Flatten customer groups into an array\r\n this.customers = Object.values(customerGroups);\r\n\r\n // Set initial rows for display\r\n this.rows = [...this.customers];\r\n\r\n // Calculate repeat and one-time customers\r\n this.repeatCustomers = Object.values(customerGroups).filter((group: any) => group.orderCount > 1);\r\n const repeatCustomerRevenue = this.repeatCustomers.reduce((sum, customer: any) => sum + customer.totalRevenue, 0);\r\n\r\n this.oneTimeCustomers = Object.values(customerGroups).filter((group: any) => group.orderCount === 1);\r\n const oneTimeCustomerRevenue = this.oneTimeCustomers.reduce((sum, customer: any) => sum + customer.totalRevenue, 0);\r\n\r\n // Calculate KPIs\r\n const firstTimeOrders = this.oneTimeCustomers.length;\r\n const returningOrders = filteredOrders.length - firstTimeOrders;\r\n\r\n this.kpis.totalCustomers = this.customers.length;\r\n this.kpis.totalOrders = filteredOrders.length;\r\n this.kpis.totalRevenue = this.customers.reduce((sum, customer: any) => sum + customer.totalRevenue, 0);\r\n this.kpis.averageOrderValue = this.kpis.totalRevenue / this.kpis.totalOrders || 0;\r\n this.kpis.firstTimeOrders = firstTimeOrders;\r\n this.kpis.returningOrders = returningOrders;\r\n\r\n // Update retention rate\r\n this.kpis.customerRetentionRate = (this.repeatCustomers.length / this.kpis.totalCustomers) * 100 || 0;\r\n\r\n // New revenue breakdown KPIs\r\n this.kpis.repeatCustomerRevenue = repeatCustomerRevenue;\r\n this.kpis.oneTimeCustomerRevenue = oneTimeCustomerRevenue;\r\n\r\n // New percentage of repeat customer sales\r\n this.kpis.repeatCustomerSalesPercentage =\r\n (repeatCustomerRevenue / this.kpis.totalRevenue) * 100 || 0;\r\n }\r\n\r\n filterOrders() {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n // Filter out cancelled orders\r\n const filteredOrders = this.rowsCache.filter(order => order.internalStatus !== \"CANCELLED\");\r\n\r\n // 1. Filter orders by the selected date range\r\n const dateFilteredOrders = filteredOrders.filter(order =>\r\n moment(order.created).isBetween(this.selected.startDate, this.selected.endDate, 'day', '[]')\r\n );\r\n\r\n // 2. Identify first-time and return customers\r\n const customerGroups = filteredOrders.reduce((acc, order) => {\r\n const key = order.user_email;\r\n if (!acc[key]) {\r\n acc[key] = {\r\n email: order.user_email,\r\n name: `${order.user_first_name} ${order.user_last_name}`,\r\n firstOrderDate: moment(order.created), // Track the first-ever order date\r\n totalRevenue: 0,\r\n orderCount: 0,\r\n };\r\n }\r\n acc[key].orderCount++;\r\n acc[key].totalRevenue += order.grand_total || 0;\r\n acc[key].firstOrderDate = moment.min(acc[key].firstOrderDate, moment(order.created)); // Keep the earliest date\r\n return acc;\r\n }, {});\r\n\r\n // Filter customers by date range logic\r\n const filteredCustomerGroups = dateFilteredOrders.reduce((acc, order) => {\r\n const key = order.user_email;\r\n if (!acc[key]) {\r\n acc[key] = {\r\n email: order.user_email,\r\n name: `${order.user_first_name} ${order.user_last_name}`,\r\n orderCount: 0,\r\n totalRevenue: 0,\r\n firstOrderDate: customerGroups[key].firstOrderDate, // Retrieve the first-ever order date\r\n };\r\n }\r\n acc[key].orderCount++;\r\n acc[key].totalRevenue += order.grand_total || 0;\r\n return acc;\r\n }, {});\r\n\r\n // 3. Categorize first-time and return customers\r\n this.firstTimeCustomers = Object.values(filteredCustomerGroups).filter(\r\n (customer: any) => customer.firstOrderDate.isBetween(this.selected.startDate, this.selected.endDate, 'day', '[]')\r\n );\r\n\r\n this.returnCustomers = Object.values(filteredCustomerGroups).filter(\r\n (customer: any) => customer.firstOrderDate.isBefore(this.selected.startDate)\r\n );\r\n\r\n // 4. Flatten customer groups into an array\r\n this.filteredCustomers = Object.values(filteredCustomerGroups);\r\n\r\n // 5. Calculate filtered KPIs\r\n this.kpis.filteredTotalOrders = dateFilteredOrders.length;\r\n this.kpis.filteredTotalRevenue = this.filteredCustomers.reduce((sum, customer: any) => sum + customer.totalRevenue, 0);\r\n this.kpis.filteredFirstTimeOrders = this.firstTimeCustomers.length;\r\n this.kpis.filteredReturningOrders = this.returnCustomers.length;\r\n\r\n this.kpis.filteredFirstTimeRevenue = this.firstTimeCustomers.reduce((sum, customer: any) => sum + customer.totalRevenue, 0);\r\n this.kpis.filteredRepeatRevenue = this.returnCustomers.reduce((sum, customer: any) => sum + customer.totalRevenue, 0);\r\n\r\n // 6. Calculate percentages\r\n this.kpis.filteredFirstTimePercentage =\r\n (this.kpis.filteredFirstTimeRevenue / this.kpis.filteredTotalRevenue) * 100 || 0;\r\n this.kpis.filteredRepeatPercentage =\r\n (this.kpis.filteredRepeatRevenue / this.kpis.filteredTotalRevenue) * 100 || 0;\r\n\r\n // 7. Update the rows for display\r\n this.rows = [...this.filteredCustomers];\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n if (value !== \"\") {\r\n this.rows = this.customers.filter(customer =>\r\n Utilities.searchArray(\r\n value,\r\n false,\r\n customer.name,\r\n customer.email,\r\n customer.orderCount.toString(),\r\n customer.totalRevenue.toFixed(2) // Convert numbers to strings for matching\r\n )\r\n );\r\n } else {\r\n this.rows = [...this.customers]; // Reset to all customers if no search term\r\n }\r\n }\r\n\r\n // Trigger modal and fetch customer orders\r\n viewCustomerOrders(customer: any): void {\r\n this.selectedCustomer = customer;\r\n\r\n // Filter orders for the selected customer\r\n this.detailRows = this.rowsCache.filter(order => order.user_email.trim() == customer.email.trim());\r\n\r\n if (this.detailRows && this.detailRows.length > 0) {\r\n if (!this.orderViewModal) {\r\n setTimeout(() => {\r\n if (this.orderViewModal) {\r\n this.orderViewModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.orderViewModal.show();\r\n }\r\n }\r\n\r\n }\r\n\r\n // Hide modal\r\n orderViewModalHide(): void {\r\n this.selectedCustomer = \"\";\r\n this.detailRows = null;\r\n this.orderViewModal.hide();\r\n }\r\n\r\n\r\n viewQuote(row: WebOrder) {\r\n this.setLocalCustomer(\"FBWEB\", row.quoteNumber);\r\n this.router.navigate(['../../quotes'], { fragment: 'quote', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n\r\n previewQuote(row: WebOrder) {\r\n this.currentStatus = row.internalStatus;\r\n\r\n this.invoiceNumber = row.invoice;\r\n this.setLocalCustomer(\"FBWEB\", row.quoteNumber);\r\n\r\n if (!!this.selectedQuote) {\r\n if (!this.quotesModal) {\r\n setTimeout(() => {\r\n if (this.quotesModal) {\r\n this.quotesModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.quotesModal.show();\r\n }\r\n }\r\n }\r\n\r\n quotesModalHide() {\r\n this.selectedQuote = null;\r\n this.quotesModal.hide();\r\n }\r\n\r\n gotToQuote() {\r\n this.router.navigate(['../../quotes'], { fragment: 'quote', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n previewSalesOrder(row: WebOrder) {\r\n\r\n this.currentStatus = row.internalStatus;\r\n this.invoiceNumber = row.invoice;\r\n\r\n this.selectedSalesOrder = row.salesOrder;\r\n if (sessionStorage.getItem(localStorageActions.Customer) != \"FBWEB\") {\r\n sessionStorage.setItem(localStorageActions.Customer, \"FBWEB\");\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != row.salesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.salesOrder);\r\n }\r\n\r\n if (!!this.selectedSalesOrder) {\r\n if (!this.salesOrderModal) {\r\n setTimeout(() => {\r\n if (this.salesOrderModal) {\r\n this.salesOrderModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.salesOrderModal.show();\r\n }\r\n }\r\n }\r\n\r\n salesOrderModalHide() {\r\n this.selectedSalesOrder = null;\r\n this.salesOrderModal.hide();\r\n }\r\n\r\n\r\n viewSalesOrder() {\r\n\r\n this.router.navigate(['../../salesorders'], { fragment: 'view', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n\r\n previewITS(row: WebOrder) {\r\n\r\n this.selectedInvoice = row.invoice;\r\n this.currentStatus = row.internalStatus;\r\n this.invoiceNumber = row.invoice;\r\n\r\n if (sessionStorage.getItem(localStorageActions.Customer) != \"FBWEB\") {\r\n sessionStorage.setItem(localStorageActions.Customer, \"FBWEB\");\r\n }\r\n if (sessionStorage.getItem(localStorageActions.SalesOrderNumber) != row.salesOrder) {\r\n sessionStorage.setItem(localStorageActions.SalesOrderNumber, row.salesOrder);\r\n }\r\n\r\n if (sessionStorage.getItem(localStorageActions.ITSInvoiceNumber) != row.invoice) {\r\n sessionStorage.setItem(localStorageActions.ITSInvoiceNumber, row.invoice);\r\n }\r\n\r\n if (!!this.selectedInvoice) {\r\n if (!this.itsModal) {\r\n setTimeout(() => {\r\n if (this.itsModal) {\r\n this.itsModal.show();\r\n }\r\n });\r\n }\r\n else {\r\n this.itsModal.show();\r\n }\r\n }\r\n }\r\n\r\n itsModalHide() {\r\n this.selectedInvoice = null;\r\n if (this.itsModal) {\r\n this.itsModal.hide();\r\n }\r\n }\r\n\r\n\r\n gotToITS() {\r\n\r\n this.router.navigate(['../../reports'], { fragment: 'invoicestatus', queryParams: { customer: \"FBWEB\" } });\r\n }\r\n\r\n setLocalCustomer(customer: string, quoteNumber: string) {\r\n\r\n this.selectedCustomer = customer;\r\n this.selectedQuote = quoteNumber;\r\n if (sessionStorage.getItem(localStorageActions.QuoteNumber) != quoteNumber) {\r\n sessionStorage.setItem(localStorageActions.QuoteNumber, quoteNumber);\r\n }\r\n if (sessionStorage.getItem(localStorageActions.Customer) != customer) {\r\n sessionStorage.setItem(localStorageActions.Customer, customer);\r\n }\r\n \r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage('Load Error', `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessages(error)}\"`,\r\n MessageSeverity.error, error);\r\n }\r\n\r\n toggle() {\r\n this.show = true;\r\n this.filterOrders();\r\n }\r\n\r\n choosedDateTime(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n this.filterOrders();\r\n }\r\n\r\n rangeClicked(e) {\r\n\r\n this.picker.renderRanges();\r\n\r\n this.selected = {\r\n startDate: this.picker.startDate,\r\n endDate: this.picker.endDate\r\n }\r\n \r\n this.show = false;\r\n this.filterOrders();\r\n }\r\n\r\n searchDates(e) {\r\n\r\n this.selected = {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n\r\n this.show = false;\r\n this.filterOrders();\r\n\r\n }\r\n\r\n\r\n exportHeaders() {\r\n\r\n if (!this.rows || this.rows.length === 0) {\r\n console.warn('No data available for export.');\r\n return;\r\n }\r\n\r\n const options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n headers: ['Customer Name', 'Email', 'Order Count', 'Total Revenue'],\r\n };\r\n\r\n const exportData = this.customers.map(row => ({\r\n 'Customer Name': row.name,\r\n Email: row.email,\r\n 'Order Count': row.orderCount,\r\n 'Total Revenue': row.totalRevenue.toFixed(2), // Ensure consistent number formatting\r\n }));\r\n\r\n new ngxCsv(exportData, 'CustomerInsights', options);\r\n }\r\n\r\n\r\n exportCustomerOrders(): void {\r\n if (!this.detailRows || this.detailRows.length === 0) {\r\n console.warn('No orders available for export.');\r\n return;\r\n }\r\n\r\n const options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: false, // Disable column headers since we include custom headers\r\n showTitle: false,\r\n useBom: true,\r\n };\r\n\r\n // Header rows for customer details\r\n const headerRows = [\r\n { field: 'Customer Name', value: this.selectedCustomer.name },\r\n { field: 'Email', value: this.selectedCustomer.email },\r\n { field: 'Order Count', value: this.selectedCustomer.orderCount },\r\n { field: 'Total Revenue', value: `R ${this.selectedCustomer.totalRevenue.toFixed(2)}` },\r\n {}, // Empty row for separation\r\n { field: 'Order ID', value: 'Date', Status: 'Status', Quote: 'Quote Number', Sales: 'Sales Order', Invoice: 'Invoice', Total: 'Total' },\r\n ];\r\n\r\n // Map order data for export\r\n const exportData = this.detailRows.map(order => ({\r\n 'Order ID': order.placed_id,\r\n Date: moment(order.created).format('YYYY-MM-DD'),\r\n 'Status': order.internalStatus,\r\n 'Quote Number': order.quoteNumber,\r\n 'Sales Order': order.salesOrder,\r\n Invoice: order.invoice,\r\n Total: order.grand_total || '0',\r\n }));\r\n\r\n // Combine header rows and order data\r\n const csvData = [...headerRows, ...exportData];\r\n\r\n // Generate the CSV file\r\n new ngxCsv(csvData, `${this.selectedCustomer.name}_WebOrders`, options);\r\n }\r\n\r\n\r\n exportAllWebOrders(): void {\r\n if (!this.rowsCache || this.rowsCache.length === 0) {\r\n console.warn('No orders available for export.');\r\n return;\r\n }\r\n const options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n useBom: true,\r\n headers: ['Customer Name', 'Email', 'Date', 'Order ID', 'Status', 'Quote Number', 'Invoice', 'Total'],\r\n };\r\n\r\n const exportData = this.rowsCache.map(order => ({\r\n 'Customer Name': `${order.user_first_name} ${order.user_last_name}`,\r\n Email: order.user_email,\r\n Date: moment(order.created).format('YYYY-MM-DD'),\r\n 'Order ID': order.placed_id,\r\n 'Status': order.internalStatus,\r\n 'Quote Number': order.quoteNumber,\r\n Invoice: order.invoice,\r\n Total: order.grand_total || '0',\r\n }));\r\n\r\n new ngxCsv(exportData, 'AllCustomerWebOrders', options);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvd2ViL3dlYi5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from 'src/app/directives/bootstrap-tab.directive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { SysproService } from 'src/app/services/syspro.service';\r\nimport { localStorageActions } from 'src/app/models/enums';\r\n\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\n@Component({\r\n selector: 'web',\r\n templateUrl: './web.component.html',\r\n styleUrls: ['./web.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\nexport class WebComponent {\r\n\r\n //isViewActivated = false;\r\n //isInventoryListActivated = false;\r\n //isInventoryNSActivated = false;\r\n //isQuoteViewActivated = false;\r\n isWebInfoActivated = true;\r\n isWebReportActivated = false;\r\n isQuoteWebViewActivated = false;\r\n\r\n isCollapsed = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n //readonly quotesListTab = 'quotes';\r\n //readonly inventoryListTab = 'inventory';\r\n //readonly inventoryNSTab = 'nonstock';\r\n //readonly quoteViewTab = 'quote';\r\n readonly quoteWebInfoTab = 'webinfo';\r\n readonly webReportTab = 'webreport';\r\n readonly quoteWebViewTab = 'webquote';\r\n\r\n @Input()\r\n isManagement: boolean;\r\n\r\n @Input()\r\n isCart: boolean;\r\n\r\n @ViewChild('tab')\r\n tab: BootstrapTabDirective;\r\n\r\n id: any = \"\";\r\n quoteId: string;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private configurations: ConfigurationService, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n let action = sessionStorage.getItem(localStorageActions.Customer);\r\n let quoteId = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n this.quoteId = quoteId;\r\n this.isCollapsed = !this.configurations.menuExpanded;\r\n\r\n if (action) {\r\n this.id = action;\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor, this.id));\r\n } else {\r\n\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n // this.router.navigate(['quotes']);\r\n }\r\n\r\n }\r\n\r\n\r\n get menuExpanded(): boolean {\r\n return this.configurations.menuExpanded;\r\n }\r\n\r\n toggle() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.fragmentSubscription && !this.fragmentSubscription.closed)\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n showContent(anchor: string, test?: any) {\r\n\r\n this.id = sessionStorage.getItem(localStorageActions.Customer);\r\n this.quoteId = sessionStorage.getItem(localStorageActions.QuoteNumber);\r\n \r\n if (anchor) {\r\n anchor = anchor.toLowerCase();\r\n this.setNewTab(anchor);\r\n }\r\n\r\n this.tab.show(`#${anchor || this.quoteWebInfoTab}Tab`);\r\n\r\n }\r\n\r\n setNewTab(fragment) {\r\n const activeTab = fragment;\r\n\r\n //this.isInventoryListActivated = activeTab == this.inventoryListTab;\r\n //this.isInventoryNSActivated = activeTab == this.inventoryNSTab;\r\n //this.isQuoteViewActivated = activeTab == this.quoteViewTab;\r\n this.isWebInfoActivated = activeTab == this.quoteWebInfoTab;\r\n this.isWebReportActivated = activeTab == this.webReportTab;\r\n this.isQuoteWebViewActivated = activeTab == this.quoteWebViewTab;\r\n\r\n this.router.navigate([], { fragment: activeTab, queryParams: { customer: this.id, quoteId: this.quoteId } });\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null) {\r\n fragment1 = '';\r\n }\r\n\r\n if (fragment2 == null) {\r\n fragment2 = '';\r\n }\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n const activeTab = event.target.hash.split('#', 2).pop();\r\n\r\n //this.isInventoryListActivated = activeTab == this.inventoryListTab;\r\n //this.isInventoryNSActivated = activeTab == this.inventoryNSTab;\r\n //this.isQuoteViewActivated = activeTab == this.quoteViewTab;\r\n this.isWebInfoActivated = activeTab == this.quoteWebInfoTab;\r\n this.isWebReportActivated = activeTab == this.webReportTab;\r\n this.isQuoteWebViewActivated = activeTab == this.quoteWebViewTab;\r\n\r\n this.router.navigate([], { fragment: activeTab });\r\n }\r\n\r\n get canViewCustomers() {\r\n return true;\r\n }\r\n\r\n\r\n get canViewWebQuotes() {\r\n return this.accountService.userHasPermission(Permission.webQuotesPermission);\r\n }\r\n\r\n}\r\n","import { AfterContentInit, Directive, ElementRef, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[autoFocus]'\r\n})\r\nexport class AutofocusDirective implements AfterContentInit {\r\n\r\n @Input() public appAutoFocus: boolean;\r\n\r\n public constructor(private el: ElementRef) {\r\n\r\n }\r\n\r\n public ngAfterContentInit() {\r\n\r\n setTimeout(() => {\r\n\r\n this.el.nativeElement.focus();\r\n\r\n }, 500);\r\n\r\n }\r\n\r\n}\r\n","\r\nimport { Directive, ElementRef, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\n\r\n\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[bootstrapDatepicker]',\r\n exportAs: 'bootstrap-datepicker'\r\n})\r\nexport class BootstrapDatepickerDirective implements OnInit, OnDestroy {\r\n\r\n private _isShown = false;\r\n private updateTimeout;\r\n private changedSubscription: Subscription;\r\n private shownSubscription: Subscription;\r\n private hiddenSubscription: Subscription;\r\n\r\n get isShown() {\r\n return this._isShown;\r\n }\r\n\r\n @Input()\r\n options = {};\r\n\r\n @Input()\r\n set ngModel(value) {\r\n this.tryUpdate(value);\r\n }\r\n\r\n\r\n @Output()\r\n ngModelChange = new EventEmitter();\r\n\r\n\r\n constructor(private el: ElementRef) {\r\n this.changedSubscription = fromEvent($(this.el.nativeElement), 'change').subscribe((e: any) => setTimeout(() => this.ngModelChange.emit(e.target.value)));\r\n this.shownSubscription = fromEvent($(this.el.nativeElement), 'show').subscribe((e: any) => this._isShown = true);\r\n this.hiddenSubscription = fromEvent($(this.el.nativeElement), 'hide').subscribe((e: any) => this._isShown = false);\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.initialize(this.options);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n\r\n\r\n\r\n initialize(options?: any) {\r\n $(this.el.nativeElement).datepicker(options);\r\n }\r\n\r\n destroy() {\r\n if (this.changedSubscription) {\r\n this.changedSubscription.unsubscribe();\r\n this.shownSubscription.unsubscribe();\r\n this.hiddenSubscription.unsubscribe();\r\n }\r\n\r\n $(this.el.nativeElement).datepicker('destroy');\r\n }\r\n\r\n\r\n\r\n show() {\r\n $(this.el.nativeElement).datepicker('show');\r\n }\r\n\r\n\r\n hide() {\r\n $(this.el.nativeElement).datepicker('hide');\r\n }\r\n\r\n\r\n toggle() {\r\n this.isShown ? this.hide() : this.show();\r\n }\r\n\r\n\r\n private tryUpdate(value) {\r\n\r\n clearTimeout(this.updateTimeout);\r\n\r\n if (!$(this.el.nativeElement).is(':focus')) {\r\n this.update(value);\r\n } else {\r\n this.updateTimeout = setTimeout(() => {\r\n this.updateTimeout = null;\r\n this.tryUpdate(value);\r\n }, 100);\r\n }\r\n }\r\n\r\n update(value) {\r\n setTimeout(() => $(this.el.nativeElement).datepicker('update', value));\r\n }\r\n\r\n\r\n setDate(value) {\r\n setTimeout(() => $(this.el.nativeElement).datepicker('setDate', value));\r\n }\r\n\r\n\r\n setUTCDate(value) {\r\n setTimeout(() => $(this.el.nativeElement).datepicker('setUTCDate', value));\r\n }\r\n\r\n\r\n clearDates() {\r\n setTimeout(() => $(this.el.nativeElement).datepicker('clearDates'));\r\n }\r\n\r\n\r\n getDate() {\r\n $(this.el.nativeElement).datepicker('getDate');\r\n }\r\n\r\n\r\n getUTCDate() {\r\n $(this.el.nativeElement).datepicker('getUTCDate');\r\n }\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Directive, Attribute, ElementRef, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\n\r\n\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[bootstrapSelect]',\r\n exportAs: 'bootstrap-select'\r\n})\r\nexport class BootstrapSelectDirective implements OnInit, OnDestroy {\r\n\r\n private oldValues: string | string[] = '';\r\n\r\n private changedSubscription: Subscription;\r\n private shownSubscription: Subscription;\r\n private hiddenSubscription: Subscription;\r\n\r\n @Input()\r\n required: string;\r\n\r\n @Input()\r\n set ngModel(values: string | string[]) {\r\n setTimeout(() => this.selected = values);\r\n }\r\n\r\n\r\n @Output()\r\n ngModelChange = new EventEmitter();\r\n\r\n @Output()\r\n shown = new EventEmitter();\r\n\r\n @Output()\r\n hidden = new EventEmitter();\r\n\r\n\r\n constructor(private el: ElementRef) {\r\n this.changedSubscription = fromEvent($(this.el.nativeElement), 'changed.bs.select').subscribe((e: any) => setTimeout(() => {\r\n if (this.checkIsValuesChanged(this.selected)) {\r\n this.ngModelChange.emit(this.selected);\r\n }\r\n }));\r\n this.shownSubscription = fromEvent($(this.el.nativeElement), 'shown.bs.select').subscribe((e: any) => setTimeout(() => this.shown.emit()));\r\n this.hiddenSubscription = fromEvent($(this.el.nativeElement), 'hidden.bs.select').subscribe((e: any) => setTimeout(() => this.hidden.emit()));\r\n }\r\n\r\n\r\n ngOnInit() {\r\n $(this.el.nativeElement).selectpicker();\r\n\r\n if (this.requiredAttribute) {\r\n $(this.el.nativeElement).selectpicker('setStyle', 'required', 'add');\r\n }\r\n\r\n setTimeout(() => {\r\n this.refresh();\r\n this.doValidation();\r\n });\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.changedSubscription) {\r\n this.changedSubscription.unsubscribe();\r\n }\r\n\r\n if (this.shownSubscription) {\r\n this.shownSubscription.unsubscribe();\r\n }\r\n\r\n if (this.hiddenSubscription) {\r\n this.hiddenSubscription.unsubscribe();\r\n }\r\n\r\n $(this.el.nativeElement).selectpicker('destroy');\r\n }\r\n\r\n private checkIsValuesChanged(newValue: string | string[]) {\r\n return !(newValue == this.oldValues ||\r\n (newValue instanceof Array && newValue.length === this.oldValues.length && newValue.every((v, i) => v === this.oldValues[i])));\r\n }\r\n\r\n private doValidation() {\r\n if (this.requiredAttribute) {\r\n $(this.el.nativeElement).selectpicker('setStyle', !this.valid ? 'ng-valid' : 'ng-invalid', 'remove');\r\n $(this.el.nativeElement).selectpicker('setStyle', this.valid ? 'ng-valid' : 'ng-invalid', 'add');\r\n }\r\n }\r\n\r\n private get requiredAttribute() {\r\n return this.required === '' || this.required == 'true';\r\n }\r\n\r\n\r\n refresh() {\r\n setTimeout(() => {\r\n $(this.el.nativeElement).selectpicker('refresh');\r\n });\r\n }\r\n\r\n render() {\r\n setTimeout(() => {\r\n $(this.el.nativeElement).selectpicker('render');\r\n });\r\n }\r\n\r\n\r\n get valid(): boolean {\r\n return this.requiredAttribute ? this.selected && this.selected.length > 0 : true;\r\n }\r\n\r\n\r\n set selected(values: string | string[]) {\r\n\r\n if (!this.checkIsValuesChanged(values)) {\r\n return;\r\n }\r\n\r\n this.oldValues = this.selected;\r\n $(this.el.nativeElement).selectpicker('val', values);\r\n this.doValidation();\r\n }\r\n\r\n\r\n get selected(): string | string[] {\r\n return $(this.el.nativeElement).selectpicker('val');\r\n }\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Directive, ElementRef, Output, EventEmitter, OnDestroy, NgZone } from '@angular/core';\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\n\r\n\r\ndeclare var $: any;\r\n\r\ninterface eventArg { type: string; target: Element; relatedTarget: Element; }\r\n\r\n@Directive({\r\n selector: '[bootstrapTab]',\r\n exportAs: 'bootstrap-tab'\r\n})\r\nexport class BootstrapTabDirective implements OnDestroy {\r\n\r\n\r\n @Output()\r\n showBSTab = new EventEmitter();\r\n\r\n @Output()\r\n hideBSTab = new EventEmitter();\r\n\r\n private tabShownSubscription: Subscription;\r\n private tabHiddenSubscription: Subscription;\r\n\r\n\r\n constructor(private el: ElementRef, private zone: NgZone) {\r\n\r\n this.tabShownSubscription = fromEvent($(this.el.nativeElement), 'show.bs.tab')\r\n .subscribe((e: any) => {\r\n this.runInZone(() => this.showBSTab.emit({ type: e.type, target: e.target, relatedTarget: e.relatedTarget }));\r\n });\r\n\r\n this.tabHiddenSubscription = fromEvent($(this.el.nativeElement), 'hidden.bs.tab')\r\n .subscribe((e: any) => {\r\n this.runInZone(() => this.hideBSTab.emit({ type: e.type, target: e.target, relatedTarget: e.relatedTarget }));\r\n });\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.tabShownSubscription.unsubscribe();\r\n this.tabHiddenSubscription.unsubscribe();\r\n }\r\n\r\n\r\n private runInZone(delegate: () => any) {\r\n this.zone.run(() => {\r\n delegate();\r\n });\r\n }\r\n\r\n\r\n show(selector: string) {\r\n $(selector).tab('show');\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\n\r\n\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[bootstrapToggle]',\r\n exportAs: 'bootstrap-toggle'\r\n})\r\nexport class BootstrapToggleDirective implements OnInit, OnDestroy {\r\n\r\n private checkedSubscription: Subscription;\r\n\r\n @Input()\r\n set ngModel(value) {\r\n this.toggle(value);\r\n }\r\n\r\n @Output()\r\n ngModelChange = new EventEmitter();\r\n\r\n\r\n constructor(private el: ElementRef) {\r\n this.checkedSubscription = fromEvent($(this.el.nativeElement), 'change')\r\n .subscribe((e: any) => this.ngModelChange.emit(e.target.checked));\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.initialize();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n\r\n initialize(options?: any) {\r\n $(this.el.nativeElement).bootstrapToggle(options);\r\n }\r\n\r\n destroy() {\r\n if (this.checkedSubscription) {\r\n this.checkedSubscription.unsubscribe();\r\n }\r\n\r\n $(this.el.nativeElement).bootstrapToggle('destroy');\r\n }\r\n\r\n toggleOn() {\r\n $(this.el.nativeElement).bootstrapToggle('on');\r\n }\r\n\r\n toggleOff() {\r\n $(this.el.nativeElement).bootstrapToggle('off');\r\n }\r\n\r\n toggle(value?: boolean) {\r\n if (value == null) {\r\n $(this.el.nativeElement).bootstrapToggle('toggle');\r\n } else {\r\n $(this.el.nativeElement).prop('checked', value).change();\r\n }\r\n }\r\n\r\n enable() {\r\n $(this.el.nativeElement).bootstrapToggle('enable');\r\n }\r\n\r\n disable() {\r\n $(this.el.nativeElement).bootstrapToggle('disable');\r\n }\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n\r\n\r\n@Directive({\r\n selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualValidator), multi: true }\r\n ]\r\n})\r\nexport class EqualValidator implements Validator {\r\n constructor( @Attribute('validateEqual') public validateEqual: string,\r\n @Attribute('reverse') public reverse: string) {\r\n }\r\n\r\n validate(c: AbstractControl): { [key: string]: any } {\r\n const other = c.root.get(this.validateEqual);\r\n\r\n if (!other) {\r\n return null;\r\n }\r\n\r\n return this.reverse === 'true' ? this.validateReverse(c, other) : this.validateNoReverse(c, other);\r\n }\r\n\r\n private validateNoReverse(c: AbstractControl, other: AbstractControl): { [key: string]: any } {\r\n return other.value === c.value ? null : { validateEqual: true };\r\n }\r\n\r\n private validateReverse(c: AbstractControl, other: AbstractControl): { [key: string]: any } {\r\n if (c.value === other.value) {\r\n if (other.errors) {\r\n delete other.errors['validateEqual'];\r\n\r\n if (Object.keys(other.errors).length == 0) {\r\n other.setErrors(null);\r\n }\r\n }\r\n } else {\r\n other.setErrors({ validateEqual: true });\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Directive, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[lastElement]'\r\n})\r\nexport class LastElementDirective {\r\n @Input()\r\n set lastElement(isLastElement: boolean) {\r\n\r\n if (isLastElement) {\r\n setTimeout(() => {\r\n this.lastFunction.emit();\r\n });\r\n }\r\n }\r\n\r\n @Output()\r\n lastFunction = new EventEmitter();\r\n}\r\n","\r\n\r\nexport class AspnetApplications {\r\n\r\n constructor(applicationName?: string, loweredApplicationName?: string, applicationId?: string, description?: string) {\r\n\r\n this.applicationName = applicationName;\r\n this.loweredApplicationName = loweredApplicationName;\r\n this.applicationId = applicationId;\r\n this.description = description;\r\n }\r\n\r\n public applicationName: string;\r\n public loweredApplicationName: string;\r\n public applicationId: string;\r\n public description: string;\r\n\r\n}\r\n","import { ArCustomer } from './arcustomer.model';\r\n\r\n\r\nexport class ArCustomerEdit extends ArCustomer {\r\n constructor() {\r\n super();\r\n\r\n }\r\n\r\n}\r\n","\r\nexport class ArCustomer {\r\n constructor(customer?: string, branch?: string, customerName?: string, customerOnHold?: string, telephone?: string,\r\n addTelephone?: string, fax?: string, email?: string, companyTaxNumber?: string, taxStatus?: string, taxExemptNumber?: string,\r\n soldToAddr1?: string, soldToAddr2?: string, soldToAddr3?: string, soldToAddr4?: string, soldToAddr5?: string, soldPostalCode?: string,\r\n shipToAddr1?: string, shipToAddr2?: string, shipToAddr3?: string, shipToAddr4?: string, shipToAddr5?: string, shipPostalCode?: string,\r\n area?: string, salesperson?: string, creditStatus?: string, termsDescription?: string, currency?: string, customerClass?: string,\r\n contact?: string, telex?: string,\r\n creditLimit?: string, currentBalance1?: string, valCurrentInv?: string, val30daysInv?: string, val60daysInv?: string, val90daysInv?: string,\r\n val120daysInv?: string, mtdCrMemoVal1?: string, valFutureInv?: string, mtdNumInvoices1?: string, numcurrentinv?: string, num30daysInv?: string,\r\n num60daysInv?: string, num90daysInv?: string, num120daysInv?: string, mtdNumCrMemos1?: string, numFutureInv?: string, mtdInvoiceVal1?: string,\r\n buyersName?: string, buyersEmail?: string, salespersonName?: string, debtorsClerk?: string) {\r\n\r\n this.customer = customer;\r\n this.branch = branch;\r\n this.customerName = customerName;\r\n this.customerOnHold = customerOnHold;\r\n this.telephone = telephone;\r\n this.addTelephone = addTelephone;\r\n this.email = email;\r\n this.fax = fax;\r\n this.companyTaxNumber = companyTaxNumber;\r\n this.area = area;\r\n this.salesperson = salesperson;\r\n this.creditStatus = creditStatus;\r\n this.termsDescription = termsDescription;\r\n this.currency = currency;\r\n this.customerClass = customerClass;\r\n this.taxExemptNumber = taxExemptNumber;\r\n this.taxStatus = taxStatus;\r\n this.contact = contact;\r\n this.soldToAddr1 = soldToAddr1;\r\n this.soldToAddr2 = soldToAddr2;\r\n this.soldToAddr3 = soldToAddr3;\r\n this.soldToAddr4 = soldToAddr4;\r\n this.soldToAddr5 = soldToAddr5;\r\n this.soldPostalCode = soldPostalCode;\r\n this.shipToAddr1 = shipToAddr1;\r\n this.shipToAddr2 = shipToAddr2;\r\n this.shipToAddr3 = shipToAddr3;\r\n this.shipToAddr4 = shipToAddr4;\r\n this.shipToAddr5 = shipToAddr5;\r\n this.shipPostalCode = shipPostalCode;\r\n this.creditLimit = creditLimit;\r\n this.currentBalance1 = currentBalance1;\r\n this.valCurrentInv = valCurrentInv;\r\n this.val30daysInv = val30daysInv;\r\n this.val60daysInv = val60daysInv;\r\n this.val90daysInv = val90daysInv;\r\n this.val120daysInv = val120daysInv;\r\n this.mtdCrMemoVal1 = mtdCrMemoVal1;\r\n this.numCurrentInv = numcurrentinv;\r\n this.valFutureInv = valFutureInv;\r\n this.numFutureInv = numFutureInv;\r\n this.num30daysInv = num30daysInv;\r\n this.num60daysInv = num60daysInv;\r\n this.num90daysInv = num90daysInv;\r\n this.num120daysInv = num120daysInv;\r\n this.mtdNumCrMemos1 = mtdNumCrMemos1;\r\n this.mtdInvoiceVal1 = mtdInvoiceVal1;\r\n this.mtdNumInvoices1 = mtdNumInvoices1;\r\n this.buyersName = buyersName;\r\n this.buyersEmail = buyersEmail;\r\n this.salespersonName = salespersonName;\r\n this.debtorsClerk = debtorsClerk;\r\n }\r\n /*[Key]*/\r\n public customer: string;\r\n public branch: string;\r\n public customerName: string;\r\n public customerOnHold: string;\r\n public telephone: string;\r\n public addTelephone: string;\r\n public fax: string;\r\n public email: string;\r\n public companyTaxNumber: string;\r\n public TaxStatus: string;\r\n public taxExemptNumber: string;\r\n public soldToAddr1: string;\r\n public soldToAddr2: string;\r\n public soldToAddr3: string;\r\n public soldToAddr4: string;\r\n public soldToAddr5: string;\r\n public soldPostalCode: string;\r\n public area: string;\r\n public salesperson: string;\r\n public salespersonName: string;\r\n public termsCode: string;\r\n public termsDescription: string;\r\n public currency: string;\r\n public customerClass: string;\r\n public contact: string;\r\n public telex: string;\r\n public shipToAddr1: string;\r\n public shipToAddr2: string;\r\n public shipToAddr3: string;\r\n public shipToAddr4: string;\r\n public shipToAddr5: string;\r\n public shipPostalCode: string;\r\n public creditStatus: string;\r\n public taxStatus: string;\r\n\r\n\r\n public creditLimit: string;\r\n public currentBalance1: string;\r\n public valCurrentInv: string;\r\n public val30daysInv: string;\r\n public val60daysInv: string;\r\n public val90daysInv: string;\r\n public val120daysInv: string;\r\n public mtdCrMemoVal1: string;\r\n public valFutureInv: string;\r\n public mtdNumInvoices1: string;\r\n public numCurrentInv: string;\r\n public num30daysInv: string;\r\n public num60daysInv: string;\r\n public num90daysInv: string;\r\n public num120daysInv: string;\r\n public mtdNumCrMemos1: string;\r\n public numFutureInv: string;\r\n public mtdInvoiceVal1: string;\r\n\r\n public buyersName: string;\r\n public buyersEmail: string;\r\n public debtorsClerk: string;\r\n\r\n public overLimit: boolean;\r\n}\r\n\r\n","\r\nexport class ArNarration {\r\n constructor(customer?: string, invoice?: string, invoiceType?: string, noteType?: string, line?: number,\r\n notation?: string, existingNote?: string) {\r\n\r\n this.customer = customer;\r\n this.invoice = invoice;\r\n this.invoiceType = invoiceType;\r\n this.noteType = noteType;\r\n this.notation = notation;\r\n this.line = line;\r\n this.existingNote = existingNote;\r\n \r\n }\r\n /*[Key]*/\r\n public customer: string;\r\n public invoice: string;\r\n public invoiceType: string;\r\n public noteType: string;\r\n public line: number;\r\n public notation: string;\r\n public timestamp: number[];\r\n public existingNote: string;\r\n}\r\n\r\n","import * as moment from \"moment\";\r\nimport { ValueHelper } from \"./valuehelper.model\";\r\n\r\nexport class BankImport {\r\n \r\n constructor() {\r\n\r\n }\r\n\r\n public id: number;\r\n public company: string;\r\n public customer: string;\r\n public customerName: string;\r\n public customerMaster: string;\r\n public paymentValue: number;\r\n public bankReference: string;\r\n public sysproAllocation: string;\r\n public journalNotation: string;\r\n public paymentDate: Date;\r\n public paymentNarration: string;\r\n public bank: string;\r\n public tender: string;\r\n public paymentType: string;\r\n public paymentPeriod: string;\r\n public periodEndDate: Date;\r\n public insertDate: Date;\r\n public status: string;\r\n public message: string;\r\n public fileName: string;\r\n public trnYear: string;\r\n public trnMonth: string;\r\n public journal: string;\r\n public customerAccTerms: string;\r\n public customerApplyAutoPayments: string;\r\n public batchId: string;\r\n public processCustomer: string;\r\n public userName: string;\r\n}\r\nexport class BankImportHeader {\r\n id: number; // Int64 in C#\r\n company: string; // varchar(50)\r\n importDate: Date; // datetime\r\n importStatus: string; // varchar(50)\r\n userName: string; // varchar(50)\r\n batchId: string; // varchar(50)\r\n paymentPeriod: string; // varchar(50)\r\n fileName: string; // varchar(150)\r\n fileReference: string; // varchar(150)\r\n numberOfRecords: number; // int\r\n totalPaymentValue: number; // decimal(18, 2)\r\n hasWarnings: boolean; // bit\r\n postedDate?: Date; // datetime (nullable)\r\n postedStatus?: string; // varchar(50) (nullable)\r\n postedCount?: number; // int (nullable)\r\n postedValue?: number; // decimal(18, 2) (nullable)\r\n responseDate?: Date; // datetime (nullable)\r\n responseStatus?: string; // varchar(50) (nullable)\r\n responseCount?: number; // int (nullable)\r\n responseValue?: number; // decimal(18, 2) (nullable)\r\n notes: string; // varchar(MAX)\r\n timeSinceImport: string;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.company = '';\r\n this.importDate = new Date();\r\n this.importStatus = '';\r\n this.userName = '';\r\n this.batchId = '';\r\n this.paymentPeriod = '';\r\n this.fileName = '';\r\n this.numberOfRecords = 0;\r\n this.totalPaymentValue = 0;\r\n this.hasWarnings = false;\r\n this.notes = '';\r\n }\r\n}\r\n\r\n","import { ValueHelper } from \"./valuehelper.model\";\r\n\r\nexport class BarcodeReference {\r\n \r\n constructor() {\r\n\r\n }\r\n\r\n public invoice: string;\r\n public orderDate: Date;\r\n public fileNumber: number;\r\n public barcode: string;\r\n public prefix: string;\r\n public fileName: string;\r\n public branch: string;\r\n public status: string;\r\n public barcodeDate: Date;\r\n public month: string;\r\n public day: string;\r\n public barcodeEntryDateString: string;\r\n public lastSyncedDate: Date;\r\n public hasBuyouts: boolean;\r\n public exclude: boolean;\r\n public noInvoice: boolean;\r\n public company: string;\r\n public numberOfFiles: number;\r\n public documentType: string;\r\n public interWhSale: string;\r\n public invTerms: string;\r\n public orderStatus: string;\r\n public staffAccount: boolean;\r\n public fileNumbers: ValueHelper[];\r\n public bnumber: ValueHelper;\r\n public customer: string;\r\n public customerName: string;\r\n public operator: string;\r\n public shippingInstructions: string;\r\n public creditNote: string;\r\n \r\n}\r\n","\r\n\r\nexport class Branch {\r\n\r\n constructor(branch?: string, priceCode?: string, priceOverridePassword?: string,\r\n invoiceReprintPassword?: string, ledgerCode?: string, salesOrderPassword?: string) {\r\n\r\n this.branch = branch;\r\n this.priceCode = priceCode;\r\n this.priceOverridePassword = priceOverridePassword;\r\n this.invoiceReprintPassword = invoiceReprintPassword;\r\n this.ledgerCode = ledgerCode;\r\n this.salesOrderPassword = salesOrderPassword\r\n }\r\n\r\n\r\n public branch: string;\r\n public priceCode: string;\r\n public priceOverridePassword: string;\r\n public invoiceReprintPassword: string;\r\n public ledgerCode: string;\r\n public salesOrderPassword: string;\r\n}\r\n","export class Brand {\r\n constructor(brandName?: string, webDisplayName?: string, webDescription?: string, brandImage?: string, brandImageChanged?: Date, webEnabled?: boolean) {\r\n this.brandName = brandName;\r\n this.brandImage = brandImage;\r\n this.brandImageChanged = brandImageChanged;\r\n this.webDisplayName = webDisplayName;\r\n this.webDescription = webDescription;\r\n this.webEnabled = webEnabled;\r\n }\r\n\r\n public brandName: string;\r\n public webDisplayName: string;\r\n public webDescription: string;\r\n public webEnabled: boolean;\r\n public brandImage: string;\r\n public createdDate: string;\r\n public createdBy: string;\r\n public id: number;\r\n public filePath: string;\r\n public brandImageChanged: Date;//null;\r\n}\r\n","\r\nexport class CartDetail {\r\n constructor(cartNumber?: string, cartLineNumber?: number, lineType?: string, stockCode?: string, stockDescription?: string,\r\n warehouse?: string, orderQty?: number, unitCost?: number, orderUom?: string, priceUom?: string, sellingPrice?: number, discountPercentage1?: number,\r\n discountvalue?: number, priceConvFac?: number, lineTotal?: number, boSupplierCode?: string, boSupplierName?: string, boSupplierInvoice?: string,\r\n boLineInfo?: string, vatExempt?: boolean, originalPrice?: number, originalDiscount?: number, nettPrice?: number, \r\n nettDiscount?: number, gP?: number, availQty?: number, commentType?: string, commentFromLineNumber?: number,\r\n comment?: string, vatPercentage?: number, currentPrice?: number, specialPrice?: number) {\r\n\r\n this.cartNumber = cartNumber;\r\n this.cartLineNumber = cartLineNumber;\r\n this.lineType = lineType;\r\n this.stockCode = stockCode;\r\n this.stockDescription = stockDescription;\r\n this.warehouse = warehouse;\r\n this.orderQty = orderQty;\r\n this.availQty = availQty;\r\n this.unitCost = unitCost;\r\n this.orderUom = orderUom;\r\n this.priceUom = priceUom;\r\n this.sellingPrice = sellingPrice;\r\n this.discountPercentage1 = discountPercentage1;\r\n this.discountValue = discountvalue;\r\n this.priceConvFac = priceConvFac;\r\n this.lineTotal = lineTotal;\r\n this.boSupplierCode = boSupplierCode;\r\n this.boSupplierName = boSupplierName;\r\n this.boSupplierInvoice = boSupplierInvoice;\r\n this.boLineInfo = boLineInfo;\r\n this.vatExempt = vatExempt;\r\n this.originalPrice = originalPrice;\r\n this.originalDiscount = originalDiscount;\r\n this.nettPrice = nettPrice;\r\n this.nettDiscount = nettDiscount;\r\n this.gP = gP;\r\n this.commentType = commentType;\r\n this.commentFromLineNumber = commentFromLineNumber;\r\n this.comment = comment;\r\n this.vatPercentage = vatPercentage;\r\n this.currentPrice = currentPrice;\r\n this.specialPrice = specialPrice;\r\n }\r\n\r\n public cartNumber: string;\r\n public cartLineNumber: number;\r\n public lineType: string;\r\n public stockCode: string;\r\n public stockDescription: string;\r\n public warehouse: string;\r\n public orderQty: number;\r\n public unitCost: number;\r\n public unitPrice: number;\r\n public orderUom: string;\r\n public priceUom: string;\r\n public sellingPrice: number;\r\n public discountPercentage1: number;\r\n public discountValue: number;\r\n public unitmass: number;\r\n public unitvolume: number;\r\n public comment: string;\r\n public commentFromLineNumber: number;\r\n public commentType: string;\r\n public shipDate: Date;\r\n public lineCreateDate: Date;\r\n public boSupplierName: string;\r\n public boSupplierInvoice: string;\r\n public boLineInfo: string;\r\n public boSupplierCode: string;\r\n public priceConvFac: number;\r\n public lineTotal: number;\r\n public vatExempt: boolean;\r\n public remove: boolean;\r\n public originalPrice: number;\r\n public originalDiscount: number;\r\n public nettPrice: number;\r\n public nettDiscount: number;\r\n public gP: number;\r\n public availQty: number;\r\n public vatPercentage: number;\r\n public currentPrice: number;\r\n public mapped: boolean;\r\n public selected: boolean;\r\n public specialPrice: number;\r\n}\r\n\r\n","\r\nexport class CartHeader {\r\n constructor(cartNumber?: string, userid?: string, customer?: string, branchcode?: string, customerName?: string,\r\n telephone?: string, addTelephone?: string, fax?: string, email?: string, companyTaxNumber?: string, taxStatus?: string, taxExemptNumber?: string,\r\n contact?: string, soldToAddr1?: string, soldToAddr2?: string, soldToAddr3?: string, soldToAddr4?: string, soldToAddr5?: string, soldPostalCode?: string,\r\n shipToAddr1?: string, shipToAddr2?: string, shipToAddr3?: string, shipToAddr4?: string, shipToAddr5?: string, shipPostalCode?: string,\r\n area?: string, salesperson?: string, shipDate?: Date, orderDate?: Date, createDate?: Date, customerPoNumber?: string, shippingInstrs?: string,\r\n specialInstrs?: string, buyersName?: string, buyersEmail?: string, hasNettPrices?: boolean, quotedFrom?: string, specialPricesEnabled?: boolean) {\r\n\r\n this.cartNumber = cartNumber;\r\n this.userid = userid;\r\n this.customer = customer;\r\n this.branch_code = branchcode;\r\n this.customerName = customerName;\r\n this.telephone = telephone;\r\n this.addTelephone = addTelephone;\r\n this.email = email;\r\n this.fax = fax;\r\n this.companyTaxNumber = companyTaxNumber;\r\n this.area = area;\r\n this.salesperson = salesperson;\r\n this.contact = contact;\r\n this.taxExemptNumber = taxExemptNumber;\r\n this.taxStatus = taxStatus;\r\n this.soldToAddr1 = soldToAddr1;\r\n this.soldToAddr2 = soldToAddr2;\r\n this.soldToAddr3 = soldToAddr3;\r\n this.soldToAddr4 = soldToAddr4;\r\n this.soldToAddr5 = soldToAddr5;\r\n this.soldPostalCode = soldPostalCode;\r\n this.shipToAddr1 = shipToAddr1;\r\n this.shipToAddr2 = shipToAddr2;\r\n this.shipToAddr3 = shipToAddr3;\r\n this.shipToAddr4 = shipToAddr4;\r\n this.shipToAddr5 = shipToAddr5;\r\n this.shipPostalCode = shipPostalCode;\r\n this.shipDate = shipDate;\r\n this.orderdate = orderDate;\r\n this.createdate = createDate;\r\n this.alternateKey = \"\";\r\n this.customerPoNumber = customerPoNumber;\r\n this.shippingInstrs = shippingInstrs;\r\n this.specialInstrs = specialInstrs;\r\n this.buyersName = buyersName;\r\n this.buyersEmail = buyersEmail;\r\n this.hasNettPrices = hasNettPrices;\r\n this.quotedFrom = quotedFrom;\r\n this.specialPricesEnabled = specialPricesEnabled;\r\n }\r\n\r\n public cartNumber: string;\r\n public userid: string;\r\n public branch_code: string;\r\n public customer: string;\r\n public customerName: string;\r\n public telephone: string;\r\n public addTelephone: string;\r\n public fax: string;\r\n public email: string;\r\n public companyTaxNumber: string;\r\n public taxStatus: string;\r\n public taxExemptNumber: string;\r\n public soldToAddr1: string;\r\n public soldToAddr2: string;\r\n public soldToAddr3: string;\r\n public soldToAddr4: string;\r\n public soldToAddr5: string;\r\n public soldPostalCode: string;\r\n public shipToAddr1: string;\r\n public shipToAddr2: string;\r\n public shipToAddr3: string;\r\n public shipToAddr4: string;\r\n public shipToAddr5: string;\r\n public shipPostalCode: string;\r\n public shippingInstrs: string;\r\n public specialInstrs: string;\r\n public area: string;\r\n public salesperson: string;\r\n public contact: string;\r\n public telex: string;\r\n public customerPoNumber: string;\r\n public alternateKey: string;\r\n public shipDate: Date;\r\n public orderdate: Date;\r\n public ordertype: string;\r\n public orderdiscountpercentage: number;\r\n public createdate: Date;\r\n public hasNettPrices: boolean;\r\n public buyersName: string;\r\n public buyersEmail: string;\r\n public quotedFrom: string;\r\n public specialPricesEnabled: boolean;\r\n}\r\n\r\n","\r\n\r\nexport class CMSAdditionalImage {\r\n constructor(id?: number, referenceType?: string, referenceId?: number, stockCode?: string, imageName?: string, display?: boolean,\r\n modifiedDate?: Date, filePath?: string, imageIndex?: number) {\r\n this.id = id;\r\n this.referenceType = referenceType;\r\n this.referenceId = referenceId;\r\n this.stockCode = stockCode;\r\n this.imageName = imageName;\r\n this.filePath = filePath;\r\n this.display = display;\r\n this.modifiedDate = modifiedDate;\r\n this.imageIndex = imageIndex;\r\n }\r\n\r\n public id: number;\r\n public referenceType: string;\r\n public referenceId: number;\r\n public stockCode: string;\r\n public imageName: string;\r\n public filePath: string;\r\n public display: boolean;\r\n public modifiedDate: Date;//null;\r\n public imageIndex: number;\r\n public safeURL: any;\r\n}\r\n","import { CMStockCode } from \"./cms-stockcode.model\";\r\n\r\nexport class CMCategories {\r\n constructor(categoryName?: string, parentCategoryName?: string, categoryImage?: string, sequence?: number, statusIndicator?: string, keywords?: string,\r\n title?: string, metaDescription?: string, categoryImageChanged?: Date, parentCategoryId?: number, modifiedDate?: Date, createDate?: Date) {\r\n this.categoryName = categoryName;\r\n this.parentCategoryName = parentCategoryName;\r\n this.categoryImage = categoryImage;\r\n this.sequence = sequence;\r\n this.statusIndicator = statusIndicator;\r\n this.keywords = keywords;\r\n this.title = title;\r\n this.metaDescription = metaDescription;\r\n this.categoryImageChanged = categoryImageChanged;\r\n this.parentCategoryId = parentCategoryId;\r\n this.modifiedDate = modifiedDate;\r\n this.createDate = createDate;\r\n }\r\n\r\n public json: string;\r\n public categoryName: string;\r\n public parentCategoryName: string;\r\n public parentCategoryId: number;\r\n public categoryImage: string;\r\n public sequence: number;\r\n public statusIndicator: string;\r\n public keywords: string;\r\n public title: string;\r\n public metaDescription: string;\r\n public id: number;\r\n public createDate: Date;\r\n public modifiedDate: Date;\r\n public createdBy: string;\r\n public tree: string;\r\n public stockCodes: CMStockCode[];\r\n public filePath: string;\r\n public categoryImageChanged: Date;//null;\r\n}\r\n","import { Brand } from \"./brand.model\";\r\nimport { StockCodeDocuments } from \"./cms-stockcode.documents.model\";\r\n\r\nexport class CMStockCode {\r\n constructor(stockCode?: string, description?: string, onSpecial?: boolean, onSpecialFowkes?: boolean, alternateKey?: string,\r\n specialsImage?: string, specialPrice?: number, \r\n extraDescription1?: string, extraDescription2?: string,\r\n categoryName?: string, brandName?: string, stockCodeImage?: string,\r\n dataSheetImage?: string, addSheetImage?: string, status?: string, stockCodeImageChanged?: Date, dataSheetImageChanged?: Date,\r\n addSheetImageChanged?: Date, specialsImageChanged?: Date, checkOutBasket?: boolean ) {\r\n\r\n this.brandName = brandName;\r\n this.stockCode = stockCode;\r\n this.description = description;\r\n this.onSpecial = onSpecial;\r\n this.onSpecialFowkes = onSpecialFowkes;\r\n this.alternateKey = alternateKey;\r\n this.specialsImage = specialsImage;\r\n this.specialPrice = specialPrice;\r\n this.extraDescription1 = extraDescription1;\r\n this.extraDescription2 = extraDescription2;\r\n this.categoryName = categoryName;\r\n this.stockCodeImage = stockCodeImage;\r\n this.dataSheetImage = dataSheetImage;\r\n this.addSheetImage = addSheetImage;\r\n this.stockCodeImageChanged = stockCodeImageChanged;\r\n this.dataSheetImageChanged = dataSheetImageChanged;\r\n this.addSheetImageChanged = addSheetImageChanged;\r\n this.specialsImageChanged = specialsImageChanged;\r\n this.checkOutBasket = checkOutBasket;\r\n }\r\n\r\n public stockCode: string;\r\n public description: string;\r\n public extraDescription1: string;\r\n public extraDescription2: string;\r\n public categoryName: string;\r\n public brandName: string;\r\n public stockCodeImage: string;\r\n public dataSheetImage: string;\r\n public addSheetImage: string;\r\n public status: string;\r\n public showAlternate: boolean;\r\n public newArrival: boolean;\r\n public onSpecial: boolean;\r\n public onSpecialFowkes: boolean;\r\n public alternateKey: string;\r\n public specialsImage: string;\r\n public categoryTree: string;\r\n //public webDescription: string;\r\n //public showWebDescription: boolean;\r\n //public createdDate: string;\r\n //public createdBy: string;\r\n public id: number;\r\n public filePath: string;\r\n\r\n\r\n public qtyCT: number;\r\n public qtyCombined: number;\r\n public binLocCT: string;\r\n public createDate: Date;\r\n\r\n public specialPrice: number;\r\n\r\n\r\n public stockCodeImageChanged: Date;//null;\r\n public dataSheetImageChanged: Date;//null;\r\n public addSheetImageChanged: Date;//null;\r\n public specialsImageChanged: Date;//null;\r\n\r\n public checkOutBasket: Boolean;\r\n\r\n\r\n //public path: string;\r\n\r\n //public brandDetail: Brand;\r\n //public stockCodeDocuments: StockCodeDocuments[];\r\n\r\n}\r\n","\r\n\r\nexport class Establishment {\r\n\r\n constructor(branchCode?: string, companyCode?: string, company?: string, establishment?: string, establishmentType?: string) {\r\n\r\n this.branchCode = branchCode;\r\n this.companyCode = companyCode;\r\n this.company = company;\r\n this.establishment = establishment;\r\n this.establishmentType = establishmentType;\r\n }\r\n\r\n public establishmentId: number;\r\n public branchCode: string;\r\n public companyCode: string;\r\n public company: string;\r\n public establishment: string;\r\n public establishmentType: string;\r\n public comments: string;\r\n public country: string;\r\n public city: string;\r\n public tel: string;\r\n public fax: string;\r\n public email: string;\r\n public companyRegistration: string;\r\n public taxNumber: string;\r\n public addressLine1: string;\r\n public addressLine2: string;\r\n public addressLine3: string;\r\n public addressLine4: string;\r\n public addressLine5: string;\r\n public areaCode: string;\r\n public postalAddress1: string;\r\n public postalAddress2: string;\r\n public postalAddress3: string;\r\n public postalAddress4: string;\r\n public postalAddress5: string;\r\n public postalCode: string;\r\n public countryDiallingCode: string;\r\n public cityDiallingCode: string;\r\n public hoursWeekdays: string;\r\n public hoursSaturdays: string;\r\n public hoursSundays: string;\r\n public enabled: boolean;\r\n public googleBusinessProfile: string;\r\n public googleHyperlink: string;\r\n\r\n}\r\n","\r\nexport class CoreAudit {\r\n constructor(aspnetApplication?: string, sysproOperator?: string, branch?: string, referenceType?: string, referenceNumber?: string, actionType?: string, actionInput?: string,\r\n actionOutput?: string, actionedBy?: string, applicationUser?: string, groupKey?: string) {\r\n\r\n this.aspnetApplication = aspnetApplication;\r\n this.sysproOperator = sysproOperator;\r\n this.branch = branch;\r\n this.referenceType = referenceType;\r\n this.referenceNumber = referenceNumber;\r\n this.actionType = actionType;\r\n this.actionInput = actionInput;\r\n this.actionOutput = actionOutput;\r\n this.actionedBy = actionedBy;\r\n this.applicationUser = applicationUser;\r\n this.groupKey = groupKey;\r\n }\r\n\r\n public aspnetApplication: string;\r\n public sysproOperator: string;\r\n public branch: string;\r\n public referenceType: string;\r\n public referenceNumber: string;\r\n public actionType: string;\r\n public actionInput: string;\r\n public actionOutput: string;\r\n public actionedBy: string;\r\n public applicationUser: string;\r\n public groupKey: string;\r\n}\r\n\r\n","\r\nexport class CoreCustomerPrices {\r\n constructor(id?: number, customerCode?: string, customerId?: number, ruleId?: number, company?: string, stockCode?: string, costPrice?: number\r\n , sellingPrice?: number, newPrice?: number, supplierCode?: string, category?: string, categoryId?: number, gpValue?: number, gpOverride?: boolean, enabled?: boolean\r\n , description?: string, ruleName?: string, ruleDescription?: string, value?: number, addValue?: number, addText?: string, uom?: string\r\n , priority?: number, conversionFactor?: number, status?: string, brandName?: string) {\r\n\r\n this.id = id;\r\n this.customerCode = customerCode;\r\n this.customerId = customerId;\r\n this.ruleId = ruleId;\r\n this.company = company;\r\n this.stockCode = stockCode;\r\n this.costPrice = costPrice;\r\n this.sellingPrice = sellingPrice;\r\n this.newPrice = newPrice;\r\n this.supplierCode = supplierCode;\r\n this.category = category;\r\n this.categoryId = categoryId;\r\n this.gpValue = gpValue;\r\n this.gpOverride = gpOverride;\r\n this.gpOverride = gpOverride;\r\n this.enabled = enabled;\r\n this.priority = priority;\r\n this.description = description;\r\n this.ruleName = ruleName;\r\n this.ruleDescription = ruleDescription;\r\n this.value = value;\r\n this.addValue = addValue;\r\n this.addText = addText;\r\n this.uom = uom;\r\n this.conversionFactor = conversionFactor;\r\n this.status = status;\r\n this.brandName = brandName;\r\n \r\n }\r\n\r\n public id: number;\r\n public customerCode: string;\r\n public customerId: number;\r\n public ruleId: number;\r\n public company: string;\r\n public stockCode: string;\r\n public description: string;\r\n public uom: string;\r\n public costPrice: number;\r\n public sellingPrice: number;\r\n public newPrice: number;\r\n public supplierCode: string;\r\n public category: string;\r\n public categoryId: number;\r\n public gpValue: number;\r\n public gpOverride: boolean;\r\n public enabled: boolean;\r\n public priority: number;\r\n public ruleName: string;\r\n public ruleDescription: string;\r\n public value: number;\r\n public addValue: number;\r\n public conversionFactor: number;\r\n\r\n public addText: string;\r\n\r\n\r\n public createdBy: string;\r\n public modifiedBy: string;\r\n\r\n public createdOn: Date;\r\n public modifiedOn: Date;\r\n public lastCostChange: Date;\r\n\r\n public brandName: string;\r\n public status: string;\r\n public warning: boolean;\r\n}\r\n\r\n","\r\nexport class CoreCustomerRule {\r\n constructor() {\r\n\r\n \r\n \r\n }\r\n\r\n public id: number;\r\n public customerId: number;\r\n public customerCode: string;\r\n public ruleName: string;\r\n public ruleDescription: string;\r\n public code: string;\r\n\r\n\r\n public value: number;\r\n public addValue: number;\r\n\r\n public addText: string;\r\n public addCheck: boolean;\r\n public addFlag: string;\r\n public priority: number;\r\n public categoryId: number;\r\n\r\n\r\n public createdBy: string;\r\n public modifiedBy: string;\r\n\r\n public createdOn: Date;\r\n public modifiedOn: Date;\r\n}\r\n\r\n","\r\nexport class CoreCustomer {\r\n constructor(customerCode?: string, company?: string, enabled?: boolean) {\r\n\r\n \r\n this.customerCode = customerCode;\r\n this.company = company;\r\n this.enabled = enabled;\r\n \r\n }\r\n\r\n public id: number;\r\n public customerCode: string;\r\n public company: string\r\n public enabled: boolean;\r\n\r\n\r\n public createdBy: string;\r\n public modifiedBy: string;\r\n\r\n public createdOn: Date;\r\n public modifiedOn: Date;\r\n public staffAccount: boolean;\r\n \r\n}\r\n\r\n","export class CustomerOTPHeader {\r\n // Note: Using only optional constructor properties without backing store disables typescript's type checking for the type\r\n constructor(otpHeaderReference?: string, statement?: string, dateFrom?: Date, dateTo?: Date, createDate?: Date, application?: string,\r\n customerCode?: string, createdBy?: string, sentTo?: string, status?: string, customerName?: string, updatedStatus?: string, updatedCustomerStatus?: string) {\r\n\r\n this.otpHeaderReference = otpHeaderReference;\r\n this.statement = statement;\r\n this.dateFrom = dateFrom;\r\n this.dateTo = dateTo;\r\n this.createDate = createDate;\r\n this.application = application;\r\n this.customerCode = customerCode;\r\n this.createdBy = createdBy;\r\n this.sentTo = sentTo;\r\n this.status = status;\r\n this.customerName = customerName;\r\n this.updatedStatus = updatedStatus;\r\n this.updatedCustomerStatus = updatedCustomerStatus;\r\n }\r\n\r\n\r\n public otpHeaderReference: string;\r\n public statement: string;\r\n public dateFrom: Date;\r\n public dateTo: Date;\r\n public createDate: Date;\r\n public application: string;\r\n public customerCode: string\r\n public createdBy: string;\r\n public sentTo: string;\r\n public status: string;\r\n public customerName: string;\r\n public updatedStatus: string;\r\n public updatedCustomerStatus: string;\r\n}\r\n","export class CustomerOTPReference {\r\n // Note: Using only optional constructor properties without backing store disables typescript's type checking for the type\r\n constructor(otpReference?: string, documentNumber?: string, dateFrom?: Date, dateTo?: Date, createDate?: Date, application?: string,\r\n customerCode?: string, createdBy?: string, sentTo?: string, status?: string) {\r\n\r\n this.otpReference = otpReference;\r\n this.documentNumber = documentNumber;\r\n this.dateFrom = dateFrom;\r\n this.dateTo = dateTo;\r\n this.createDate = createDate;\r\n this.application = application;\r\n this.customerCode = customerCode;\r\n this.createdBy = createdBy;\r\n this.sentTo = sentTo;\r\n this.status = status;\r\n }\r\n\r\n\r\n public otpReference: string;\r\n public documentNumber: string;\r\n public dateFrom: Date;\r\n public dateTo: Date;\r\n public createDate: Date;\r\n public application: string;\r\n public customerCode: string\r\n public createdBy: string;\r\n public sentTo: string;\r\n public status: string;\r\n}\r\n","export class DocumentCategory {\r\n constructor(title?: string, categoryName?: string, parentCategoryName?: string, enabled?: boolean, responsibility?: string) {\r\n this.categoryName = categoryName;\r\n this.parentCategoryName = parentCategoryName;\r\n this.enabled = enabled;\r\n this.responsibility = responsibility;\r\n this.enabled = enabled;\r\n }\r\n\r\n public json: string;\r\n public id: number;\r\n public categoryName: string;\r\n public parentCategoryName: string;\r\n public enabled: boolean;\r\n public responsibility: string;\r\n public createdDate: string;\r\n public createdBy: string;\r\n public displayName: string;\r\n}\r\n","\r\nexport class DocumentManagmement {\r\n constructor( ) {\r\n\r\n \r\n }\r\n\r\n public id: number;\r\n public documentName: string;\r\n public description: string;\r\n public categoryName: string;\r\n public parentCategoryName: string;\r\n public value: string;\r\n public isLink: boolean;\r\n public enabled: boolean;\r\n public responsibility: string;\r\n public createdBy: string;\r\n public filePath: string;\r\n}\r\n\r\n","\r\n\r\nexport class CoreEmailTemplate {\r\n id: number; // Auto-incrementing unique identifier\r\n name: string; // Friendly name for the template\r\n type: string; // Type of template (e.g., Customer, Supplier)\r\n subject: string; // Subject line of the email\r\n body: string; // The body of the email with placeholders\r\n isActive: boolean; // Indicates if the template is active\r\n createdDate: Date; // Date the template was created\r\n modifiedDate?: Date; // Last modified date\r\n createdBy?: string; // User who created the template\r\n modifiedBy?: string; // User who last modified the template\r\n}\r\n","\r\nexport class Email {\r\n constructor(recepientName?: string, recepientEmail?: string, subject?: string, bod?: string, senderName?: string, senderEmail?: string,\r\n attachment?: string, cc?: string, bcc?: string, emailType?: string, senderBranch?: string, addDoc1?: string, addDoc2?: string, addDoc3?: string, senderCompany?: string) {\r\n\r\n this.RecepientName = recepientName;\r\n this.RecepientEmail = recepientEmail;\r\n this.Subject = subject;\r\n this.Bod = bod;\r\n this.SenderName = senderName;\r\n this.SenderEmail = senderEmail;\r\n this.Attachment = attachment;\r\n this.CC = cc;\r\n this.BCC = bcc;\r\n this.EmailType = emailType;\r\n this.SenderBranch = senderBranch;\r\n this.AddDoc1 = addDoc1;\r\n this.AddDoc2 = addDoc2;\r\n this.AddDoc3 = addDoc3;\r\n this.SenderCompany = senderCompany;\r\n }\r\n\r\n public RecepientName: string\r\n public RecepientEmail: string\r\n public Subject: string\r\n public Bod: string\r\n public SenderName: string\r\n public SenderEmail: string\r\n public Attachment: string\r\n public CC: string\r\n public BCC: string\r\n public EmailType: string\r\n public SenderBranch: string\r\n public AddDoc1: string\r\n public AddDoc2: string\r\n public AddDoc3: string\r\n public SenderCompany: string\r\n\r\n}\r\n\r\n","\r\nexport enum Gender {\r\n None,\r\n Female,\r\n Male\r\n}\r\n\r\nexport class localStorageActions {\r\n public static Customer: string = \"Customer\";\r\n public static Branch: string = \"Branch\";\r\n public static StockCode: string = \"StockCode\";\r\n public static CartId: string = \"CartId\";\r\n public static QuoteNumber: string = \"QuoteNumber\";\r\n public static Reset: string = \"Reset\";\r\n public static SalesOrderNumber: string = \"SalesOrderNumber\";\r\n public static InvoiceNumber: string = \"InvoiceNumberNumber\";\r\n public static ITSInvoiceNumber: string = \"ITSInvoiceNumberNumber\";\r\n public static PurchaseOrder: string = \"PurchaseOrder\";\r\n public static PODReference: string = \"PODReference\";\r\n public static GroupedValues: string = \"GroupedValues\";\r\n public static SearchValue: string = \"SearchValue\";\r\n}\r\n\r\n\r\n\r\n","export class InfoBoardNotes {\r\n constructor(note?: string, status?: string) {\r\n this.note = note;\r\n this.status = status;\r\n }\r\n\r\n public id: number;\r\n public informationBoardName: string;\r\n public note: string;\r\n public heading: string;\r\n public status: string;\r\n public createdDate: string;\r\n public createdBy: string;\r\n public documentName: string;\r\n public modifiedDate: string;\r\n public modifiedBy: string;\r\n\r\n}\r\n","\r\n\r\nexport class InventoryMovements {\r\n constructor() {\r\n }\r\n\r\n\r\n public warehouse: string;\r\n public stockCode: string;\r\n public entryDate: Date;\r\n public movementType: string;\r\n public movementTypeDescr: string;\r\n public trnQty: number;\r\n public trnValue: number;\r\n public jobSource: string;\r\n public job: string;\r\n public enteredCost: number;\r\n public trnType: string;\r\n public trnTypeDescr: string;\r\n public reference: string;\r\n public addReference: string;\r\n public unitCost: number;\r\n public newWarehouse: string;\r\n public bin: string;\r\n public supplier: string;\r\n public salesOrder: string;\r\n public summaryLine: number;\r\n public invoice: string;\r\n public docType: string;\r\n public docTypeDescr: string;\r\n public customer: string;\r\n public customerName: string;\r\n public costValue: number;\r\n\r\n public branch: string;\r\n public salesPerson: string;\r\n public salesPersonName: string;\r\n public salesBin: string;\r\n public customerPoNumber: string;\r\n public orderType: string;\r\n public saveDate: Date;\r\n public saveWH: string;\r\n public saveOrigQtyOnHand: number;\r\n public saveQtyCaptured: number;\r\n public saveUom: string;\r\n public saveReference: string;\r\n public saveSystemDate: Date;\r\n}\r\n\r\n","\r\n\r\nexport class WHAvailQTY {\r\n\r\n constructor() { }\r\n\r\n public warehouse: string;\r\n public warehouseDescription: string;\r\n public qty: number;\r\n public unitCost: number;\r\n public warehouseQty: string;\r\n public sellingPrice: number;\r\n public qtyOnOrder: number;\r\n public qtyInTransit: number;\r\n public uom: string;\r\n public orderDueDate: string;\r\n public buyerResponsible: string;\r\n public dateLastCostChange: string;\r\n}\r\n","\r\nexport class Inventory {\r\n constructor(stockCode?: string, warehouse?: string, description?: string, availQty?: number, uom?: string,\r\n priceUom?: string, backOrderIndicator?: string, binLoc?: string, decimals?: number, qtyOnHand?: number, qtyAllocated?: number,\r\n qtyInTransit?: number, qtyOnOrder?: number, sellingPrice?: number, unitCost?: number, priceConvFac?: number, showAlternate?: boolean,\r\n newArrival?: boolean, onSpecial?: boolean, onSpecialFowkes?: boolean, alternateKey?: string, specialsImage?: string, specialPrice?: number, \r\n orderqty?: number, discountpercentage1?: number, lineTotal?: number,\r\n extraDescription1?: string, extraDescription2?: string,\r\n categoryName?: string, brandName?: string, stockCodeImage?: string,\r\n dataSheetImage?: string, addSheetImage?: string, status?: string, drawOfficeNum?: string, \r\n mapped?: boolean, shortDescription?: string, longDescription?: string, impaCodes?: string, categoryId?: number, id?: number,\r\n vatExempt?: boolean, extraProductInform?: string, sysproNettPrice?: boolean, newPrice?: number, stockCodeImageChanged?: Date, dataSheetImageChanged?: Date,\r\n addSheetImageChanged?: Date, specialsImageChanged?: Date, topSellerText?: string, qtyPerCase?: number, checkOutBasket?: boolean ) {\r\n\r\n this.stockCode = stockCode;\r\n this.warehouse = warehouse;\r\n this.description = description;\r\n this.availQty = availQty;\r\n this.uom = uom;\r\n this.priceUom = priceUom;\r\n this.backOrderIndicator = backOrderIndicator;\r\n this.binLoc = binLoc;\r\n this.decimals = decimals;\r\n this.qtyOnHand = qtyOnHand;\r\n this.qtyAllocated = qtyAllocated;\r\n this.qtyInTransit = qtyInTransit;\r\n this.qtyOnOrder = qtyOnOrder;\r\n this.sellingPrice = sellingPrice;\r\n this.unitCost = unitCost;\r\n this.priceConvFac = priceConvFac;\r\n this.showAlternate = showAlternate;\r\n this.newArrival = newArrival;\r\n this.onSpecial = onSpecial;\r\n this.onSpecialFowkes = onSpecialFowkes;\r\n this.alternateKey = alternateKey;\r\n this.specialsImage = specialsImage;\r\n this.specialPrice = specialPrice;\r\n this.extraDescription1 = extraDescription1;\r\n this.extraDescription2 = extraDescription2;\r\n this.categoryName = categoryName;\r\n this.brandName = brandName;\r\n this.stockCodeImage = stockCodeImage;\r\n this.dataSheetImage = dataSheetImage;\r\n this.addSheetImage = addSheetImage;\r\n this.status = status;\r\n this.drawOfficeNum = drawOfficeNum;\r\n this.mapped = mapped;\r\n this.shortDescription = shortDescription;\r\n this.longDescription = longDescription;\r\n this.impaCodes = impaCodes;\r\n this.categoryId = categoryId;\r\n this.id = id;\r\n this.vatExempt = vatExempt;\r\n this.extraProductInform = extraProductInform;\r\n this.topSellerText = topSellerText;\r\n this.sysproNettPrice = sysproNettPrice;\r\n this.newPrice = newPrice;\r\n this.stockCodeImageChanged = stockCodeImageChanged;\r\n this.dataSheetImageChanged = dataSheetImageChanged;\r\n this.addSheetImageChanged = addSheetImageChanged;\r\n this.specialsImageChanged = specialsImageChanged;\r\n this.qtyPerCase = qtyPerCase;\r\n this.checkOutBasket = checkOutBasket;\r\n }\r\n\r\n public id: number;\r\n public stockCode: string;\r\n public warehouse: string;\r\n public description: string;\r\n public availQty: number;\r\n public uom: string;\r\n public priceUom: string;\r\n public backOrderIndicator: string;\r\n public binLoc: string;\r\n public decimals: number;\r\n public qtyOnHand: number;\r\n public qtyAllocated: number;\r\n public qtyInTransit: number;\r\n public qtyOnOrder: number;\r\n public sellingPrice: number;\r\n public unitCost: number;\r\n public priceConvFac: number;\r\n public showAlternate: boolean;\r\n public newArrival: boolean;\r\n public onSpecial: boolean;\r\n public onSpecialFowkes: boolean;\r\n public alternateKey: string;\r\n public specialsImage: string;\r\n public specialPrice: number;\r\n public orderqty: number;\r\n public orderQty: number;\r\n public discountpercentage1: number;\r\n public lineTotal: number;\r\n\r\n public extraDescription1: string;\r\n public extraDescription2: string;\r\n public categoryName: string;\r\n public brandName: string;\r\n public stockCodeImage: string;\r\n public dataSheetImage: string;\r\n public addSheetImage: string;\r\n public status: string;\r\n public drawOfficeNum: string;\r\n public mapped: boolean;\r\n public shortDescription: string;\r\n public longDescription: string;\r\n public impaCodes: string;\r\n public categoryId: number;\r\n public categoryTree: string;\r\n public filePath: string;\r\n public qtyCT: number;\r\n public qtyCombined: number;\r\n public binLocCT: string;\r\n public createDate: Date;\r\n public specialDiscount: number;\r\n public specialCostAdd: number;\r\n public specialGP: number;\r\n public specialName: string;\r\n public specialPriority: number;\r\n\r\n public vatExempt: boolean;\r\n public extraProductInform: string;\r\n public topSellerText: string;\r\n public sysproNettPrice: boolean;\r\n public newPrice: number;\r\n public stockCodeImageChanged: Date;//null;\r\n public dataSheetImageChanged: Date;//null;\r\n public addSheetImageChanged: Date;//null;\r\n public specialsImageChanged: Date;//null;\r\n public modifiedDate: Date;\r\n public qtyPerCase: number;\r\n public checkOutBasket: boolean;\r\n}\r\n\r\n","\r\nexport class InvoiceHeader {\r\n constructor(invoiceNumber?: string, salesOrderNumber?: string, customer?: string, branch_code?: string, customerName?: string,\r\n telephone?: string, addTelephone?: string, fax?: string, email?: string, companyTaxNumber?: string, taxStatus?: string, taxExemptNumber?: string,\r\n contact?: string, soldToAddr1?: string, soldToAddr2?: string, soldToAddr3?: string, soldToAddr4?: string, soldToAddr5?: string, soldPostalCode?: string,\r\n shipToAddr1?: string, shipToAddr2?: string, shipToAddr3?: string, shipToAddr4?: string, shipToAddr5?: string, shipPostalCode?: string,\r\n area?: string, salesperson?: string, shipDate?: Date, orderDate?: Date, createDate?: Date,\r\n buyersName?: string, buyersEmail?: string, vatPercentage?: number, originalOperator?: string, originalOperatorName?: string) {\r\n\r\n this.invoiceNumber = invoiceNumber;\r\n this.salesOrderNumber = salesOrderNumber;\r\n // this.userid = userid;\r\n this.customer = customer;\r\n this.branch_code = branch_code;\r\n this.customerName = customerName;\r\n this.telephone = telephone;\r\n this.addTelephone = addTelephone;\r\n this.email = email;\r\n this.fax = fax;\r\n this.companyTaxNumber = companyTaxNumber;\r\n this.area = area;\r\n this.salesperson = salesperson;\r\n this.contact = contact;\r\n this.taxExemptNumber = taxExemptNumber;\r\n this.taxStatus = taxStatus;\r\n this.soldtoaddr1 = soldToAddr1;\r\n this.soldtoaddr2 = soldToAddr2;\r\n this.soldtoaddr3 = soldToAddr3;\r\n this.soldtoaddr4 = soldToAddr4;\r\n this.soldtoaddr5 = soldToAddr5;\r\n this.soldpostalcode = soldPostalCode;\r\n this.shiptoaddr1 = shipToAddr1;\r\n this.shiptoaddr2 = shipToAddr2;\r\n this.shiptoaddr3 = shipToAddr3;\r\n this.shiptoaddr4 = shipToAddr4;\r\n this.shiptoaddr5 = shipToAddr5;\r\n this.shippostalcode = shipPostalCode;\r\n this.shipdate = shipDate;\r\n this.orderdate = orderDate;\r\n this.createdate = createDate;\r\n this.alternateKey = \"\";\r\n this.buyersName = buyersName;\r\n this.buyersEmail = buyersEmail;\r\n this.vatPercentage = vatPercentage;\r\n this.originalOperator = originalOperator;\r\n this.originalOperatorName = originalOperatorName;\r\n }\r\n\r\n public invoiceNumber: string;\r\n public salesOrderNumber: string;\r\n //public userid: string;\r\n public branch_code: string;\r\n public customer: string;\r\n public customerName: string;\r\n public telephone: string;\r\n public addTelephone: string;\r\n public fax: string;\r\n public email: string;\r\n public companyTaxNumber: string;\r\n public taxStatus: string;\r\n public taxExemptNumber: string;\r\n public soldtoaddr1: string;\r\n public soldtoaddr2: string;\r\n public soldtoaddr3: string;\r\n public soldtoaddr4: string;\r\n public soldtoaddr5: string;\r\n public soldpostalcode: string;\r\n public shiptoaddr1: string;\r\n public shiptoaddr2: string;\r\n public shiptoaddr3: string;\r\n public shiptoaddr4: string;\r\n public shiptoaddr5: string;\r\n public shippostalcode: string;\r\n public shippingInstrs: string;\r\n public specialInstrs: string;\r\n public area: string;\r\n public salesperson: string;\r\n public contact: string;\r\n public telex: string;\r\n public customerPoNumber: string;\r\n public alternateKey: string;\r\n public shipdate: Date;\r\n public orderdate: Date;\r\n public ordertype: string;\r\n public orderdiscountpercentage: number;\r\n public createdate: Date;\r\n public totalIncl: number;\r\n public totalExcl: number;\r\n public totalDiscount: number;\r\n public displayDate: string;\r\n public orderStatus: string;\r\n public buyersName: string;\r\n public buyersEmail: string;\r\n public operator: string;\r\n public salesPersonName: string;\r\n public vatPercentage: number;\r\n public originalOperator: string;\r\n public originalOperatorName: string;\r\n public itsInvoice: string;\r\n public statusDescription: string;\r\n\r\n}\r\n\r\n","\r\nexport class TrackingAreas {\r\n id: number;\r\n province: string | null;\r\n city: string | null;\r\n suburb: string | null;\r\n streetCode: string | null;\r\n poBoxCode: string | null;\r\n area: string | null;\r\n driversCageId: number | null;\r\n\r\n}\r\n\r\n","\r\nexport class ITSDriverCages {\r\n id: number;\r\n cageName: string;\r\n cageNumber: string | null;\r\n cageDescription: string | null;\r\n createDate: Date;\r\n createdBy: string;\r\n modifiedDate: Date | null;\r\n modifiedBy: string | null;\r\n\r\n cageDetails: ITSDriverCagesDetail[];\r\n\r\n}\r\n\r\nexport class ITSDriverCagesDetail {\r\n id: number;\r\n cageId: number;\r\n areaDescription: string | null;\r\n areaId: number;\r\n province: string | null;\r\n city: string | null;\r\n suburb: string | null;\r\n streetCode: string | null;\r\n\r\n}\r\n\r\n","\r\nexport class ITSDriver {\r\n constructor(driverName?: string, driverCode?: string, driverImage?: string,\r\n filePath?: string, defaultRoute?: string, defaultVehicle?: string, driverTel?: string) {\r\n\r\n this.driverName = driverName;\r\n this.driverCode = driverCode;\r\n this.driverImage = driverImage;\r\n this.filePath = filePath;\r\n this.defaultRoute = defaultRoute;\r\n this.defaultVehicle = defaultVehicle;\r\n this.driverTel = driverTel;\r\n }\r\n\r\n public id: number;\r\n public driverName: string;\r\n public driverCode: string;\r\n public defaultRoute: string;\r\n public driverImage: string;\r\n public filePath: string;\r\n public defaultVehicle: string;\r\n public model: string;\r\n public createdDate: string;\r\n public createdBy: string;\r\n public modifiedDate: string;\r\n public modifiedBy: string;\r\n public driverTel: string;\r\n\r\n}\r\n\r\n","export class ITSDriversLog {\r\n public id: number;\r\n public driverCode: string;\r\n public driverName: string;\r\n public driverImage: string;\r\n public filePath: string;\r\n public vehicleNumber: string;\r\n public vehicleDescription: string;\r\n public cageNumber: string;\r\n public cageDescription: string;\r\n public totalParcels: number;\r\n public totalParcelsUndelivered: number;\r\n public trackingInsertDate: Date;\r\n public ReadyForPrint: boolean;\r\n public PrintedDate: Date | null;\r\n\r\n details: ITSParcelTrackingDetailLog[];\r\n}\r\n\r\nexport class ITSParcelTrackingDetailLog {\r\n public id: number;\r\n public trackingHeaderId: number;\r\n public invoiceNumber: string;\r\n public salesOrder: string;\r\n public scannedStatus: string;\r\n public scannedCount: number;\r\n public scannedDate: Date;\r\n public fromCompany: string;\r\n public operator: string;\r\n public undeliveredStatus: string;\r\n public undeliveredDate: Date | null;\r\n public undeliveredCount: number | null;\r\n public undeliveredUser: string;\r\n public undeliveredReason: string;\r\n public customer: string;\r\n public shipToAddr1: string;\r\n public shipToAddr2: string;\r\n public shipToAddr3: string;\r\n public shipToAddr4: string;\r\n public shipToAddr5: string;\r\n public shipPostalCode: string;\r\n public shippingInstrs: string;\r\n public specialInstrs: string;\r\n public serverDate: Date;\r\n\r\n // Additional properties based on the UPDATE statements in the stored procedure\r\n public customerName: string;\r\n public telephone: string;\r\n public addTelephone: string;\r\n public contact: string;\r\n public createDate: Date | null;\r\n public branchCode: string;\r\n public salesperson: string;\r\n public customerPoNumber: string;\r\n public shipDate: Date | null;\r\n public orderDate: Date | null;\r\n public rep: string;\r\n public totalIncl: number | null;\r\n public totalExcl: number | null;\r\n public totalDiscount: number | null;\r\n public invoiceOperator: string;\r\n public salesPersonName: string;\r\n public itsParcelCount: number | null;\r\n public itsDespatchNotes: string;\r\n public itsUpdatedBy: string;\r\n}\r\n\r\n","\r\nexport class ITSLabelPrinting {\r\n public id: number;\r\n public invoiceNumber: string;\r\n public operator: string;\r\n public salesOrder: string;\r\n public insertDate: Date;\r\n public printed: boolean;\r\n public numberOfLabels: number;\r\n public printedDate: Date;\r\n public status: string;\r\n public despatchParcels: string;\r\n public printedTo: string;\r\n\r\n}\r\n\r\n","\r\nexport class InvoiceTrackingLookup {\r\n constructor() {\r\n\r\n }\r\n public invoice: string;\r\n public salesOrder: string;\r\n public branchCode: string;\r\n public purchaseOrder: string;\r\n public creditNote: string;\r\n public shippingInstructions: string;\r\n public company: string;\r\n public customerCode: string;\r\n public customerName: string;\r\n public operatorCode: string;\r\n public pods: boolean;\r\n public insertDate: Date;\r\n public poCount: number;\r\n}\r\n\r\n","export class ITSParcelTracking {\r\n id: number;\r\n driverCode: string;\r\n vehicleNumber: string;\r\n cageNumber: string;\r\n totalParcels: number;\r\n totalParcelsUndelivered: number;\r\n trackingInsertDate: Date;\r\n}\r\n\r\nexport class ITSParcelTrackingDetail {\r\n id: number;\r\n trackingHeaderId: number;\r\n invoiceNumber: string;\r\n salesOrder: string;\r\n scannedStatus: string;\r\n scannedCount: number;\r\n scannedDate: Date;\r\n fromCompany: string;\r\n operator: string;\r\n undeliveredStatus: string | null;\r\n undeliveredDate: Date | null; \r\n undeliveredCount: number | null;\r\n undeliveredUser: string | null;\r\n undeliveredReason: string | null;\r\n customer: string;\r\n shipToAddr1: string;\r\n shipToAddr2: string;\r\n shipToAddr3: string;\r\n shipToAddr4: string;\r\n shipToAddr5: string;\r\n shipPostalCode: string;\r\n shippingInstrs: string;\r\n specialInstrs: string;\r\n}\r\n\r\n\r\n","\r\nexport class InvoiceTrackingStatus {\r\n constructor() {\r\n\r\n }\r\n public id: number;\r\n public invoiceNumber: string;\r\n public salesOrder: string;\r\n public branch: string;\r\n public shippingInstructions: string;\r\n public customerCode: string;\r\n public customerName: string;\r\n public currentStatus: string;\r\n public printed: string;\r\n public printedDateTime: Date;\r\n public printedUser: string;\r\n public picking: string;\r\n public pickingDateTime: Date;\r\n public pickingUser: string;\r\n public onHold: string;\r\n public onHoldDateTime: Date;\r\n public onHoldUser: string;\r\n public onHoldUpdate: string;\r\n public picked: string;\r\n public pickedDateTime: Date;\r\n public pickedUser: string;\r\n public checked: string;\r\n public checkedDateTime: Date;\r\n public checkedUser: string;\r\n public dispatch: string;\r\n public dispatchDateTime: Date;\r\n public dispatchUser: string;\r\n public collections: string;\r\n public collectionsDateTime: Date;\r\n public collectionsUser: string;\r\n public delivery: string;\r\n public deliveryDateTime: Date;\r\n public deliveryUser: string;\r\n public returned: string;\r\n public returnedDateTime: Date;\r\n public returnedUser: string;\r\n public completed: string;\r\n public completedDateTime: Date;\r\n public completedUser: string;\r\n public purge: string;\r\n public purgeOperator: string;\r\n public purgeUser: string;\r\n public purgeReason: string;\r\n public purgeDateTime: Date;\r\n public transfer: string;\r\n public transferInvoiceNumber: string;\r\n public lastOperator: string;\r\n public insertDate: Date;\r\n public poCount: number;\r\n public creditInvoice: string;\r\n public podReceived: string;\r\n public podReceivedDate: Date;\r\n public invoiceCredited: string;\r\n public invoiceCreditedDate: Date;\r\n public creditNoteNumber: string;\r\n public fromCompany: string;\r\n public operatorCode?: string;\r\n public pendingStatus: string;\r\n}\r\n\r\n","\r\nexport class ITSVehicles {\r\n id: number;\r\n vehicleName: string;\r\n vehicleNumber: string | null;\r\n vehicleDescription: string | null;\r\n createDate: Date;\r\n createdBy: string;\r\n modifiedDate: Date | null;\r\n modifiedBy: string | null;\r\n}\r\n\r\n","import { PurchaseOrderList } from \"./purchaseorder-list.model\";\r\nimport { Supplier } from \"./supplier.model\";\r\n\r\nexport class JobCard {\r\n id: number;\r\n jobCardNumber: string;\r\n referenceNumber: string;\r\n customerCode: string;\r\n customerName: string;\r\n machineDescription: string;\r\n statusId: number;\r\n repairTime: number;\r\n dateMachineReceived: string;\r\n invoiceDate?: Date;\r\n invoiceNumber?: string;\r\n salesOrderNumber?: string;\r\n quoteNumber?: string;\r\n comments?: string;\r\n assignedTechnician?: string;\r\n completionDate?: Date;\r\n costOfRepair: number;\r\n branchCode: string;\r\n createdDate: Date;\r\n modifiedDate?: Date;\r\n customerContactInfo?: string;\r\n purchaseOrderNumber?: string;\r\n formattedDate: string;\r\n statusName: string;\r\n jobContactName: string;\r\n jobContactEmail: string;\r\n jobContactTelephone: string;\r\n binNumber: string;\r\n supplierCode: string;\r\n supplierName: string;\r\n ptrNumber: string;\r\n poNumbers: PurchaseOrderList[];\r\n salespersonEmail: string;\r\n salesPersonName: string;\r\n salesPersonOperator: string;\r\n supplierEmail: string;\r\n supplierContact: string;\r\n supplierTelephone: string;\r\n customerDescription: string\r\n company: string;\r\n accessories: string;\r\n accessoriesList: string[] = [];\r\n additionalSuppliers: JobCardSuppliers[] = [];\r\n originalInvoice: string | null;\r\n originalInvoiceDate: Date | null;\r\n originalInvoiceDetails: string;\r\n originalInvoiceHasPODs: boolean;\r\n modifiedBy: string;\r\n daysSinceStatusChanged: number;\r\n lastStatusChangeDate: Date | null;\r\n isHighlight: boolean;\r\n itsStatus: string;\r\n warrantyRepair: string;\r\n warrantyRepairList: string[] = [];\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.jobCardNumber = '';\r\n this.referenceNumber = '';\r\n this.customerCode = '';\r\n this.customerName = '';\r\n this.machineDescription = '';\r\n this.statusId = 0;\r\n this.repairTime = 0.00;\r\n this.dateMachineReceived = new Date().toISOString();\r\n this.invoiceDate = undefined;\r\n this.invoiceNumber = '';\r\n this.salesOrderNumber = '';\r\n this.quoteNumber = '';\r\n this.comments = '';\r\n this.assignedTechnician = '';\r\n this.completionDate = undefined;\r\n this.costOfRepair = 0.00;\r\n this.branchCode = '';\r\n this.createdDate = new Date();\r\n this.modifiedDate = undefined;\r\n this.customerContactInfo = '';\r\n this.purchaseOrderNumber = '';\r\n this.jobContactName = '';\r\n this.jobContactEmail = '';\r\n this.jobContactTelephone = '';\r\n this.binNumber = '';\r\n this.supplierCode = '';\r\n this.supplierName = '';\r\n this.ptrNumber = '';\r\n this.salespersonEmail = '';\r\n this.salesPersonName = '';\r\n this.salesPersonOperator = '';\r\n this.supplierEmail = '';\r\n this.supplierContact = '';\r\n this.supplierTelephone = '';\r\n this.accessories = '';\r\n this.accessoriesList = [];\r\n this.originalInvoice = '';\r\n this.originalInvoiceDate = null;\r\n this.originalInvoiceDetails = '';\r\n this.originalInvoiceHasPODs = true;\r\n this.modifiedBy = '';\r\n this.daysSinceStatusChanged = 0;\r\n this.itsStatus = '';\r\n this.warrantyRepair = '';\r\n this.warrantyRepairList = [];\r\n }\r\n}\r\n\r\nexport class CoreJCStatus {\r\n statusId: number;\r\n statusName: string;\r\n statusDescription?: string;\r\n isActive: boolean;\r\n createdDate: Date;\r\n modifiedDate: Date;\r\n\r\n constructor() {\r\n this.statusId = 0;\r\n this.statusName = '';\r\n this.statusDescription = '';\r\n this.isActive = true;\r\n this.createdDate = new Date();\r\n this.modifiedDate = new Date();\r\n }\r\n}\r\n\r\n\r\nexport class JobCardStatusHistory {\r\n id: number; // Primary key\r\n jobCardId: number; // Foreign key to the job card\r\n updateType: string; // The previous status name\r\n newStatus: string; // The new status name\r\n changedBy: string; // The user who made the change\r\n changeDate: Date; // When the status was changed\r\n notes: string; // Any notes related to the change\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.jobCardId = 0;\r\n this.updateType = '';\r\n this.newStatus = '';\r\n this.changedBy = '';\r\n this.changeDate = new Date();\r\n this.notes = '';\r\n }\r\n}\r\n\r\nexport class JobCardPredefinedComments {\r\n id: number; \r\n commentText: string;\r\n sequence: number;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.commentText = '';\r\n this.sequence = 0;\r\n }\r\n}\r\n\r\n\r\nexport class JobCardSuppliers {\r\n id: number;\r\n jobCardId: number;\r\n supplierCode: string;\r\n supplierName: string;\r\n supplierEmail: string;\r\n supplierTelephone: string;\r\n addedDate: Date;\r\n\r\n // New fields\r\n originalInvoice: string | null;\r\n originalInvoiceDate: Date | null;\r\n supplierSpecificPo: string | null;\r\n completedDate: Date | null;\r\n supplierStatus: string;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.jobCardId = 0;\r\n this.supplierCode = '';\r\n this.supplierName = '';\r\n this.supplierEmail = '';\r\n this.supplierTelephone = '';\r\n this.addedDate = new Date();\r\n this.originalInvoice = null;\r\n this.originalInvoiceDate = null;\r\n this.supplierSpecificPo = null;\r\n this.completedDate = null;\r\n this.supplierStatus = '';\r\n }\r\n}\r\nexport class JobCardSummaryViewModel {\r\n id: number;\r\n jobCardNumber: string;\r\n customerCode: string;\r\n customerName: string;\r\n statusId: number;\r\n statusName: string;\r\n assignedTechnician: string;\r\n quoteNumber: string;\r\n invoiceNumber: string;\r\n purchaseOrderNumber: string;\r\n dateMachineReceived: Date | null;\r\n completionDate: Date | null;\r\n itsStatus: string;\r\n lastStatusChangeDate: Date | null;\r\n daysSinceStatusChanged: number | null;\r\n comments: string;\r\n statusHistory: JobCardStatusHistory[];\r\n machineDescription: string;\r\n\r\n constructor(jobCard: any, statusHistory: JobCardStatusHistory[]) {\r\n this.id = jobCard.id;\r\n this.jobCardNumber = jobCard.jobCardNumber;\r\n this.customerCode = jobCard.customerCode;\r\n this.customerName = jobCard.customerName;\r\n this.statusId = jobCard.statusId;\r\n this.statusName = jobCard.statusName;\r\n this.assignedTechnician = jobCard.assignedTechnician;\r\n this.quoteNumber = jobCard.quoteNumber;\r\n this.invoiceNumber = jobCard.invoiceNumber;\r\n this.purchaseOrderNumber = jobCard.purchaseOrderNumber;\r\n this.dateMachineReceived = jobCard.dateMachineReceived ? new Date(jobCard.dateMachineReceived) : null;\r\n this.completionDate = jobCard.completionDate ? new Date(jobCard.completionDate) : null;\r\n this.itsStatus = jobCard.itsStatus;\r\n this.lastStatusChangeDate = statusHistory.length > 0 ? new Date(statusHistory[0].changeDate) : null;\r\n this.daysSinceStatusChanged = this.lastStatusChangeDate\r\n ? Math.floor((new Date().getTime() - this.lastStatusChangeDate.getTime()) / (1000 * 3600 * 24))\r\n : null;\r\n this.comments = jobCard.comments || '';\r\n this.statusHistory = statusHistory;\r\n this.machineDescription = jobCard.machineDescription;\r\n }\r\n}\r\n\r\n","import { Utilities } from '../services/utilities';\r\n\r\n\r\nexport class Notification {\r\n\r\n\r\n public id: number;\r\n public header: string;\r\n public body: string;\r\n public isRead: boolean;\r\n public isPinned: boolean;\r\n public date: Date;\r\n\r\n public static Create(data: {}) {\r\n const n = new Notification();\r\n Object.assign(n, data);\r\n\r\n if (n.date) {\r\n n.date = Utilities.parseDate(n.date);\r\n }\r\n\r\n return n;\r\n }\r\n}\r\n","export type PermissionNames =\r\n 'View Users' | 'Manage Users' |\r\n 'View Roles' | 'Manage Roles' | 'Assign Roles' |\r\n 'View Customers' | 'Manage Customers' | 'Generate Customer Statements' | 'Maintain Customer Pricing' | 'Pricing Admin' | 'Bank Import' |\r\n 'Place Order' | 'Disable Customer Pricing' |\r\n 'View Inventory' | 'Manage Inventory' | 'Catalogue View' |\r\n 'View Quotes' | 'Manage Quotes' |\r\n 'View Sales Orders' | 'Manage Sales Orders' |\r\n 'View Invoices' | 'Manage Invoices' | 'Reprint Invoices' |\r\n 'View Purchase Orders' | 'Manage Purchase Orders' |\r\n 'View Documents' | 'Manage Documents' | 'Webmail' |\r\n 'View Reports' | 'Manage Reports' | 'View Invoice Reprint Report' | 'View ITS Productivity' | 'View ITS Control Report' | 'View Sales Reports' | 'View Debtors Release Report'\r\n | 'View Repairs' | 'Manage Repairs' \r\n | 'Export EFT Payments' |\r\n 'View PODs' | 'Manage PODs' | 'Search PODs' | 'Missing PODs' | 'Equation PODs' | 'Batch Sync PODs' | 'Internal User' | 'External User' | 'View Web Quotes' | 'View ITS Config' | 'Manage ITS Config';\r\n\r\nexport type PermissionValues =\r\n 'users.view' | 'users.manage' |\r\n 'roles.view' | 'roles.manage' | 'roles.assign'|\r\n 'customers.view' | 'customers.manage' | 'customers.statements' | 'customers.maintainpricing' | 'customers.pricingadmin' | 'customers.bankimport' |\r\n 'cart.create' | 'cart.maintainpricing' |\r\n 'inventory.view' | 'inventory.manage' | 'catalogue.view' |\r\n 'quotes.view' | 'quotes.manage' |\r\n 'salesorders.view' | 'salesorders.manage' | 'salesorders.release' |\r\n 'invoices.view' | 'invoices.manage' | 'invoices.reprint' |\r\n 'purchaseorders.view' | 'purchaseorders.manage' |\r\n 'documents.view' | 'documents.manage' | 'documents.webmail' |\r\n 'reports.view' | 'reports.manage' | 'reportsreprint.manage' | 'reportsproductivity.manage' | 'itscontrolreports.manage' | 'reportssales.manage' | 'reportdebtorsrelease.manage'\r\n | 'repairs.view' | 'repairs.manage'\r\n | 'bankeftexport.manage' |\r\n 'pods.view' | 'pods.manage' | 'pods.search' | 'pods.missing' | 'pods.equation' | 'pods.batchsync' | 'nextgen.internal' | 'nextgen.external' | 'quotes.webquotes' | 'itsconfig.view' | 'itsconfig.manage';\r\n\r\nexport class Permission {\r\n\r\n public static readonly viewUsersPermission: PermissionValues = 'users.view';\r\n public static readonly manageUsersPermission: PermissionValues = 'users.manage';\r\n\r\n public static readonly viewRolesPermission: PermissionValues = 'roles.view';\r\n public static readonly manageRolesPermission: PermissionValues = 'roles.manage';\r\n public static readonly assignRolesPermission: PermissionValues = 'roles.assign';\r\n\r\n public static readonly viewCustomersPermission: PermissionValues = 'customers.view';\r\n public static readonly manageCustomersPermission: PermissionValues = 'customers.manage';\r\n public static readonly customerStatementsPermission: PermissionValues = 'customers.statements';\r\n public static readonly maintainCustomerPricingPermission: PermissionValues = 'customers.maintainpricing';\r\n public static readonly customerPricingAdminPermission: PermissionValues = 'customers.pricingadmin';\r\n public static readonly bankImportPermission: PermissionValues = 'customers.bankimport';\r\n\r\n public static readonly placeOrderPermission: PermissionValues = 'cart.create';\r\n public static readonly cartPricingPermission: PermissionValues = 'cart.maintainpricing';\r\n\r\n public static readonly viewInventoryPermission: PermissionValues = 'inventory.view';\r\n public static readonly manageInventoryPermission: PermissionValues = 'inventory.manage';\r\n public static readonly viewCataloguePermission: PermissionValues = 'catalogue.view';\r\n \r\n public static readonly viewQuotesPermission: PermissionValues = 'quotes.view';\r\n public static readonly manageQuotesPermission: PermissionValues = 'quotes.manage';\r\n public static readonly webQuotesPermission: PermissionValues = 'quotes.webquotes';\r\n\r\n public static readonly viewSalesOrdersPermission: PermissionValues = 'salesorders.view';\r\n public static readonly manageSalesOrdersPermission: PermissionValues = 'salesorders.manage';\r\n public static readonly releaseSalesOrdersPermission: PermissionValues = 'salesorders.release';\r\n\r\n public static readonly viewInvoicesPermission: PermissionValues = 'invoices.view';\r\n public static readonly manageInvoicesPermission: PermissionValues = 'invoices.manage';\r\n public static readonly reprintInvoicesPermission: PermissionValues = 'invoices.reprint';\r\n\r\n public static readonly viewPurchaseOrdersPermission: PermissionValues = 'purchaseorders.view';\r\n public static readonly managePurchaseOrdersPermission: PermissionValues = 'purchaseorders.manage';\r\n\r\n public static readonly viewDocumentsPermission: PermissionValues = 'documents.view';\r\n public static readonly manageDocumentsPermission: PermissionValues = 'documents.manage';\r\n public static readonly webmailPermission: PermissionValues = 'documents.webmail';\r\n\r\n public static readonly viewReportsPermission: PermissionValues = 'reports.view';\r\n public static readonly manageReportsPermission: PermissionValues = 'reports.manage';\r\n public static readonly reprintReportsPermission: PermissionValues = 'reportsreprint.manage';\r\n public static readonly productivityReportsPermission: PermissionValues = 'reportsproductivity.manage';\r\n public static readonly itsControlReportsPermission: PermissionValues = 'itscontrolreports.manage';\r\n public static readonly bankEFTExportPermission: PermissionValues = 'bankeftexport.manage';\r\n public static readonly salesReportsPermission: PermissionValues = 'reportssales.manage';\r\n public static readonly debtorsReleaseReportsPermission: PermissionValues = 'reportdebtorsrelease.manage';\r\n\r\n public static readonly viewRepairsPermission: PermissionValues = 'repairs.view';\r\n public static readonly manageRepairsPermission: PermissionValues = 'repairs.manage';\r\n\r\n public static readonly viewPODsPermission: PermissionValues = 'pods.view';\r\n public static readonly searchPODsPermission: PermissionValues = 'pods.search';\r\n public static readonly missingPODsPermission: PermissionValues = 'pods.missing';\r\n public static readonly managePODsPermission: PermissionValues = 'pods.manage';\r\n public static readonly batchSyncPODsPermission: PermissionValues = 'pods.batchsync';\r\n public static readonly eqationPODsPermission: PermissionValues = 'pods.equation';\r\n\r\n public static readonly viewITSConfigPermission: PermissionValues = 'itsconfig.view';\r\n public static readonly manageITSConfigPermission: PermissionValues = 'itsconfig.manage';\r\n\r\n public static readonly internalUserPermission: PermissionValues = 'nextgen.internal';\r\n public static readonly externalUserPermission: PermissionValues = 'nextgen.external';\r\n\r\n constructor(name?: PermissionNames, value?: PermissionValues, groupName?: string, description?: string) {\r\n this.name = name;\r\n this.value = value;\r\n this.groupName = groupName;\r\n this.description = description;\r\n }\r\n\r\n public name: PermissionNames;\r\n public value: PermissionValues;\r\n public groupName: string;\r\n public description: string;\r\n}\r\n","\r\nexport class Printers {\r\n constructor(printerPath?: string, barcodeStartSequence?: string, barcodeEndSequence?: string, location?: string, comment?: string,\r\n model?: string, enabled?: boolean) {\r\n\r\n this.printerPath = printerPath;\r\n this.barcodeStartSequence = barcodeStartSequence;\r\n this.barcodeEndSequence = barcodeEndSequence;\r\n this.location = location;\r\n this.comment = comment;\r\n this.model = model;\r\n this.enabled = enabled;\r\n }\r\n\r\n public printerId: number;\r\n public printerPath: string;\r\n public barcodeEndSequence: string;\r\n public barcodeStartSequence: string;\r\n public comment: string;\r\n public location: string;\r\n public enabled: boolean;\r\n public model: string;\r\n}\r\n\r\n","\r\nexport class POExtended {\r\n constructor(poNumber?: string, internalReference?: string, salesTotal?: number, vatTotal?: number, reportTotal?: number) {\r\n\r\n this.PoNumber = poNumber;\r\n this.InternalReference = internalReference;\r\n this.SalesTotal = salesTotal;\r\n this.VatTotal = vatTotal;\r\n this.ReportTotal = reportTotal;\r\n }\r\n\r\n public PoNumber: string\r\n public InternalReference: string\r\n public SalesTotal: number\r\n public VatTotal: number\r\n public ReportTotal: number\r\n\r\n}\r\n\r\n","\r\nexport class PurchaseOrderHeader {\r\n constructor() {\r\n\r\n \r\n }\r\n\r\n public purchaseOrder: string;\r\n public supplier: string;\r\n public supplierName: string;\r\n public descr: string;\r\n public warehouse: string;\r\n public branchDescr: string;\r\n public discount: number;\r\n public orderDate: Date;\r\n public dueDate: Date;\r\n public memoDate: Date;\r\n public orderType: string;\r\n public memoCode: string;\r\n public customerPoNumber: string;\r\n public shippingInstrs: string;\r\n public taxStatus: string;\r\n public termsCode: string;\r\n public buyer: string;\r\n public buyerName: string;\r\n public buyerEmail: string;\r\n public exchRateFixed: string;\r\n public exchangeRate: number;\r\n public deliveryAddr1: string;\r\n public deliveryAddr2: string;\r\n public deliveryAddr3: string;\r\n public deliveryAddr4: string;\r\n public deliveryAddr5: string;\r\n public postalCode: string;\r\n public orderStatus: string;\r\n public statusDescr: string;\r\n public paymentTerms: string;\r\n public telephone: string;\r\n public email: string;\r\n public contact: string;\r\n public customer: string;\r\n public salesOrder: string;\r\n public comment: string;\r\n public printed: boolean;\r\n public gRNNumber: string;\r\n public vatPercentage: number;\r\n public totalIncl: number;\r\n public totalExcl: number;\r\n public totalDiscount: number;\r\n public totalVat: number;\r\n public poNumber: string;\r\n}\r\n\r\n","\r\nexport class PurchaseOrderList {\r\n constructor() {\r\n \r\n }\r\n\r\n public purchaseOrder: string;\r\n public descr: string;\r\n public customer: string;\r\n public status: string;\r\n public salesOrder: string;\r\n public supplier: string;\r\n public supplierName: string;\r\n public poNumber: string;\r\n public printed: boolean;\r\n}\r\n\r\n","\r\nexport class QuoteDetail {\r\n constructor(quoteNumber?: string, quoteLineNumber?: number, lineType?: string, stockCode?: string, stockDescription?: string,\r\n warehouse?: string, orderQty?: number, unitCost?: number, orderUom?: string, sellingPrice?: number, discountPercentage1?: number,\r\n discountvalue?: number, priceConvFac?: number, lineTotal?: number, boSupplierCode?: string, boSupplierName?: string, boSupplierInvoice?: string,\r\n boLineInfo?: string, vatExempt?: boolean, originalPrice?: number, originalDiscount?: number, nettPrice?: number,\r\n nettDiscount?: number, gP?: number) {\r\n\r\n this.quoteNumber = quoteNumber;\r\n this.quoteLineNumber = quoteLineNumber;\r\n this.lineType = lineType;\r\n this.stockCode = stockCode;\r\n this.stockDescription = stockDescription;\r\n this.warehouse = warehouse;\r\n this.orderQty = orderQty;\r\n this.unitCost = unitCost;\r\n this.orderUom = orderUom;\r\n this.sellingPrice = sellingPrice;\r\n this.discountPercentage1 = discountPercentage1;\r\n this.discountValue = discountvalue;\r\n this.priceConvFac = priceConvFac;\r\n this.lineTotal = lineTotal;\r\n this.boSupplierCode = boSupplierCode;\r\n this.boSupplierName = boSupplierName;\r\n this.boSupplierInvoice = boSupplierInvoice;\r\n this.boLineInfo = boLineInfo;\r\n this.vatExempt = vatExempt;\r\n this.originalPrice = originalPrice;\r\n this.originalDiscount = originalDiscount;\r\n this.nettPrice = nettPrice;\r\n this.nettDiscount = nettDiscount;\r\n this.gP = gP;\r\n }\r\n\r\n public quoteNumber: string;\r\n public quoteLineNumber: number;\r\n public lineType: string;\r\n public stockCode: string;\r\n public stockDescription: string;\r\n public warehouse: string;\r\n public orderQty: number;\r\n public unitCost: number;\r\n public orderUom: string;\r\n public sellingPrice: number;\r\n public discountPercentage1: number;\r\n public discountValue: number;\r\n public unitmass: number;\r\n public unitvolume: number;\r\n public comment: string;\r\n public commentFromLineNumber: number;\r\n public commentType: string;\r\n public shipDate: Date;\r\n public lineCreateDate: Date;\r\n public boSupplierName: string;\r\n public boSupplierInvoice: string;\r\n public boLineInfo: string;\r\n public boSupplierCode: string;\r\n public priceConvFac: number;\r\n public lineTotal: number;\r\n public vatExempt: boolean;\r\n public originalPrice: number;\r\n public originalDiscount: number;\r\n public nettPrice: number;\r\n public nettDiscount: number;\r\n public gP: number;\r\n public mapped: boolean;\r\n public newArrival: boolean;\r\n public onSpecial: boolean;\r\n public showAlternate: boolean;\r\n public alternateKey: string;\r\n public specialsImage: string;\r\n public specialPrice: number;\r\n public dataSheetImage: string;\r\n public addSheetImage: string;\r\n}\r\n\r\n","\r\nexport class QuoteHeader {\r\n constructor(quoteNumber?: string, userid?: string, customer?: string, branchcode?: string, customerName?: string,\r\n telephone?: string, addTelephone?: string, fax?: string, email?: string, companyTaxNumber?: string, taxStatus?: string, taxExemptNumber?: string,\r\n contact?: string, soldToAddr1?: string, soldToAddr2?: string, soldToAddr3?: string, soldToAddr4?: string, soldToAddr5?: string, soldPostalCode?: string,\r\n shipToAddr1?: string, shipToAddr2?: string, shipToAddr3?: string, shipToAddr4?: string, shipToAddr5?: string, shipPostalCode?: string,\r\n area?: string, salesperson?: string, salespersonName?: string, userName?: string, shipDate?: Date, orderDate?: Date, createDate?: Date, buyersName?: string, buyersEmail?: string,\r\n shippingInstrs?: string, specialInstrs?: string, convertedRef?: string, vatPercentage?: number, webQuote?: boolean) {\r\n\r\n this.quoteNumber = quoteNumber;\r\n this.userid = userid;\r\n this.customer = customer;\r\n this.branch_code = branchcode;\r\n this.customerName = customerName;\r\n this.telephone = telephone;\r\n this.addTelephone = addTelephone;\r\n this.email = email;\r\n this.fax = fax;\r\n this.companyTaxNumber = companyTaxNumber;\r\n this.area = area;\r\n this.salesperson = salesperson;\r\n this.salespersonName = salespersonName;\r\n this.userName = userName;\r\n this.contact = contact;\r\n this.taxExemptNumber = taxExemptNumber;\r\n this.taxStatus = taxStatus;\r\n this.soldtoaddr1 = soldToAddr1;\r\n this.soldtoaddr2 = soldToAddr2;\r\n this.soldtoaddr3 = soldToAddr3;\r\n this.soldtoaddr4 = soldToAddr4;\r\n this.soldtoaddr5 = soldToAddr5;\r\n this.soldpostalcode = soldPostalCode;\r\n this.shiptoaddr1 = shipToAddr1;\r\n this.shiptoaddr2 = shipToAddr2;\r\n this.shiptoaddr3 = shipToAddr3;\r\n this.shiptoaddr4 = shipToAddr4;\r\n this.shiptoaddr5 = shipToAddr5;\r\n this.shippostalcode = shipPostalCode;\r\n this.shipdate = shipDate;\r\n this.orderdate = orderDate;\r\n this.createDate = createDate;\r\n this.alternateKey = \"\";\r\n this.buyersName = buyersName;\r\n this.buyersEmail = buyersEmail;\r\n this.shippingInstrs = shippingInstrs;\r\n this.specialInstrs = specialInstrs;\r\n this.convertedRef = convertedRef;\r\n this.vatPercentage = vatPercentage;\r\n this.webQuote = webQuote;\r\n }\r\n\r\n public quoteNumber: string;\r\n public userid: string;\r\n public branch_code: string;\r\n public customer: string;\r\n public customerName: string;\r\n public telephone: string;\r\n public addTelephone: string;\r\n public fax: string;\r\n public email: string;\r\n public companyTaxNumber: string;\r\n public taxStatus: string;\r\n public taxExemptNumber: string;\r\n public soldtoaddr1: string;\r\n public soldtoaddr2: string;\r\n public soldtoaddr3: string;\r\n public soldtoaddr4: string;\r\n public soldtoaddr5: string;\r\n public soldpostalcode: string;\r\n public shiptoaddr1: string;\r\n public shiptoaddr2: string;\r\n public shiptoaddr3: string;\r\n public shiptoaddr4: string;\r\n public shiptoaddr5: string;\r\n public shippostalcode: string;\r\n public shippingInstrs: string;\r\n public specialInstrs: string;\r\n public area: string;\r\n public salesperson: string;\r\n public salespersonName: string;\r\n public userName: string;\r\n public contact: string;\r\n public telex: string;\r\n public customerPoNumber: string;\r\n public alternateKey: string;\r\n public shipdate: Date;\r\n public orderdate: Date;\r\n public ordertype: string;\r\n public orderdiscountpercentage: number;\r\n public createDate: Date;\r\n public totalIncl: number;\r\n public totalExcl: number;\r\n public totalDiscount: number;\r\n public displayDate: string;\r\n public quoteStatus: string;\r\n public buyersName: string;\r\n public buyersEmail: string;\r\n public convertedRef: string;\r\n public vatPercentage: number;\r\n public webQuote: boolean;\r\n}\r\n\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Permission } from './permission.model';\r\n\r\n\r\nexport class Role {\r\n\r\n constructor(name?: string, description?: string, permissions?: Permission[]) {\r\n\r\n this.name = name;\r\n this.description = description;\r\n this.permissions = permissions;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public usersCount: number;\r\n public permissions: Permission[];\r\n}\r\n","\r\nexport class SalesOrderDetail {\r\n constructor(salesOrderNumber?: string, salesOrderLineNumber?: number, lineType?: string, stockCode?: string, stockDescription?: string,\r\n warehouse?: string, orderQty?: number, unitCost?: number, orderUom?: string, sellingPrice?: number, discountPercentage1?: number,\r\n discountvalue?: number, priceConvFac?: number, lineTotal?: number, boSupplierCode?: string, boSupplierName?: string, boSupplierInvoice?: string,\r\n boLineInfo?: string, vatExempt?: boolean, originalPrice?: number, originalDiscount?: number, nettPrice?: number,\r\n nettDiscount?: number, gP?: number, commentType?: string, commentFromLineNumber?: number, comment?: string) {\r\n\r\n this.salesOrderNumber = salesOrderNumber;\r\n this.salesOrderLineNumber = salesOrderLineNumber;\r\n this.lineType = lineType;\r\n this.stockCode = stockCode;\r\n this.stockDescription = stockDescription;\r\n this.warehouse = warehouse;\r\n this.orderQty = orderQty;\r\n this.unitCost = unitCost;\r\n this.orderUom = orderUom;\r\n this.sellingPrice = sellingPrice;\r\n this.discountPercentage1 = discountPercentage1;\r\n this.discountValue = discountvalue;\r\n this.priceConvFac = priceConvFac;\r\n this.lineTotal = lineTotal;\r\n this.boSupplierCode = boSupplierCode;\r\n this.boSupplierName = boSupplierName;\r\n this.boSupplierInvoice = boSupplierInvoice;\r\n this.boLineInfo = boLineInfo;\r\n this.vatExempt = vatExempt;\r\n this.originalPrice = originalPrice;\r\n this.originalDiscount = originalDiscount;\r\n this.nettPrice = nettPrice;\r\n this.nettDiscount = nettDiscount;\r\n this.gP = gP;\r\n this.comment = comment;\r\n this.commentFromLineNumber = commentFromLineNumber;\r\n this.commentType = commentType;\r\n\r\n }\r\n\r\n public salesOrderNumber: string;\r\n public salesOrderLineNumber: number;\r\n public lineType: string;\r\n public stockCode: string;\r\n public stockDescription: string;\r\n public warehouse: string;\r\n public orderQty: number;\r\n public unitCost: number;\r\n public orderUom: string;\r\n public sellingPrice: number;\r\n public discountPercentage1: number;\r\n public discountValue: number;\r\n public unitmass: number;\r\n public unitvolume: number;\r\n public comment: string;\r\n public commentFromLineNumber: number;\r\n public commentType: string;\r\n public shipDate: Date;\r\n public lineCreateDate: Date;\r\n public boSupplierName: string;\r\n public boSupplierInvoice: string;\r\n public boLineInfo: string;\r\n public boSupplierCode: string;\r\n public priceConvFac: number;\r\n public lineTotal: number;\r\n public vatExempt: boolean;\r\n public originalPrice: number;\r\n public originalDiscount: number;\r\n public nettPrice: number;\r\n public nettDiscount: number;\r\n public gP: number;\r\n public mapped: boolean;\r\n public newArrival: boolean;\r\n public onSpecial: boolean;\r\n public showAlternate: boolean;\r\n public alternateKey: string;\r\n public specialsImage: string;\r\n public specialPrice: number;\r\n public dataSheetImage: string;\r\n}\r\n\r\n","\r\nexport class SalesOrderHeader {\r\n constructor(salesOrderNumber?: string, customer?: string, branch_code?: string, customerName?: string,\r\n telephone?: string, addTelephone?: string, fax?: string, email?: string, companyTaxNumber?: string, taxStatus?: string, taxExemptNumber?: string,\r\n contact?: string, soldToAddr1?: string, soldToAddr2?: string, soldToAddr3?: string, soldToAddr4?: string, soldToAddr5?: string, soldPostalCode?: string,\r\n shipToAddr1?: string, shipToAddr2?: string, shipToAddr3?: string, shipToAddr4?: string, shipToAddr5?: string, shipPostalCode?: string, shippingInstrs?: string,\r\n area?: string, salesperson?: string, shipDate?: Date, orderDate?: Date, createDate?: Date,\r\n buyersName?: string, buyersEmail?: string, customerOnHold?: string, vatPercentage?: number, terms?: string) {\r\n\r\n this.salesOrderNumber = salesOrderNumber;\r\n // this.userid = userid;\r\n this.customer = customer;\r\n this.branch_code = branch_code;\r\n this.customerName = customerName;\r\n this.telephone = telephone;\r\n this.addTelephone = addTelephone;\r\n this.email = email;\r\n this.fax = fax;\r\n this.companyTaxNumber = companyTaxNumber;\r\n this.area = area;\r\n this.salesperson = salesperson;\r\n this.contact = contact;\r\n this.taxExemptNumber = taxExemptNumber;\r\n this.taxStatus = taxStatus;\r\n this.soldtoaddr1 = soldToAddr1;\r\n this.soldtoaddr2 = soldToAddr2;\r\n this.soldtoaddr3 = soldToAddr3;\r\n this.soldtoaddr4 = soldToAddr4;\r\n this.soldtoaddr5 = soldToAddr5;\r\n this.soldpostalcode = soldPostalCode;\r\n this.shiptoaddr1 = shipToAddr1;\r\n this.shiptoaddr2 = shipToAddr2;\r\n this.shiptoaddr3 = shipToAddr3;\r\n this.shiptoaddr4 = shipToAddr4;\r\n this.shiptoaddr5 = shipToAddr5;\r\n this.shippostalcode = shipPostalCode;\r\n this.shipdate = shipDate;\r\n this.orderdate = orderDate;\r\n this.createdate = createDate;\r\n this.alternateKey = \"\";\r\n this.buyersName = buyersName;\r\n this.buyersEmail = buyersEmail;\r\n this.customerOnHold = customerOnHold;\r\n this.vatPercentage = vatPercentage;\r\n this.shippingInstrs = shippingInstrs;\r\n this.terms = terms;\r\n }\r\n\r\n public salesOrderNumber: string;\r\n //public userid: string;\r\n public branch_code: string;\r\n public customer: string;\r\n public customerName: string;\r\n public telephone: string;\r\n public addTelephone: string;\r\n public fax: string;\r\n public email: string;\r\n public companyTaxNumber: string;\r\n public taxStatus: string;\r\n public taxExemptNumber: string;\r\n public soldtoaddr1: string;\r\n public soldtoaddr2: string;\r\n public soldtoaddr3: string;\r\n public soldtoaddr4: string;\r\n public soldtoaddr5: string;\r\n public soldpostalcode: string;\r\n public shiptoaddr1: string;\r\n public shiptoaddr2: string;\r\n public shiptoaddr3: string;\r\n public shiptoaddr4: string;\r\n public shiptoaddr5: string;\r\n public shippostalcode: string;\r\n public shippingInstrs: string;\r\n public specialinstrs: string;\r\n public area: string;\r\n public salesperson: string;\r\n public contact: string;\r\n public telex: string;\r\n public customerPoNumber: string;\r\n public alternateKey: string;\r\n public shipdate: Date;\r\n public orderdate: Date;\r\n public ordertype: string;\r\n public orderdiscountpercentage: number;\r\n public createdate: Date;\r\n public totalIncl: number;\r\n public totalExcl: number;\r\n public totalDiscount: number;\r\n public displayDate: string;\r\n public orderStatus: string;\r\n public buyersName: string;\r\n public buyersEmail: string;\r\n public operator: string;\r\n public salesPersonName: string;\r\n public customerOnHold: string;\r\n public vatPercentage: number;\r\n public statusDescription: string;\r\n public terms: string;\r\n}\r\n\r\n","\r\n\r\nexport class SalesPerson {\r\n\r\n constructor(branch?: string, salesperson?: string, name?: string) {\r\n\r\n this.branch = branch;\r\n this.salesperson = salesperson;\r\n this.name = name;\r\n }\r\n\r\n\r\n public branch: string;\r\n public salesperson: string;\r\n public name: string;\r\n public salesbudget1: number;\r\n public salesbudget2: number;\r\n public salesbudget3: number;\r\n public salesbudget4: number;\r\n public salesbudget5: number;\r\n public salesbudget6: number;\r\n public salesbudget7: number;\r\n public salesbudget8: number;\r\n public salesbudget9: number;\r\n public salesbudget10: number;\r\n public salesbudget11: number;\r\n public salesbudget12: number;\r\n public salesbudget13: number;\r\n public salesactual1: number;\r\n public salesactual2: number;\r\n public salesactual3: number;\r\n public salesactual4: number;\r\n public salesactual5: number;\r\n public salesactual6: number;\r\n public salesactual7: number;\r\n public salesactual8: number;\r\n public salesactual9: number;\r\n public salesactual10: number;\r\n public salesactual11: number;\r\n public salesactual12: number;\r\n public salesactual13: number;\r\n public commissionpct: number;\r\n public timestamp: number[];\r\n public salespersoncoll: string;\r\n}\r\n","\r\n\r\nexport class Supplier {\r\n\r\n public supplier: string;\r\n public supplierName: string;\r\n public supAddr1: string;\r\n public supAddr2: string;\r\n public supAddr3: string;\r\n public supAddr4: string;\r\n public supAddr5: string\r\n public telephone: string;\r\n public email: string;\r\n public contact: string;\r\n\r\n public specialDiscount: number;\r\n public specialCostAdd: number;\r\n public specialPrice: number;\r\n}\r\n","\r\n\r\nexport class SysproEFTDetail {\r\n\r\n public strSupplierBranch: string;\r\n public strSupplierBank: string;\r\n public strSupplier: string;\r\n public strSuppName: string;\r\n public strSupplierRefNo: string;\r\n public decSuppPayValue: number;\r\n public decLineSubTot: number;\r\n public strStatus: string;\r\n\r\n}\r\n","\r\n\r\nexport class SysproEFTHeader {\r\n\r\n public StrHomeAccount: string;\r\n public dteActDate: Date;\r\n public strActDate: string;\r\n public strGlobRef: string;\r\n public strBatchDesc: string;\r\n public decTotal: number;\r\n public strTotal: string;\r\n public lblExceeds: string;\r\n public lblBatchTot: string;\r\n\r\n\r\n}\r\n","\r\n\r\nexport class SysproPaymentDetail {\r\n\r\n public paymentNumber: string;\r\n public supplier: string;\r\n public supplierName: string;\r\n public supplierBank: string;\r\n public supplierBranch: string;\r\n public supplierRefNo: string;\r\n public supplierPayValue: number;\r\n public message: string;\r\n}\r\n","export class SysproUser {\r\n // Note: Using only optional constructor properties without backing store disables typescript's type checking for the type\r\n constructor() {\r\n }\r\n\r\n\r\n\r\n public sysproOperator: string;\r\n public sysproBuyer: string;\r\n public sysproRep: string;\r\n public fullName: string;\r\n public fowkesUser: string;\r\n public maxUser: string;\r\n public nextGenUser: string;\r\n public fowkesId: string;\r\n public maxId: string;\r\n public nextGenId: string;\r\n public defaultRole: string;\r\n}\r\n\r\n\r\n","import { User } from './user.model';\r\n\r\n\r\nexport class UserEdit extends User {\r\n constructor(currentPassword?: string, newPassword?: string, confirmPassword?: string) {\r\n super();\r\n\r\n this.currentPassword = currentPassword;\r\n this.newPassword = newPassword;\r\n this.confirmPassword = confirmPassword;\r\n }\r\n\r\n public currentPassword: string;\r\n public newPassword: string;\r\n public confirmPassword: string;\r\n\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nexport class UserLogin {\r\n constructor(userName?: string, password?: string, rememberMe?: boolean) {\r\n this.userName = userName;\r\n this.password = password;\r\n this.rememberMe = rememberMe;\r\n }\r\n\r\n userName: string;\r\n password: string;\r\n rememberMe: boolean;\r\n}\r\n","export class User {\r\n // Note: Using only optional constructor properties without backing store disables typescript's type checking for the type\r\n constructor(id?: string, userName?: string, fullName?: string, email?: string, jobTitle?: string, phoneNumber?: string, roles?: string[],\r\n isSupervisor?: boolean,\r\n branch?: string, sysproOperator?: string, sysproBuyer?: string, sysproPassword?: string, aspnetApplication?: string, sysproSessionId?: string,\r\n defaultPrinter?: string, configuration?: string) {\r\n\r\n this.id = id;\r\n this.userName = userName;\r\n this.fullName = fullName;\r\n this.email = email;\r\n this.jobTitle = jobTitle;\r\n this.phoneNumber = phoneNumber;\r\n this.roles = roles;\r\n this.branch = branch;\r\n this.sysproOperator = sysproOperator;\r\n this.sysproBuyer = sysproBuyer;\r\n this.sysproPassword = sysproPassword;\r\n this.sysproSessionId = sysproSessionId;\r\n this.aspnetApplication = aspnetApplication;\r\n this.isSupervisor = isSupervisor;\r\n this.defaultPrinter = defaultPrinter;\r\n this.configuration = configuration;\r\n }\r\n\r\n\r\n get friendlyName(): string {\r\n let name = this.fullName || this.userName;\r\n\r\n if (this.jobTitle) {\r\n name = this.jobTitle + ' ' + name;\r\n }\r\n\r\n return name;\r\n }\r\n\r\n\r\n public id: string;\r\n public userName: string;\r\n public fullName: string;\r\n public email: string;\r\n public jobTitle: string;\r\n public phoneNumber: string;\r\n public isEnabled: boolean;\r\n public isLockedOut: boolean;\r\n public roles: string[];\r\n public branch: string;\r\n public sysproOperator: string;\r\n public sysproBuyer: string;\r\n public sysproRep: string;\r\n public sysproPassword: string;\r\n public sysproSessionId: string;\r\n public aspnetApplication: string;\r\n public isSupervisor: boolean;\r\n public defaultPrinter: string;\r\n public configuration: string;\r\n}\r\n","export class ValueHelper {\r\n \r\n constructor() {\r\n\r\n }\r\n\r\n public displayValue: string;\r\n public dataValue: number;\r\n \r\n}\r\n","export class Video {\r\n constructor(title?: string, description?: string, sequence?: number, url?: string, isPreview?: boolean, showMax?: boolean, showFowkes?: boolean, enabled?: boolean) {\r\n this.title = title;\r\n this.description = description;\r\n this.sequence = sequence;\r\n this.url = url;\r\n this.isPreview = isPreview;\r\n this.showMax = showMax;\r\n this.showFowkes = showFowkes;\r\n this.enabled = enabled;\r\n }\r\n\r\n public title: string;\r\n\r\n //public oldtitle: string;\r\n\r\n public description: string;\r\n\r\n public sequence: number;\r\n\r\n public url: string;\r\n\r\n public isPreview?: boolean;\r\n\r\n public showMax?: boolean;\r\n\r\n public showFowkes?: boolean;\r\n\r\n public enabled?: boolean;\r\n\r\n public detail: string;\r\n\r\n public createdDate: string;\r\n\r\n public createdBy: string;\r\n public id: number;\r\n public safeURL: any;\r\n}\r\n","\r\n\r\nexport class Inbox {\r\n id: number;\r\n integrationId: string;\r\n integrationName: string;\r\n channel: string;\r\n messageId: string;\r\n relatedMessageId: string;\r\n relatedClientMessageId: string;\r\n senderNumber: string;\r\n receiverNumber: string;\r\n timestamp: Date;\r\n profileName: string;\r\n charset: string;\r\n content: string;\r\n udh: string;\r\n network: string;\r\n encryptionKey: string;\r\n}\r\n\r\nexport class Message {\r\n id: number;\r\n senderName: string;\r\n senderNumber: string;\r\n content: string;\r\n timestamp: Date;\r\n isIncoming: boolean;\r\n isExpanded: boolean = false; // Tracks whether the message details are visible\r\n}\r\n\r\n\r\nexport class Outbox {\r\n id: number;\r\n toPhoneNumber: string;\r\n channel: string;\r\n content: string;\r\n templateName: string;\r\n headerType: string;\r\n headerMediaFileId: string;\r\n bodyParameters: string;\r\n buttonTitle1: string;\r\n buttonPostbackData1: string;\r\n buttonTitle2: string;\r\n buttonPostbackData2: string;\r\n createdAt: Date;\r\n sentAt: Date | null;\r\n isSent: boolean;\r\n messageId: string;\r\n status: string;\r\n statusCode: number;\r\n statusTimestamp: Date;\r\n nextGenUser: string;\r\n}\r\n\r\nexport class OptIns {\r\n public id: number;\r\n public phoneNumber: string;\r\n public optedInDate: Date;\r\n public optedIn: boolean;\r\n public channel: string;\r\n public otp: string;\r\n public profileName: string;\r\n public nextGenUser: string;\r\n public inviteSendDate: Date;\r\n public optedOutDate: Date;\r\n}\r\n\r\nexport class InboxMessageDetails {\r\n inboxId: number;\r\n integrationName: string;\r\n senderNumber: string;\r\n timestamp: Date;\r\n content: string;\r\n messageType: string | null; // Nullable if there might be messages without a specific type\r\n mediaUrl: string | null; // Nullable for messages that do not include media\r\n mediaId: string | null; // Nullable for messages that do not include media\r\n profileName: string;\r\n}\r\n\r\n\r\n","\r\nexport class WarehouseUserDetails {\r\n branch: string;\r\n userID: string;\r\n userName: string;\r\n firstName: string;\r\n lastName: string;\r\n cellPhoneNumber: string;\r\n overridePassword: string;\r\n isAdmin: boolean;\r\n createdAt: Date;\r\n updatedAt: Date;\r\n fingerprints: WarehouseUserFingerprints[];\r\n}\r\n\r\nexport interface WarehouseUserFingerprints {\r\n fingerprintID: string;\r\n userID: string;\r\n fingerprintType: string;\r\n fingerprintData: string; // Assuming base64 string for simplicity\r\n createdAt: Date;\r\n isArchived: Boolean;\r\n}\r\n\r\nexport interface WarehouseUserNameChanges {\r\n changeID: string;\r\n userID: string;\r\n oldUserName: string;\r\n newUserName: string;\r\n changeDate: Date;\r\n}\r\n\r\n\r\n","\r\nexport class WebOrder {\r\n constructor() {\r\n\r\n }\r\n\r\n id: number;\r\n user_id: number;\r\n order_status: string;\r\n placed_id: string;\r\n hash: string;\r\n user_first_name: string;\r\n user_last_name: string;\r\n user_email: string;\r\n user_contact_number: string;\r\n is_company_order: boolean;\r\n vat: string;\r\n total_price: string;\r\n recipient_name: string;\r\n recipient_contact_number: string | null;\r\n delivery_street_address_1: string | null;\r\n delivery_street_address_2: string | null;\r\n delivery_company: string | null;\r\n delivery_suburb: string | null;\r\n delivery_city: string | null;\r\n delivery_postal_code: string | null;\r\n delivery_province: string | null;\r\n company_name: string | null;\r\n vat_number: string | null;\r\n billing_address: string | null;\r\n shipping_option: string | null;\r\n shipping_fee: string | null;\r\n placed: string; // datetime\r\n delivered: string; // datetime\r\n created: string; // datetime\r\n modified: string; // datetime\r\n sub_total: number;\r\n grand_total: number;\r\n\r\n quoteNumber: string;\r\n salesOrder: string;\r\n invoice: string;\r\n internalStatus: string;\r\n displayStatus: string;\r\n\r\n\r\n internalComment: string;\r\n statusOverride: boolean;\r\n createDate: Date;\r\n\r\n sequenceNumber: number;\r\n\r\n}\r\n\r\n","\r\nexport class WAPP {\r\n constructor(recepientName?: string, recepientTel?: string, subject?: string, bod?: string, senderName?: string, senderEmail?: string,\r\n attachment?: string, cc?: string, bcc?: string, wappType?: string, senderBranch?: string, addDoc1?: string, addDoc2?: string, addDoc3?: string, senderCompany?: string) {\r\n\r\n this.RecepientName = recepientName;\r\n this.RecepientTel = recepientTel;\r\n this.Subject = subject;\r\n this.Bod = bod;\r\n this.SenderName = senderName;\r\n this.SenderEmail = senderEmail;\r\n this.Attachment = attachment;\r\n this.CC = cc;\r\n this.BCC = bcc;\r\n this.WappType = wappType;\r\n this.SenderBranch = senderBranch;\r\n this.AddDoc1 = addDoc1;\r\n this.AddDoc2 = addDoc2;\r\n this.AddDoc3 = addDoc3;\r\n this.SenderCompany = senderCompany;\r\n }\r\n\r\n public RecepientName: string\r\n public RecepientTel: string\r\n public Subject: string\r\n public Bod: string\r\n public SenderName: string\r\n public SenderEmail: string\r\n public Attachment: string\r\n public CC: string\r\n public BCC: string\r\n public WappType: string\r\n public SenderBranch: string\r\n public AddDoc1: string\r\n public AddDoc2: string\r\n public AddDoc3: string\r\n public SenderCompany: string\r\n\r\n}\r\n\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n\r\n@Pipe({ name: 'groupBy' })\r\nexport class GroupByPipe implements PipeTransform {\r\n\r\n transform(value: Array, field: string): Array {\r\n\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n const groupedObj = value.reduce((prev, cur) => {\r\n if (!prev[cur[field]]) {\r\n prev[cur[field]] = [cur];\r\n } else {\r\n prev[cur[field]].push(cur);\r\n }\r\n\r\n return prev;\r\n }, {});\r\n\r\n return Object.keys(groupedObj).map(key => ({ key, value: groupedObj[key] }));\r\n }\r\n}\r\n","\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n\r\n@Pipe({ name: 'safe' })\r\nexport class SafePipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) { }\r\n transform(url) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url) as string;\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\n\r\n@Injectable()\r\nexport class AccountEndpoint extends EndpointFactory {\r\n\r\n private readonly _usersUrl: string = '/api/account/users';\r\n private readonly _userByUserNameUrl: string = '/api/account/users/username';\r\n private readonly _currentUserUrl: string = '/api/account/users/me';\r\n private readonly _currentUserPreferencesUrl: string = '/api/account/users/me/preferences';\r\n private readonly _unblockUserUrl: string = '/api/account/users/unblock';\r\n private readonly _rolesUrl: string = '/api/account/roles';\r\n private readonly _branchesUrl: string = '/api/branch';\r\n private readonly _roleByRoleNameUrl: string = '/api/account/roles/name';\r\n private readonly _permissionsUrl: string = '/api/account/permissions';\r\n\r\n get usersUrl() { return this.configurations.baseUrl + this._usersUrl; }\r\n get userByUserNameUrl() { return this.configurations.baseUrl + this._userByUserNameUrl; }\r\n get currentUserUrl() { return this.configurations.baseUrl + this._currentUserUrl; }\r\n get currentUserPreferencesUrl() { return this.configurations.baseUrl + this._currentUserPreferencesUrl; }\r\n get unblockUserUrl() { return this.configurations.baseUrl + this._unblockUserUrl; }\r\n get rolesUrl() { return this.configurations.baseUrl + this._rolesUrl; }\r\n get branchesUrl() { return this.configurations.baseUrl + this._branchesUrl; }\r\n get roleByRoleNameUrl() { return this.configurations.baseUrl + this._roleByRoleNameUrl; }\r\n get permissionsUrl() { return this.configurations.baseUrl + this._permissionsUrl; }\r\n\r\n\r\n\r\n constructor(http: HttpClient, configurations: ConfigurationService, injector: Injector) {\r\n\r\n super(http, configurations, injector);\r\n }\r\n\r\n\r\n\r\n\r\n getUserEndpoint(userId?: string): Observable {\r\n const endpointUrl = userId ? `${this.usersUrl}/${userId}` : this.currentUserUrl;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserEndpoint(userId));\r\n }));\r\n }\r\n\r\n\r\n getUserDetailsEndpoint(userId?: string): Observable {\r\n const endpointUrl = `${this.usersUrl}/UserDetails/${userId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserDetailsEndpoint(userId));\r\n }));\r\n }\r\n\r\n\r\n getUserByUserNameEndpoint(userName: string): Observable {\r\n const endpointUrl = `${this.userByUserNameUrl}/${userName}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserByUserNameEndpoint(userName));\r\n }));\r\n }\r\n\r\n\r\n getUsersEndpoint(page?: number, pageSize?: number): Observable {\r\n const endpointUrl = page && pageSize ? `${this.usersUrl}/${page}/${pageSize}` : this.usersUrl;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUsersEndpoint(page, pageSize));\r\n }));\r\n }\r\n\r\n\r\n getNewUserEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this.usersUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewUserEndpoint(userObject));\r\n }));\r\n }\r\n\r\n getUpdateUserEndpoint(userObject: any, userId?: string): Observable {\r\n const endpointUrl = userId ? `${this.usersUrl}/${userId}` : this.currentUserUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateUserEndpoint(userObject, userId));\r\n }));\r\n }\r\n\r\n getPatchUpdateUserEndpoint(patch: {}, userId?: string): Observable;\r\n getPatchUpdateUserEndpoint(value: any, op: string, path: string, from?: any, userId?: string): Observable;\r\n getPatchUpdateUserEndpoint(valueOrPatch: any, opOrUserId?: string, path?: string, from?: any, userId?: string): Observable {\r\n let endpointUrl: string;\r\n let patchDocument: {};\r\n\r\n if (path) {\r\n endpointUrl = userId ? `${this.usersUrl}/${userId}` : this.currentUserUrl;\r\n patchDocument = from ?\r\n [{ 'value': valueOrPatch, 'path': path, 'op': opOrUserId, 'from': from }] :\r\n [{ 'value': valueOrPatch, 'path': path, 'op': opOrUserId }];\r\n } else {\r\n endpointUrl = opOrUserId ? `${this.usersUrl}/${opOrUserId}` : this.currentUserUrl;\r\n patchDocument = valueOrPatch;\r\n }\r\n\r\n return this.http.patch(endpointUrl, JSON.stringify(patchDocument), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPatchUpdateUserEndpoint(valueOrPatch, opOrUserId, path, from, userId));\r\n }));\r\n }\r\n\r\n\r\n getUserPreferencesEndpoint(): Observable {\r\n\r\n return this.http.get(this.currentUserPreferencesUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserPreferencesEndpoint());\r\n }));\r\n }\r\n\r\n getUpdateUserPreferencesEndpoint(configuration: string): Observable {\r\n return this.http.put(this.currentUserPreferencesUrl, JSON.stringify(configuration), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateUserPreferencesEndpoint(configuration));\r\n }));\r\n }\r\n\r\n getUnblockUserEndpoint(userId: string): Observable {\r\n const endpointUrl = `${this.unblockUserUrl}/${userId}`;\r\n\r\n return this.http.put(endpointUrl, null, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUnblockUserEndpoint(userId));\r\n }));\r\n }\r\n\r\n getDeleteUserEndpoint(userId: string): Observable {\r\n const endpointUrl = `${this.usersUrl}/${userId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeleteUserEndpoint(userId));\r\n }));\r\n }\r\n\r\n\r\n getRoleEndpoint(roleId: string): Observable {\r\n const endpointUrl = `${this.rolesUrl}/${roleId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getRoleEndpoint(roleId));\r\n }));\r\n }\r\n\r\n\r\n getRoleByRoleNameEndpoint(roleName: string): Observable {\r\n const endpointUrl = `${this.roleByRoleNameUrl}/${roleName}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getRoleByRoleNameEndpoint(roleName));\r\n }));\r\n }\r\n\r\n\r\n\r\n getRolesEndpoint(page?: number, pageSize?: number): Observable {\r\n const endpointUrl = page && pageSize ? `${this.rolesUrl}/${page}/${pageSize}` : this.rolesUrl;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getRolesEndpoint(page, pageSize));\r\n }));\r\n }\r\n\r\n getNewRoleEndpoint(roleObject: any): Observable {\r\n\r\n return this.http.post(this.rolesUrl, JSON.stringify(roleObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewRoleEndpoint(roleObject));\r\n }));\r\n }\r\n\r\n getUpdateRoleEndpoint(roleObject: any, roleId: string): Observable {\r\n const endpointUrl = `${this.rolesUrl}/${roleId}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(roleObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateRoleEndpoint(roleObject, roleId));\r\n }));\r\n }\r\n\r\n getDeleteRoleEndpoint(roleId: string): Observable {\r\n const endpointUrl = `${this.rolesUrl}/${roleId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeleteRoleEndpoint(roleId));\r\n }));\r\n }\r\n\r\n\r\n getPermissionsEndpoint(): Observable {\r\n\r\n return this.http.get(this.permissionsUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPermissionsEndpoint());\r\n }));\r\n }\r\n\r\n //getBranchesEndpoint\r\n //getBranchesEndpoint(): Observable {\r\n // const endpointUrl = this.branchesUrl;\r\n\r\n // return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n // catchError(error => {\r\n // return this.handleError(error, () => this.getBranchesEndpoint());\r\n // }));\r\n //}\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { User } from '../models/user.model';\r\nimport { Role } from '../models/role.model';\r\nimport { Branch } from '../models/branch.model'\r\nimport { Permission, PermissionNames, PermissionValues } from '../models/permission.model';\r\nimport { UserEdit } from '../models/user-edit.model';\r\n\r\nexport type RolesChangedOperation = 'add' | 'delete' | 'modify';\r\nexport interface RolesChangedEventArg { roles: Role[] | string[]; operation: RolesChangedOperation; }\r\n\r\n@Injectable()\r\nexport class AccountService {\r\n public static readonly roleAddedOperation: RolesChangedOperation = 'add';\r\n public static readonly roleDeletedOperation: RolesChangedOperation = 'delete';\r\n public static readonly roleModifiedOperation: RolesChangedOperation = 'modify';\r\n\r\n private _rolesChanged = new Subject();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint) {\r\n\r\n }\r\n\r\n getUser(userId?: string) {\r\n return this.accountEndpoint.getUserEndpoint(userId);\r\n }\r\n\r\n getUserAndRoles(userId?: string) {\r\n\r\n return forkJoin(\r\n this.accountEndpoint.getUserEndpoint(userId),\r\n this.accountEndpoint.getRolesEndpoint());\r\n }\r\n\r\n getUsers(page?: number, pageSize?: number) {\r\n\r\n return this.accountEndpoint.getUsersEndpoint(page, pageSize);\r\n }\r\n\r\n getUsersAndRoles(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.accountEndpoint.getUsersEndpoint(page, pageSize),\r\n this.accountEndpoint.getRolesEndpoint());\r\n }\r\n\r\n getUserDetails(userId: string) {\r\n\r\n return this.accountEndpoint.getUserDetailsEndpoint(userId);\r\n }\r\n\r\n updateUser(user: UserEdit) {\r\n if (user.id) {\r\n return this.accountEndpoint.getUpdateUserEndpoint(user, user.id);\r\n } else {\r\n return this.accountEndpoint.getUserByUserNameEndpoint(user.userName).pipe(\r\n mergeMap(foundUser => {\r\n user.id = foundUser.id;\r\n return this.accountEndpoint.getUpdateUserEndpoint(user, user.id);\r\n }));\r\n }\r\n }\r\n\r\n newUser(user: UserEdit) {\r\n return this.accountEndpoint.getNewUserEndpoint(user);\r\n }\r\n\r\n\r\n getUserPreferences() {\r\n return this.accountEndpoint.getUserPreferencesEndpoint();\r\n }\r\n\r\n updateUserPreferences(configuration: string) {\r\n return this.accountEndpoint.getUpdateUserPreferencesEndpoint(configuration);\r\n }\r\n\r\n\r\n deleteUser(userOrUserId: string | User): Observable {\r\n\r\n if (typeof userOrUserId === 'string' || userOrUserId instanceof String) {\r\n return this.accountEndpoint.getDeleteUserEndpoint(userOrUserId).pipe(\r\n tap(data => this.onRolesUserCountChanged(data.roles)));\r\n } else {\r\n\r\n if (userOrUserId.id) {\r\n return this.deleteUser(userOrUserId.id);\r\n } else {\r\n return this.accountEndpoint.getUserByUserNameEndpoint(userOrUserId.userName).pipe(\r\n mergeMap(user => this.deleteUser(user.id)));\r\n }\r\n }\r\n }\r\n\r\n\r\n unblockUser(userId: string) {\r\n return this.accountEndpoint.getUnblockUserEndpoint(userId);\r\n }\r\n\r\n\r\n userHasPermission(permissionValue: PermissionValues): boolean {\r\n return this.permissions.some(p => p == permissionValue);\r\n }\r\n\r\n\r\n refreshLoggedInUser() {\r\n return this.authService.refreshLogin();\r\n }\r\n\r\n getRoles(page?: number, pageSize?: number) {\r\n\r\n return this.accountEndpoint.getRolesEndpoint(page, pageSize);\r\n }\r\n\r\n\r\n getRolesAndPermissions(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.accountEndpoint.getRolesEndpoint(page, pageSize),\r\n this.accountEndpoint.getPermissionsEndpoint());\r\n }\r\n\r\n\r\n updateRole(role: Role) {\r\n if (role.id) {\r\n return this.accountEndpoint.getUpdateRoleEndpoint(role, role.id).pipe(\r\n tap(data => this.onRolesChanged([role], AccountService.roleModifiedOperation)));\r\n } else {\r\n return this.accountEndpoint.getRoleByRoleNameEndpoint(role.name).pipe(\r\n mergeMap(foundRole => {\r\n role.id = foundRole.id;\r\n return this.accountEndpoint.getUpdateRoleEndpoint(role, role.id);\r\n }),\r\n tap(data => this.onRolesChanged([role], AccountService.roleModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newRole(role: Role) {\r\n return this.accountEndpoint.getNewRoleEndpoint(role).pipe(\r\n tap(data => this.onRolesChanged([role], AccountService.roleAddedOperation)));\r\n }\r\n\r\n\r\n deleteRole(roleOrRoleId: string | Role): Observable {\r\n\r\n if (typeof roleOrRoleId === 'string' || roleOrRoleId instanceof String) {\r\n return this.accountEndpoint.getDeleteRoleEndpoint(roleOrRoleId).pipe(\r\n tap(data => this.onRolesChanged([data], AccountService.roleDeletedOperation)));\r\n } else {\r\n\r\n if (roleOrRoleId.id) {\r\n return this.deleteRole(roleOrRoleId.id);\r\n } else {\r\n return this.accountEndpoint.getRoleByRoleNameEndpoint(roleOrRoleId.name).pipe(\r\n mergeMap(role => this.deleteRole(role.id)));\r\n }\r\n }\r\n }\r\n\r\n getPermissions() {\r\n\r\n return this.accountEndpoint.getPermissionsEndpoint();\r\n }\r\n\r\n\r\n private onRolesChanged(roles: Role[] | string[], op: RolesChangedOperation) {\r\n this._rolesChanged.next({ roles: roles, operation: op });\r\n }\r\n\r\n\r\n onRolesUserCountChanged(roles: Role[] | string[]) {\r\n return this.onRolesChanged(roles, AccountService.roleModifiedOperation);\r\n }\r\n\r\n\r\n getRolesChangedEvent(): Observable {\r\n return this._rolesChanged.asObservable();\r\n }\r\n\r\n\r\n\r\n get permissions(): PermissionValues[] {\r\n return this.authService.userPermissions;\r\n }\r\n\r\n get currentUser() {\r\n return this.authService.currentUser;\r\n }\r\n\r\n\r\n //getBranches() {\r\n\r\n // return this.accountEndpoint.getBranchesEndpoint();\r\n //}\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpResponseBase } from '@angular/common/http';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { Utilities } from '../services/utilities';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AlertService {\r\n private messages = new Subject();\r\n private dialogs = new Subject();\r\n\r\n private loadingMessageTimeoutId: any;\r\n\r\n\r\n\r\n showDialog(message: string);\r\n showDialog(message: string, type: DialogType, okCallback: (val?: any) => any);\r\n showDialog(message: string, type: DialogType, okCallback?: (val?: any) => any, cancelCallback?: () => any, okLabel?: string, cancelLabel?: string, defaultValue?: string);\r\n showDialog(message: string, type?: DialogType, okCallback?: (val?: any) => any, cancelCallback?: () => any, okLabel?: string, cancelLabel?: string, defaultValue?: string) {\r\n\r\n if (!type) {\r\n type = DialogType.alert;\r\n }\r\n\r\n this.dialogs.next({ message: message, type: type, okCallback: okCallback, cancelCallback: cancelCallback, okLabel: okLabel, cancelLabel: cancelLabel, defaultValue: defaultValue });\r\n }\r\n\r\n\r\n\r\n showMessage(summary: string);\r\n showMessage(summary: string, detail: string, severity: MessageSeverity);\r\n showMessage(summaryAndDetails: string[], summaryAndDetailsSeparator: string, severity: MessageSeverity);\r\n showMessage(response: HttpResponseBase, ignoreValue_useNull: string, severity: MessageSeverity);\r\n showMessage(data: any, separatorOrDetail?: string, severity?: MessageSeverity) {\r\n\r\n if (!severity) {\r\n severity = MessageSeverity.default;\r\n }\r\n\r\n if (data instanceof HttpResponseBase) {\r\n data = Utilities.getHttpResponseMessages(data);\r\n separatorOrDetail = Utilities.captionAndMessageSeparator;\r\n }\r\n\r\n if (data instanceof Array) {\r\n for (const message of data) {\r\n const msgObject = Utilities.splitInTwo(message, separatorOrDetail);\r\n\r\n this.showMessageHelper(msgObject.firstPart, msgObject.secondPart, severity, false);\r\n }\r\n } else {\r\n this.showMessageHelper(data, separatorOrDetail, severity, false);\r\n }\r\n }\r\n\r\n\r\n showStickyMessage(summary: string);\r\n showStickyMessage(summary: string, detail: string, severity: MessageSeverity, error?: any);\r\n showStickyMessage(summary: string, detail: string, severity: MessageSeverity, error?: any, onRemove?: () => any);\r\n showStickyMessage(summaryAndDetails: string[], summaryAndDetailsSeparator: string, severity: MessageSeverity);\r\n showStickyMessage(response: HttpResponseBase, ignoreValue_useNull: string, severity: MessageSeverity);\r\n showStickyMessage(data: string | string[] | HttpResponseBase, separatorOrDetail?: string, severity?: MessageSeverity, error?: any, onRemove?: () => any) {\r\n\r\n if (!severity) {\r\n severity = MessageSeverity.default;\r\n }\r\n\r\n if (data instanceof HttpResponseBase) {\r\n data = Utilities.getHttpResponseMessages(data);\r\n separatorOrDetail = Utilities.captionAndMessageSeparator;\r\n }\r\n\r\n\r\n if (data instanceof Array) {\r\n for (const message of data) {\r\n const msgObject = Utilities.splitInTwo(message, separatorOrDetail);\r\n\r\n this.showMessageHelper(msgObject.firstPart, msgObject.secondPart, severity, true);\r\n }\r\n } else {\r\n\r\n if (error) {\r\n\r\n const msg = `Severity: \"${MessageSeverity[severity]}\", Summary: \"${data}\", Detail: \"${separatorOrDetail}\", Error: \"${Utilities.safeStringify(error)}\"`;\r\n\r\n switch (severity) {\r\n case MessageSeverity.default:\r\n this.logInfo(msg);\r\n break;\r\n case MessageSeverity.info:\r\n this.logInfo(msg);\r\n break;\r\n case MessageSeverity.success:\r\n this.logMessage(msg);\r\n break;\r\n case MessageSeverity.error:\r\n this.logError(msg);\r\n break;\r\n case MessageSeverity.warn:\r\n this.logWarning(msg);\r\n break;\r\n case MessageSeverity.wait:\r\n this.logTrace(msg);\r\n break;\r\n }\r\n }\r\n\r\n this.showMessageHelper(data, separatorOrDetail, severity, true, onRemove);\r\n }\r\n }\r\n\r\n private showMessageHelper(summary: string, detail: string, severity: MessageSeverity, isSticky: boolean, onRemove?: () => any) {\r\n\r\n const alertCommand: AlertCommand = {\r\n operation: isSticky ? 'add_sticky' : 'add',\r\n message: { severity: severity, summary: summary, detail: detail },\r\n onRemove: onRemove\r\n };\r\n\r\n this.messages.next(alertCommand);\r\n }\r\n\r\n resetStickyMessage() {\r\n this.messages.next({ operation: 'clear' });\r\n }\r\n\r\n startLoadingMessage(message = 'Loading...', caption = '') {\r\n clearTimeout(this.loadingMessageTimeoutId);\r\n\r\n this.loadingMessageTimeoutId = setTimeout(() => {\r\n this.showStickyMessage(caption, message, MessageSeverity.wait);\r\n }, 1000);\r\n }\r\n\r\n stopLoadingMessage() {\r\n clearTimeout(this.loadingMessageTimeoutId);\r\n this.resetStickyMessage();\r\n }\r\n\r\n\r\n\r\n logDebug(msg) {\r\n console.debug(msg);\r\n }\r\n\r\n logError(msg) {\r\n console.error(msg);\r\n }\r\n\r\n logInfo(msg) {\r\n console.info(msg);\r\n }\r\n\r\n logMessage(msg) {\r\n console.log(msg);\r\n }\r\n\r\n logTrace(msg) {\r\n console.trace(msg);\r\n }\r\n\r\n logWarning(msg) {\r\n console.warn(msg);\r\n }\r\n\r\n getDialogEvent(): Observable {\r\n return this.dialogs.asObservable();\r\n }\r\n\r\n getMessageEvent(): Observable {\r\n return this.messages.asObservable();\r\n }\r\n}\r\n\r\n\r\n// ******************** Dialog ********************//\r\nexport class AlertDialog {\r\n constructor(\r\n public message: string,\r\n public type: DialogType,\r\n public okCallback: (val?: any) => any,\r\n public cancelCallback: () => any,\r\n public defaultValue: string,\r\n public okLabel: string,\r\n public cancelLabel: string) {\r\n\r\n }\r\n}\r\n\r\nexport enum DialogType {\r\n alert,\r\n confirm,\r\n prompt\r\n}\r\n// ******************** End ********************//\r\n\r\n\r\n// ******************** Growls ********************//\r\nexport class AlertCommand {\r\n constructor(\r\n public operation: 'clear' | 'add' | 'add_sticky',\r\n public message?: AlertMessage,\r\n public onRemove?: () => any) { }\r\n}\r\n\r\nexport class AlertMessage {\r\n constructor(\r\n public severity: MessageSeverity,\r\n public summary: string,\r\n public detail: string) { }\r\n}\r\n\r\nexport enum MessageSeverity {\r\n default,\r\n info,\r\n success,\r\n error,\r\n warn,\r\n wait\r\n}\r\n// ******************** End ********************//\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\n\r\n\r\nexport const fadeInOut = trigger('fadeInOut', [\r\n transition(':enter', [style({ opacity: 0 }), animate('0.4s ease-in', style({ opacity: 1 }))]),\r\n transition(':leave', [animate('0.4s 10ms ease-out', style({ opacity: 0 }))])\r\n]);\r\n\r\n\r\n\r\nexport function flyInOut(duration: number = 0.2) {\r\n return trigger('flyInOut', [\r\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => *', [style({ opacity: 0, transform: 'translateX(-100%)' }), animate(`${duration}s ease-in`)]),\r\n transition('* => void', [animate(`${duration}s 10ms ease-out`, style({ opacity: 0, transform: 'translateX(100%)' }))])\r\n ]);\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Router, NavigationEnd, PRIMARY_OUTLET } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter, map, flatMap } from 'rxjs/operators';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nimport { Utilities } from './utilities';\r\n\r\n\r\n@Injectable()\r\nexport class AppTitleService {\r\n\r\n sub: Subscription;\r\n appName: string;\r\n\r\n constructor(private titleService: Title, private router: Router) {\r\n this.sub = this.router.events.pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n map(_ => this.router.routerState.root),\r\n map(route => {\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n\r\n return route;\r\n }),\r\n flatMap(route => route.data))\r\n .subscribe(data => {\r\n let title = data['title'];\r\n\r\n if (title) {\r\n const fragment = this.router.url.split('#')[1];\r\n\r\n if (fragment) {\r\n title += ' | ' + Utilities.toTitleCase(fragment);\r\n }\r\n }\r\n\r\n if (title && this.appName) {\r\n title += ' - ' + this.appName;\r\n } else if (this.appName) {\r\n title = this.appName;\r\n }\r\n\r\n if (title) {\r\n this.titleService.setTitle(title);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService, TranslateLoader } from '@ngx-translate/core';\r\nimport { Observable, Subject, of } from 'rxjs';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AppTranslationService {\r\n\r\n private onLanguageChanged = new Subject();\r\n languageChanged$ = this.onLanguageChanged.asObservable();\r\n\r\n constructor(private translate: TranslateService) {\r\n this.addLanguages(['en', 'fr', 'de', 'pt', 'ar', 'ko']);\r\n this.setDefaultLanguage('en');\r\n }\r\n\r\n addLanguages(lang: string[]) {\r\n this.translate.addLangs(lang);\r\n }\r\n\r\n setDefaultLanguage(lang: string) {\r\n this.translate.setDefaultLang(lang);\r\n }\r\n\r\n getDefaultLanguage() {\r\n return this.translate.defaultLang;\r\n }\r\n\r\n getBrowserLanguage() {\r\n return this.translate.getBrowserLang();\r\n }\r\n\r\n getCurrentLanguage() {\r\n return this.translate.currentLang;\r\n }\r\n\r\n getLoadedLanguages() {\r\n return this.translate.langs;\r\n }\r\n\r\n useBrowserLanguage(): string | void {\r\n const browserLang = this.getBrowserLanguage();\r\n\r\n if (browserLang.match(/en|fr|de|pt|ar|ko/)) {\r\n this.changeLanguage(browserLang);\r\n return browserLang;\r\n }\r\n }\r\n\r\n useDefaultLangage() {\r\n return this.changeLanguage(null);\r\n }\r\n\r\n changeLanguage(language: string) {\r\n if (!language) {\r\n language = this.getDefaultLanguage();\r\n }\r\n\r\n if (language != this.translate.currentLang) {\r\n setTimeout(() => {\r\n this.translate.use(language);\r\n this.onLanguageChanged.next(language);\r\n });\r\n }\r\n\r\n return language;\r\n }\r\n\r\n\r\n getTranslation(key: string | Array, interpolateParams?: Object): string | any {\r\n return this.translate.instant(key, interpolateParams);\r\n }\r\n\r\n\r\n getTranslationAsync(key: string | Array, interpolateParams?: Object): Observable {\r\n return this.translate.get(key, interpolateParams);\r\n }\r\n\r\n}\r\n\r\n\r\nexport class TranslateLanguageLoader implements TranslateLoader {\r\n\r\n public getTranslation(lang: string): any {\r\n\r\n // Note Dynamic require(variable) will not work. Require is always at compile time\r\n\r\n switch (lang) {\r\n case 'en':\r\n return of(require('../assets/locale/en.json'));\r\n case 'fr':\r\n return of(require('../assets/locale/fr.json'));\r\n case 'de':\r\n return of(require('../assets/locale/de.json'));\r\n case 'pt':\r\n return of(require('../assets/locale/pt.json'));\r\n case 'ar':\r\n return of(require('../assets/locale/ar.json'));\r\n case 'ko':\r\n return of(require('../assets/locale/ko.json'));\r\n default:\r\n }\r\n }\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild, NavigationExtras, CanLoad, Route } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\n\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate, CanActivateChild, CanLoad {\r\n constructor(private authService: AuthService, private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n\r\n const url: string = state.url;\r\n return this.checkLogin(url);\r\n }\r\n\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.canActivate(route, state);\r\n }\r\n\r\n canLoad(route: Route): boolean {\r\n\r\n const url = `/${route.path}`;\r\n return this.checkLogin(url);\r\n }\r\n\r\n checkLogin(url: string): boolean {\r\n\r\n if (this.authService.isLoggedIn) {\r\n return true;\r\n }\r\n\r\n this.authService.loginRedirectUrl = url;\r\n this.router.navigate(['/login']);\r\n\r\n return false;\r\n }\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from '@angular/router';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LocalStoreManager } from './local-store-manager.service';\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { DBkeys } from './db-Keys';\r\nimport { JwtHelper } from './jwt-helper';\r\nimport { Utilities } from './utilities';\r\nimport { LoginResponse, AccessToken } from '../models/login-response.model';\r\nimport { User } from '../models/user.model';\r\nimport { UserLogin } from '../models/user-login.model';\r\nimport { Permission, PermissionNames, PermissionValues } from '../models/permission.model';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n public get loginUrl() { return this.configurations.loginUrl; }\r\n public get homeUrl() { return this.configurations.homeUrl; }\r\n\r\n public loginRedirectUrl: string;\r\n public logoutRedirectUrl: string;\r\n\r\n public reLoginDelegate: () => void;\r\n\r\n private previousIsLoggedInCheck = false;\r\n private _loginStatus = new Subject();\r\n\r\n constructor(private router: Router, private configurations: ConfigurationService, private endpointFactory: EndpointFactory, private localStorage: LocalStoreManager) {\r\n this.initializeLoginStatus();\r\n }\r\n\r\n private initializeLoginStatus() {\r\n this.localStorage.getInitEvent().subscribe(() => {\r\n this.reevaluateLoginStatus();\r\n });\r\n }\r\n\r\n gotoPage(page: string, preserveParams = true) {\r\n\r\n const navigationExtras: NavigationExtras = {\r\n queryParamsHandling: preserveParams ? 'merge' : '', preserveFragment: preserveParams\r\n };\r\n\r\n this.router.navigate([page], navigationExtras);\r\n }\r\n\r\n gotoHomePage() {\r\n this.router.navigate([this.homeUrl]);\r\n }\r\n\r\n redirectLoginUser() {\r\n const redirect = this.loginRedirectUrl && this.loginRedirectUrl != '/' && this.loginRedirectUrl != ConfigurationService.defaultHomeUrl ? this.loginRedirectUrl : this.homeUrl;\r\n this.loginRedirectUrl = null;\r\n\r\n const urlParamsAndFragment = Utilities.splitInTwo(redirect, '#');\r\n const urlAndParams = Utilities.splitInTwo(urlParamsAndFragment.firstPart, '?');\r\n\r\n const navigationExtras: NavigationExtras = {\r\n fragment: urlParamsAndFragment.secondPart,\r\n queryParams: Utilities.getQueryParamsFromString(urlAndParams.secondPart),\r\n queryParamsHandling: 'merge'\r\n };\r\n\r\n this.router.navigate([urlAndParams.firstPart], navigationExtras);\r\n }\r\n\r\n redirectLogoutUser() {\r\n const redirect = this.logoutRedirectUrl ? this.logoutRedirectUrl : this.loginUrl;\r\n this.logoutRedirectUrl = null;\r\n\r\n this.router.navigate([redirect]);\r\n }\r\n\r\n redirectForLogin() {\r\n this.loginRedirectUrl = this.router.url;\r\n this.router.navigate([this.loginUrl]);\r\n }\r\n\r\n reLogin() {\r\n this.localStorage.deleteData(DBkeys.TOKEN_EXPIRES_IN);\r\n\r\n if (this.reLoginDelegate) {\r\n this.reLoginDelegate();\r\n } else {\r\n this.redirectForLogin();\r\n }\r\n }\r\n\r\n refreshLogin() {\r\n return this.endpointFactory.getRefreshLoginEndpoint().pipe(\r\n map(response => this.processLoginResponse(response, this.rememberMe)));\r\n }\r\n\r\n\r\n login(userName: string, password: string, rememberMe?: boolean) {\r\n\r\n if (this.isLoggedIn) {\r\n this.logout();\r\n }\r\n\r\n return this.endpointFactory.getLoginEndpoint(userName, password).pipe(\r\n map(response => this.processLoginResponse(response, rememberMe)));\r\n }\r\n\r\n\r\n loginSupervisor(userName: string, password: string) {\r\n\r\n return this.endpointFactory.getLoginEndpoint(userName, password).pipe(\r\n map(response => this.processSupervisorLoginResponse(response)));\r\n }\r\n\r\n processSupervisorLoginResponse(response: LoginResponse) {\r\n const jwtHelper = new JwtHelper();\r\n const decodedAccessToken = jwtHelper.decodeToken(response.access_token);\r\n\r\n var isSupervisor = decodedAccessToken.IsSupervisor;\r\n console.log(\"decodedAccessToken\", decodedAccessToken);\r\n if (isSupervisor == \"True\") {\r\n const user = new User(\r\n decodedAccessToken.sub,\r\n decodedAccessToken.name,\r\n decodedAccessToken.fullname,\r\n decodedAccessToken.email,\r\n \"Supervisor\",\r\n decodedAccessToken.phone_number,\r\n Array.isArray(decodedAccessToken.role) ? decodedAccessToken.role : [decodedAccessToken.role])\r\n\r\n return user;\r\n }\r\n else {\r\n return new User();\r\n }\r\n \r\n }\r\n\r\n private processLoginResponse(response: LoginResponse, rememberMe: boolean) {\r\n\r\n const accessToken = response.access_token;\r\n\r\n if (accessToken == null) {\r\n throw new Error('Received accessToken was empty');\r\n\r\n }\r\n\r\n const refreshToken = response.refresh_token || this.refreshToken;\r\n const expiresIn = response.expires_in;\r\n\r\n const tokenExpiryDate = new Date();\r\n tokenExpiryDate.setSeconds(tokenExpiryDate.getSeconds() + expiresIn);\r\n\r\n const accessTokenExpiry = tokenExpiryDate;\r\n\r\n const jwtHelper = new JwtHelper();\r\n const decodedAccessToken = jwtHelper.decodeToken(response.access_token);\r\n\r\n const permissions: PermissionValues[] = Array.isArray(decodedAccessToken.permission) ? decodedAccessToken.permission : [decodedAccessToken.permission];\r\n\r\n if (!this.isLoggedIn) {\r\n this.configurations.import(decodedAccessToken.configuration);\r\n }\r\n\r\n const user = new User(\r\n decodedAccessToken.sub,\r\n decodedAccessToken.name,\r\n decodedAccessToken.fullname,\r\n decodedAccessToken.email,\r\n decodedAccessToken.jobtitle,\r\n decodedAccessToken.phone_number,\r\n Array.isArray(decodedAccessToken.role) ? decodedAccessToken.role : [decodedAccessToken.role])\r\n\r\n user.isEnabled = true;\r\n\r\n this.saveUserDetails(user, permissions, accessToken, refreshToken, accessTokenExpiry, rememberMe);\r\n\r\n this.reevaluateLoginStatus(user);\r\n\r\n return user;\r\n }\r\n\r\n private saveUserDetails(user: User, permissions: PermissionValues[], accessToken: string, refreshToken: string, expiresIn: Date, rememberMe: boolean) {\r\n if (rememberMe) {\r\n this.localStorage.savePermanentData(accessToken, DBkeys.ACCESS_TOKEN);\r\n this.localStorage.savePermanentData(refreshToken, DBkeys.REFRESH_TOKEN);\r\n this.localStorage.savePermanentData(expiresIn, DBkeys.TOKEN_EXPIRES_IN);\r\n this.localStorage.savePermanentData(permissions, DBkeys.USER_PERMISSIONS);\r\n this.localStorage.savePermanentData(user, DBkeys.CURRENT_USER);\r\n } else {\r\n this.localStorage.saveSyncedSessionData(accessToken, DBkeys.ACCESS_TOKEN);\r\n this.localStorage.saveSyncedSessionData(refreshToken, DBkeys.REFRESH_TOKEN);\r\n this.localStorage.saveSyncedSessionData(expiresIn, DBkeys.TOKEN_EXPIRES_IN);\r\n this.localStorage.saveSyncedSessionData(permissions, DBkeys.USER_PERMISSIONS);\r\n this.localStorage.saveSyncedSessionData(user, DBkeys.CURRENT_USER);\r\n }\r\n\r\n this.localStorage.savePermanentData(rememberMe, DBkeys.REMEMBER_ME);\r\n }\r\n\r\n logout(): void {\r\n this.localStorage.deleteData(DBkeys.ACCESS_TOKEN);\r\n this.localStorage.deleteData(DBkeys.REFRESH_TOKEN);\r\n this.localStorage.deleteData(DBkeys.TOKEN_EXPIRES_IN);\r\n this.localStorage.deleteData(DBkeys.USER_PERMISSIONS);\r\n this.localStorage.deleteData(DBkeys.CURRENT_USER);\r\n\r\n this.configurations.clearLocalChanges();\r\n\r\n this.reevaluateLoginStatus();\r\n }\r\n\r\n private reevaluateLoginStatus(currentUser?: User) {\r\n const user = currentUser || this.localStorage.getDataObject(DBkeys.CURRENT_USER);\r\n const isLoggedIn = user != null;\r\n\r\n if (this.previousIsLoggedInCheck != isLoggedIn) {\r\n setTimeout(() => {\r\n this._loginStatus.next(isLoggedIn);\r\n });\r\n }\r\n\r\n this.previousIsLoggedInCheck = isLoggedIn;\r\n }\r\n\r\n getLoginStatusEvent(): Observable {\r\n return this._loginStatus.asObservable();\r\n }\r\n\r\n get currentUser(): User {\r\n\r\n const user = this.localStorage.getDataObject(DBkeys.CURRENT_USER);\r\n this.reevaluateLoginStatus(user);\r\n\r\n return user;\r\n }\r\n\r\n get userPermissions(): PermissionValues[] {\r\n return this.localStorage.getDataObject(DBkeys.USER_PERMISSIONS) || [];\r\n }\r\n\r\n get accessToken(): string {\r\n\r\n this.reevaluateLoginStatus();\r\n return this.localStorage.getData(DBkeys.ACCESS_TOKEN);\r\n }\r\n\r\n get accessTokenExpiryDate(): Date {\r\n\r\n this.reevaluateLoginStatus();\r\n return this.localStorage.getDataObject(DBkeys.TOKEN_EXPIRES_IN, true);\r\n }\r\n\r\n get isSessionExpired(): boolean {\r\n if (this.accessTokenExpiryDate == null) {\r\n return true;\r\n }\r\n\r\n return this.accessTokenExpiryDate.valueOf() <= new Date().valueOf();\r\n }\r\n\r\n get refreshToken(): string {\r\n\r\n this.reevaluateLoginStatus();\r\n return this.localStorage.getData(DBkeys.REFRESH_TOKEN);\r\n }\r\n\r\n get isLoggedIn(): boolean {\r\n return this.currentUser != null;\r\n }\r\n\r\n get rememberMe(): boolean {\r\n return this.localStorage.getDataObject(DBkeys.REMEMBER_ME) == true;\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { FowkesOnlineService } from './fowkes-online.service';\r\n\r\n@Injectable()\r\nexport class Calculations {\r\n\r\n //TODO: Add to admin config, set to 10% for now\r\n static minimumPriceMargin: number = 10;\r\n\r\n \r\n\r\n public static precise_round(num, decimals) {\r\n var t = Math.pow(10, decimals);\r\n return (Math.round((num * t) + (decimals > 0 ? 1 : 0) * (Math.sign(num) * (10 / Math.pow(100, decimals)))) / t).toFixed(decimals);\r\n\r\n }\r\n\r\n public static RoundAwayFromZero(startValue: number, digits: number) {\r\n let decimalValue = 0;\r\n digits = digits || 0;\r\n startValue *= Math.pow(10, (digits + 1));\r\n decimalValue = Math.floor(startValue) - (Math.floor(startValue / 10) * 10);\r\n startValue = Math.floor(startValue / 10);\r\n if (decimalValue >= 5) {\r\n startValue += 1;\r\n }\r\n startValue /= Math.pow(10, (digits));\r\n return startValue;\r\n }\r\n\r\n\r\n public static setUnitCostDecimals(lineUnitCost: number): any {\r\n return this.RoundAwayFromZero(lineUnitCost, 3);\r\n }\r\n\r\n\r\n public static setSpecialPriceDecimals(specialPrice: number): any {\r\n return this.RoundAwayFromZero(specialPrice, 2);\r\n }\r\n\r\n\r\n public static getSpecialPriceTotal(unitCost: number, lineSellingPrice: number, addPercentage: number, discPercentage: number, linePriceConvFac: number,\r\n lineTotal: number): any {\r\n\r\n if (discPercentage > 0) {\r\n lineTotal = this.RoundAwayFromZero((lineSellingPrice / linePriceConvFac) * ((100 - discPercentage) / 100), 3);\r\n }\r\n else {\r\n lineTotal = this.RoundAwayFromZero((unitCost) * ((100 + addPercentage) / 100), 3);\r\n }\r\n\r\n return this.RoundAwayFromZero(lineTotal, 3);// this.RoundAwayFromZero(this.RoundAwayFromZero(lineTotal, 3), 2);\r\n }\r\n\r\n public static getSpecialPriceCostPlus(unitCost: number, specialPrice: number, linePriceConvFac: number, addPercentage: number): any {\r\n\r\n addPercentage = this.RoundAwayFromZero((((specialPrice / linePriceConvFac) - unitCost) / unitCost) * 100, 3);\r\n \r\n return this.RoundAwayFromZero(addPercentage, 2);// this.RoundAwayFromZero(this.RoundAwayFromZero(lineTotal, 3), 2);\r\n }\r\n\r\n public static getGridLineTotal(lineOrderQty: number, lineSellingPrice: number, linePriceConvFac: number, lineDiscountPercentage: number,\r\n lineTotal: number): any {\r\n\r\n lineTotal = this.RoundAwayFromZero((lineOrderQty * (lineSellingPrice / linePriceConvFac)) * ((100 - lineDiscountPercentage) / 100), 3);\r\n\r\n return this.RoundAwayFromZero(lineTotal, 2);// this.RoundAwayFromZero(this.RoundAwayFromZero(lineTotal, 3), 2);\r\n }\r\n\r\n\r\n public static getGridLineTotalCostPlus(lineOrderQty: number, lineCostPrice: number, linePriceConvFac: number, linePlusPercentage: number,\r\n lineTotal: number): any {\r\n\r\n lineTotal = this.RoundAwayFromZero((lineOrderQty * (lineCostPrice * linePriceConvFac)) * ((100 + linePlusPercentage) / 100), 3);\r\n\r\n return this.RoundAwayFromZero(lineTotal, 2);// this.RoundAwayFromZero(this.RoundAwayFromZero(lineTotal, 3), 2);\r\n }\r\n\r\n public static getGridNettLinePrice(lineOrderQty: number, lineSellingPrice: number, linePriceConvFac: number, lineDiscountPercentage: number,\r\n lineTotal: number): any {\r\n\r\n var baseTotal = this.RoundAwayFromZero(this.RoundAwayFromZero(((lineOrderQty * lineSellingPrice) / linePriceConvFac), 3), 2);\r\n //(lineOrderQty * (lineSellingPrice / linePriceConvFac));\r\n var discount = this.RoundAwayFromZero(this.RoundAwayFromZero(\r\n ((this.RoundAwayFromZero(this.RoundAwayFromZero(((lineOrderQty * lineSellingPrice) / linePriceConvFac), 3), 2) / 100)\r\n * lineDiscountPercentage), 3), 2);\r\n // ((lineOrderQty * (lineSellingPrice / linePriceConvFac)) / 100) * lineDiscountPercentage;\r\n\r\n lineTotal = ((baseTotal - discount) / lineOrderQty) * linePriceConvFac;\r\n\r\n return this.RoundAwayFromZero(lineTotal, 3);\r\n }\r\n \r\n //Calculate the line total for specified row\r\n public static calculateBaseLineTotal(lineOrderQty: number, lineSellingPrice: number, linePriceConvFac: number,\r\n lineTotal: number): any {\r\n\r\n lineTotal = this.RoundAwayFromZero(this.RoundAwayFromZero(((lineOrderQty * lineSellingPrice) / linePriceConvFac), 3), 2);\r\n //(lineOrderQty * (lineSellingPrice / linePriceConvFac));\r\n\r\n return lineTotal;\r\n }\r\n\r\n\r\n //Calculate the line discount total for specified row\r\n public static calculateLineDiscountTotal(lineOrderQty: number, lineSellingPrice: number, lineDiscountPercentage: number, linePriceConvFac: number, lineDiscountTotal: number): any {\r\n\r\n lineDiscountTotal = this.RoundAwayFromZero(this.RoundAwayFromZero(\r\n ((this.RoundAwayFromZero(this.RoundAwayFromZero(((lineOrderQty * lineSellingPrice) / linePriceConvFac), 3), 2) / 100)\r\n * lineDiscountPercentage), 3), 2);\r\n\r\n return lineDiscountTotal;\r\n }\r\n\r\n\r\n //Calculate the line totals like syspro\r\n public static calculateLineSysproTotal(lineOrderQty: number, lineSellingPrice: number, lineDiscountPercentage: number, linePriceConvFac: number, lineSysproTotal: number): any {\r\n\r\n lineSysproTotal =\r\n this.RoundAwayFromZero(this.RoundAwayFromZero(((lineOrderQty * lineSellingPrice) / linePriceConvFac), 3), 2)\r\n - this.RoundAwayFromZero(this.RoundAwayFromZero(\r\n ((this.RoundAwayFromZero(this.RoundAwayFromZero(((lineOrderQty * lineSellingPrice) / linePriceConvFac), 3), 2) / 100)\r\n * lineDiscountPercentage), 3), 2);\r\n\r\n\r\n return lineSysproTotal;\r\n }\r\n\r\n public static calculateGPLineTotal(lineUnitCost: number, lineSellingPrice: number,linePriceConvFac: number,\r\n lineTotal: number): any {\r\n\r\n lineTotal = (((lineSellingPrice - lineUnitCost) / lineSellingPrice) * 100);\r\n\r\n return lineTotal;\r\n }\r\n\r\n public static calculateNettLinePrice(lineOrderQty: number, lineSellingPrice: number, linePriceConvFac: number,\r\n lineTotal: number, lineDiscountTotal: number): any {\r\n if(lineOrderQty > 0)\r\n lineTotal = ((lineTotal - lineDiscountTotal) / lineOrderQty) * linePriceConvFac;\r\n //this.RoundAwayFromZero(((lineTotal - lineDiscountTotal) / lineOrderQty) * linePriceConvFac, 2);\r\n\r\n return lineTotal;\r\n }\r\n\r\n\r\n //Calculate the line discount for special price\r\n public static calculateSpecialDiscountTotal(lineSellingPrice: number, lineSpecialPrice: number, lineDiscountTotal: number): any {\r\n\r\n lineDiscountTotal = ((lineSellingPrice - lineSpecialPrice) / lineSellingPrice) * 100 ;\r\n\r\n return lineDiscountTotal;\r\n }\r\n\r\n\r\n\r\n //Calculate the line vat for specified row\r\n public static calculateLineVat(lineTotalExlVat: number, lineDiscount: number, vatValue: number, vatPercentage?: number): any {\r\n\r\n let calcVat = 0;\r\n if (vatPercentage >= 0) {\r\n calcVat = vatPercentage;\r\n }\r\n else {\r\n calcVat = Calculations.getVatPercentage();\r\n }\r\n\r\n var lineTotalRounded = this.RoundAwayFromZero(lineTotalExlVat - lineDiscount, 2);\r\n vatValue = this.RoundAwayFromZero(lineTotalRounded / 100 * calcVat, 2);\r\n return vatValue;\r\n }\r\n\r\n public static validateMinimumPriceMargin(lineSellingPrice: number, lineDiscountPercentage: number, linePriceConvFac: number, lineCost: number): any {\r\n \r\n var newSellingPrice = (lineSellingPrice / linePriceConvFac) * ((100 - lineDiscountPercentage) / 100);\r\n //Check that the newSellingPrice - discount does not exceed unitCost + minimumPriceMargin in web.config\r\n if (newSellingPrice < (lineCost + ((lineCost / 100) * this.minimumPriceMargin))) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n\r\n public static getVatPercentage(invoiceDate?: Date): any {\r\n\r\n return 15;\r\n }\r\n\r\n public static splitInTwo(text: string, separator: string): { firstPart: string, secondPart: string } {\r\n const separatorIndex = text.indexOf(separator);\r\n\r\n if (separatorIndex == -1) {\r\n return { firstPart: text, secondPart: null };\r\n }\r\n\r\n const part1 = text.substr(0, separatorIndex).trim();\r\n const part2 = text.substr(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n public static safeStringify(object) {\r\n\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n } catch (error) {\r\n\r\n }\r\n\r\n const simpleObject = {};\r\n\r\n for (const prop in object) {\r\n if (!object.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = '[***Sanitized Object***]: ' + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n public static JsonTryParse(value: string) {\r\n try {\r\n return JSON.parse(value);\r\n } catch (e) {\r\n if (value === 'undefined') {\r\n return void 0;\r\n }\r\n return value;\r\n }\r\n }\r\n\r\n public static TestIsObjectEmpty(obj: any) {\r\n for (const prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public static TestIsUndefined(value: any) {\r\n return typeof value === 'undefined';\r\n // return value === undefined;\r\n }\r\n\r\n public static TestIsString(value: any) {\r\n return typeof value === 'string' || value instanceof String;\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string) {\r\n if (text) {\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n return text;\r\n }\r\n }\r\n\r\n public static toTitleCase(text: string) {\r\n return text.replace(/\\w\\S*/g, (subString) => {\r\n return subString.charAt(0).toUpperCase() + subString.substr(1).toLowerCase();\r\n });\r\n }\r\n\r\n public static toLowerCase(items: string);\r\n public static toLowerCase(items: string[]);\r\n public static toLowerCase(items: any): string | string[] {\r\n\r\n if (items instanceof Array) {\r\n const loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n } else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n }\r\n\r\n public static uniqueId() {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n public static randomNumber(min: number, max: number) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n public static baseUrl() {\r\n let base = '';\r\n\r\n if (window.location.origin) {\r\n base = window.location.origin;\r\n } else {\r\n base = window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n }\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n public static printDateOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n const dayNames = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');\r\n const monthNames = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');\r\n\r\n const dayOfWeek = date.getDay();\r\n const dayOfMonth = date.getDate();\r\n let sup = '';\r\n const month = date.getMonth();\r\n const year = date.getFullYear();\r\n\r\n if (dayOfMonth == 1 || dayOfMonth == 21 || dayOfMonth == 31) {\r\n sup = 'st';\r\n } else if (dayOfMonth == 2 || dayOfMonth == 22) {\r\n sup = 'nd';\r\n } else if (dayOfMonth == 3 || dayOfMonth == 23) {\r\n sup = 'rd';\r\n } else {\r\n sup = 'th';\r\n }\r\n\r\n const dateString = dayNames[dayOfWeek] + ', ' + dayOfMonth + sup + ' ' + monthNames[month] + ' ' + year;\r\n\r\n return dateString;\r\n }\r\n\r\n public static printTimeOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let period = '';\r\n let minute = date.getMinutes().toString();\r\n let hour = date.getHours();\r\n\r\n period = hour < 12 ? 'AM' : 'PM';\r\n\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n if (hour > 12) {\r\n hour = hour - 12;\r\n }\r\n\r\n if (minute.length == 1) {\r\n minute = '0' + minute;\r\n }\r\n\r\n const timeString = hour + ':' + minute + ' ' + period;\r\n\r\n\r\n return timeString;\r\n }\r\n\r\n public static printDate(date: Date, separator = 'at') {\r\n return `${Calculations.printDateOnly(date)} ${separator} ${Calculations.printTimeOnly(date)}`;\r\n }\r\n\r\n public static printFriendlyDate(date: Date, separator = '-') {\r\n const today = new Date(); today.setHours(0, 0, 0, 0);\r\n const yesterday = new Date(today); yesterday.setDate(yesterday.getDate() - 1);\r\n const test = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n if (test.toDateString() == today.toDateString()) {\r\n return `Today ${separator} ${Calculations.printTimeOnly(date)}`;\r\n }\r\n if (test.toDateString() == yesterday.toDateString()) {\r\n return `Yesterday ${separator} ${Calculations.printTimeOnly(date)}`;\r\n } else {\r\n return Calculations.printDate(date, separator);\r\n }\r\n }\r\n\r\n public static printShortDate(date: Date, separator = '/', dateTimeSeparator = '-') {\r\n\r\n let day = date.getDate().toString();\r\n let month = (date.getMonth() + 1).toString();\r\n const year = date.getFullYear();\r\n\r\n if (day.length == 1) {\r\n day = '0' + day;\r\n }\r\n\r\n if (month.length == 1) {\r\n month = '0' + month;\r\n }\r\n\r\n return `${month}${separator}${day}${separator}${year} ${dateTimeSeparator} ${Calculations.printTimeOnly(date)}`;\r\n }\r\n\r\n public static parseDate(date) {\r\n\r\n if (date) {\r\n\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n\r\n if (typeof date === 'string' || date instanceof String) {\r\n if (date.search(/[a-su-z+]/i) == -1) {\r\n date = date + 'Z';\r\n }\r\n\r\n return new Date(date);\r\n }\r\n\r\n if (typeof date === 'number' || date instanceof Number) {\r\n return new Date(date);\r\n }\r\n }\r\n }\r\n\r\n public static printDuration(start: Date, end: Date) {\r\n\r\n start = new Date(start);\r\n end = new Date(end);\r\n\r\n // get total seconds between the times\r\n let delta = Math.abs(start.valueOf() - end.valueOf()) / 1000;\r\n\r\n // calculate (and subtract) whole days\r\n const days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n // calculate (and subtract) whole hours\r\n const hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n // calculate (and subtract) whole minutes\r\n const minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n // what's left is seconds\r\n const seconds = delta % 60; // in theory the modulus is not required\r\n\r\n\r\n let printedDays = '';\r\n\r\n if (days) {\r\n printedDays = `${days} days`;\r\n }\r\n\r\n if (hours) {\r\n printedDays += printedDays ? `, ${hours} hours` : `${hours} hours`;\r\n }\r\n\r\n if (minutes) {\r\n printedDays += printedDays ? `, ${minutes} minutes` : `${minutes} minutes`;\r\n }\r\n\r\n if (seconds) {\r\n printedDays += printedDays ? ` and ${seconds} seconds` : `${seconds} seconds`;\r\n }\r\n\r\n\r\n if (!printedDays) {\r\n printedDays = '0';\r\n }\r\n\r\n return printedDays;\r\n }\r\n\r\n public static getAge(birthDate, otherDate) {\r\n birthDate = new Date(birthDate);\r\n otherDate = new Date(otherDate);\r\n\r\n let years = (otherDate.getFullYear() - birthDate.getFullYear());\r\n\r\n if (otherDate.getMonth() < birthDate.getMonth() ||\r\n otherDate.getMonth() == birthDate.getMonth() && otherDate.getDate() < birthDate.getDate()) {\r\n years--;\r\n }\r\n\r\n return years;\r\n }\r\n\r\n public static searchArray(searchTerm: string, caseSensitive: boolean, ...values: any[]) {\r\n if (!searchTerm) {\r\n return true;\r\n }\r\n\r\n let filter = searchTerm.trim();\r\n let data = values.join();\r\n\r\n if (!caseSensitive) {\r\n filter = filter.toLowerCase();\r\n data = data.toLowerCase();\r\n }\r\n\r\n return data.indexOf(filter) != -1;\r\n }\r\n\r\n public static moveArrayItem(array: any[], oldIndex, newIndex) {\r\n\r\n while (oldIndex < 0) {\r\n oldIndex += this.length;\r\n }\r\n\r\n while (newIndex < 0) {\r\n newIndex += this.length;\r\n }\r\n\r\n if (newIndex >= this.length) {\r\n let k = newIndex - this.length;\r\n while ((k--) + 1) {\r\n array.push(undefined);\r\n }\r\n }\r\n\r\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\r\n }\r\n\r\n public static expandCamelCase(text: string) {\r\n\r\n if (!text) {\r\n return text;\r\n }\r\n\r\n return text.replace(/([A-Z][a-z]+)/g, ' $1')\r\n .replace(/([A-Z][A-Z]+)/g, ' $1')\r\n .replace(/([^A-Za-z ]+)/g, ' $1');\r\n }\r\n\r\n public static testIsAbsoluteUrl(url: string) {\r\n\r\n const r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n public static convertToAbsoluteUrl(url: string) {\r\n\r\n return Calculations.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n public static removeNulls(obj) {\r\n const isArray = obj instanceof Array;\r\n\r\n for (const k in obj) {\r\n if (obj[k] === null) {\r\n isArray ? obj.splice(k, 1) : delete obj[k];\r\n } else if (typeof obj[k] == 'object') {\r\n Calculations.removeNulls(obj[k]);\r\n }\r\n\r\n if (isArray && obj.length == k) {\r\n Calculations.removeNulls(obj);\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n public static debounce(func: (...args) => any, wait: number, immediate?: boolean) {\r\n let timeout;\r\n\r\n return function () {\r\n const context = this;\r\n const args_ = arguments;\r\n\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) {\r\n func.apply(context, args_);\r\n }\r\n };\r\n\r\n const callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow) {\r\n func.apply(context, args_);\r\n }\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { AppTranslationService } from './app-translation.service';\r\nimport { ThemeManager } from './theme-manager';\r\nimport { LocalStoreManager } from './local-store-manager.service';\r\nimport { DBkeys } from './db-Keys';\r\nimport { Utilities } from './utilities';\r\nimport { environment } from '../../environments/environment';\r\n\r\ninterface UserConfiguration {\r\n loadCache: boolean;\r\n wappEnabled: boolean;\r\n menuExpanded: boolean;\r\n language: string;\r\n homeUrl: string;\r\n themeId: number;\r\n showDashboardStatistics: boolean;\r\n showDashboardNotifications: boolean;\r\n showDashboardTodo: boolean;\r\n showDashboardBanner: boolean;\r\n applicationName: string;\r\n branchCode: string;\r\n defaultPrinter: string;\r\n}\r\n\r\n@Injectable()\r\nexport class ConfigurationService {\r\n\r\n constructor(\r\n private localStorage: LocalStoreManager,\r\n private translationService: AppTranslationService,\r\n private themeManager: ThemeManager) {\r\n\r\n this.loadLocalChanges();\r\n }\r\n\r\n set language(value: string) {\r\n this._language = value;\r\n this.saveToLocalStore(value, DBkeys.LANGUAGE);\r\n this.translationService.changeLanguage(value);\r\n }\r\n get language() {\r\n return this._language || ConfigurationService.defaultLanguage;\r\n }\r\n\r\n\r\n set themeId(value: number) {\r\n value = +value;\r\n this._themeId = value;\r\n this.saveToLocalStore(value, DBkeys.THEME_ID);\r\n this.themeManager.installTheme(this.themeManager.getThemeByID(value));\r\n }\r\n get themeId() {\r\n return this._themeId || ConfigurationService.defaultThemeId;\r\n }\r\n\r\n\r\n set homeUrl(value: string) {\r\n this._homeUrl = value;\r\n this.saveToLocalStore(value, DBkeys.HOME_URL);\r\n }\r\n get homeUrl() {\r\n return this._homeUrl || ConfigurationService.defaultHomeUrl;\r\n }\r\n\r\n set loadCache(value: boolean) {\r\n this._loadCache = value;\r\n this.saveToLocalStore(value, DBkeys.LOAD_CACHE);\r\n }\r\n get loadCache() {\r\n return this._loadCache != null ? this._loadCache : ConfigurationService.defaultLoadCache;\r\n }\r\n\r\n set wappEnabled(value: boolean) {\r\n this._wappEnabled = value;\r\n this.saveToLocalStore(value, DBkeys.WAPP_ENABLED);\r\n }\r\n get wappEnabled() {\r\n return this._wappEnabled != null ? this._wappEnabled : ConfigurationService.defaultWappEnabled;\r\n }\r\n\r\n\r\n set menuExpanded(value: boolean) {\r\n this._menuExpanded = value;\r\n this.saveToLocalStore(value, DBkeys.MENU_EXPANDED);\r\n }\r\n get menuExpanded() {\r\n return this._menuExpanded != null ? this._menuExpanded : ConfigurationService.defaultMenuExpanded;\r\n }\r\n\r\n\r\n set defaultPrinter(value: string) {\r\n this._defaultPrinter = value;\r\n this.saveToLocalStore(value, DBkeys.DEFAULT_PRINTER);\r\n }\r\n get defaultPrinter() {\r\n return this._defaultPrinter || ConfigurationService.defaultPrinter;\r\n }\r\n\r\n set showDashboardStatistics(value: boolean) {\r\n this._showDashboardStatistics = value;\r\n this.saveToLocalStore(value, DBkeys.SHOW_DASHBOARD_STATISTICS);\r\n }\r\n get showDashboardStatistics() {\r\n return this._showDashboardStatistics != null ? this._showDashboardStatistics : ConfigurationService.defaultShowDashboardStatistics;\r\n }\r\n\r\n\r\n set showDashboardNotifications(value: boolean) {\r\n this._showDashboardNotifications = value;\r\n this.saveToLocalStore(value, DBkeys.SHOW_DASHBOARD_NOTIFICATIONS);\r\n }\r\n get showDashboardNotifications() {\r\n return this._showDashboardNotifications != null ? this._showDashboardNotifications : ConfigurationService.defaultShowDashboardNotifications;\r\n }\r\n\r\n\r\n set showDashboardTodo(value: boolean) {\r\n this._showDashboardTodo = value;\r\n this.saveToLocalStore(value, DBkeys.SHOW_DASHBOARD_TODO);\r\n }\r\n get showDashboardTodo() {\r\n return this._showDashboardTodo != null ? this._showDashboardTodo : ConfigurationService.defaultShowDashboardTodo;\r\n }\r\n\r\n\r\n set showDashboardBanner(value: boolean) {\r\n this._showDashboardBanner = value;\r\n this.saveToLocalStore(value, DBkeys.SHOW_DASHBOARD_BANNER);\r\n }\r\n get showDashboardBanner() {\r\n return this._showDashboardBanner != null ? this._showDashboardBanner : ConfigurationService.defaultShowDashboardBanner;\r\n }\r\n\r\n\r\n set applicationName(value: string) {\r\n this._applicationName = value;\r\n this.saveToLocalStore(value, DBkeys.APPLICATION_NAME);\r\n }\r\n get applicationName() {\r\n return this._applicationName || ConfigurationService.defaultApplicationName;\r\n }\r\n\r\n\r\n set branchCode(value: string) {\r\n this._branchCode = value;\r\n this.saveToLocalStore(value, DBkeys.BRANCH_CODE);\r\n }\r\n get branchCode() {\r\n return this._branchCode || ConfigurationService.defaultBranchCode;\r\n }\r\n\r\n public static readonly appVersion: string = '2.7.2';\r\n\r\n // ***Specify default configurations here***\r\n public static readonly defaultLanguage: string = 'en';\r\n public static readonly defaultHomeUrl: string = '/';\r\n public static readonly defaultThemeId: number = 15;\r\n public static readonly defaultShowDashboardStatistics: boolean = false;\r\n public static readonly defaultShowDashboardNotifications: boolean = false;\r\n public static readonly defaultShowDashboardTodo: boolean = false;\r\n public static readonly defaultShowDashboardBanner: boolean = false;\r\n public static readonly defaultApplicationName: string = 'FowkesOnline';\r\n public static readonly defaultBranchCode: string = 'CT';\r\n public static readonly defaultLoadCache: boolean = true;\r\n public static readonly defaultWappEnabled: boolean = false;\r\n public static readonly defaultMenuExpanded: boolean = true;\r\n public static readonly defaultPrinter: string = '';\r\n\r\n public baseUrl = environment.baseUrl || Utilities.baseUrl();\r\n public tokenUrl = environment.tokenUrl || environment.baseUrl || Utilities.baseUrl();\r\n public loginUrl = environment.loginUrl;\r\n public fallbackBaseUrl = 'https://wwww.fowkes.co.za';\r\n // ***End of defaults***\r\n\r\n private _language: string = null;\r\n private _homeUrl: string = null;\r\n private _themeId: number = null;\r\n private _showDashboardStatistics: boolean = null;\r\n private _showDashboardNotifications: boolean = null;\r\n private _showDashboardTodo: boolean = null;\r\n private _showDashboardBanner: boolean = null;\r\n private _applicationName: string = null;\r\n private _branchCode: string = null;\r\n private _loadCache: boolean = null;\r\n private _wappEnabled: boolean = null;\r\n private _menuExpanded: boolean = null;\r\n private _defaultPrinter: string = null;\r\n\r\n private onConfigurationImported: Subject = new Subject();\r\n configurationImported$ = this.onConfigurationImported.asObservable();\r\n\r\n\r\n\r\n private loadLocalChanges() {\r\n\r\n if (this.localStorage.exists(DBkeys.LANGUAGE)) {\r\n this._language = this.localStorage.getDataObject(DBkeys.LANGUAGE);\r\n this.translationService.changeLanguage(this._language);\r\n } else {\r\n this.resetLanguage();\r\n }\r\n\r\n\r\n if (this.localStorage.exists(DBkeys.THEME_ID)) {\r\n this._themeId = this.localStorage.getDataObject(DBkeys.THEME_ID);\r\n this.themeManager.installTheme(this.themeManager.getThemeByID(this._themeId));\r\n } else {\r\n this.resetTheme();\r\n }\r\n\r\n\r\n if (this.localStorage.exists(DBkeys.HOME_URL)) {\r\n this._homeUrl = this.localStorage.getDataObject(DBkeys.HOME_URL);\r\n }\r\n\r\n if (this.localStorage.exists(DBkeys.LOAD_CACHE)) {\r\n this._loadCache = this.localStorage.getDataObject(DBkeys.LOAD_CACHE);\r\n }\r\n\r\n\r\n if (this.localStorage.exists(DBkeys.WAPP_ENABLED)) {\r\n this._wappEnabled = this.localStorage.getDataObject(DBkeys.WAPP_ENABLED);\r\n }\r\n\r\n if (this.localStorage.exists(DBkeys.DEFAULT_PRINTER)) {\r\n this._defaultPrinter = this.localStorage.getDataObject(DBkeys.DEFAULT_PRINTER);\r\n }\r\n\r\n if (this.localStorage.exists(DBkeys.SHOW_DASHBOARD_STATISTICS)) {\r\n this._showDashboardStatistics = this.localStorage.getDataObject(DBkeys.SHOW_DASHBOARD_STATISTICS);\r\n }\r\n\r\n if (this.localStorage.exists(DBkeys.SHOW_DASHBOARD_NOTIFICATIONS)) {\r\n this._showDashboardNotifications = this.localStorage.getDataObject(DBkeys.SHOW_DASHBOARD_NOTIFICATIONS);\r\n }\r\n\r\n if (this.localStorage.exists(DBkeys.SHOW_DASHBOARD_TODO)) {\r\n this._showDashboardTodo = this.localStorage.getDataObject(DBkeys.SHOW_DASHBOARD_TODO);\r\n }\r\n\r\n if (this.localStorage.exists(DBkeys.SHOW_DASHBOARD_BANNER)) {\r\n this._showDashboardBanner = this.localStorage.getDataObject(DBkeys.SHOW_DASHBOARD_BANNER);\r\n }\r\n\r\n if (this.localStorage.exists(DBkeys.APPLICATION_NAME)) {\r\n this._applicationName = this.localStorage.getDataObject(DBkeys.APPLICATION_NAME);\r\n }\r\n\r\n if (this.localStorage.exists(DBkeys.BRANCH_CODE)) {\r\n this._branchCode = this.localStorage.getDataObject(DBkeys.BRANCH_CODE);\r\n }\r\n\r\n }\r\n\r\n\r\n private saveToLocalStore(data: any, key: string) {\r\n setTimeout(() => this.localStorage.savePermanentData(data, key));\r\n }\r\n\r\n\r\n public import(jsonValue: string) {\r\n\r\n this.clearLocalChanges();\r\n\r\n if (jsonValue) {\r\n const importValue: UserConfiguration = Utilities.JsonTryParse(jsonValue);\r\n\r\n if (importValue.language != null) {\r\n this.language = importValue.language;\r\n }\r\n\r\n //if (importValue.themeId != null) {\r\n // this.themeId = +importValue.themeId;\r\n //}\r\n\r\n if (importValue.themeId != null) {\r\n this.themeId = +importValue.themeId;\r\n }\r\n\r\n if (importValue.homeUrl != null) {\r\n this.homeUrl = importValue.homeUrl;\r\n }\r\n\r\n if (importValue.defaultPrinter != null) {\r\n this.defaultPrinter = importValue.defaultPrinter;\r\n }\r\n\r\n if (importValue.showDashboardStatistics != null) {\r\n this.showDashboardStatistics = importValue.showDashboardStatistics;\r\n }\r\n\r\n if (importValue.showDashboardNotifications != null) {\r\n this.showDashboardNotifications = importValue.showDashboardNotifications;\r\n }\r\n\r\n if (importValue.showDashboardTodo != null) {\r\n this.showDashboardTodo = importValue.showDashboardTodo;\r\n }\r\n\r\n if (importValue.showDashboardBanner != null) {\r\n this.showDashboardBanner = importValue.showDashboardBanner;\r\n }\r\n\r\n if (importValue.applicationName != null) {\r\n this.applicationName = importValue.applicationName;\r\n }\r\n \r\n if (importValue.branchCode != null) {\r\n this.branchCode = importValue.branchCode;\r\n }\r\n if (importValue.loadCache != null) {\r\n this.loadCache = importValue.loadCache;\r\n }\r\n\r\n if (importValue.wappEnabled != null) {\r\n this._wappEnabled = importValue.wappEnabled;\r\n }\r\n\r\n if (importValue.menuExpanded != null) {\r\n this.menuExpanded = importValue.menuExpanded;\r\n }\r\n }\r\n\r\n this.onConfigurationImported.next();\r\n }\r\n\r\n\r\n public export(changesOnly = true): string {\r\n\r\n const exportValue: UserConfiguration = {\r\n language: changesOnly ? this._language : this.language,\r\n themeId: changesOnly ? this._themeId : this.themeId,\r\n homeUrl: changesOnly ? this._homeUrl : this.homeUrl,\r\n showDashboardStatistics: changesOnly ? this._showDashboardStatistics : this.showDashboardStatistics,\r\n showDashboardNotifications: changesOnly ? this._showDashboardNotifications : this.showDashboardNotifications,\r\n showDashboardTodo: changesOnly ? this._showDashboardTodo : this.showDashboardTodo,\r\n showDashboardBanner: changesOnly ? this._showDashboardBanner : this.showDashboardBanner,\r\n applicationName: changesOnly ? this._applicationName : this.applicationName,\r\n branchCode: changesOnly ? this._branchCode : this.branchCode,\r\n loadCache: changesOnly ? this._loadCache : this.loadCache,\r\n wappEnabled: changesOnly ? this._wappEnabled : this.wappEnabled,\r\n menuExpanded: changesOnly ? this._menuExpanded : this.menuExpanded,\r\n defaultPrinter: changesOnly ? this._defaultPrinter : this.defaultPrinter\r\n };\r\n\r\n return JSON.stringify(exportValue);\r\n }\r\n\r\n\r\n public clearLocalChanges() {\r\n this._language = null;\r\n this._themeId = null;\r\n this._homeUrl = null;\r\n this._showDashboardStatistics = null;\r\n this._showDashboardNotifications = null;\r\n this._showDashboardTodo = null;\r\n this._showDashboardBanner = null;\r\n this._applicationName = null;\r\n this._branchCode = null;\r\n this._loadCache = null;\r\n this._wappEnabled = null;\r\n this._menuExpanded = null;\r\n this._defaultPrinter = null;\r\n\r\n this.localStorage.deleteData(DBkeys.LANGUAGE);\r\n this.localStorage.deleteData(DBkeys.THEME_ID);\r\n this.localStorage.deleteData(DBkeys.HOME_URL);\r\n this.localStorage.deleteData(DBkeys.SHOW_DASHBOARD_STATISTICS);\r\n this.localStorage.deleteData(DBkeys.SHOW_DASHBOARD_NOTIFICATIONS);\r\n this.localStorage.deleteData(DBkeys.SHOW_DASHBOARD_TODO);\r\n this.localStorage.deleteData(DBkeys.SHOW_DASHBOARD_BANNER);\r\n this.localStorage.deleteData(DBkeys.APPLICATION_NAME);\r\n this.localStorage.deleteData(DBkeys.BRANCH_CODE);\r\n this.localStorage.deleteData(DBkeys.LOAD_CACHE);\r\n this.localStorage.deleteData(DBkeys.WAPP_ENABLED);\r\n this.localStorage.deleteData(DBkeys.MENU_EXPANDED);\r\n this.localStorage.deleteData(DBkeys.DEFAULT_PRINTER);\r\n\r\n this.resetLanguage();\r\n this.resetTheme();\r\n }\r\n\r\n\r\n private resetLanguage() {\r\n const language = this.translationService.useBrowserLanguage();\r\n\r\n if (language) {\r\n this._language = language;\r\n } else {\r\n this._language = this.translationService.useDefaultLangage();\r\n }\r\n }\r\n\r\n private resetTheme() {\r\n this.themeManager.installTheme();\r\n this._themeId = null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DBkeys {\r\n\r\n public static readonly CURRENT_USER = 'current_user';\r\n public static readonly USER_PERMISSIONS = 'user_permissions';\r\n public static readonly ACCESS_TOKEN = 'access_token';\r\n public static readonly REFRESH_TOKEN = 'refresh_token';\r\n public static readonly TOKEN_EXPIRES_IN = 'expires_in';\r\n\r\n public static readonly REMEMBER_ME = 'remember_me';\r\n \r\n public static readonly LANGUAGE = 'language';\r\n public static readonly HOME_URL = 'home_url';\r\n public static readonly LOAD_CACHE = 'load_chache';\r\n public static readonly WAPP_ENABLED = 'wapp_enabled';\r\n public static readonly MENU_EXPANDED = 'menu_expanded';\r\n public static readonly THEME_ID = 'themeId';\r\n public static readonly SHOW_DASHBOARD_STATISTICS = 'show_dashboard_statistics';\r\n public static readonly SHOW_DASHBOARD_NOTIFICATIONS = 'show_dashboard_notifications';\r\n public static readonly SHOW_DASHBOARD_TODO = 'show_dashboard_todo';\r\n public static readonly SHOW_DASHBOARD_BANNER = 'show_dashboard_banner';\r\n\r\n public static readonly APPLICATION_NAME = 'application_name';\r\n public static readonly BRANCH_CODE = 'branch_code';\r\n public static readonly DEFAULT_PRINTER = 'default_printer';\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable, Subject, throwError } from 'rxjs';\r\nimport { mergeMap, switchMap, catchError } from 'rxjs/operators';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\n@Injectable()\r\nexport class EndpointFactory {\r\n static readonly apiVersion: string = '1';\r\n\r\n private readonly _loginUrl: string = '/connect/token';\r\n\r\n private get loginUrl() { return this.configurations.tokenUrl + this._loginUrl; }\r\n\r\n private taskPauser: Subject;\r\n private isRefreshingLogin: boolean;\r\n\r\n private _authService: AuthService;\r\n\r\n private get authService() {\r\n if (!this._authService) {\r\n this._authService = this.injector.get(AuthService);\r\n }\r\n\r\n return this._authService;\r\n }\r\n\r\n constructor(protected http: HttpClient, protected configurations: ConfigurationService, private injector: Injector) { }\r\n\r\n getLoginEndpoint(userName: string, password: string): Observable {\r\n\r\n const header = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n\r\n const params = new HttpParams()\r\n .append('username', userName)\r\n .append('password', password)\r\n .append('client_id', 'quickapp_spa')\r\n .append('grant_type', 'password')\r\n .append('scope', 'openid email phone profile offline_access roles quickapp_api');\r\n\r\n return this.http.post(this.loginUrl, params, { headers: header });\r\n }\r\n\r\n getRefreshLoginEndpoint(): Observable {\r\n const header = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n\r\n const params = new HttpParams()\r\n .append('refresh_token', this.authService.refreshToken)\r\n .append('client_id', 'quickapp_spa')\r\n .append('grant_type', 'refresh_token');\r\n\r\n return this.http.post(this.loginUrl, params, { headers: header }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getRefreshLoginEndpoint());\r\n }));\r\n }\r\n\r\n protected getRequestHeaders(blob?: boolean): { headers: HttpHeaders | { [header: string]: string | string[]; } } {\r\n const headers = new HttpHeaders({\r\n 'Authorization': 'Bearer ' + this.authService.accessToken,\r\n 'Content-Type': 'application/json',\r\n 'Accept': `application/vnd.iman.v${EndpointFactory.apiVersion}+json, application/json, text/plain, application/pdf */*`,\r\n 'App-Version': ConfigurationService.appVersion\r\n });\r\n\r\n return { headers: headers };\r\n }\r\n\r\n\r\n protected getRequestHeadersForExternal(token?: string): { headers: HttpHeaders | { [header: string]: string | string[]; } } {\r\n\r\n const headers = new HttpHeaders({\r\n 'Authorization': 'Bearer ' + token,\r\n 'Content-Type': 'application/json',\r\n 'Accept': `application/vnd.iman.v${EndpointFactory.apiVersion}+json, application/json, text/plain, application/pdf */*`,\r\n 'App-Version': ConfigurationService.appVersion\r\n });\r\n\r\n return { headers: headers };\r\n }\r\n\r\n\r\n protected handleError(error, continuation: () => Observable) {\r\n if (error.status == 401) {\r\n if (this.isRefreshingLogin) {\r\n return this.pauseTask(continuation);\r\n }\r\n\r\n this.isRefreshingLogin = true;\r\n\r\n return this.authService.refreshLogin().pipe(\r\n mergeMap(data => {\r\n this.isRefreshingLogin = false;\r\n this.resumeTasks(true);\r\n\r\n return continuation();\r\n }),\r\n catchError(refreshLoginError => {\r\n this.isRefreshingLogin = false;\r\n this.resumeTasks(false);\r\n\r\n if (refreshLoginError.status == 401 || (refreshLoginError.url && refreshLoginError.url.toLowerCase().includes(this.loginUrl.toLowerCase()))) {\r\n this.authService.reLogin();\r\n return throwError('session expired');\r\n } else {\r\n return throwError(refreshLoginError || 'server error');\r\n }\r\n }));\r\n }\r\n\r\n if (error.url && error.url.toLowerCase().includes(this.loginUrl.toLowerCase())) {\r\n this.authService.reLogin();\r\n\r\n return throwError((error.error && error.error.error_description) ? `session expired (${error.error.error_description})` : 'session expired');\r\n } else {\r\n return throwError(error);\r\n }\r\n }\r\n\r\n private pauseTask(continuation: () => Observable) {\r\n if (!this.taskPauser) {\r\n this.taskPauser = new Subject();\r\n }\r\n\r\n return this.taskPauser.pipe(switchMap(continueOp => {\r\n return continueOp ? continuation() : throwError('session expired');\r\n }));\r\n }\r\n\r\n private resumeTasks(continueOp: boolean) {\r\n setTimeout(() => {\r\n if (this.taskPauser) {\r\n this.taskPauser.next(continueOp);\r\n this.taskPauser.complete();\r\n this.taskPauser = null;\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable, Subject, throwError, from } from 'rxjs';\r\nimport { mergeMap, switchMap, catchError } from 'rxjs/operators';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ExternalHTTPService {\r\n private apiUrl = 'https://fowkes.co.za/api/next-gen/update-category-image.json'; // Target URL\r\n\r\n\r\n constructor(private http: HttpClient) {\r\n\r\n }\r\n\r\n updateCategoryImage(data: any): Observable {\r\n const headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n\r\n return this.http.post(this.apiUrl, data, { headers });\r\n }\r\n\r\n //getTokenEndpoint(): Observable {\r\n\r\n // var dpdURL = \"https://swatws.dawnwing.co.za/dwwebservices/v2/live/api/Token\";\r\n\r\n // const header = new HttpHeaders({ 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*','Access-Control-Allow-Methods': 'POST' });\r\n \r\n\r\n // const body = {\r\n // userName: \"FOWKESBROS\", password: \"FoWK3SBR0S\" };\r\n\r\n\r\n // return this.http.post(dpdURL, [body]);\r\n\r\n //}\r\n\r\n //getData(): Observable {\r\n // const formData = {\r\n // 'userName': 'FOWKESBROS',\r\n // 'password': 'FoWK3SBR0S'\r\n // }\r\n\r\n // return from(\r\n // fetch(\r\n // 'https://swatws.dawnwing.co.za/dwwebservices/v2/live/api/Token', // the url you are trying to access\r\n // {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // },\r\n // method: 'POST', // GET, POST, PUT, DELETE\r\n // mode: 'no-cors', // the most important option\r\n // body: 'userName=FOWKESBROS&password=FoWK3SBR0S'\r\n // }\r\n // ));\r\n //}\r\n\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { Establishment } from '../models/company-establishment.model';\r\nimport { ITSDriver } from '../models/invoice-tracking-driver.model';\r\nimport { TrackingAreas } from '../models/invoice-tracking-areas.model';\r\nimport { ITSDriverCages, ITSDriverCagesDetail } from '../models/invoice-tracking-driver-cages.model';\r\nimport { ITSVehicles } from '../models/invoice-tracking-vehicles.model';\r\nimport { ITSLabelPrinting } from '../models/invoice-tracking-label-printing.model';\r\nimport { ITSParcelTrackingDetailLog } from '../models/invoice-tracking-drivers-log.model';\r\nimport { WarehouseApplicationDefault } from '../models/warehouse-application-settings.model';\r\nimport { WarehouseUserDetails } from '../models/warehouse-user.model';\r\nimport { CoreJCStatus, JobCard, JobCardStatusHistory, JobCardSuppliers } from '../models/job-card.model';\r\nimport { Email } from '../models/email.model';\r\n\r\n\r\n@Injectable()\r\nexport class FowkesOnlineEndpoint extends EndpointFactory {\r\n\r\n private readonly _branchesUrl: string = '/api/Branch/';\r\n private readonly _cartUrl: string = '/api/CartHeaders';\r\n private readonly _cartDetailUrl: string = '/api/CartDetails';\r\n private readonly _newCartUrl: string = '/api/CartHeaders';\r\n private readonly _applicationsUrl: string = '/api/AspnetApplications/GetAllApplications';\r\n private readonly _fowkesUrl: string = '/api/fowkesonline/';\r\n private readonly _trackingUrl: string = '/api/Tracking/';\r\n private readonly _itsUrl: string = '/api/ITS/';\r\n private readonly _fingerprintUrl: string = '/api/fingerprint/';\r\n private readonly _repairsUrl: string = '/api/ToolRepairs/';\r\n\r\n get branchesUrl() { return this.configurations.baseUrl + this._branchesUrl; }\r\n get applicationsUrl() { return this.configurations.baseUrl + this._applicationsUrl; }\r\n get cartUrl() { return this.configurations.baseUrl + this._cartUrl; }\r\n get newCartUrl() { return this.configurations.baseUrl + this._newCartUrl; }\r\n get fowkesUrl() { return this.configurations.baseUrl + this._fowkesUrl; }\r\n get trackingUrl() { return this.configurations.baseUrl + this._trackingUrl; }\r\n get itsUrl() { return this.configurations.baseUrl + this._itsUrl; }\r\n get fingerprintURL() { return this.configurations.baseUrl + this._fingerprintUrl; }\r\n get jobcardUrl() { return this.configurations.baseUrl + this._repairsUrl; }\r\n\r\n\r\n constructor(http: HttpClient, configurations: ConfigurationService, injector: Injector) {\r\n\r\n super(http, configurations, injector);\r\n }\r\n\r\n getBranchesEndpoint(): Observable {\r\n const endpointUrl = `${this.branchesUrl}GetAllBranches`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBranchesEndpoint());\r\n }));\r\n }\r\n\r\n\r\n verifyPasswordEndpoint(branch: string, type: string, stringToCompare: string): Observable {\r\n const endpointUrl = `${this.branchesUrl}VerifyPassword/${branch}/${type}/${stringToCompare}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.verifyPasswordEndpoint(branch, type, stringToCompare));\r\n }));\r\n }\r\n\r\n\r\n getApplicationsEndpoint(): Observable {\r\n const endpointUrl = this.applicationsUrl;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getApplicationsEndpoint());\r\n }));\r\n }\r\n\r\n newOTPDetailEndpoint(otpReferenceDetails: any): Observable {\r\n\r\n return this.http.post(`${this.fowkesUrl}PostOTPDetail`, JSON.stringify(otpReferenceDetails), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.newOTPDetailEndpoint(otpReferenceDetails));\r\n }));\r\n }\r\n\r\n newOTPHeaderEndpoint(otpHeaderDetails: any): Observable {\r\n\r\n return this.http.post(`${this.fowkesUrl}PostOTPHeader`, JSON.stringify(otpHeaderDetails), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.newOTPHeaderEndpoint(otpHeaderDetails));\r\n }));\r\n }\r\n\r\n RemoveOTPCustomerEndpoint(otpHeaderDetails: any): Observable {\r\n\r\n return this.http.post(`${this.fowkesUrl}RemoveOTPCustomer`, JSON.stringify(otpHeaderDetails), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.RemoveOTPCustomerEndpoint(otpHeaderDetails));\r\n }));\r\n }\r\n\r\n UpdateOTPCustomerEndpoint(otpHeaderDetails: any): Observable {\r\n\r\n return this.http.put(`${this.fowkesUrl}UpdateOTPCustomerStatus`, JSON.stringify(otpHeaderDetails), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.UpdateOTPCustomerEndpoint(otpHeaderDetails));\r\n }));\r\n }\r\n\r\n getOTPDetailsEndpoint(otp: string): Observable {\r\n const endpointUrl = `${this.fowkesUrl}GetDocsForOTP/${encodeURIComponent(otp)}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getOTPDetailsEndpoint(otp));\r\n }));\r\n }\r\n\r\n getCustomerPaymentsEndpoint(startDate?: string, endDate?: string, customer?: string): Observable {\r\n const endpointUrl = `${this.fowkesUrl}GetCustomerPayments/${startDate}/${endDate}/${customer}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerPaymentsEndpoint(startDate, endDate, customer));\r\n }));\r\n }\r\n\r\n getCustomerDetailEndpoint(customerId?: string): Observable {\r\n const endpointUrl = `${this.fowkesUrl}GetCustDetails/${customerId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerDetailEndpoint(customerId));\r\n }));\r\n }\r\n\r\n getNewCartEndpoint(cartObject: any): Observable {\r\n\r\n return this.http.post(this.newCartUrl, JSON.stringify(cartObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewCartEndpoint(cartObject));\r\n }));\r\n }\r\n\r\n getCartDetailEndpoint(cartObject: any, cartId?: string): Observable {\r\n if (cartId) {\r\n const endpointUrl = cartId ? `${this._cartDetailUrl}/${cartId}` : this._cartDetailUrl;\r\n return this.http.put(endpointUrl, JSON.stringify(cartObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCartDetailEndpoint(cartObject, cartId));\r\n }));\r\n }\r\n else {\r\n return this.http.post(this._cartDetailUrl, JSON.stringify(cartObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCartDetailEndpoint(cartObject));\r\n }));\r\n }\r\n }\r\n\r\n getCartHeaderEndpoint(cartId: string): Observable {\r\n const endpointUrl = `${this.cartUrl}/${cartId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCartHeaderEndpoint(cartId));\r\n }));\r\n }\r\n\r\n getCartDetailDeleteEndpoint(cartId: string, cartLineNumber?: number): Observable {\r\n const endpointUrl = `${this._cartDetailUrl}/${cartId}/${cartLineNumber}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCartDetailDeleteEndpoint(cartId, cartLineNumber));\r\n }));\r\n }\r\n\r\n getAllEstablishmentDetailsEndpoint(): Observable {\r\n const endpointUrl = `${this.branchesUrl}GetAllEstablishmentDetails`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllEstablishmentDetailsEndpoint());\r\n }));\r\n }\r\n\r\n editEstablishmentEndpoint(establishment: Establishment, id: number) {\r\n const endpointUrl = `${this.branchesUrl}EditEstablishment/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(establishment), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.editEstablishmentEndpoint(establishment, id));\r\n }));\r\n }\r\n\r\n newEstablishmentEndpoint(establishment: Establishment) {\r\n const endpointUrl = `${this.branchesUrl}NewEstablishment`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(establishment), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.newEstablishmentEndpoint(establishment));\r\n }));\r\n }\r\n\r\n deleteEstablishmentEndpoint(id: number) {\r\n const endpointUrl = `${this.branchesUrl}DeleteEstablishment/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteEstablishmentEndpoint(id));\r\n }));\r\n }\r\n\r\n //NEXT GEN ITS ENDPOINTS\r\n getITSInstallerEndpoint() {\r\n const endpointUrl = `${this.itsUrl}GetITSInstaller`;\r\n\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSInstallerEndpoint());\r\n }));\r\n }\r\n \r\n //Replacing with ITSController\r\n getAllDriversEndpoint() {\r\n const endpointUrl = `${this.itsUrl}GetAllITSDrivers`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllDriversEndpoint());\r\n })\r\n );\r\n }\r\n\r\n\r\n //Adding from ITSController\r\n getDriverDetailsEndpoint(id: number) {\r\n const endpointUrl = `${this.itsUrl}GetITSDriverDetails/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDriverDetailsEndpoint(id));\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n addNewDriverEndpoint(driver: ITSDriver) {\r\n const endpointUrl = `${this.itsUrl}CreateITSDriver`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(driver), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addNewDriverEndpoint(driver));\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n updateDriverEndpoint(id: number, driver: ITSDriver) {\r\n const endpointUrl = `${this.itsUrl}UpdateITSDriver/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(driver), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateDriverEndpoint(id, driver));\r\n })\r\n );\r\n }\r\n //Replacing with ITSController\r\n deleteDriverEndpoint(id: number) {\r\n const endpointUrl = `${this.itsUrl}DeleteITSDriver/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteDriverEndpoint(id));\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n getAllVehiclesEndpoint() {\r\n const endpointUrl = `${this.itsUrl}GetAllITSVehicles`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllVehiclesEndpoint());\r\n })\r\n );\r\n }\r\n\r\n //Adding from ITSController\r\n getITSVehicleDetailsEndpoint(id: number) {\r\n const endpointUrl = `${this.itsUrl}GetITSVehicleDetails/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSVehicleDetailsEndpoint(id));\r\n })\r\n );\r\n }\r\n //Replacing with ITSController\r\n addNewVehicleEndpoint(vehicle: ITSVehicles) {\r\n const endpointUrl = `${this.itsUrl}CreateITSVehicle`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(vehicle), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addNewVehicleEndpoint(vehicle));\r\n })\r\n );\r\n }\r\n //Replacing with ITSController\r\n updateVehicleEndpoint(id: number, vehicle: ITSVehicles) {\r\n const endpointUrl = `${this.itsUrl}UpdateITSVehicle/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(vehicle), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateVehicleEndpoint(id, vehicle));\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n deleteVehicleEndpoint(id: number) {\r\n const endpointUrl = `${this.itsUrl}DeleteITSVehicle/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteVehicleEndpoint(id));\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n getAllDriverCagesEndpoint() {\r\n const endpointUrl = `${this.itsUrl}GetAllITSDriverCages`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllDriverCagesEndpoint());\r\n })\r\n );\r\n }\r\n\r\n //Adding from ITSController\r\n getAllDriverCagesDetailEndpoint() {\r\n const endpointUrl = `${this.itsUrl}GetAllITSDriverCagesDetail`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllDriverCagesDetailEndpoint());\r\n })\r\n );\r\n }\r\n\r\n //Adding from ITSController\r\n getITSDriverCageDetailEndpoint(id: number) {\r\n const endpointUrl = `${this.itsUrl}GetITSDriverCageDetail/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSDriverCageDetailEndpoint(id));\r\n })\r\n );\r\n }\r\n\r\n addNewDriverCageEndpoint(driverCageDto: any) {\r\n const endpointUrl = `${this.itsUrl}CreateITSDriverCage`; \r\n\r\n return this.http.post(endpointUrl, JSON.stringify(driverCageDto), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addNewDriverCageEndpoint(driverCageDto));\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n updateDriverCageEndpoint(id: number, driverCage: ITSDriverCages) {\r\n const endpointUrl = `${this.itsUrl}UpdateITSDriverCage/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(driverCage), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateDriverCageEndpoint(id, driverCage));\r\n })\r\n );\r\n }\r\n\r\n //Adding from ITSController\r\n addNewDriverCageDetailEndpoint(driverCageDetail: ITSDriverCagesDetail) {\r\n const endpointUrl = `${this.itsUrl}AddNewITSDriverCagesDetail`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(driverCageDetail), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addNewDriverCageDetailEndpoint(driverCageDetail));\r\n })\r\n );\r\n }\r\n\r\n\r\n //updateDriverCageDetailEndpoint(id: number, driverCageDetail: ITSDriverCagesDetail): Observable {\r\n // const endpointUrl = `${this.trackingUrl}PutITSDriverCagesDetail/${id}`;\r\n\r\n // return this.http.put(endpointUrl, driverCageDetail).pipe(\r\n // catchError(error => {\r\n // return this.handleError(error, () => this.updateDriverCageDetailEndpoint(id, driverCageDetail));\r\n // })\r\n // );\r\n //}\r\n\r\n //Replacing with ITSController\r\n deleteDriverCageEndpoint(id: number) {\r\n const endpointUrl = `${this.itsUrl}DeleteITSDriverCage/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteDriverCageEndpoint(id));\r\n })\r\n );\r\n }\r\n //Replacing with ITSController\r\n deleteDriverCageDetailEndpoint(id: number): Observable {\r\n const endpointUrl = `${this.itsUrl}DeleteITSDriverCagesDetail/${id}`;\r\n\r\n return this.http.delete(endpointUrl).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteDriverCageDetailEndpoint(id));\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n getAllTrackingAreasEndpoint() {\r\n const endpointUrl = `${this.itsUrl}GetAllITSTrackingAreas`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllTrackingAreasEndpoint());\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n addNewTrackingAreaEndpoint(area: TrackingAreas) {\r\n const endpointUrl = `${this.itsUrl}CreateITSTrackingArea`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(area), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addNewTrackingAreaEndpoint(area));\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n updateTrackingAreaEndpoint(id: number, area: TrackingAreas) {\r\n const endpointUrl = `${this.itsUrl}UpdateITSTrackingArea/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(area), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateTrackingAreaEndpoint(id, area));\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n deleteTrackingAreaEndpoint(id: number) {\r\n const endpointUrl = `${this.itsUrl}DeleteITSTrackingArea/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteTrackingAreaEndpoint(id));\r\n })\r\n );\r\n }\r\n\r\n //Replacing with ITSController\r\n getPrintingByDateEndpoint(startDate?: string, endDate?: string) {\r\n const endpointUrl = `${this.itsUrl}GetAllITSParcelPrintingRecordsByDate/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPrintingByDateEndpoint(startDate, endDate));\r\n })\r\n );\r\n }\r\n\r\n //getAllPrintingEndpoint() {\r\n // const endpointUrl = `${this.trackingUrl}printing`;\r\n\r\n // return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n // catchError(error => {\r\n // return this.handleError(error, () => this.getAllPrintingEndpoint());\r\n // })\r\n // );\r\n //}\r\n\r\n //Added to its controller - add new label\r\n //[HttpPost(\"PostNewLabelForPrinting/{invoiceNumber}/{Operator}/{SalesOrder}/{NumberOfLabels}\")]\r\n printAdditionalLabelsEndpoint(invoiceNumber: string, Operator: string, SalesOrder: string, numberOfLabels: number) {\r\n const endpointUrl = `${this.itsUrl}PostNewLabelForPrinting/${invoiceNumber}/${Operator}/${SalesOrder}/${numberOfLabels}`;\r\n\r\n return this.http.post(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.printAdditionalLabelsEndpoint(invoiceNumber, Operator, SalesOrder, numberOfLabels));\r\n })\r\n );\r\n }\r\n\r\n //Updated from ITS Controller - reprint existing label\r\n initiatelabelprintingEndpoint(id: number, numberOfLabels: number) {\r\n const endpointUrl = `${this.itsUrl}ITSReprintLabel/${id}/${numberOfLabels}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.initiatelabelprintingEndpoint(id, numberOfLabels));\r\n })\r\n );\r\n }\r\n\r\n //Updated from ITS Controller - modify existing label\r\n updatePrintingEndpoint(id: number, printing: ITSLabelPrinting) {\r\n const endpointUrl = `${this.itsUrl}UpdateITSPrintingRecord/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(printing), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updatePrintingEndpoint(id, printing));\r\n })\r\n );\r\n }\r\n\r\n //Print directly to Zebra - Added to ITS COntroller\r\n printBarcodeLabelDirectEndpoint(InvoiceNumber: string, Operator: string, SalesOrder: string, NoOfLabels: number, selectedPrinter: string) {\r\n const endpointUrl = `${this.itsUrl}PrintBarcodeLabelDirect/${InvoiceNumber}/${Operator}/${SalesOrder}/${NoOfLabels}/${selectedPrinter}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.printBarcodeLabelDirectEndpoint(InvoiceNumber, Operator, SalesOrder, NoOfLabels, selectedPrinter));\r\n })\r\n );\r\n }\r\n\r\n //Replace with direct print\r\n //getITSLabelPDFEndpoint(salesOrder?: string, invoice?: string, application?: string): Observable {\r\n // const endpointUrl = `${this.trackingUrl}GetITSLabelPDF/${encodeURIComponent(salesOrder)}/${invoice}/${application}`;\r\n\r\n // return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n // catchError(error => {\r\n // return this.handleError(error, () => this.getITSLabelPDFEndpoint(salesOrder, invoice, application));\r\n // }));\r\n //}\r\n\r\n //Moved to ITS Controller\r\n getPrintCardPDFEndpoint(cardType?: string, id?: string, application?: string): Observable {\r\n const endpointUrl = `${this.itsUrl}PrintCard/${encodeURIComponent(cardType)}/${id}/${application}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPrintCardPDFEndpoint(cardType, id, application));\r\n }));\r\n\r\n }\r\n //Seperate log book print to pass in sort order\r\n getPrintLogBookPDFEndpoint(cardType?: string, id?: string, sortOrder?: string): Observable {\r\n\r\n const endpointUrl = `${this.itsUrl}PrintLogBook/${cardType}/${id}/${encodeURIComponent(sortOrder)}`\r\n \r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPrintLogBookPDFEndpoint(cardType, id, sortOrder));\r\n }));\r\n }\r\n\r\n\r\n getITSDriversReportEndpoint(startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this.itsUrl}GetDriversReport/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSDriversReportEndpoint(startDate, endDate));\r\n }));\r\n }\r\n\r\n getITSDriversLogEndpoint( startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this.itsUrl}GetAllDriversLog/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSDriversLogEndpoint( startDate, endDate));\r\n }));\r\n }\r\n\r\n\r\n getITSParcelTrackingDetailEndpoint(startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this.itsUrl}GetParcelTrackingDetails/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSParcelTrackingDetailEndpoint(startDate, endDate));\r\n }));\r\n }\r\n\r\n getITSParcelTrackingDetailListForHeaderIdEndpoint(id?: number): Observable {\r\n const endpointUrl = `${this.itsUrl}GetITSTrackingDetailListForHeaderId/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSParcelTrackingDetailListForHeaderIdEndpoint(id));\r\n }));\r\n }\r\n\r\n\r\n getITSDeliveryDetailsEndpoint(invoiceNumber?: string): Observable {\r\n const endpointUrl = `${this.itsUrl}GetITSDeliverDetails/${invoiceNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSDeliveryDetailsEndpoint(invoiceNumber));\r\n }));\r\n }\r\n\r\n\r\n\r\n getITSDeliveryDetailsAdditionalEndpoint(id?: number): Observable {\r\n const endpointUrl = `${this.itsUrl}GetITSDeliverDetailsAdditional/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSDeliveryDetailsAdditionalEndpoint(id));\r\n }));\r\n }\r\n\r\n updateparcelsEndpoint(id: number, totalParcels: number): Observable {\r\n const endpointUrl = `${this.itsUrl}Updateparcels/${id}/${totalParcels}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateparcelsEndpoint(id, totalParcels));\r\n })\r\n );\r\n }\r\n\r\n updateDespatchParcelsEndpoint(id: number, details: ITSParcelTrackingDetailLog): Observable {\r\n const endpointUrl = `${this.itsUrl}UpdateDespatchedParcels/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(details), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateDespatchParcelsEndpoint(id, details));\r\n })\r\n );\r\n }\r\n\r\n\r\n updateparcelsUndeliveredEndpoint(id: number, totalParcels: number, reason: string, user: string): Observable {\r\n const endpointUrl = `${this.itsUrl}UpdateParcelsUndelivered/${id}/${totalParcels}/${reason}/${user}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateparcelsUndeliveredEndpoint(id, totalParcels, reason, user));\r\n })\r\n );\r\n }\r\n\r\n //Need the ability to re-trigger printing services from Next Gen\r\n\r\n RefireLabelPrintingQueueEndpoint(): Observable {\r\n const endpointUrl = `${this.itsUrl}RefireLabelPrintingQueue`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.RefireLabelPrintingQueueEndpoint());\r\n })\r\n );\r\n }\r\n\r\n RefireLogPrintingQueueEndpoint(): Observable {\r\n const endpointUrl = `${this.itsUrl}RefireLogPrintingQueue`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.RefireLogPrintingQueueEndpoint());\r\n })\r\n );\r\n }\r\n\r\n scanFingerprintEndpoint(): Observable {\r\n const endpointUrl = `${this.fingerprintURL}scan`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.scanFingerprintEndpoint());\r\n })\r\n );\r\n }\r\n\r\n\r\n enrollEndpoint(fingerprintData: any): Observable {\r\n const endpointUrl = `${this.fingerprintURL}enroll`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(fingerprintData), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.enrollEndpoint(fingerprintData));\r\n })\r\n );\r\n }\r\n\r\n verifyEndpoint(fingerprintData: any): Observable {\r\n const endpointUrl = `${this.fingerprintURL}verify`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(fingerprintData), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.verifyEndpoint(fingerprintData));\r\n })\r\n );\r\n }\r\n\r\n\r\n getITSWarehouseDefaultsEndpoint(): Observable {\r\n const endpointUrl = `${this.itsUrl}GetITSWarehouseDefaults`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSWarehouseDefaultsEndpoint());\r\n })\r\n );\r\n }\r\n\r\n updateITSWarehouseDefaultsEndpoint(defaultSetting: WarehouseApplicationDefault): Observable {\r\n const endpointUrl = `${this.itsUrl}UpdateITSWarehouseDefaults/${defaultSetting.id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(defaultSetting), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateITSWarehouseDefaultsEndpoint(defaultSetting));\r\n })\r\n );\r\n }\r\n\r\n getITSWarehouseUsersEndpoint(): Observable {\r\n const endpointUrl = `${this.itsUrl}GetITSWarehouseUsers`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getITSWarehouseUsersEndpoint());\r\n })\r\n );\r\n }\r\n\r\n updateITSWarehouseUserEndpoint(user: WarehouseUserDetails): Observable {\r\n const endpointUrl = `${this.itsUrl}UpdateITSWarehouseUser`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(user), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateITSWarehouseUserEndpoint(user));\r\n })\r\n );\r\n }\r\n\r\n\r\n deleteITSWarehouseUserEndpoint(user: WarehouseUserDetails, archive: boolean): Observable {\r\n const endpointUrl = `${this.itsUrl}DeleteITSWarehouseUser/${user.userID}?archive=${archive}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteITSWarehouseUserEndpoint(user, archive));\r\n })\r\n );\r\n }\r\n\r\n // Endpoint for Job Cards\r\n getJobCardsEndpoint(): Observable {\r\n const endpointUrl = `${this.jobcardUrl}GetAllJobCards`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getJobCardsEndpoint());\r\n })\r\n );\r\n }\r\n\r\n getJobCardByIdEndpoint(jobCardId: number): Observable {\r\n const endpointUrl = `${this.jobcardUrl}GetJobCardById/${jobCardId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getJobCardByIdEndpoint(jobCardId));\r\n })\r\n );\r\n }\r\n\r\n createJobCardEndpoint(jobCard: JobCard): Observable {\r\n const endpointUrl = `${this.jobcardUrl}CreateJobCard`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(jobCard), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.createJobCardEndpoint(jobCard));\r\n })\r\n );\r\n }\r\n\r\n\r\n // Save the job card status history\r\n saveJobCardStatusHistoryEndpoint(statusHistory: JobCardStatusHistory): Observable {\r\n const endpointUrl = `${this.jobcardUrl}saveStatusHistory`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(statusHistory), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.saveJobCardStatusHistoryEndpoint(statusHistory));\r\n })\r\n );\r\n }\r\n\r\n\r\n // Fetch the status history for a job card\r\n getJobCardStatusHistoryEndpoint(jobCardId: number): Observable {\r\n const endpointUrl = `${this.jobcardUrl}GetJobCardStatusHistory/${jobCardId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getJobCardStatusHistoryEndpoint(jobCardId));\r\n })\r\n );\r\n }\r\n\r\n updateJobCardEndpoint(jobCard: JobCard): Observable {\r\n const endpointUrl = `${this.jobcardUrl}UpdateJobCard/${jobCard.id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(jobCard), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateJobCardEndpoint(jobCard));\r\n })\r\n );\r\n }\r\n\r\n // Endpoint for CoreJCStatus\r\n getJobCardStatusesEndpoint(): Observable {\r\n const endpointUrl = `${this.jobcardUrl}GetJobCardStatuses`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getJobCardStatusesEndpoint());\r\n })\r\n );\r\n }\r\n\r\n createJobCardStatusEndpoint(status: CoreJCStatus): Observable {\r\n const endpointUrl = `${this.jobcardUrl}CreateJobCardStatus`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(status), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.createJobCardStatusEndpoint(status));\r\n })\r\n );\r\n }\r\n\r\n updateJobCardStatusEndpoint(status: CoreJCStatus): Observable {\r\n const endpointUrl = `${this.jobcardUrl}UpdateJobCardStatus/${status.statusId}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(status), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateJobCardStatusEndpoint(status));\r\n })\r\n );\r\n }\r\n\r\n\r\n addJobCardHistoryEndpoint(historyEntry: JobCardStatusHistory): Observable {\r\n const endpointUrl = `${this.jobcardUrl}AddJobCardHistoryEntry`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(historyEntry), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addJobCardHistoryEndpoint(historyEntry));\r\n })\r\n );\r\n }\r\n\r\n //Job Card PDF\r\n getJobCardPDFEndpoint(jobCardNumber?: string): Observable {\r\n\r\n const endpointUrl = `${this.jobcardUrl}JobCardPDF/${jobCardNumber}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getJobCardPDFEndpoint(jobCardNumber));\r\n }));\r\n }\r\n\r\n\r\n //Job Card Customer PDF\r\n getJobCardCustomerPDFEndpoint(jobCardNumber?: string, company?: string, includeSlip?: boolean): Observable {\r\n\r\n const endpointUrl = `${this.jobcardUrl}JobCardCustomerPDF/${jobCardNumber}/${company}/${includeSlip}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getJobCardCustomerPDFEndpoint(jobCardNumber, company, includeSlip));\r\n }));\r\n }\r\n\r\n\r\n //Job Card Supplier PDF\r\n getJobCardSupplierPDFEndpoint(jobCardNumber?: string, company?: string, supplierCode?: string): Observable {\r\n\r\n const endpointUrl = `${this.jobcardUrl}JobCardSupplierPDF/${jobCardNumber}/${company}/${supplierCode}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getJobCardSupplierPDFEndpoint(jobCardNumber, company, supplierCode));\r\n }));\r\n }\r\n\r\n\r\n //Job Card Supplier PDF\r\n getJobCardMasterPDFEndpoint(jobCardNumber?: string, company?: string, quoteNumber?: string): Observable {\r\n\r\n const endpointUrl = `${this.jobcardUrl}JobCardMasterPDF/${jobCardNumber}/${company}/${quoteNumber}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getJobCardMasterPDFEndpoint(jobCardNumber, company, quoteNumber));\r\n }));\r\n }\r\n\r\n // Endpoint for CoreJCPredefinedComments\r\n getJobCardCommentsEndpoint(): Observable {\r\n const endpointUrl = `${this.jobcardUrl}GetPredefinedComments`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getJobCardCommentsEndpoint());\r\n })\r\n );\r\n }\r\n\r\n // Get additional suppliers for a specific job card\r\n getAdditionalSuppliersEndpoint(jobCardId: number): Observable {\r\n const endpointUrl = `${this.jobcardUrl}GetAdditionalSuppliers/${jobCardId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAdditionalSuppliersEndpoint(jobCardId));\r\n })\r\n );\r\n }\r\n\r\n // Add a new additional supplier\r\n addAdditionalSupplierEndpoint(supplier: JobCardSuppliers): Observable {\r\n const endpointUrl = `${this.jobcardUrl}AddAdditionalSupplier`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(supplier), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addAdditionalSupplierEndpoint(supplier));\r\n })\r\n );\r\n }\r\n\r\n // Update an existing additional supplier\r\n updateAdditionalSupplierEndpoint(supplierId: number, supplier: JobCardSuppliers): Observable {\r\n const endpointUrl = `${this.jobcardUrl}UpdateAdditionalSupplier/${supplierId}`;\r\n\r\n return this.http.put(endpointUrl, supplier, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateAdditionalSupplierEndpoint(supplierId, supplier));\r\n })\r\n );\r\n }\r\n\r\n // Delete an additional supplier\r\n deleteAdditionalSupplierEndpoint(supplierId: number): Observable {\r\n const endpointUrl = `${this.jobcardUrl}DeleteAdditionalSupplier/${supplierId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteAdditionalSupplierEndpoint(supplierId));\r\n })\r\n );\r\n }\r\n\r\n sendjobCardEmailEndpoint(emailDetail?: Email): Observable {\r\n const endpointUrl = `${this.jobcardUrl}SendJobCardEmail`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(emailDetail), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.sendjobCardEmailEndpoint(emailDetail));\r\n }));\r\n }\r\n\r\n // Get Email templates\r\n getEmailTemplatesEndpoint(): Observable {\r\n const endpointUrl = `${this.jobcardUrl}GetEmailTemplates`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getEmailTemplatesEndpoint());\r\n })\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { AspnetApplications } from '../models/applications.model';\r\nimport { ArCustomer } from '../models/arcustomer.model';\r\nimport { Branch } from '../models/branch.model';\r\nimport { CartDetail } from '../models/cart-detail.model';\r\nimport { CartHeader } from '../models/cart-header.model';\r\nimport { Establishment } from '../models/company-establishment.model';\r\nimport { CustomerPayments } from '../models/customer-payments.model';\r\nimport { CustomerOTPHeader } from '../models/customerOTPHeader.model';\r\nimport { CustomerOTPReference } from '../models/customerOTPReference.model';\r\nimport { CoreEmailTemplate } from '../models/email-template.model';\r\nimport { Email } from '../models/email.model';\r\nimport { TrackingAreas } from '../models/invoice-tracking-areas.model';\r\nimport { ITSDriverCages, ITSDriverCagesDetail } from '../models/invoice-tracking-driver-cages.model';\r\nimport { ITSDriversReport } from '../models/invoice-tracking-driver-report.model';\r\nimport { ITSDriver } from '../models/invoice-tracking-driver.model';\r\nimport { ITSDriversLog, ITSParcelTrackingDetailLog } from '../models/invoice-tracking-drivers-log.model';\r\nimport { ITSLabelPrinting } from '../models/invoice-tracking-label-printing.model';\r\nimport { ITSVehicles } from '../models/invoice-tracking-vehicles.model';\r\nimport { CoreJCStatus, JobCard, JobCardPredefinedComments, JobCardStatusHistory, JobCardSuppliers } from '../models/job-card.model';\r\nimport { WarehouseApplicationDefault } from '../models/warehouse-application-settings.model';\r\nimport { WarehouseUserDetails } from '../models/warehouse-user.model';\r\nimport { AuthService } from './auth.service';\r\nimport { FowkesOnlineEndpoint } from './fowkes-online-endpoint.service';\r\n\r\n\r\n@Injectable()\r\nexport class FowkesOnlineService {\r\n \r\n constructor(\r\n private authService: AuthService,\r\n private fowkesOnlineEndpoint: FowkesOnlineEndpoint) {\r\n\r\n }\r\n\r\n get currentUser() {\r\n return this.authService.currentUser;\r\n }\r\n\r\n getBranches() {\r\n\r\n return this.fowkesOnlineEndpoint.getBranchesEndpoint();\r\n }\r\n\r\n\r\n VerifyPassword(branch: string, type: string, stringToCompare: string ) {\r\n\r\n return this.fowkesOnlineEndpoint.verifyPasswordEndpoint(branch, type, stringToCompare);\r\n }\r\n\r\n\r\n getApplications() {\r\n\r\n return this.fowkesOnlineEndpoint.getApplicationsEndpoint();\r\n }\r\n\r\n\r\n newCart(cartHeader: CartHeader) {\r\n return this.fowkesOnlineEndpoint.getNewCartEndpoint(cartHeader);\r\n }\r\n\r\n newOTPDetail(otpReferenceDetails: CustomerOTPReference) {\r\n return this.fowkesOnlineEndpoint.newOTPDetailEndpoint(otpReferenceDetails);\r\n }\r\n\r\n\r\n newOTPHeader(otpHeaderDetails: CustomerOTPHeader) {\r\n return this.fowkesOnlineEndpoint.newOTPHeaderEndpoint(otpHeaderDetails);\r\n }\r\n\r\n\r\n RemoveOTPCustomer(otpHeaderDetails: CustomerOTPHeader) {\r\n return this.fowkesOnlineEndpoint.RemoveOTPCustomerEndpoint(otpHeaderDetails);\r\n }\r\n\r\n\r\n UpdateOTPCustomer(otpHeaderDetails: CustomerOTPHeader) {\r\n return this.fowkesOnlineEndpoint.UpdateOTPCustomerEndpoint(otpHeaderDetails);\r\n }\r\n\r\n getOTPDetails(otp: string) {\r\n return this.fowkesOnlineEndpoint.getOTPDetailsEndpoint(otp);\r\n }\r\n\r\n getCustomerPayments(startDate?: string, endDate?: string, customer?: string) {\r\n return this.fowkesOnlineEndpoint.getCustomerPaymentsEndpoint(startDate, endDate, customer);\r\n }\r\n\r\n getCustomerDetail(customerId?: string) {\r\n return this.fowkesOnlineEndpoint.getCustomerDetailEndpoint(customerId);\r\n }\r\n\r\n getCartHeader(cartId: string) {\r\n return this.fowkesOnlineEndpoint.getCartHeaderEndpoint(cartId);\r\n }\r\n\r\n cartDetail(cartDetail: CartDetail, cartId?: string) {\r\n return this.fowkesOnlineEndpoint.getCartDetailEndpoint(cartDetail, cartId);\r\n }\r\n\r\n cartDetailDelete(cartId?: string, cartLineNumber?: number) {\r\n return this.fowkesOnlineEndpoint.getCartDetailDeleteEndpoint(cartId, cartLineNumber);\r\n }\r\n\r\n\r\n getAllEstablishmentDetails() {\r\n return this.fowkesOnlineEndpoint.getAllEstablishmentDetailsEndpoint();\r\n }\r\n\r\n editEstablishment(establishment: Establishment, id: number) {\r\n return this.fowkesOnlineEndpoint.editEstablishmentEndpoint(establishment, id);\r\n }\r\n\r\n newEstablishment(establishment: Establishment) {\r\n return this.fowkesOnlineEndpoint.newEstablishmentEndpoint(establishment);\r\n }\r\n\r\n deleteEstablishment(id: number) {\r\n return this.fowkesOnlineEndpoint.deleteEstablishmentEndpoint(id);\r\n }\r\n\r\n\r\n getITSInstaller() {\r\n return this.fowkesOnlineEndpoint.getITSInstallerEndpoint();\r\n }\r\n\r\n\r\n getAllDrivers() {\r\n return this.fowkesOnlineEndpoint.getAllDriversEndpoint();\r\n }\r\n\r\n addNewDriver(driver: ITSDriver) {\r\n return this.fowkesOnlineEndpoint.addNewDriverEndpoint(driver);\r\n }\r\n\r\n updateDriver(id: number, driver: ITSDriver) {\r\n return this.fowkesOnlineEndpoint.updateDriverEndpoint(id, driver);\r\n }\r\n\r\n deleteDriver(id: number) {\r\n return this.fowkesOnlineEndpoint.deleteDriverEndpoint(id);\r\n }\r\n\r\n getAllVehicles() {\r\n return this.fowkesOnlineEndpoint.getAllVehiclesEndpoint();\r\n }\r\n\r\n addNewVehicle(vehicle: ITSVehicles) {\r\n return this.fowkesOnlineEndpoint.addNewVehicleEndpoint(vehicle);\r\n }\r\n\r\n updateVehicle(id: number, vehicle: ITSVehicles) {\r\n return this.fowkesOnlineEndpoint.updateVehicleEndpoint(id, vehicle);\r\n }\r\n\r\n deleteVehicle(id: number) {\r\n return this.fowkesOnlineEndpoint.deleteVehicleEndpoint(id);\r\n }\r\n\r\n getAllDriverCages() {\r\n return this.fowkesOnlineEndpoint.getAllDriverCagesEndpoint();\r\n }\r\n\r\n addNewDriverCage(driverCageDto: any) {\r\n return this.fowkesOnlineEndpoint.addNewDriverCageEndpoint(driverCageDto);\r\n }\r\n\r\n updateDriverCage(id: number, driverCage: ITSDriverCages) {\r\n return this.fowkesOnlineEndpoint.updateDriverCageEndpoint(id, driverCage);\r\n }\r\n\r\n deleteDriverCage(id: number) {\r\n return this.fowkesOnlineEndpoint.deleteDriverCageEndpoint(id);\r\n }\r\n\r\n getAllTrackingAreas() {\r\n return this.fowkesOnlineEndpoint.getAllTrackingAreasEndpoint();\r\n }\r\n\r\n addNewTrackingArea(area: TrackingAreas) {\r\n return this.fowkesOnlineEndpoint.addNewTrackingAreaEndpoint(area);\r\n }\r\n\r\n updateTrackingArea(id: number, area: TrackingAreas) {\r\n return this.fowkesOnlineEndpoint.updateTrackingAreaEndpoint(id, area);\r\n }\r\n\r\n deleteTrackingArea(id: number) {\r\n return this.fowkesOnlineEndpoint.deleteTrackingAreaEndpoint(id);\r\n }\r\n\r\n //getAllPrinting() {\r\n // return this.fowkesOnlineEndpoint.getAllPrintingEndpoint();\r\n //}\r\n\r\n\r\n getPrintingByDate(startDate?: string, endDate?: string) {\r\n return this.fowkesOnlineEndpoint.getPrintingByDateEndpoint(startDate, endDate);\r\n }\r\n\r\n initiatelabelprinting(id: number, numberOfLabels: number) {\r\n return this.fowkesOnlineEndpoint.initiatelabelprintingEndpoint(id, numberOfLabels);\r\n }\r\n\r\n\r\n updatePrinting(id: number, printing: ITSLabelPrinting) {\r\n return this.fowkesOnlineEndpoint.updatePrintingEndpoint(id, printing);\r\n }\r\n\r\n\r\n //Print directly to Zebra - Added to ITS COntroller\r\n printBarcodeLabelDirect(InvoiceNumber: string, Operator: string, SalesOrder: string, NoOfLabels: number, selectedPrinter: string) {\r\n return this.fowkesOnlineEndpoint.printBarcodeLabelDirectEndpoint(InvoiceNumber, Operator, SalesOrder, NoOfLabels, selectedPrinter);\r\n }\r\n\r\n //deletePrinting(id: number) {\r\n // return this.fowkesOnlineEndpoint.deletePrintingEndpoint(id);\r\n //}\r\n\r\n\r\n //getITSLabelPDF(salesOrder?: string, invoice?: string, application?: string) {\r\n // return this.fowkesOnlineEndpoint.getITSLabelPDFEndpoint(salesOrder, invoice, application);\r\n //}\r\n\r\n getPrintCardPDF(cardType?: string, id?: string, application?: string) {\r\n return this.fowkesOnlineEndpoint.getPrintCardPDFEndpoint(cardType, id, application);\r\n }\r\n\r\n getPrintLogBookPDF(cardType?: string, id?: string, sortOrder?: string) {\r\n return this.fowkesOnlineEndpoint.getPrintLogBookPDFEndpoint(cardType, id, sortOrder);\r\n }\r\n\r\n //getAllTrackingList() {\r\n // return this.fowkesOnlineEndpoint.getAllTrackingListEndpoint();\r\n //}\r\n\r\n //getAllTrackingDetailList() {\r\n // return this.fowkesOnlineEndpoint.getAllTrackingDetailListEndpoint();\r\n //}\r\n getITSDriversReport(startDate?: string, endDate?: string) {\r\n return this.fowkesOnlineEndpoint.getITSDriversReportEndpoint(startDate, endDate);\r\n }\r\n\r\n getITSDriversLog(startDate?: string, endDate?: string) {\r\n return this.fowkesOnlineEndpoint.getITSDriversLogEndpoint(startDate, endDate);\r\n }\r\n getITSParcelTrackingDetail(startDate?: string, endDate?: string) {\r\n return this.fowkesOnlineEndpoint.getITSParcelTrackingDetailEndpoint(startDate, endDate);\r\n }\r\n\r\n\r\n getITSDeliveryDetails(invoiceNumber?: string) {\r\n return this.fowkesOnlineEndpoint.getITSDeliveryDetailsEndpoint(invoiceNumber);\r\n }\r\n\r\n\r\n getITSDeliveryDetailsAdditional(id?: number) {\r\n return this.fowkesOnlineEndpoint.getITSDeliveryDetailsAdditionalEndpoint(id);\r\n }\r\n\r\n\r\n\r\n getITSParcelTrackingDetailListForHeaderId(id?: number) {\r\n return this.fowkesOnlineEndpoint.getITSParcelTrackingDetailListForHeaderIdEndpoint(id);\r\n }\r\n\r\n getAllDriverCagesDetail(): Observable {\r\n return this.fowkesOnlineEndpoint.getAllDriverCagesDetailEndpoint();\r\n }\r\n\r\n addNewDriverCageDetail(driverCageDetail: ITSDriverCagesDetail): Observable {\r\n return this.fowkesOnlineEndpoint.addNewDriverCageDetailEndpoint(driverCageDetail);\r\n }\r\n //updateDriverCageDetail(id: number, driverCageDetail: ITSDriverCagesDetail): Observable {\r\n // return this.fowkesOnlineEndpoint.updateDriverCageDetailEndpoint(id, driverCageDetail);\r\n //}\r\n deleteDriverCageDetail(id: number): Observable {\r\n return this.fowkesOnlineEndpoint.deleteDriverCageDetailEndpoint(id);\r\n }\r\n\r\n updateparcels(id: number, numberOfLabels: number) {\r\n return this.fowkesOnlineEndpoint.updateparcelsEndpoint(id, numberOfLabels);\r\n }\r\n\r\n updateparcelsUndelivered(id: number, numberOfLabels: number, reason: string, user: string) {\r\n return this.fowkesOnlineEndpoint.updateparcelsUndeliveredEndpoint(id, numberOfLabels, reason, user);\r\n }\r\n\r\n\r\n updateDespatchParcels(id: number, details: ITSParcelTrackingDetailLog) {\r\n return this.fowkesOnlineEndpoint.updateDespatchParcelsEndpoint(id, details);\r\n }\r\n\r\n\r\n printAdditionalLabels(invoiceNumber: string, Operator: string, SalesOrder: string, numberOfLabels: number) {\r\n return this.fowkesOnlineEndpoint.printAdditionalLabelsEndpoint(invoiceNumber, Operator, SalesOrder, numberOfLabels);\r\n }\r\n\r\n\r\n RefireLabelPrintingQueue() {\r\n return this.fowkesOnlineEndpoint.RefireLabelPrintingQueueEndpoint();\r\n }\r\n\r\n\r\n RefireLogPrintingQueue() {\r\n return this.fowkesOnlineEndpoint.RefireLogPrintingQueueEndpoint();\r\n }\r\n\r\n\r\n scanFingerprint() {\r\n return this.fowkesOnlineEndpoint.scanFingerprintEndpoint();\r\n }\r\n\r\n\r\n enroll(fingerprintData: any) {\r\n return this.fowkesOnlineEndpoint.enrollEndpoint(fingerprintData);\r\n }\r\n\r\n\r\n verify(fingerprintData: any) {\r\n return this.fowkesOnlineEndpoint.verifyEndpoint(fingerprintData);\r\n }\r\n\r\n getITSWarehouseDefaults(): Observable {\r\n return this.fowkesOnlineEndpoint.getITSWarehouseDefaultsEndpoint();\r\n }\r\n\r\n updateITSWarehouseDefaults(defaultSetting: WarehouseApplicationDefault): Observable {\r\n return this.fowkesOnlineEndpoint.updateITSWarehouseDefaultsEndpoint(defaultSetting);\r\n }\r\n\r\n getITSWarehouseUsers(): Observable {\r\n return this.fowkesOnlineEndpoint.getITSWarehouseUsersEndpoint();\r\n }\r\n\r\n updateITSWarehouseUser(user: WarehouseUserDetails): Observable {\r\n return this.fowkesOnlineEndpoint.updateITSWarehouseUserEndpoint(user);\r\n }\r\n\r\n\r\n deleteITSWarehouseUser(user: WarehouseUserDetails, archive: boolean): Observable {\r\n return this.fowkesOnlineEndpoint.deleteITSWarehouseUserEndpoint(user, archive);\r\n }\r\n\r\n\r\n // JobCard Methods\r\n getJobCards(): Observable {\r\n return this.fowkesOnlineEndpoint.getJobCardsEndpoint();\r\n }\r\n\r\n getJobCardById(jobCardId: number): Observable {\r\n return this.fowkesOnlineEndpoint.getJobCardByIdEndpoint(jobCardId);\r\n }\r\n\r\n createJobCard(jobCard: JobCard): Observable {\r\n return this.fowkesOnlineEndpoint.createJobCardEndpoint(jobCard);\r\n }\r\n\r\n // Fetch the status history for a job card\r\n getJobCardStatusHistory(jobCardId: number): Observable {\r\n return this.fowkesOnlineEndpoint.getJobCardStatusHistoryEndpoint(jobCardId);\r\n }\r\n\r\n // Save the job card status history\r\n saveJobCardStatusHistory(statusHistory: JobCardStatusHistory): Observable {\r\n return this.fowkesOnlineEndpoint.saveJobCardStatusHistoryEndpoint(statusHistory);\r\n }\r\n\r\n\r\n\r\n updateJobCard(jobCard: JobCard): Observable {\r\n return this.fowkesOnlineEndpoint.updateJobCardEndpoint(jobCard);\r\n }\r\n\r\n // CoreJCStatus Methods\r\n getJobCardStatuses(): Observable {\r\n return this.fowkesOnlineEndpoint.getJobCardStatusesEndpoint();\r\n }\r\n\r\n createJobCardStatus(status: CoreJCStatus): Observable {\r\n return this.fowkesOnlineEndpoint.createJobCardStatusEndpoint(status);\r\n }\r\n\r\n updateJobCardStatus(status: CoreJCStatus): Observable {\r\n return this.fowkesOnlineEndpoint.updateJobCardStatusEndpoint(status);\r\n }\r\n\r\n\r\n addJobCardHistory(historyEntry: JobCardStatusHistory): Observable {\r\n return this.fowkesOnlineEndpoint.addJobCardHistoryEndpoint(historyEntry);\r\n }\r\n\r\n getJobCardPDF(jobCardNumber?: string) {\r\n return this.fowkesOnlineEndpoint.getJobCardPDFEndpoint(jobCardNumber);\r\n }\r\n\r\n getJobCardCustomerPDF(jobCardNumber?: string, company?: string, includeSlip?: boolean) {\r\n return this.fowkesOnlineEndpoint.getJobCardCustomerPDFEndpoint(jobCardNumber, company, includeSlip);\r\n }\r\n\r\n\r\n getJobCardSupplierPDF(jobCardNumber?: string, company?: string, supplierCode?: string) {\r\n return this.fowkesOnlineEndpoint.getJobCardSupplierPDFEndpoint(jobCardNumber, company, supplierCode);\r\n }\r\n\r\n\r\n getJobCardMasterPDF(jobCardNumber?: string, company?: string, quoteNumber?: string) {\r\n return this.fowkesOnlineEndpoint.getJobCardMasterPDFEndpoint(jobCardNumber, company, quoteNumber);\r\n }\r\n\r\n // PredefinedComments Methods\r\n getJobCardComments(): Observable {\r\n return this.fowkesOnlineEndpoint.getJobCardCommentsEndpoint();\r\n }\r\n\r\n\r\n // Get additional suppliers for a specific job card\r\n getAdditionalSuppliers(jobCardId: number): Observable {\r\n return this.fowkesOnlineEndpoint.getAdditionalSuppliersEndpoint(jobCardId);\r\n }\r\n\r\n\r\n // Get additional suppliers for a specific job card\r\n addAdditionalSupplier(supplier: JobCardSuppliers) {\r\n return this.fowkesOnlineEndpoint.addAdditionalSupplierEndpoint(supplier);\r\n }\r\n\r\n\r\n // Get additional suppliers for a specific job card\r\n updateAdditionalSupplier(supplierId: number, supplier: JobCardSuppliers){\r\n return this.fowkesOnlineEndpoint.updateAdditionalSupplierEndpoint(supplierId, supplier);\r\n }\r\n\r\n\r\n // Get additional suppliers for a specific job card\r\n deleteAdditionalSupplier(supplierId: number) {\r\n return this.fowkesOnlineEndpoint.deleteAdditionalSupplierEndpoint(supplierId);\r\n }\r\n\r\n\r\n sendjobCardEmail(emailDetail?: Email) {\r\n return this.fowkesOnlineEndpoint.sendjobCardEmailEndpoint(emailDetail);\r\n }\r\n\r\n\r\n getEmailTemplates() {\r\n return this.fowkesOnlineEndpoint.getEmailTemplatesEndpoint();\r\n }\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\n/**\r\n * Helper class to decode and find JWT expiration.\r\n */\r\nimport { Injectable } from '@angular/core';\r\n\r\n\r\n@Injectable()\r\nexport class JwtHelper {\r\n\r\n public urlBase64Decode(str: string): string {\r\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n switch (output.length % 4) {\r\n case 0: { break; }\r\n case 2: { output += '=='; break; }\r\n case 3: { output += '='; break; }\r\n default: {\r\n throw new Error('Illegal base64url string!');\r\n }\r\n }\r\n return this.b64DecodeUnicode(output);\r\n }\r\n\r\n // https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\r\n private b64DecodeUnicode(str: any) {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c: any) => {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n }\r\n\r\n public decodeToken(token: string): any {\r\n const parts = token.split('.');\r\n\r\n if (parts.length !== 3) {\r\n throw new Error('JWT must have 3 parts');\r\n }\r\n\r\n const decoded = this.urlBase64Decode(parts[1]);\r\n if (!decoded) {\r\n throw new Error('Cannot decode the token');\r\n }\r\n\r\n return JSON.parse(decoded);\r\n }\r\n\r\n public getTokenExpirationDate(token: string): Date {\r\n let decoded: any;\r\n decoded = this.decodeToken(token);\r\n\r\n if (!decoded.hasOwnProperty('exp')) {\r\n return null;\r\n }\r\n\r\n const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(decoded.exp);\r\n\r\n return date;\r\n }\r\n\r\n public isTokenExpired(token: string, offsetSeconds?: number): boolean {\r\n const date = this.getTokenExpirationDate(token);\r\n offsetSeconds = offsetSeconds || 0;\r\n\r\n if (date == null) {\r\n return false;\r\n }\r\n\r\n // Token expired?\r\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { Utilities } from './utilities';\r\n\r\n@Injectable()\r\n/**\r\n* Provides a wrapper for accessing the web storage API and synchronizing session storage across tabs/windows.\r\n*/\r\nexport class LocalStoreManager {\r\n private static syncListenerInitialised = false;\r\n\r\n public static readonly DBKEY_USER_DATA = 'user_data';\r\n private static readonly DBKEY_SYNC_KEYS = 'sync_keys';\r\n private syncKeys: string[] = [];\r\n private initEvent = new Subject();\r\n\r\n private reservedKeys: string[] =\r\n [\r\n 'sync_keys',\r\n 'addToSyncKeys',\r\n 'removeFromSyncKeys',\r\n 'getSessionStorage',\r\n 'setSessionStorage',\r\n 'addToSessionStorage',\r\n 'removeFromSessionStorage',\r\n 'clearAllSessionsStorage'\r\n ];\r\n\r\n\r\n public initialiseStorageSyncListener() {\r\n if (LocalStoreManager.syncListenerInitialised == true) {\r\n return;\r\n }\r\n\r\n LocalStoreManager.syncListenerInitialised = true;\r\n window.addEventListener('storage', this.sessionStorageTransferHandler, false);\r\n this.syncSessionStorage();\r\n }\r\n\r\n public deinitialiseStorageSyncListener() {\r\n window.removeEventListener('storage', this.sessionStorageTransferHandler, false);\r\n LocalStoreManager.syncListenerInitialised = false;\r\n }\r\n\r\n public clearAllStorage() {\r\n this.clearAllSessionsStorage();\r\n this.clearLocalStorage();\r\n }\r\n\r\n public clearAllSessionsStorage() {\r\n this.clearInstanceSessionStorage();\r\n localStorage.removeItem(LocalStoreManager.DBKEY_SYNC_KEYS);\r\n\r\n localStorage.setItem('clearAllSessionsStorage', '_dummy');\r\n localStorage.removeItem('clearAllSessionsStorage');\r\n }\r\n\r\n public clearInstanceSessionStorage() {\r\n sessionStorage.clear();\r\n this.syncKeys = [];\r\n }\r\n\r\n public clearLocalStorage() {\r\n localStorage.clear();\r\n }\r\n\r\n public saveSessionData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n\r\n this.removeFromSyncKeys(key);\r\n localStorage.removeItem(key);\r\n this.sessionStorageSetItem(key, data);\r\n }\r\n\r\n public saveSyncedSessionData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n\r\n localStorage.removeItem(key);\r\n this.addToSessionStorage(data, key);\r\n }\r\n\r\n public savePermanentData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n\r\n this.removeFromSessionStorage(key);\r\n this.localStorageSetItem(key, data);\r\n }\r\n\r\n public moveDataToSessionStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n\r\n const data = this.getData(key);\r\n\r\n if (data == null) {\r\n return;\r\n }\r\n\r\n this.saveSessionData(data, key);\r\n }\r\n\r\n public moveDataToSyncedSessionStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n\r\n const data = this.getData(key);\r\n\r\n if (data == null) {\r\n return;\r\n }\r\n\r\n this.saveSyncedSessionData(data, key);\r\n }\r\n\r\n public moveDataToPermanentStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n\r\n const data = this.getData(key);\r\n\r\n if (data == null) {\r\n return;\r\n }\r\n\r\n this.savePermanentData(data, key);\r\n }\r\n\r\n public exists(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n let data = sessionStorage.getItem(key);\r\n\r\n if (data == null) {\r\n data = localStorage.getItem(key);\r\n }\r\n\r\n return data != null;\r\n }\r\n\r\n public getData(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n\r\n let data = this.sessionStorageGetItem(key);\r\n\r\n if (data == null) {\r\n data = this.localStorageGetItem(key);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n public getDataObject(key = LocalStoreManager.DBKEY_USER_DATA, isDateType = false): T {\r\n let data = this.getData(key);\r\n\r\n if (data != null) {\r\n if (isDateType) {\r\n data = new Date(data);\r\n }\r\n return data;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public deleteData(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n\r\n this.removeFromSessionStorage(key);\r\n localStorage.removeItem(key);\r\n }\r\n\r\n public getInitEvent(): Observable<{}> {\r\n return this.initEvent.asObservable();\r\n }\r\n\r\n private sessionStorageTransferHandler = (event: StorageEvent) => {\r\n if (!event.newValue) {\r\n return;\r\n }\r\n\r\n if (event.key == 'getSessionStorage') {\r\n if (sessionStorage.length) {\r\n this.localStorageSetItem('setSessionStorage', sessionStorage);\r\n localStorage.removeItem('setSessionStorage');\r\n }\r\n } else if (event.key == 'setSessionStorage') {\r\n\r\n if (!this.syncKeys.length) {\r\n this.loadSyncKeys();\r\n }\r\n const data = JSON.parse(event.newValue);\r\n // console.info(\"Set => Key: Transfer setSessionStorage\" + \", data: \" + JSON.stringify(data));\r\n\r\n for (const key in data) {\r\n\r\n if (this.syncKeysContains(key)) {\r\n this.sessionStorageSetItem(key, JSON.parse(data[key]));\r\n }\r\n }\r\n\r\n this.onInit();\r\n } else if (event.key == 'addToSessionStorage') {\r\n\r\n const data = JSON.parse(event.newValue);\r\n\r\n // console.warn(\"Set => Key: Transfer addToSessionStorage\" + \", data: \" + JSON.stringify(data));\r\n\r\n this.addToSessionStorageHelper(data['data'], data['key']);\r\n } else if (event.key == 'removeFromSessionStorage') {\r\n\r\n this.removeFromSessionStorageHelper(event.newValue);\r\n } else if (event.key == 'clearAllSessionsStorage' && sessionStorage.length) {\r\n this.clearInstanceSessionStorage();\r\n } else if (event.key == 'addToSyncKeys') {\r\n this.addToSyncKeysHelper(event.newValue);\r\n } else if (event.key == 'removeFromSyncKeys') {\r\n this.removeFromSyncKeysHelper(event.newValue);\r\n }\r\n }\r\n\r\n private syncSessionStorage() {\r\n localStorage.setItem('getSessionStorage', '_dummy');\r\n localStorage.removeItem('getSessionStorage');\r\n }\r\n\r\n private addToSessionStorage(data: any, key: string) {\r\n this.addToSessionStorageHelper(data, key);\r\n this.addToSyncKeysBackup(key);\r\n\r\n this.localStorageSetItem('addToSessionStorage', { key: key, data: data });\r\n localStorage.removeItem('addToSessionStorage');\r\n }\r\n\r\n private addToSessionStorageHelper(data: any, key: string) {\r\n this.addToSyncKeysHelper(key);\r\n this.sessionStorageSetItem(key, data);\r\n }\r\n\r\n private removeFromSessionStorage(keyToRemove: string) {\r\n this.removeFromSessionStorageHelper(keyToRemove);\r\n this.removeFromSyncKeysBackup(keyToRemove);\r\n\r\n localStorage.setItem('removeFromSessionStorage', keyToRemove);\r\n localStorage.removeItem('removeFromSessionStorage');\r\n }\r\n\r\n private removeFromSessionStorageHelper(keyToRemove: string) {\r\n\r\n sessionStorage.removeItem(keyToRemove);\r\n this.removeFromSyncKeysHelper(keyToRemove);\r\n }\r\n\r\n private testForInvalidKeys(key: string) {\r\n if (!key) {\r\n throw new Error('key cannot be empty');\r\n }\r\n\r\n if (this.reservedKeys.some(x => x == key)) {\r\n throw new Error(`The storage key \"${key}\" is reserved and cannot be used. Please use a different key`);\r\n }\r\n }\r\n\r\n private syncKeysContains(key: string) {\r\n\r\n return this.syncKeys.some(x => x == key);\r\n }\r\n\r\n private loadSyncKeys() {\r\n if (this.syncKeys.length) {\r\n return;\r\n }\r\n\r\n this.syncKeys = this.getSyncKeysFromStorage();\r\n }\r\n\r\n private getSyncKeysFromStorage(defaultValue: string[] = []): string[] {\r\n const data = this.localStorageGetItem(LocalStoreManager.DBKEY_SYNC_KEYS);\r\n\r\n if (data == null) {\r\n return defaultValue;\r\n } else {\r\n return data;\r\n }\r\n }\r\n\r\n private addToSyncKeys(key: string) {\r\n this.addToSyncKeysHelper(key);\r\n this.addToSyncKeysBackup(key);\r\n\r\n localStorage.setItem('addToSyncKeys', key);\r\n localStorage.removeItem('addToSyncKeys');\r\n }\r\n\r\n private addToSyncKeysBackup(key: string) {\r\n const storedSyncKeys = this.getSyncKeysFromStorage();\r\n\r\n if (!storedSyncKeys.some(x => x == key)) {\r\n storedSyncKeys.push(key);\r\n this.localStorageSetItem(LocalStoreManager.DBKEY_SYNC_KEYS, storedSyncKeys);\r\n }\r\n }\r\n\r\n private removeFromSyncKeysBackup(key: string) {\r\n const storedSyncKeys = this.getSyncKeysFromStorage();\r\n\r\n const index = storedSyncKeys.indexOf(key);\r\n\r\n if (index > -1) {\r\n storedSyncKeys.splice(index, 1);\r\n this.localStorageSetItem(LocalStoreManager.DBKEY_SYNC_KEYS, storedSyncKeys);\r\n }\r\n }\r\n\r\n private addToSyncKeysHelper(key: string) {\r\n if (!this.syncKeysContains(key)) {\r\n this.syncKeys.push(key);\r\n }\r\n }\r\n\r\n private removeFromSyncKeys(key: string) {\r\n this.removeFromSyncKeysHelper(key);\r\n this.removeFromSyncKeysBackup(key);\r\n\r\n localStorage.setItem('removeFromSyncKeys', key);\r\n localStorage.removeItem('removeFromSyncKeys');\r\n }\r\n\r\n private removeFromSyncKeysHelper(key: string) {\r\n const index = this.syncKeys.indexOf(key);\r\n\r\n if (index > -1) {\r\n this.syncKeys.splice(index, 1);\r\n }\r\n }\r\n\r\n private localStorageSetItem(key: string, data: any) {\r\n localStorage.setItem(key, JSON.stringify(data));\r\n }\r\n\r\n private sessionStorageSetItem(key: string, data: any) {\r\n sessionStorage.setItem(key, JSON.stringify(data));\r\n }\r\n\r\n private localStorageGetItem(key: string) {\r\n return Utilities.JsonTryParse(localStorage.getItem(key));\r\n }\r\n\r\n private sessionStorageGetItem(key: string) {\r\n return Utilities.JsonTryParse(sessionStorage.getItem(key));\r\n }\r\n\r\n private onInit() {\r\n setTimeout(() => {\r\n this.initEvent.next();\r\n this.initEvent.complete();\r\n });\r\n }\r\n}\r\n","// =============================\r\n// Email: info@ebenmonney.com\r\n// www.ebenmonney.com/templates\r\n// =============================\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpResponse } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n\r\n\r\n\r\n@Injectable()\r\nexport class NotificationEndpoint {\r\n\r\n private demoNotifications = [\r\n {\r\n 'id': 1,\r\n 'header': '20 New Products were added to your inventory by \"administrator\"',\r\n 'body': '20 new \"BMW M6\" were added to your stock by \"administrator\" on 5/28/2017 4:54:13 PM',\r\n 'isRead': true,\r\n 'isPinned': true,\r\n 'date': '2017-05-28T16:29:13.5877958'\r\n },\r\n {\r\n 'id': 2,\r\n 'header': '1 Product running low',\r\n 'body': 'You are running low on \"Nissan Patrol\". 2 Items remaining',\r\n 'isRead': false,\r\n 'isPinned': false,\r\n 'date': '2017-05-28T19:54:42.4144502'\r\n },\r\n {\r\n 'id': 3,\r\n 'header': 'Tomorrow is half day',\r\n 'body': 'Guys, tomorrow we close by midday. Please check in your sales before noon. Thanx. Alex.',\r\n 'isRead': false,\r\n 'isPinned': false,\r\n 'date': '2018-06-17T11:13:42.4144502'\r\n }\r\n ];\r\n\r\n\r\n\r\n getNotificationEndpoint(notificationId: number): Observable {\r\n\r\n const notification = this.demoNotifications.find(val => val.id == notificationId);\r\n let response: HttpResponse;\r\n\r\n if (notification) {\r\n response = this.createResponse(notification, 200);\r\n } else {\r\n response = this.createResponse(null, 404);\r\n }\r\n\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n getNotificationsEndpoint(page: number, pageSize: number): Observable {\r\n\r\n const notifications = this.demoNotifications;\r\n const response = this.createResponse(this.demoNotifications, 200);\r\n\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n getUnreadNotificationsEndpoint(userId?: string): Observable {\r\n\r\n const unreadNotifications = this.demoNotifications.filter(val => !val.isRead);\r\n const response = this.createResponse(unreadNotifications, 200);\r\n\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n getNewNotificationsEndpoint(lastNotificationDate?: Date): Observable {\r\n\r\n const unreadNotifications = this.demoNotifications;\r\n const response = this.createResponse(unreadNotifications, 200);\r\n\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n getPinUnpinNotificationEndpoint(notificationId: number, isPinned?: boolean, ): Observable {\r\n\r\n const notification = this.demoNotifications.find(val => val.id == notificationId);\r\n let response: HttpResponse;\r\n\r\n if (notification) {\r\n response = this.createResponse(null, 204);\r\n\r\n if (isPinned == null) {\r\n isPinned = !notification.isPinned;\r\n }\r\n\r\n notification.isPinned = isPinned;\r\n notification.isRead = true;\r\n } else {\r\n response = this.createResponse(null, 404);\r\n }\r\n\r\n\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n getReadUnreadNotificationEndpoint(notificationIds: number[], isRead: boolean, ): Observable {\r\n\r\n for (const notificationId of notificationIds) {\r\n\r\n const notification = this.demoNotifications.find(val => val.id == notificationId);\r\n\r\n if (notification) {\r\n notification.isRead = isRead;\r\n }\r\n }\r\n\r\n const response = this.createResponse(null, 204);\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n getDeleteNotificationEndpoint(notificationId: number): Observable {\r\n\r\n const notification = this.demoNotifications.find(val => val.id == notificationId);\r\n let response: HttpResponse;\r\n\r\n if (notification) {\r\n this.demoNotifications = this.demoNotifications.filter(val => val.id != notificationId);\r\n response = this.createResponse(notification, 200);\r\n } else {\r\n response = this.createResponse(null, 404);\r\n }\r\n\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n private createResponse(body, status: number) {\r\n return new HttpResponse({ body: body, status: status });\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, interval } from 'rxjs';\r\nimport { map, flatMap, startWith } from 'rxjs/operators';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { NotificationEndpoint } from './notification-endpoint.service';\r\nimport { Notification } from '../models/notification.model';\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n\r\n private lastNotificationDate: Date;\r\n private _recentNotifications: Notification[];\r\n\r\n get currentUser() {\r\n return this.authService.currentUser;\r\n }\r\n\r\n get recentNotifications() {\r\n return this._recentNotifications;\r\n }\r\n\r\n set recentNotifications(notifications: Notification[]) {\r\n this._recentNotifications = notifications;\r\n }\r\n\r\n\r\n\r\n constructor(private notificationEndpoint: NotificationEndpoint, private authService: AuthService) {\r\n\r\n }\r\n\r\n\r\n getNotification(notificationId?: number) {\r\n\r\n return this.notificationEndpoint.getNotificationEndpoint(notificationId).pipe(\r\n map(response => Notification.Create(response)));\r\n }\r\n\r\n\r\n getNotifications(page: number, pageSize: number) {\r\n\r\n return this.notificationEndpoint.getNotificationsEndpoint(page, pageSize).pipe(\r\n map(response => {\r\n return this.getNotificationsFromResponse(response);\r\n }));\r\n }\r\n\r\n\r\n getUnreadNotifications(userId?: string) {\r\n\r\n return this.notificationEndpoint.getUnreadNotificationsEndpoint(userId).pipe(\r\n map(response => this.getNotificationsFromResponse(response)));\r\n }\r\n\r\n\r\n getNewNotifications() {\r\n return this.notificationEndpoint.getNewNotificationsEndpoint(this.lastNotificationDate).pipe(\r\n map(response => this.processNewNotificationsFromResponse(response)));\r\n }\r\n\r\n\r\n getNewNotificationsPeriodically() {\r\n return interval(10000).pipe(\r\n startWith(0),\r\n flatMap(() => {\r\n return this.notificationEndpoint.getNewNotificationsEndpoint(this.lastNotificationDate).pipe(\r\n map(response => this.processNewNotificationsFromResponse(response)));\r\n }));\r\n }\r\n\r\n\r\n\r\n\r\n pinUnpinNotification(notificationOrNotificationId: number | Notification, isPinned?: boolean): Observable {\r\n\r\n if (typeof notificationOrNotificationId === 'number' || notificationOrNotificationId instanceof Number) {\r\n return this.notificationEndpoint.getPinUnpinNotificationEndpoint(notificationOrNotificationId, isPinned);\r\n } else {\r\n return this.pinUnpinNotification(notificationOrNotificationId.id);\r\n }\r\n }\r\n\r\n\r\n readUnreadNotification(notificationIds: number[], isRead: boolean): Observable {\r\n\r\n return this.notificationEndpoint.getReadUnreadNotificationEndpoint(notificationIds, isRead);\r\n }\r\n\r\n\r\n\r\n\r\n deleteNotification(notificationOrNotificationId: number | Notification): Observable {\r\n\r\n if (typeof notificationOrNotificationId === 'number' || notificationOrNotificationId instanceof Number) { // Todo: Test me if its check is valid\r\n return this.notificationEndpoint.getDeleteNotificationEndpoint(notificationOrNotificationId).pipe(\r\n map(response => {\r\n this.recentNotifications = this.recentNotifications.filter(n => n.id != notificationOrNotificationId);\r\n return Notification.Create(response);\r\n }));\r\n } else {\r\n return this.deleteNotification(notificationOrNotificationId.id);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private processNewNotificationsFromResponse(response) {\r\n const notifications = this.getNotificationsFromResponse(response);\r\n\r\n for (const n of notifications) {\r\n if (n.date > this.lastNotificationDate) {\r\n this.lastNotificationDate = n.date;\r\n }\r\n }\r\n\r\n return notifications;\r\n }\r\n\r\n\r\n private getNotificationsFromResponse(response) {\r\n const notifications: Notification[] = [];\r\n\r\n for (const i in response) {\r\n notifications[i] = Notification.Create(response[i]);\r\n }\r\n\r\n notifications.sort((a, b) => b.date.valueOf() - a.date.valueOf());\r\n notifications.sort((a, b) => (a.isPinned === b.isPinned) ? 0 : a.isPinned ? -1 : 1);\r\n\r\n this.recentNotifications = notifications;\r\n\r\n return notifications;\r\n }\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { Email } from '../models/email.model';\r\nimport { CoreAudit } from '../models/core-audit.model';\r\nimport { Printers } from '../models/printers.model';\r\n\r\n\r\n@Injectable()\r\nexport class PrinterEndpoint extends EndpointFactory {\r\n\r\n private readonly _printerUrl: string = '/api/Printer/';\r\n\r\n\r\n get printerUrl() { return this.configurations.baseUrl + this._printerUrl; }\r\n \r\n \r\n constructor(http: HttpClient, configurations: ConfigurationService, injector: Injector) {\r\n\r\n super(http, configurations, injector);\r\n }\r\n\r\n //GetPrinters\r\n getPrintersEndpoint(): Observable {\r\n const endpointUrl = this.printerUrl;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPrintersEndpoint());\r\n }));\r\n }\r\n\r\n //GetUserPrinterMappings\r\n getUserPrinterMappingsEndpoint(userId?: string): Observable {\r\n const endpointUrl = `${this.printerUrl}${userId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserPrinterMappingsEndpoint(userId));\r\n }));\r\n }\r\n\r\n //PrintInvoice/{salesOrder}\r\n postPrintInvoiceEndpoint(salesOrder: string, original: boolean, userDetail: any): Observable {\r\n const endpointUrl = `${this.printerUrl}PrintInvoice/${salesOrder}/${original}`;\r\n return this.http.put(endpointUrl, JSON.stringify(userDetail), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postPrintInvoiceEndpoint(salesOrder, original, userDetail));\r\n }));\r\n }\r\n\r\n //PrintEFTTextFile/{paymentRunNumber}\r\n postEFTToFileEndpoint(paymentRunNumber: string, postObject: any): Observable {\r\n const endpointUrl = `${this.printerUrl}PrintEFTTextFile/${paymentRunNumber}`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postEFTToFileEndpoint(paymentRunNumber, postObject));\r\n }));\r\n }\r\n\r\n\r\n getFileStreamEndpoint(fileName?: string): Observable {\r\n const endpointUrl = `${this.printerUrl}GetFileStream/${fileName}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFileStreamEndpoint(fileName));\r\n }));\r\n }\r\n\r\n updateSysproPayRunEndpoint(paymentRunNumber: string): Observable {\r\n const endpointUrl = `${this.printerUrl}UpdateSysproPayRun/${paymentRunNumber}`;\r\n return this.http.put(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateSysproPayRunEndpoint(paymentRunNumber));\r\n }));\r\n }\r\n\r\n\r\n editPrinterEndpoint(printer: Printers, id: number) {\r\n const endpointUrl = `${this.printerUrl}EditPrinter/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(printer), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.editPrinterEndpoint(printer, id));\r\n }));\r\n }\r\n\r\n newPrinterEndpoint(printer: Printers) {\r\n const endpointUrl = `${this.printerUrl}NewPrinter`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(printer), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.newPrinterEndpoint(printer));\r\n }));\r\n }\r\n\r\n deletePrinterEndpoint(id: number) {\r\n const endpointUrl = `${this.printerUrl}DeletePrinter/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deletePrinterEndpoint(id));\r\n }));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\nimport { PrinterEndpoint } from './printer-endpoint.service';\r\nimport { Printers } from '../models/printers.model';\r\nimport { PrinterUserMappings } from '../models/printer-user-mappings.model';\r\nimport { CoreAudit } from '../models/core-audit.model';\r\nimport { User } from '../models/user.model';\r\n\r\n@Injectable()\r\nexport class PrinterService {\r\n\r\n constructor(\r\n private printerEndpoint: PrinterEndpoint) {\r\n\r\n }\r\n\r\n GetPrinters() {\r\n return this.printerEndpoint.getPrintersEndpoint();\r\n }\r\n \r\n GetUserPrinterMappings(userId?: string) {\r\n return this.printerEndpoint.getUserPrinterMappingsEndpoint(userId);\r\n }\r\n\r\n\r\n PrintInvoice(salesOrder: string, original: boolean, userDetail: User) {\r\n return this.printerEndpoint.postPrintInvoiceEndpoint(salesOrder, original, userDetail);\r\n }\r\n\r\n postEFTToFile(paymentRunNumber: string, postObject: any) {\r\n return this.printerEndpoint.postEFTToFileEndpoint(paymentRunNumber, postObject);\r\n }\r\n\r\n getFileStream(fileName?: string) {\r\n return this.printerEndpoint.getFileStreamEndpoint(fileName);\r\n }\r\n\r\n\r\n updateSysproPayRun(paymentRunNumber?: string) {\r\n return this.printerEndpoint.updateSysproPayRunEndpoint(paymentRunNumber);\r\n }\r\n\r\n\r\n editPrinter(printer: Printers, id: number) {\r\n return this.printerEndpoint.editPrinterEndpoint(printer, id);\r\n }\r\n\r\n newPrinter(printer: Printers) {\r\n return this.printerEndpoint.newPrinterEndpoint(printer);\r\n }\r\n\r\n deletePrinter(id: number) {\r\n return this.printerEndpoint.deletePrinterEndpoint(id);\r\n }\r\n\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\n\r\n@Injectable()\r\nexport class ReportEndpoint extends EndpointFactory {\r\n\r\n private readonly _branchesUrl: string = '/api/Branch/GetAllBranches';\r\n private readonly _customersUrl: string = '/api/Customers/GetCustomerList';\r\n private readonly _reportsUrl: string = '/api/reports/';\r\n\r\n get reportsUrl() { return this.configurations.baseUrl + this._reportsUrl; }\r\n\r\n \r\n constructor(http: HttpClient, configurations: ConfigurationService, injector: Injector) {\r\n\r\n super(http, configurations, injector);\r\n }\r\n\r\n getFileStreamEndpoint(quoteNumber?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetFileStream/${quoteNumber}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFileStreamEndpoint(quoteNumber));\r\n }));\r\n }\r\n\r\n getQuotePDFEndpoint(quoteNumber?: string, application?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetQuotePDF/${quoteNumber}/${application}`;\r\n\r\n return this.http.post(endpointUrl, { options: { headers: this.getRequestHeaders() }, responseType: 'blob' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getQuotePDFEndpoint(quoteNumber, application));\r\n }));\r\n }\r\n\r\n getInventoryPDFEndpoint(stockCode?: string, branchCode?: string, application?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetInventoryPDF/${encodeURIComponent(stockCode)}/${branchCode}/${application}`;\r\n\r\n return this.http.post(endpointUrl, { options: { headers: this.getRequestHeaders() }, responseType: 'blob' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInventoryPDFEndpoint(stockCode, branchCode, application));\r\n }));\r\n }\r\n\r\n\r\n getStatementPDFEndpoint(customer?: string, application?: string, fromDate?: string, toDate?: string, uniqueCode?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetStatementPDF/${customer}/${application}/${fromDate}/${toDate}/${uniqueCode}`;\r\n\r\n return this.http.post(endpointUrl, { options: { headers: this.getRequestHeaders() }, responseType: 'blob' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStatementPDFEndpoint(customer, application, fromDate, toDate, uniqueCode));\r\n }));\r\n }\r\n\r\n getCataloguePDFEndpoint(branchCode?: string, application?: string, reportTitle?: string, reportType?: string, filterValue?: string, includeIndex?: boolean, extraFilter?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}getCataloguePDF/${branchCode}/${application}/${encodeURIComponent(reportTitle)}/${reportType}/${encodeURIComponent(filterValue)}/${includeIndex}/${encodeURIComponent(extraFilter)}`;\r\n\r\n return this.http.post(endpointUrl, { options: { headers: this.getRequestHeaders() }, responseType: 'blob' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCataloguePDFEndpoint(branchCode, application, reportTitle, reportType, filterValue, includeIndex, extraFilter));\r\n }));\r\n }\r\n\r\n getFileStreamCatalogueEndpoint(reportName?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetFileStreamCatalogue/${encodeURIComponent(reportName)}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFileStreamCatalogueEndpoint(reportName));\r\n }));\r\n }\r\n\r\n getPurchaseOrderPDFEndpoint(PoNumber: string, internalRef: boolean, application?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetPurchaseOrderPDF/${PoNumber}/${internalRef}/${application}`;\r\n\r\n return this.http.post(endpointUrl, { options: { headers: this.getRequestHeaders() }, responseType: 'blob' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPurchaseOrderPDFEndpoint(PoNumber, internalRef, application));\r\n }));\r\n }\r\n\r\n\r\n getFileStreamPurchaseOrderEndpoint(PoNumber?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetFileStreamPurchaseOrder/${PoNumber}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFileStreamPurchaseOrderEndpoint(PoNumber));\r\n }));\r\n }\r\n\r\n getFileStreamInventoryEndpoint(stockCode?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetFileStreamInventory/${encodeURIComponent(stockCode)}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFileStreamInventoryEndpoint(stockCode));\r\n }));\r\n }\r\n\r\n\r\n getFileStreamStatementEndpoint(OTP?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetFileStreamStatement/${encodeURIComponent(OTP)}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFileStreamStatementEndpoint(OTP));\r\n }));\r\n }\r\n\r\n\r\n getStatementInvoicePDFEndpoint(customer?: string, application?: string, salesOrder?: string, invoice?: string, uniqueCode?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetStatementInvoice/${customer}/${application}/${salesOrder}/${invoice}/${uniqueCode}`;\r\n\r\n return this.http.post(endpointUrl, { options: { headers: this.getRequestHeaders() }, responseType: 'blob' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStatementInvoicePDFEndpoint(customer, application, salesOrder, invoice, uniqueCode));\r\n }));\r\n }\r\n\r\n getStatementCreditPDFEndpoint(customer?: string, application?: string, salesOrder?: string, invoice?: string, uniqueCode?: string): Observable {\r\n const endpointUrl = `${this.reportsUrl}GetStatementCredit/${customer}/${application}/${salesOrder}/${invoice}/${uniqueCode}`;\r\n\r\n return this.http.post(endpointUrl, { options: { headers: this.getRequestHeaders() }, responseType: 'blob' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStatementInvoicePDFEndpoint(customer, application, salesOrder, invoice, uniqueCode));\r\n }));\r\n }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { ReportEndpoint } from './report-endpoint.service';\r\nimport { ArCustomer } from '../models/arcustomer.model';\r\nimport { Stream } from 'stream';\r\n\r\n@Injectable()\r\nexport class ReportService {\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private reportEndpoint:ReportEndpoint) {\r\n\r\n }\r\n\r\n get currentUser() {\r\n return this.authService.currentUser;\r\n }\r\n\r\n\r\n getFileStream(quoteNumber?: string) {\r\n return this.reportEndpoint.getFileStreamEndpoint(quoteNumber);\r\n }\r\n\r\n getFileStreamInventory(stockCode?: string) {\r\n return this.reportEndpoint.getFileStreamInventoryEndpoint(stockCode);\r\n }\r\n\r\n\r\n getFileStreamStatement(OTP?: string) {\r\n return this.reportEndpoint.getFileStreamStatementEndpoint(OTP);\r\n } \r\n\r\n\r\n getQuotePDF(quoteNumber?: string, application?: string) {\r\n return this.reportEndpoint.getQuotePDFEndpoint(quoteNumber, application);\r\n }\r\n\r\n\r\n getInventoryPDF(stockCode?: string, branchCode?: string, application?: string) {\r\n return this.reportEndpoint.getInventoryPDFEndpoint(stockCode, branchCode, application);\r\n }\r\n\r\n\r\n\r\n getStatementPDF(customer?: string, application?: string, fromDate?: string, toDate?: string, uniqueCode?: string) {\r\n return this.reportEndpoint.getStatementPDFEndpoint(customer, application, fromDate, toDate, uniqueCode);\r\n }\r\n\r\n\r\n\r\n getStatementInvoicePDF(customer?: string, application?: string, salesOrder?: string, invoice?: string, uniqueCode?: string) {\r\n return this.reportEndpoint.getStatementInvoicePDFEndpoint(customer, application, salesOrder, invoice, uniqueCode);\r\n }\r\n\r\n\r\n getStatementCreditPDF(customer?: string, application?: string, salesOrder?: string, invoice?: string, uniqueCode?: string) {\r\n return this.reportEndpoint.getStatementCreditPDFEndpoint(customer, application, salesOrder, invoice, uniqueCode);\r\n }\r\n\r\n\r\n getCataloguePDF(branchCode?: string, application?: string, reportTitle?: string, reportType?: string, filterValue?: string, includeIndex?: boolean, extraFilter?: string) {\r\n return this.reportEndpoint.getCataloguePDFEndpoint(branchCode, application, reportTitle, reportType, filterValue, includeIndex, extraFilter);\r\n }\r\n\r\n getFileStreamCatalogue(reportName?: string) {\r\n return this.reportEndpoint.getFileStreamCatalogueEndpoint(reportName);\r\n } \r\n\r\n\r\n getPurchaseOrderPDF(PoNumber: string, internalRef: boolean, application?: string) {\r\n return this.reportEndpoint.getPurchaseOrderPDFEndpoint(PoNumber, internalRef, application);\r\n }\r\n\r\n\r\n getFileStreamPurchaseOrder(PoNumber?: string) {\r\n return this.reportEndpoint.getFileStreamPurchaseOrderEndpoint(PoNumber);\r\n } \r\n\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { Email } from '../models/email.model';\r\nimport { CoreAudit } from '../models/core-audit.model';\r\nimport { BarcodeReference } from '../models/barcode-reference.model';\r\nimport { Video } from '../models/video.model';\r\nimport { Brand } from '../models/brand.model';\r\nimport { CMStockCode } from '../models/cms-stockcode.model';\r\nimport { DocumentCategory } from '../models/document-category.model';\r\nimport { DocumentManagmement } from '../models/document-management.model';\r\nimport { CMCategories } from '../models/cms-category.model';\r\nimport { InvoiceTrackingLookup } from '../models/invoice-tracking-lookup.model';\r\nimport { Branch } from '../models/branch.model';\r\nimport { InfoBoardNotes } from '../models/info-board-notes.model';\r\nimport { CoreCustomer } from '../models/core-customer.model';\r\nimport { CoreCustomerRule } from '../models/core-customer-rule.model';\r\nimport { CoreCustomerPrices } from '../models/core-customer-prices.model';\r\nimport { WebOrder } from '../models/web-order.model';\r\nimport { CMSAdditionalImage } from '../models/cms-additional-images.model';\r\nimport { OptIns, Outbox } from '../models/wapp-inbox.model';\r\n\r\n\r\n@Injectable()\r\nexport class SysproEndpoint extends EndpointFactory { \r\n\r\n public regex = new RegExp('/', 'g');\r\n private readonly _branchesUrl: string = '/api/Branch/GetAllBranches';\r\n private readonly _customersUrl: string = '/api/Customers/GetCustomerList';\r\n private readonly _customerbaseUrl: string = '/api/Customers/';\r\n private readonly _customerDetailUrl: string = '/api/Customers/GetCustomerDetail';\r\n private readonly _customerNotesUrl: string = '/api/Customers/CustomerNotes';\r\n private readonly _customerMovementsUrl: string = '/api/Customers/GetCustomerMovements';\r\n private readonly _customerPaymentsUrl: string = '/api/Customers/GetCustomerPayments';\r\n private readonly _salPersonUrl: string = '/api/Customers/GetAllSalesPersons';\r\n private readonly _inventoryUrl: string = '/api/Inventory/GetStockCodeList';\r\n private readonly _inventoryBaseUrl: string = '/api/Inventory/';\r\n private readonly _inventoryWHUrl: string = '/api/Inventory/StockCodeAvailableQuantities';\r\n private readonly _cartDetailUrl: string = '/api/CartDetails/GetCartDetails';\r\n private readonly _quoteFromCartUrl: string = '/api/Customers/QuoteFromCart';\r\n private readonly _quoteUrl: string = '/api/Quotes/';\r\n private readonly _cartUrl: string = '/api/Cart/';\r\n private readonly _supplierListUrl: string = '/api/CartDetails/GetAllSuppliers';\r\n private readonly _emailUrl: string = '/api/customers/email';\r\n private readonly _smsUrl: string = '/api/customers/sms';\r\n private readonly _shippingInstructionsUrl: string = '/api/customers/GetShippingInstructionsList';\r\n private readonly _inventoryDetailurl: string = '/api/Inventory';\r\n private readonly _establishmentUrl: string = '/api/customers/GetEstablishmentDetails';\r\n private readonly _salesOrderUrl: string = '/api/SalesOrders/';\r\n private readonly _salesMenuReportsUrl: string = '/api/MenuReports/';\r\n private readonly _settingsUrl: string = '/api/Settings';\r\n private readonly _mysqlDocumentUrl: string = '/api/DocumentServer/';\r\n private readonly _documentManagementUrl: string = '/api/DocumentManagement/';\r\n private readonly _inventoryManagementUrl: string = '/api/Inventory/';\r\n private readonly _coreCustomersUrl: string = '/api/customers';\r\n private readonly _fowkesonlineUrl: string = '/api/fowkesonline';\r\n private readonly _whatsappUrl: string = '/api/whatsapp/';\r\n\r\n get branchesUrl() { return this.configurations.baseUrl + this._branchesUrl; }\r\n get customersUrl() { return this.configurations.baseUrl + this._customersUrl; }\r\n get customerbaseUrl() { return this.configurations.baseUrl + this._customerbaseUrl; }\r\n get customerDetailUrl() { return this.configurations.baseUrl + this._customerDetailUrl; }\r\n get salPersonUrl() { return this.configurations.baseUrl + this._salPersonUrl; }\r\n get customerNotesUrl() { return this.configurations.baseUrl + this._customerNotesUrl; }\r\n get customerMovementsUrl(){\r\n return this.configurations.baseUrl + this._customerMovementsUrl;\r\n }\r\n get customerPaymentsUrl(){\r\n return this.configurations.baseUrl + this._customerPaymentsUrl;\r\n }\r\n get inventoryUrl() { return this.configurations.baseUrl + this._inventoryUrl; }\r\n get inventoryBaseUrl() { return this.configurations.baseUrl + this._inventoryBaseUrl; }\r\n get inventoryDetailUrl() { return this.configurations.baseUrl + this._inventoryDetailurl; }\r\n get inventoryWHUrl() { return this.configurations.baseUrl + this._inventoryWHUrl; }\r\n get cartDetailsUrl() { return this.configurations.baseUrl + this._cartDetailUrl; }\r\n get quoteFromCartUrl() {\r\n return this.configurations.baseUrl + this._quoteFromCartUrl;\r\n }\r\n\r\n get quoteUrl() { return this.configurations.baseUrl + this._quoteUrl; }\r\n get salesOrderUrl() { return this.configurations.baseUrl + this._salesOrderUrl; }\r\n get cartUrl() { return this.configurations.baseUrl + this._cartUrl; }\r\n get supplierListUrl() { return this.configurations.baseUrl + this._supplierListUrl; }\r\n get whatsappUrl() { return this.configurations.baseUrl + this._whatsappUrl; }\r\n get shippingInstructionsUrl() {\r\n return this.configurations.baseUrl + this._shippingInstructionsUrl;\r\n }\r\n get establishmentUrl() {\r\n return this.configurations.baseUrl + this._establishmentUrl;\r\n }\r\n get emailUrl() { return this.configurations.baseUrl + this._emailUrl; }\r\n get smsUrl() { return this.configurations.baseUrl + this._smsUrl; }\r\n\r\n get settingsUrl() { return this.configurations.baseUrl + this._settingsUrl; }\r\n\r\n get coreCustomersUrl() {\r\n return this.configurations.baseUrl + this._coreCustomersUrl;\r\n }\r\n get coreFowkesOnlineUrl() {\r\n return this.configurations.baseUrl + this._fowkesonlineUrl;\r\n }\r\n \r\n constructor(http: HttpClient, configurations: ConfigurationService, injector: Injector) {\r\n\r\n super(http, configurations, injector);\r\n }\r\n\r\n getBranchesEndpoint(): Observable {\r\n const endpointUrl = this.branchesUrl;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBranchesEndpoint());\r\n }));\r\n }\r\n\r\n getCustomersEndpoint(branch?: string): Observable {\r\n let endpointUrl = this.customersUrl;\r\n if (branch != \"\") {\r\n endpointUrl = `${this.customersUrl}/${branch}`;\r\n }\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomersEndpoint(branch));\r\n }));\r\n }\r\n\r\n\r\n getCustomerSearchByCriteriaEndpoint(searchOn?: string, searchText?: string): Observable {\r\n const endpointUrl = `${this.customerbaseUrl}CustomerSearchByCriteria/${searchOn}/${searchText}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerSearchByCriteriaEndpoint(searchOn, searchText));\r\n }));\r\n }\r\n\r\n\r\n getCustomerSearchByCriteriaByCompanyEndpoint(searchOn?: string, searchText?: string, company?: string): Observable {\r\n const endpointUrl = `${this.customerbaseUrl}CustomerSearchByCriteriaByCompany/${searchOn}/${searchText}/${company}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerSearchByCriteriaByCompanyEndpoint(searchOn, searchText, company));\r\n }));\r\n }\r\n\r\n getCustomerDetailEndpoint(customerId?: string): Observable {\r\n const endpointUrl = `${this.customerDetailUrl}/${customerId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerDetailEndpoint(customerId));\r\n }));\r\n }\r\n\r\n\r\n getCustomerOrderConversionEndpoint(customer?: string): Observable {\r\n const endpointUrl = `${this.customerbaseUrl}GetCustomerOrderConversion/${customer}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerOrderConversionEndpoint(customer));\r\n }));\r\n }\r\n\r\n\r\n getCustomerQuotePDFEndpoint(quoteNumber?: string): Observable {\r\n const endpointUrl = `${this.customerDetailUrl}/${quoteNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerQuotePDFEndpoint(quoteNumber));\r\n }));\r\n }\r\n\r\n\r\n getCustomerMovementsEndpoint(startDate?: string, endDate?: string, customer?: string): Observable {\r\n const endpointUrl = `${this.customerMovementsUrl}/${startDate}/${endDate}/${customer}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerMovementsEndpoint(startDate, endDate, customer));\r\n }));\r\n }\r\n\r\n\r\n getCustomerPaymentsEndpoint(startDate?: string, endDate?: string, customer?: string): Observable {\r\n const endpointUrl = `${this.customerPaymentsUrl}/${startDate}/${endDate}/${customer}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerPaymentsEndpoint(startDate, endDate, customer));\r\n }));\r\n }\r\n\r\n getCustomersLoadedForStatementsEndpoint(application?: string, startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this.customerbaseUrl}GetCustomersLoadedForStatements/${application}/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomersLoadedForStatementsEndpoint(application, startDate, endDate));\r\n }));\r\n }\r\n \r\n\r\n\r\n getCustStatementsReadyForEmailEndpoint(application?: string, startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this.customerbaseUrl}GetCustStatementsReadyForEmail/${application}/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustStatementsReadyForEmailEndpoint(application, startDate, endDate));\r\n }));\r\n }\r\n\r\n\r\n getCustomerNotesEndpoint(customerId?: string): Observable {\r\n const endpointUrl = `${this.customerNotesUrl}/GetCustomerNotes/${customerId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerNotesEndpoint(customerId));\r\n }));\r\n }\r\n\r\n\r\n updateCustomerNotesHeaderEndpoint(customerId?: string): Observable {\r\n const endpointUrl = `${this.customerNotesUrl}/UpdateCustomerNotesHeader/${customerId}`;\r\n\r\n return this.http.get(encodeURI(endpointUrl), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateCustomerNotesHeaderEndpoint(customerId));\r\n }));\r\n }\r\n\r\n\r\n insertCustomerNotesEndpoint(customerId?: string, line?: number, notation?: string): Observable {\r\n const endpointUrl = `${this.customerNotesUrl}/InsertCustomerNote/${customerId}/${line}/${notation}`;\r\n\r\n return this.http.get(encodeURI(endpointUrl), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.insertCustomerNotesEndpoint(customerId, line, notation));\r\n }));\r\n }\r\n\r\n\r\n deleteCustomerNotesEndpoint(customerId?: string, line?: number): Observable {\r\n const endpointUrl = `${this.customerNotesUrl}/DeleteCustomerNotes/${customerId}/${line}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteCustomerNotesEndpoint(customerId, line));\r\n }));\r\n }\r\n\r\n\r\n getSalesPersonsEndpoint(branch?: string): Observable {\r\n const endpointUrl = `${this.salPersonUrl}/${branch}`;\r\n \r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesPersonsEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getInventoryForBranchEndpoint(branch?: string): Observable {\r\n const endpointUrl = `${this.inventoryUrl}/${branch}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInventoryForBranchEndpoint(branch));\r\n }));\r\n }\r\n\r\n\r\n getInventoryForAdvertsEndpoint(branch?: string): Observable {\r\n const endpointUrl = `${this._fowkesonlineUrl}/GetStockCodeList/${branch}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInventoryForAdvertsEndpoint(branch));\r\n }));\r\n }\r\n\r\n\r\n getStockCodeSearchByCriteriaEndpoint(branch?: string, searchOn?: string, searchText?: string): Observable {\r\n const endpointUrl = `${this.inventoryBaseUrl}GetStockCodeSearchByCriteria/${branch}/${searchOn}/${encodeURIComponent(searchText)}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCodeSearchByCriteriaEndpoint(branch, searchOn, searchText));\r\n }));\r\n }\r\n\r\n\r\n getStockCodeDetailEndpoint(stockCode?: string): Observable {\r\n const endpointUrl = `${this.inventoryDetailUrl}/StockCodeDetail/${encodeURIComponent(stockCode)}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCodeDetailEndpoint(stockCode));\r\n }));\r\n }\r\n\r\n\r\n getStockCodeAdditionalDetailEndpoint(stockCode?: string): Observable {\r\n const endpointUrl = `${this.inventoryDetailUrl}/GetStockCodeAdditionalDetail/${encodeURIComponent(stockCode)}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCodeAdditionalDetailEndpoint(stockCode));\r\n }));\r\n }\r\n\r\n\r\n getAltStockCodeDetailEndpoint(stockCode?: string): Observable {\r\n const endpointUrl = `${this.inventoryDetailUrl}/GetAltStockCodes/${encodeURIComponent(stockCode)}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAltStockCodeDetailEndpoint(stockCode));\r\n }));\r\n }\r\n\r\n getStockCearanceFlagEndpoint(id?: number): Observable {\r\n const endpointUrl = `${this.inventoryDetailUrl}/StockCearanceFlag/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCearanceFlagEndpoint(id));\r\n }));\r\n }\r\n\r\n getStockCodeMovementHistoryEndpoint(stockCode?: string): Observable {\r\n const endpointUrl = `${this.inventoryDetailUrl}/GetStockCodeMovementDetail/${encodeURIComponent(stockCode)}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCodeMovementHistoryEndpoint(stockCode));\r\n }));\r\n }\r\n\r\n\r\n getCategoriesForStockCodesListEndpoint(): Observable {\r\n const endpointUrl = `${this.inventoryDetailUrl}/CategoriesForStockCodesList`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCategoriesForStockCodesListEndpoint());\r\n }));\r\n }\r\n\r\n getStockCodeAvailableQuantitiesEndpoint(stockCode?: string): Observable {\r\n const endpointUrl = `${this.inventoryWHUrl}/${encodeURIComponent(stockCode)}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCodeAvailableQuantitiesEndpoint(stockCode));\r\n }));\r\n }\r\n\r\n getCartDetailEndpoint(cartNumber?: string, branch?: string): Observable {\r\n const endpointUrl = `${this.cartDetailsUrl}/${cartNumber}/${branch}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCartDetailEndpoint(cartNumber, branch));\r\n }));\r\n }\r\n\r\n\r\n updateCartCommentsEndpoint(cartNumber?: string, lineNumber?: number, commentFromLine?: number, comment?: string, commentType?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}CartCommentsInsert/${cartNumber}/${lineNumber}/${commentFromLine}/${encodeURIComponent(comment)}/${commentType}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateCartCommentsEndpoint(cartNumber, lineNumber, commentFromLine, comment, commentType));\r\n }));\r\n }\r\n\r\n\r\n updateCartCommentsForPackSizeEndpoint(cartNumber?: string, lineNumber?: number, commentFromLine?: number, comment?: string, commentType?: string, includeLines?: boolean): Observable {\r\n const endpointUrl = `${this.quoteUrl}CartCommentsInsertForPackSize/${cartNumber}/${lineNumber}/${commentFromLine}/${encodeURIComponent(comment)}/${commentType}/${includeLines}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateCartCommentsForPackSizeEndpoint(cartNumber, lineNumber, commentFromLine, comment, commentType, includeLines));\r\n }));\r\n }\r\n\r\n postCartToQuoteEndpoint(cartNumber?: string): Observable {\r\n const endpointUrl = `${this._quoteFromCartUrl}/${cartNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postCartToQuoteEndpoint(cartNumber));\r\n }));\r\n }\r\n\r\n\r\n getQuoteSearchAllEndpoint(applicationId?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}SearchAll/${applicationId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getQuoteSearchAllEndpoint(applicationId));\r\n }));\r\n }\r\n\r\n\r\n getAllWebOrdersEndpoint(): Observable {\r\n const endpointUrl = `${this.quoteUrl}GetAllWebOrders`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllWebOrdersEndpoint());\r\n }));\r\n }\r\n\r\n getWebOrderPaymentInfoEndpoint(orderId?: number): Observable {\r\n const endpointUrl = `${this.quoteUrl}GetWebOrderPayment/${orderId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getWebOrderPaymentInfoEndpoint(orderId));\r\n }));\r\n }\r\n\r\n\r\n\r\n updateWebOrderStatusEndpoint(invoice?: string, status?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}UpdateWebOrderStatus/${invoice}/${status}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateWebOrderStatusEndpoint(invoice, status));\r\n }));\r\n }\r\n\r\n\r\n UpdateWebOrderStatusWithCommentEndpoint(Id?: number, orderDetail?: WebOrder): Observable {\r\n const endpointUrl = `${this.quoteUrl}UpdateWebOrderStatusWithComment/${Id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(orderDetail), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.UpdateWebOrderStatusWithCommentEndpoint(Id, orderDetail));\r\n }));\r\n }\r\n\r\n\r\n getWebOrderStatusEndpoint(waybill?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}GetWebOrderStatus/${waybill}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getWebOrderStatusEndpoint(waybill));\r\n }));\r\n }\r\n\r\n\r\n getWebOrderLineInfoEndpoint(orderId?: number): Observable {\r\n const endpointUrl = `${this.quoteUrl}GetWebOrderLines/${orderId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getWebOrderLineInfoEndpoint(orderId));\r\n }));\r\n }\r\n\r\n\r\n getQuoteNumberSearchByCriteriaEndpoint(searchOn?: string, searchText?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}GetQuoteNumberSearchByCriteria/${searchOn}/${searchText}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getQuoteNumberSearchByCriteriaEndpoint(searchOn, searchText));\r\n }));\r\n }\r\n\r\n\r\n\r\n getQuoteNumberSearchByCriteriaByCompanyEndpoint(searchOn?: string, searchText?: string, company?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}GetQuoteNumberSearchByCriteriaByCompany/${searchOn}/${searchText}/${company}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getQuoteNumberSearchByCriteriaByCompanyEndpoint(searchOn, searchText, company));\r\n }));\r\n }\r\n\r\n\r\n getQuoteHeaderEndpoint(quoteNumber?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}GetQuoteHeader/${quoteNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getQuoteHeaderEndpoint(quoteNumber));\r\n }));\r\n }\r\n\r\n\r\n getQuoteDetailEndpoint(quoteNumber?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}GetQuoteDetails/${quoteNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getQuoteDetailEndpoint(quoteNumber));\r\n }));\r\n }\r\n\r\n\r\n getUpdateQuoteStatusEndpoint(quoteNumber?: string, quoteStatus?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}UpdateQuoteStatus/${quoteNumber}/${quoteStatus}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateQuoteStatusEndpoint(quoteNumber, quoteStatus));\r\n }));\r\n }\r\n\r\n\r\n postQuoteTotalsEndpoint(quoteNumber?: string, totalIncl?: number, totalExcl?: number, totalDiscount?: number): Observable {\r\n const endpointUrl = `${this.quoteUrl}UpdateQuoteTotals/${quoteNumber}/${totalIncl}/${totalExcl}/${totalDiscount}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postQuoteTotalsEndpoint(quoteNumber, totalIncl, totalExcl, totalDiscount));\r\n }));\r\n }\r\n \r\n updateCartStatusEndpoint(cartNumber?: string, hasNettPrices?: boolean): Observable {\r\n const endpointUrl = `${this.quoteUrl}UpdateCartStatus/${cartNumber}/${hasNettPrices}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateCartStatusEndpoint(cartNumber, hasNettPrices));\r\n }));\r\n }\r\n\r\n updateQuoteCommentsEndpoint(quoteNumber?: string, lineNumber?: number, commentFromLine?: number, comment?: string, commentType?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}QuoteCommentsInsert/${quoteNumber}/${lineNumber}/${commentFromLine}/${encodeURIComponent(comment)}/${commentType}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateQuoteCommentsEndpoint(quoteNumber, lineNumber, commentFromLine, comment, commentType));\r\n }));\r\n }\r\n\r\n getCartFromQuoteEndpoint(quoteNumber?: string, cartNumber?: string, branch?: string): Observable {\r\n const endpointUrl = `${this.quoteUrl}CartFromQuote/${quoteNumber}/${cartNumber}/${branch}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCartFromQuoteEndpoint(quoteNumber, cartNumber, branch));\r\n }));\r\n }\r\n\r\n getAllSuppliersEndpoint(): Observable {\r\n const endpointUrl = this.supplierListUrl;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllSuppliersEndpoint());\r\n }));\r\n }\r\n\r\n\r\n \r\n\r\n postSalesOrderSysproEndpoint(postObject: any): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PostSalesOrderSyspro`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postSalesOrderSysproEndpoint(postObject));\r\n }));\r\n }\r\n\r\n updateSalesOrderSysproEndpoint(postObject: any): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}UpdateSalesOrderSyspro`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateSalesOrderSysproEndpoint(postObject));\r\n }));\r\n }\r\n\r\n\r\n getSysproCommentsEndpoint(): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}GetSysproComments`;\r\n \r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSysproCommentsEndpoint());\r\n }));\r\n }\r\n\r\n insertSalesOrderCommentsEndpoint(SalesOrder?: string, CartLineNumber?: number,\r\n Comment?: string, NCommentFromLin?: number, NCommentType?: string, includeLines?: boolean): Observable {\r\n\r\n const endpointUrl = `${this.salesOrderUrl}InsertSalesOrderComments/${SalesOrder}/${CartLineNumber}/${encodeURIComponent(Comment)}/${NCommentFromLin}/${NCommentType}/${includeLines}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.insertSalesOrderCommentsEndpoint(SalesOrder, CartLineNumber, Comment, NCommentFromLin, NCommentType, includeLines));\r\n }));\r\n }\r\n\r\n insertSalesOrderPaymentCommentsEndpoint(SalesOrder?: string, CartLineNumber?: number,\r\n Comment?: string, NCommentFromLin?: number, NCommentType?: string, includeLines?: boolean): Observable {\r\n\r\n const endpointUrl = `${this.salesOrderUrl}InsertSalesOrderPaymentComments/${SalesOrder}/${CartLineNumber}/${encodeURIComponent(Comment)}/${NCommentFromLin}/${NCommentType}/${includeLines}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.insertSalesOrderPaymentCommentsEndpoint(SalesOrder, CartLineNumber, Comment, NCommentFromLin, NCommentType, includeLines));\r\n }));\r\n }\r\n\r\n\r\n postUpdateSalesOrderStatusEndpoint(salesOrder: string, status: string, cancelReason: string, sessionId: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}UpdateSalesOrderStatus/${salesOrder}/${status}/${cancelReason}/${sessionId}`;\r\n return this.http.put(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postUpdateSalesOrderStatusEndpoint(salesOrder, status, cancelReason, sessionId));\r\n }));\r\n }\r\n\r\n postSalesOrderUpdateToSysproEndpoint(postObject: any): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PostSalesOrderUpdateToSyspro`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postSalesOrderUpdateToSysproEndpoint(postObject));\r\n }));\r\n }\r\n\r\n\r\n postInvoiceToSysproEndpoint(salesorder?: string, sessionId?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PostInvoiceToSyspro/${salesorder}/${sessionId}`;\r\n return this.http.put(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postInvoiceToSysproEndpoint(salesorder, sessionId));\r\n }));\r\n }\r\n\r\n\r\n printInvoiceEndpoint(salesorder: string, isReprint: boolean, userObject: any): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PrintInvoice/${salesorder}/${isReprint}`;\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.printInvoiceEndpoint(salesorder, isReprint, userObject));\r\n }));\r\n }\r\n\r\n postPurchaseOrderToSysproEndpoint(postObject: any): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PostPurchaseOrderToSyspro`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postPurchaseOrderToSysproEndpoint(postObject));\r\n }));\r\n }\r\n\r\n\r\n insertPurchaseOrderStagingEndpoint(postObject: any, salesOrder: string, supplier: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}InsertPurchaseOrderStaging/${salesOrder}/${supplier}`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.insertPurchaseOrderStagingEndpoint(postObject, salesOrder, supplier));\r\n }));\r\n }\r\n\r\n\r\n updatePurchaseOrderStatusEndpoint(PONumber: string, Status: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}UpdatePurchaseOrderStatus/${PONumber}/${Status}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updatePurchaseOrderStatusEndpoint(PONumber, Status));\r\n }));\r\n }\r\n\r\n\r\n updatePurchaseOrderTotalsEndpoint(postObject: any): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}UpdatePurchaseOrderTotals`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updatePurchaseOrderTotalsEndpoint(postObject));\r\n }));\r\n }\r\n\r\n\r\n postGRNToSysproEndpoint(postObject: any): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PostGRNToSyspro`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postGRNToSysproEndpoint(postObject));\r\n }));\r\n }\r\n\r\n\r\n getSysproSessionIdEndpoint(userObject: any, override?: boolean, compOverride?: string): Observable {\r\n let endpointUrl = `${this.salesOrderUrl}GetSysproSessionId`;\r\n if (override && override == true) {\r\n endpointUrl = `${this.salesOrderUrl}GetFowkesSysproSessionId/${override}/${compOverride}`;\r\n }\r\n if (compOverride) {\r\n endpointUrl = `${this.salesOrderUrl}GetFowkesSysproSessionId/${override}/${compOverride}`;\r\n }\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSysproSessionIdEndpoint(userObject, override, compOverride));\r\n }));\r\n }\r\n\r\n getSalesOrderSearchAllEndpoint(): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}SearchAll`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesOrderSearchAllEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getSalesOrderSearchByCriteriaEndpoint(searchOn?: string, searchText?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}SearchByCriteria/${searchOn}/${searchText}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesOrderSearchByCriteriaEndpoint(searchOn, searchText));\r\n }));\r\n }\r\n\r\n\r\n getSalesOrderSearchByCriteriaByCompanyEndpoint(searchOn?: string, searchText?: string, company?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}SalesOrderSearchByCriteriaByCompany/${searchOn}/${searchText}/${company}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesOrderSearchByCriteriaByCompanyEndpoint(searchOn, searchText, company));\r\n }));\r\n }\r\n\r\n\r\n updateInvoiceTotalsEndpoint(application?: string, salesOrderNumber?: string, invoiceNumber?: string\r\n , vat?: number, totalIncl?: number, totalExcl?: number, totalDisc?: number ): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}UpdateInvoiceTotals/${application}/${salesOrderNumber}/${invoiceNumber}/${vat}/${totalIncl}/${totalExcl}/${totalDisc}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateInvoiceTotalsEndpoint(application, salesOrderNumber, invoiceNumber, vat, totalIncl, totalExcl, totalDisc));\r\n }));\r\n }\r\n\r\n getCreditNoteSearchByCriteriaEndpoint(searchOn?: string, searchText?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}CreditNoteSearchByCriteria/${searchOn}/${searchText}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCreditNoteSearchByCriteriaEndpoint(searchOn, searchText));\r\n }));\r\n }\r\n\r\n getSalesOrderHeaderEndpoint(salesOrderNumber?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}GetSalesOrderHeader/${salesOrderNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesOrderHeaderEndpoint(salesOrderNumber));\r\n }));\r\n }\r\n\r\n\r\n getSalesOrderDetailEndpoint(salesOrderNumber?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}GetSalesOrderDetails/${salesOrderNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesOrderDetailEndpoint(salesOrderNumber));\r\n }));\r\n }\r\n\r\n\r\n getEmailEndpoint(emailDetail?: Email): Observable {\r\n const endpointUrl = this.emailUrl;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(emailDetail), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getEmailEndpoint(emailDetail));\r\n }));\r\n }\r\n\r\n\r\n getSMSEndpoint(test?: string): Observable {\r\n \r\n const endpointUrl = `${this.coreCustomersUrl}/SendSMS/${test}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSMSEndpoint(test));\r\n }));\r\n }\r\n\r\n\r\n\r\n getShippingInstructionsEndpoint(): Observable {\r\n const endpointUrl = this.shippingInstructionsUrl;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getShippingInstructionsEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getSalesOrderCancelReasonCodesEndpoint(): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}GetSalesOrderCancelReasonCodes/`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesOrderCancelReasonCodesEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getSalesOrderStatusesEndpoint(): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}GetSalesOrderStatuses/`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesOrderStatusesEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getEstablishmentDetailsEndpoint(company?: string, branchCode?: string): Observable {\r\n\r\n const endpointUrl = `${this.customerbaseUrl}GetEstablishmentDetails/${company}/${branchCode}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getEstablishmentDetailsEndpoint(company, branchCode));\r\n }));\r\n }\r\n\r\n\r\n getInvoiceHeaderEndpoint(salesOrderNumber?: string, invoiceNumber?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}GetInvoiceHeader/${salesOrderNumber}/${invoiceNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceHeaderEndpoint(salesOrderNumber, invoiceNumber));\r\n }));\r\n }\r\n\r\n\r\n getInvoiceDetailEndpoint(salesOrderNumber?: string, invoiceNumber?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}GetInvoiceDetails/${salesOrderNumber}/${invoiceNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceDetailEndpoint(salesOrderNumber, invoiceNumber));\r\n }));\r\n }\r\n\r\n\r\n getCustomerPOListEndpoint(customer?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}GetCustomerPOList/${customer}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCustomerPOListEndpoint(customer));\r\n }));\r\n }\r\n\r\n\r\n\r\n getPurchaseOrderSearchByCriteriaEndpoint(searchCriteria?: string, searchValue?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PurchaseOrderSearch/${searchCriteria}/${searchValue}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPurchaseOrderSearchByCriteriaEndpoint(searchCriteria, searchValue));\r\n }));\r\n }\r\n\r\n\r\n getPurchaseOrderSearchByCriteriaByCompanyEndpoint(searchCriteria?: string, searchValue?: string, company?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PurchaseOrderSearchByCompany/${searchCriteria}/${searchValue}/${company}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPurchaseOrderSearchByCriteriaByCompanyEndpoint(searchCriteria, searchValue, company));\r\n }));\r\n }\r\n\r\n\r\n getPurchaseOrderHeaderEndpoint(purchaseOrder?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}GetPurchaseOrderHeader/${purchaseOrder}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPurchaseOrderHeaderEndpoint(purchaseOrder));\r\n }));\r\n }\r\n\r\n\r\n getPurchaseOrderDetailEndpoint(poNumber?: string): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}GetPurchaseOrderDetails/${poNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPurchaseOrderDetailEndpoint(poNumber));\r\n }));\r\n }\r\n\r\n\r\n PostCoreAuditEndpoint(coreAudit: CoreAudit): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PostCoreAudit`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(coreAudit), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.PostCoreAuditEndpoint(coreAudit));\r\n }));\r\n }\r\n\r\n getInvoiceReprintEndpoint(startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetInvoiceReprintList/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceReprintEndpoint(startDate, endDate));\r\n }));\r\n }\r\n\r\n\r\n getInvoiceReprintDetailsEndpoint(invoiceNumber?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetInvoiceReprintDetails/${invoiceNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceReprintDetailsEndpoint(invoiceNumber));\r\n }));\r\n }\r\n\r\n getQuoteSalesDataEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetQuoteSalesData/${startDate}/${endDate}/${company}/${branch}/${user}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getQuoteSalesDataEndpoint(startDate, endDate, company, branch, user));\r\n }));\r\n }\r\n\r\n\r\n getQuoteSalesSummaryEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetQuoteSalesSummary/${startDate}/${endDate}/${company}/${branch}/${user}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getQuoteSalesSummaryEndpoint(startDate, endDate, company, branch, user));\r\n }));\r\n }\r\n\r\n getCreditNoteSalesEndpoint(startDate?: string, endDate?: string, branch?: string, applicationId?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetCreditNoteSales/${startDate}/${endDate}/${branch}/${applicationId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCreditNoteSalesEndpoint(startDate, endDate, branch, applicationId));\r\n }));\r\n }\r\n\r\n getAllInvoiceTrackingStatusEndpoint(): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetAllInvoiceTrackingStatus`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllInvoiceTrackingStatusEndpoint());\r\n }));\r\n }\r\n\r\n getInvoiceTrackingStatusControlEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetInvoiceTrackingStatusControl/${startDate}/${endDate}/${company}/${branch}/${user}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceTrackingStatusControlEndpoint(startDate, endDate, company, branch, user));\r\n }));\r\n }\r\n\r\n\r\n getInvoiceTrackingStatusDeliveryControlEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetInvoiceTrackingStatusDeliveryControl/${startDate}/${endDate}/${company}/${branch}/${user}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceTrackingStatusDeliveryControlEndpoint(startDate, endDate, company, branch, user));\r\n }));\r\n }\r\n\r\n\r\n getInvoiceTrackingStatusCollectionsControlEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetInvoiceTrackingStatusCollectionsControl/${startDate}/${endDate}/${company}/${branch}/${user}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceTrackingStatusCollectionsControlEndpoint(startDate, endDate, company, branch, user));\r\n }));\r\n }\r\n\r\n getInvoiceTrackingStatusEndpoint(salesOrder?: string, invoiceNumber?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetInvoiceTrackingStatus/${salesOrder}/${invoiceNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceTrackingStatusEndpoint(salesOrder, invoiceNumber));\r\n }));\r\n }\r\n\r\n\r\n postInvoiceTrackingPurgeEndpoint(salesOrder?: string, invoiceNumber?: string, PurgeUser?: string, PurgeReason?: string, LastOperator?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}PostInvoiceTrackingPurge/${salesOrder}/${invoiceNumber}/${PurgeUser}/${encodeURIComponent(PurgeReason)}/${LastOperator}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postInvoiceTrackingPurgeEndpoint(salesOrder, invoiceNumber, PurgeUser, PurgeReason, LastOperator));\r\n }));\r\n }\r\n\r\n\r\n\r\n postInvoiceTrackingCollectedUpdateEndpoint(salesOrder?: string, invoiceNumber?: string, user?: string, status?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}PostInvoiceTrackingCollectedUpdate/${salesOrder}/${invoiceNumber}/${user}/${encodeURIComponent(status)}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postInvoiceTrackingCollectedUpdateEndpoint(salesOrder, invoiceNumber, user, status));\r\n }));\r\n }\r\n\r\n deleteInvoiceTrackingDuplicateEndpoint(salesOrder?: string, invoiceNumber?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}DeleteInvoiceTrackingDuplicate/${salesOrder}/${invoiceNumber}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteInvoiceTrackingDuplicateEndpoint(salesOrder, invoiceNumber));\r\n }));\r\n }\r\n\r\n\r\n\r\n getConfigurationSettingsEndpoint(): Observable {\r\n const endpointUrl = `${this.settingsUrl}/SearchAllConfigurationSettings`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getConfigurationSettingsEndpoint());\r\n }));\r\n }\r\n\r\n\r\n updateConfigurationSettingsEndpoint(Configuration?: string, Value?: string, UserName?: string, EffectiveDate?: string): Observable {\r\n const endpointUrl = `${this.settingsUrl}/UpdateConfigurationSettings/${Configuration}/${Value}/${UserName}/${EffectiveDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateConfigurationSettingsEndpoint(Configuration, Value, UserName, EffectiveDate));\r\n }));\r\n }\r\n\r\n\r\n deleteConfigurationSettingsEndpoint(ID?: number, Configuration?: string): Observable {\r\n const endpointUrl = `${this.settingsUrl}/DeleteConfigurationSettings/${ID}/${Configuration}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteConfigurationSettingsEndpoint(ID, Configuration));\r\n }));\r\n }\r\n\r\n\r\n updateBranchSettingsEndpoint(Branch?: string, PriceOverridePassword?: string, InvoiceReprintPassword?: string,\r\n SalesOrderPassword?: string, PriceCode?: string, LedgerCode?: string): Observable {\r\n const endpointUrl = `${this.settingsUrl}/UpdateBranchSettings/${Branch}/${PriceOverridePassword}/${InvoiceReprintPassword}/${SalesOrderPassword}/${PriceCode}/${LedgerCode}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateBranchSettingsEndpoint(Branch, PriceOverridePassword,\r\n InvoiceReprintPassword, SalesOrderPassword, PriceCode, LedgerCode));\r\n }));\r\n }\r\n\r\n\r\n getSysproTaxCodesEndpoint(): Observable {\r\n const endpointUrl = `${this.settingsUrl}/SearchAllSysproTaxCodes`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSysproTaxCodesEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getInvoiceTrackingProductivityEndpoint(startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetInvoiceTrackingProductivityReport/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceTrackingProductivityEndpoint(startDate, endDate));\r\n }));\r\n }\r\n\r\n\r\n getDebtorsReleaseDataEndpoint(startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetDebtorsReleaseData/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDebtorsReleaseDataEndpoint(startDate, endDate));\r\n }));\r\n }\r\n\r\n getDebtorsReleaseSummaryEndpoint(startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetDebtorsReleaseSummary/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDebtorsReleaseSummaryEndpoint(startDate, endDate));\r\n }));\r\n }\r\n\r\n\r\n getCreditNoteReportDataEndpoint(startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetCreditNoteReportData/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCreditNoteReportDataEndpoint(startDate, endDate));\r\n }));\r\n }\r\n\r\n getCreditNoteReportSummaryEndpoint(startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetCreditNoteReportSummary/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCreditNoteReportSummaryEndpoint(startDate, endDate));\r\n }));\r\n }\r\n\r\n getSalesDataEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string, documentType?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetSalesDataReport/${startDate}/${endDate}/${company}/${branch}/${user}/${documentType}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesDataEndpoint(startDate, endDate, company, branch, user, documentType));\r\n }));\r\n }\r\n\r\n getSalesSummaryEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string, documentType?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetSalesSummaryReport/${startDate}/${endDate}/${company}/${branch}/${user}/${documentType}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesSummaryEndpoint(startDate, endDate, company, branch, user, documentType));\r\n }));\r\n }\r\n\r\n\r\n getSalesRepDataEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string, documentType?: string, rep?: string, customer?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetSalesRepData/${startDate}/${endDate}/${company}/${branch}/${user}/${documentType}/${rep}/${customer}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesRepDataEndpoint(startDate, endDate, company, branch, user, documentType, rep, customer));\r\n }));\r\n }\r\n\r\n getSalesRepSummaryEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string, documentType?: string, rep?: string, customer?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetSalesRepSummaryReport/${startDate}/${endDate}/${company}/${branch}/${user}/${documentType}/${rep}/${customer}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesRepSummaryEndpoint(startDate, endDate, company, branch, user, documentType, rep, customer));\r\n }));\r\n }\r\n\r\n\r\n getInvoiceBarcodeSyncReportEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, customer?: string, documentType?: string): Observable {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetInvoiceBarcodeSyncReport/${startDate}/${endDate}/${company}/${branch}/${customer}/${documentType}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceBarcodeSyncReportEndpoint(startDate, endDate, company, branch, customer, documentType));\r\n }));\r\n }\r\n\r\n\r\n getBarcodeForInvoiceSyncEndpoint(invoice?: string, branch?: string): Observable {\r\n const endpointUrl = `${this._mysqlDocumentUrl}SyncDocumentsForInvoice/${invoice}/${branch}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBarcodeForInvoiceSyncEndpoint(invoice, branch));\r\n }));\r\n }\r\n\r\n\r\n syncMultipleInvoicesEndpoint(invoices: { invoice: string; branch: string }[]): Observable {\r\n const endpointUrl = `${this._mysqlDocumentUrl}SyncDocumentsForInvoices`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(invoices), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.syncMultipleInvoicesEndpoint(invoices));\r\n }));\r\n }\r\n\r\n\r\n getInvoiceDocumentsSearchByCriteriaEndpoint(searchOn?: string, searchText?: string): Observable {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetInvoiceDocumentsSearchByCriteria/${searchOn}/${searchText}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceDocumentsSearchByCriteriaEndpoint(searchOn, searchText));\r\n }));\r\n }\r\n\r\n\r\n updateBarcodeExcludedForInvoiceSyncEndpoint(invoice?: string): Observable {\r\n const endpointUrl = `${this._mysqlDocumentUrl}UpdateBarcodeReferenceExclude/${invoice}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateBarcodeExcludedForInvoiceSyncEndpoint(invoice));\r\n }));\r\n }\r\n\r\n syncFileReferencesByDateEndpoint(month?: string, day?: string): Observable {\r\n const endpointUrl = `${this._mysqlDocumentUrl}SyncFilesByDate/${month}/${day}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.syncFileReferencesByDateEndpoint(month, day));\r\n }));\r\n }\r\n\r\n\r\n getBarcodesAvailableReportEndpoint(startDate?: string, endDate?: string, company?: string, branch?: string, status?: string): Observable {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetBarcodesAvailableReport/${startDate}/${endDate}/${company}/${branch}/${status}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBarcodesAvailableReportEndpoint(startDate, endDate, company, branch, status));\r\n }));\r\n }\r\n\r\n\r\n getSysproUserDetailListEndpoint(): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetSysproUserDetailList`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSysproUserDetailListEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getSysproUserDetailListByCompanyEndpoint(company?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetSysproUserDetailListByCompany/${company}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSysproUserDetailListByCompanyEndpoint(company));\r\n }));\r\n }\r\n\r\n getMySQLDocumentsEndpoint(): Observable {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetAllDocuments`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getMySQLDocumentsEndpoint());\r\n }));\r\n }\r\n\r\n getDocumentsPerMonth(year?:string, month?: string): Observable {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetAllDocumentsPerMonth/${year}/${month}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDocumentsPerMonth(year, month));\r\n }));\r\n }\r\n\r\n getDocumentByPrimaryKey(barcode: string, prefix: string) {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetDocumentByPrimaryKey/${barcode}/${prefix}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDocumentByPrimaryKey(barcode, prefix));\r\n }));\r\n }\r\n\r\n getDocumentsByRange(from: string, to: string) {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetDocumentsByRange/${from}/${to}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDocumentsByRange(from, to));\r\n }));\r\n }\r\n\r\n getDocumentsByDateRange(start: string, end: string) {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetDocumentsByDateRange/${start}/${end}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDocumentsByDateRange(start, end));\r\n }));\r\n }\r\n\r\n getBarcodeReferencesEndpoint(start: string, end: string, company: string, branch: string, batchFrom: string, batchTo: string) {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetBarcodeReferences/${start}/${end}/${company}/${branch}/${batchFrom}/${batchTo}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBarcodeReferencesEndpoint(start, end, company, branch, batchFrom, batchTo));\r\n }));\r\n }\r\n\r\n getBarcodesUnallocatedEndpoint(start: string, end: string, company: string, branch: string, batchFrom: string, batchTo: string) {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetBarcodesUnallocated/${start}/${end}/${company}/${branch}/${batchFrom}/${batchTo}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBarcodesUnallocatedEndpoint(start, end, company, branch, batchFrom, batchTo));\r\n }));\r\n }\r\n\r\n\r\n getFileStream(fileName: string, bnumber: number) {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetFileStream/${fileName}/${bnumber}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFileStream(fileName, bnumber));\r\n }));\r\n }\r\n\r\n getPODByInvoice(invoice: string) {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetPODByInvoice/${invoice}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPODByInvoice(invoice));\r\n }));\r\n }\r\n\r\n\r\n GetCreditNoteDetailsForInvoiceEndpoint(invoice: string) {\r\n const endpointUrl = `${this._mysqlDocumentUrl}GetCreditNoteDetailsForInvoice/${invoice}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.GetCreditNoteDetailsForInvoiceEndpoint(invoice));\r\n }));\r\n }\r\n\r\n deletePOD(invoice: string, fileNumber: number) {\r\n const endpointUrl = `${this._mysqlDocumentUrl}DeletePOD/${invoice}/${fileNumber}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deletePOD(invoice, fileNumber));\r\n }));\r\n }\r\n\r\n savePOD(pod: BarcodeReference, invoice: string) {\r\n const endpointUrl = `${this._mysqlDocumentUrl}SavePOD/${invoice}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(pod), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.savePOD(pod, invoice));\r\n }));\r\n }\r\n\r\n\r\n\r\n updateSalesStatsEndpoint(reference?: string, description?: string, value?: number): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}UpdateSalesStats/${reference}/${description}/${value}`;\r\n return this.http.put(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateSalesStatsEndpoint(reference, description, value));\r\n }));\r\n }\r\n\r\n\r\n\r\n\r\n getSalesStatsEndpoint(startDate?: string, endDate?: string, company?: string, user?: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetSalesStats/${startDate}/${endDate}/${company}/${user}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSalesStatsEndpoint(startDate, endDate, company, user));\r\n }));\r\n }\r\n\r\n getDocumentCatergories(expandIndex: Number) {\r\n const endpointUrl = `${this._documentManagementUrl}GetAllCategories/${expandIndex}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'string' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDocumentCatergories(expandIndex));\r\n }));\r\n }\r\n\r\n getVideos() {\r\n const endpointUrl = `${this._inventoryManagementUrl}GetAllVideos`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getVideos());\r\n }));\r\n }\r\n\r\n editVideoEndpoint(video: Video, id: number) {\r\n const endpointUrl = `${this._inventoryManagementUrl}EditVideo/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(video), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.editVideoEndpoint(video, id));\r\n }));\r\n }\r\n\r\n newVideoEndpoint(video: Video) {\r\n const endpointUrl = `${this._inventoryManagementUrl}NewVideo`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(video), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.newVideoEndpoint(video));\r\n }));\r\n }\r\n\r\n deleteVideoEndpoint(id: number) {\r\n const endpointUrl = `${this._inventoryManagementUrl}DeleteVideo/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteVideoEndpoint(id));\r\n }));\r\n }\r\n\r\n postFileDataEndPoint(formData: FormData, cmsType?: string, fileName?: string) {\r\n const endpointUrl = `${this._inventoryManagementUrl}UploadFiles/${cmsType}/${encodeURIComponent(fileName)}`;\r\n\r\n return this.http.post(endpointUrl,formData).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postFileDataEndPoint(formData, cmsType, fileName));\r\n }));\r\n }\r\n\r\n\r\n postAdditionalFileDataEndPoint(formData: FormData, cmsType?: string, fileName?: string) {\r\n const endpointUrl = `${this._inventoryManagementUrl}UploadAdditionalFiles/${cmsType}/${encodeURIComponent(fileName)}`;\r\n\r\n return this.http.post(endpointUrl, formData).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postAdditionalFileDataEndPoint(formData, cmsType, fileName));\r\n }));\r\n }\r\n\r\n\r\n getBrands() {\r\n const endpointUrl = `${this._inventoryDetailurl}/GetAllBrands`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBrands());\r\n }));\r\n }\r\n\r\n\r\n addDocumentCategoryEndpoint(category: DocumentCategory): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}AddNewDocumentCategory`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(category), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addDocumentCategoryEndpoint(category));\r\n }));\r\n }\r\n\r\n updateDocumentCategoryEndpoint(category: DocumentCategory, id?: number): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}EditDocumentCategory/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(category), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateDocumentCategoryEndpoint(category, id));\r\n }));\r\n }\r\n\r\n deleteDocumentCategoryEndpoint(id: number): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}DeleteDocumentCategory/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteDocumentCategoryEndpoint(id));\r\n }));\r\n }\r\n\r\n getDocumentsForCategoryEndPoint(id: number): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}GetDocumentsForCategory/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDocumentsForCategoryEndPoint(id));\r\n }));\r\n }\r\n\r\n postDocumentEndPoint(formData: FormData, cmsType?: string, fileName?: string) {\r\n const endpointUrl = `${this._documentManagementUrl}UploadFiles/${cmsType}/${encodeURIComponent(fileName)}`;\r\n\r\n return this.http.post(endpointUrl, formData).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postDocumentEndPoint(formData, cmsType, fileName));\r\n }));\r\n }\r\n\r\n\r\n\r\n\r\n GetAllCMStockCodesEndpoint() {\r\n const endpointUrl = `${this._inventoryManagementUrl}GetAllCMStockCodes`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.GetAllCMStockCodesEndpoint());\r\n }));\r\n }\r\n\r\n\r\n addCMStockCodeEndpoint(stockCode: CMStockCode): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}AddNewCMStockCode`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(stockCode), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addCMStockCodeEndpoint(stockCode));\r\n }));\r\n }\r\n\r\n updateCMStockCodeEndpoint(stockCode: CMStockCode, id?: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}EditCMStockCode/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(stockCode), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateCMStockCodeEndpoint(stockCode, id));\r\n }));\r\n }\r\n\r\n\r\n\r\n addNewCMSAdditionalImageEndpoint(item: CMSAdditionalImage): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}AddNewCMSAdditionalImage`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(item), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addNewCMSAdditionalImageEndpoint(item));\r\n }));\r\n }\r\n\r\n deleteCMSAdditionalImageEndpoint(id: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}DeleteCMSAdditionalImage/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteCMSAdditionalImageEndpoint(id));\r\n }));\r\n }\r\n\r\n\r\n getAdditionalImagesForStockCodeEndPoint(id: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}GetAdditionalImagesForStockCode/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAdditionalImagesForStockCodeEndPoint(id));\r\n }));\r\n }\r\n\r\n\r\n\r\n UpdateStockCodeImageSysproEndpoint(stockCode: string, image?: string): Observable {\r\n const endpointUrl = `${this._inventoryBaseUrl}UpdateStockCodeImageSyspro/${encodeURIComponent(stockCode)}/${image}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.UpdateStockCodeImageSysproEndpoint(stockCode, image));\r\n }));\r\n }\r\n\r\n deleteCMStockCodeEndpoint(id: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}DeleteStockCode/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteCMStockCodeEndpoint(id));\r\n }));\r\n }\r\n\r\n getDocumentsForStockCodeEndPoint(id: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}GetDocumentsForStockCode/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDocumentsForStockCodeEndPoint(id));\r\n }));\r\n }\r\n\r\n\r\n GetAllCMCategoriesEndpoint(name?: string) {\r\n let endpointUrl = \"\";\r\n if (name) {\r\n endpointUrl = `${this._inventoryManagementUrl}GetAllCMSCategoriesForParent/${name}`;\r\n }\r\n else {\r\n\r\n endpointUrl = `${this._inventoryManagementUrl}GetAllCMSCategories`;\r\n }\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.GetAllCMCategoriesEndpoint(name));\r\n }));\r\n }\r\n\r\n\r\n addCMCategoryEndpoint(category: CMCategories): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}AddNewCMCategory`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(category), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addCMCategoryEndpoint(category));\r\n }));\r\n }\r\n\r\n updateCMCategoryEndpoint(category: CMCategories, id?: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}EditCMCategory/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(category), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateCMCategoryEndpoint(category, id));\r\n }));\r\n }\r\n\r\n deleteCMCategoryEndpoint(id: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}DeleteCMCategory/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteCMCategoryEndpoint(id));\r\n }));\r\n }\r\n\r\n\r\n getStockCodesForCategoryEndPoint(id: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}GetStockCodesForCategory/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCodesForCategoryEndPoint(id));\r\n }));\r\n }\r\n\r\n\r\n getSimpleDocumentTreeEndpoint(categoryName?: string) {\r\n const endpointUrl = `${this._documentManagementUrl}CMSDocumentTree/${categoryName}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSimpleDocumentTreeEndpoint(categoryName));\r\n }));\r\n }\r\n\r\n\r\n GetAllDocumentCategoriesListEndpoint() {\r\n let endpointUrl = `${this._documentManagementUrl}GetAllDocumentCategoriesList`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.GetAllDocumentCategoriesListEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getAllRepoDocsEndpoint() {\r\n const endpointUrl = `${this._documentManagementUrl}GetAllRepoDocs`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllRepoDocsEndpoint());\r\n }));\r\n }\r\n\r\n\r\n addNewDocEndpoint(doc: DocumentManagmement): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}AddNewRepoDoc`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(doc), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addNewDocEndpoint(doc));\r\n }));\r\n }\r\n\r\n\r\n updateRepoDocEndpoint(doc: DocumentManagmement, id?: number): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}EditRepoDoc/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(doc), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateRepoDocEndpoint(doc, id));\r\n }));\r\n }\r\n\r\n deleteRepoDocEndpoint(id: number): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}DeleteRepoDoc/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteRepoDocEndpoint(id));\r\n }));\r\n }\r\n\r\n addBrandEndpoint(brand: Brand): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}AddNewBrand`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(brand), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addBrandEndpoint(brand));\r\n }));\r\n }\r\n\r\n updateBrandEndpoint(brand: Brand, id?: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}EditBrand/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(brand), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateBrandEndpoint(brand, id));\r\n }));\r\n }\r\n\r\n deleteBrandEndpoint(id: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}DeleteBrand/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteBrandEndpoint(id));\r\n }));\r\n }\r\n\r\n getStockCodesForBrandEndPoint(id: number): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}GetStockCodesForBrand/${id}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCodesForBrandEndPoint(id));\r\n }));\r\n }\r\n\r\n\r\n getAllCMCatergoriesTreeEndpoint(expandIndex: Number) {\r\n const endpointUrl = `${this._inventoryManagementUrl}GetAllStockCodeCategories/${expandIndex}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'string' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllCMCatergoriesTreeEndpoint(expandIndex));\r\n }));\r\n }\r\n\r\n\r\n GetAllStockCodesAndCategoriesMissingImagesEndpoint(expandIndex: Number) {\r\n const endpointUrl = `${this._inventoryManagementUrl}GetAllStockCodesAndCategoriesMissingImages/${expandIndex}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'string' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.GetAllStockCodesAndCategoriesMissingImagesEndpoint(expandIndex));\r\n }));\r\n }\r\n\r\n\r\n GetAllCMSCategoryMissingImagesEndpoint(name?: string) {\r\n let endpointUrl = \"\";\r\n if (name) {\r\n endpointUrl = `${this._inventoryManagementUrl}GetAllCMSCategoriesForParent/${name}`;\r\n }\r\n else {\r\n\r\n endpointUrl = `${this._inventoryManagementUrl}GetAllCMSCategoryMissingImages`;\r\n }\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.GetAllCMSCategoryMissingImagesEndpoint(name));\r\n }));\r\n }\r\n\r\n\r\n GetAllCMStockCodesMissingImagesEndpoint(name?: string) {\r\n let endpointUrl = \"\";\r\n if (name) {\r\n endpointUrl = `${this._inventoryManagementUrl}GetAllCMSCategoriesForParent/${name}`;\r\n }\r\n else {\r\n\r\n endpointUrl = `${this._inventoryManagementUrl}GetAllCMStockCodesMissingImages`;\r\n }\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.GetAllCMStockCodesMissingImagesEndpoint(name));\r\n }));\r\n }\r\n\r\n\r\n\r\n GetAllCMSOrphanFileImagesEndpoint() {\r\n let endpointUrl = `${this._inventoryManagementUrl}GetAllCMSOrphanFileImages`;\r\n \r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.GetAllCMSOrphanFileImagesEndpoint());\r\n }));\r\n }\r\n\r\n\r\n GetAllCMStockCodesMissingDataSheetsEndpoint(name?: string) {\r\n let endpointUrl = \"\";\r\n if (name) {\r\n endpointUrl = `${this._inventoryManagementUrl}GetAllCMSCategoriesForParent/${name}`;\r\n }\r\n else {\r\n\r\n endpointUrl = `${this._inventoryManagementUrl}GetAllCMStockCodesMissingDataSheets`;\r\n }\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.GetAllCMStockCodesMissingDataSheetsEndpoint(name));\r\n }));\r\n }\r\n\r\n getInvoiceTrackingStatusControlDirectEndPoint(startDate?: string, endDate?: string, company?: string): Observable {\r\n const endpointUrl = `${this._inventoryManagementUrl}GetInvoiceTrackingStatusControlDirect/${startDate}/${endDate}/${company}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInvoiceTrackingStatusControlDirectEndPoint(startDate, endDate, company));\r\n }));\r\n }\r\n\r\n\r\n getMissingITSEndpoint(): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetMissingITSRecords`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getMissingITSEndpoint());\r\n }));\r\n }\r\n\r\n\r\n addInvoiceTrackingLookupEndpoint(ITS: InvoiceTrackingLookup): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}InsertITSLookup`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(ITS), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addInvoiceTrackingLookupEndpoint(ITS));\r\n }));\r\n }\r\n\r\n\r\n uploadBankFilesEndPoint(formData: FormData, company?: string, fileName?: string, bank?: string, period?: string) {\r\n const endpointUrl = `${this._documentManagementUrl}UploadBankFiles/${company}/${encodeURIComponent(fileName)}/${bank}/${period}`;\r\n\r\n return this.http.post(endpointUrl, formData).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.uploadBankFilesEndPoint(formData, company, fileName, bank, period));\r\n }));\r\n }\r\n\r\n\r\n postPaymentsToSysproEndpoint(postObject: any): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PostPaymentToSyspro`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postPaymentsToSysproEndpoint(postObject));\r\n }));\r\n }\r\n\r\n\r\n postSinglePaymentToSysproEndpoint(postObject: any): Observable {\r\n const endpointUrl = `${this.salesOrderUrl}PostSinglePaymentToSyspro`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postSinglePaymentToSysproEndpoint(postObject));\r\n }));\r\n }\r\n\r\n\r\n getBankImportByCompanyEndPoint(company?: string): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}GetBankImportByCompany/${company}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBankImportByCompanyEndPoint(company));\r\n }));\r\n }\r\n\r\n\r\n getBankImportOverviewEndPoint(): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}GetBankImportOverview`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBankImportOverviewEndPoint());\r\n }));\r\n }\r\n\r\n\r\n getBankImportByFileNameEndPoint(fileName?: string): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}GetBankImportByFileName/${fileName}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBankImportByFileNameEndPoint(fileName));\r\n }));\r\n }\r\n\r\n\r\n updateBankImportLineEndpoint(postObject: any, id: number): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}EditBankImportLine/${id}`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateBankImportLineEndpoint(postObject, id));\r\n }));\r\n }\r\n\r\n\r\n getBankImportLatestEndpoint(company?: string, bankReference?: string, trnYear?: string, trnMonth?: string, customer?: string, startDate?: string, endDate?: string\r\n , searchType?: string, fileName?: string, userName?: string): Observable {\r\n const endpointUrl = `${this._documentManagementUrl}GetBankImportLatest/${company}/${bankReference}/${trnYear}/${trnMonth}/${customer}/${startDate}/${endDate}/${searchType}/${fileName}/${userName}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getBankImportLatestEndpoint(company, bankReference, trnYear, trnMonth, customer, startDate, endDate, searchType, fileName, userName));\r\n }));\r\n }\r\n\r\n\r\n getSysproBankListEndpoint(): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetSysproBankDetailList`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSysproBankListEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getSysproPaymentRunHeaderEndpoint(): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetSysproPaymentRunHeaderList`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSysproPaymentRunHeaderEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getSysproPaymentRunDetailListEndpoint(paymentNumber: string): Observable {\r\n const endpointUrl = `${this._salesMenuReportsUrl}GetSysproPaymentRunDetailList/${paymentNumber}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSysproPaymentRunDetailListEndpoint(paymentNumber));\r\n }));\r\n }\r\n\r\n getCategoryCatalogueListEndpoint(branch?: string, searchOn?: string, searchText?: string, filter?: string): Observable {\r\n const endpointUrl = `${this.inventoryDetailUrl}/GetCategoryCatalogueList/${branch}/${searchOn}/${searchText}/${filter}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCategoryCatalogueListEndpoint(branch, searchOn, searchText, filter));\r\n }));\r\n }\r\n\r\n ///Report for Ryan\r\n getCatalogueUseReportDataEndpoint(startDate?: string, endDate?: string): Observable {\r\n const endpointUrl = `${this.inventoryDetailUrl}/GetCatalogueUseReportData/${startDate}/${endDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getCatalogueUseReportDataEndpoint(startDate, endDate));\r\n }));\r\n }\r\n\r\n\r\n getAllInfoNotesEndpoint(): Observable {\r\n const endpointUrl = `${this.settingsUrl}/GetAllInfoNotes`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllInfoNotesEndpoint());\r\n }));\r\n }\r\n\r\n\r\n addInfoNoteEndpoint(info: InfoBoardNotes): Observable {\r\n const endpointUrl = `${this.settingsUrl}/AddNewInfoNote`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(info), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addInfoNoteEndpoint(info));\r\n }));\r\n }\r\n\r\n updateInfoNoteEndpoint(info: InfoBoardNotes, id?: number): Observable {\r\n const endpointUrl = `${this.settingsUrl}/EditInfoNote/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(info), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updateInfoNoteEndpoint(info, id));\r\n }));\r\n }\r\n\r\n deleteInfoNoteEndpoint(id: number): Observable {\r\n const endpointUrl = `${this.settingsUrl}/DeleteInfoNote/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteInfoNoteEndpoint(id));\r\n }));\r\n }\r\n\r\n postInfoFileEndPoint(formData: FormData, cmsType?: string, fileName?: string) {\r\n const endpointUrl = `${this.settingsUrl}/UploadInfoFiles/${cmsType}/${encodeURIComponent(fileName)}`;\r\n\r\n return this.http.post(endpointUrl, formData).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postInfoFileEndPoint(formData, cmsType, fileName));\r\n }));\r\n }\r\n\r\n\r\n getInfoFileEndpoint(fileName: string) {\r\n const endpointUrl = `${this.settingsUrl}/GetInfoFile/${fileName}`;\r\n\r\n return this.http.get(endpointUrl, { responseType: 'blob' as 'json' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInfoFileEndpoint(fileName));\r\n }));\r\n }\r\n\r\n\r\n //Core Customers\r\n getAllPricingCustomersEndpoint(): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/GetAllPricingCustomers`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllPricingCustomersEndpoint());\r\n }));\r\n }\r\n\r\n getPricingCustomerEndpoint(customer: string, application: string): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/GetCorePricingCustomer/${customer}/${application}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPricingCustomerEndpoint(customer, application));\r\n }));\r\n }\r\n\r\n\r\n updatePricingCustomerEndpoint(customer: CoreCustomer, id?: number): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/EditPricingCustomer/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(customer), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updatePricingCustomerEndpoint(customer, id));\r\n }));\r\n }\r\n\r\n addNewPricingCustomerEndpoint(customer: CoreCustomer): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/AddNewPricingCustomer`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(customer), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addNewPricingCustomerEndpoint(customer));\r\n }));\r\n }\r\n\r\n getAllPricingCustomerRulesEndpoint(CustomerId?: number): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/GetAllPricingCustomerRules/${CustomerId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllPricingCustomerRulesEndpoint(CustomerId));\r\n }));\r\n }\r\n\r\n\r\n updatePricingCustomerRuleEndpoint(rule: CoreCustomerRule, id?: number, company?: string, branch?: string): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/EditPricingCustomerRule/${id}/${company}/${branch}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(rule), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updatePricingCustomerRuleEndpoint(rule, id, company, branch));\r\n }));\r\n }\r\n\r\n addNewPricingCustomerRuleEndpoint(rule: CoreCustomerRule, company: string, branch: string): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/AddNewPricingCustomerRule/${company}/${branch}`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(rule), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addNewPricingCustomerRuleEndpoint(rule, company, branch));\r\n }));\r\n }\r\n\r\n deletePricingCustomerRuleEndpoint(id: number): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/DeletePricingCustomerRule/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deletePricingCustomerRuleEndpoint(id));\r\n }));\r\n }\r\n\r\n //PRICES\r\n\r\n getAllPricingCustomerPricesEndpoint(CustomerId?: number): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/GetAllPricingCustomerPrices/${CustomerId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllPricingCustomerPricesEndpoint(CustomerId));\r\n }));\r\n }\r\n\r\n\r\n getAllPricingCustomerPricesForCustomerCodeEndpoint(CustomerCode?: string, Application?: string): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/GetAllPricingCustomerPricesForCustomerCode/${CustomerCode}/${Application}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllPricingCustomerPricesForCustomerCodeEndpoint(CustomerCode, Application));\r\n }));\r\n }\r\n\r\n //GetAllPricingCustomerPricesForCustomerCodeInventorySelect\r\n\r\n getAllPricingCustomerPricesForCustomerCodeInventorySelectEndpoint(CustomerCode?: string, Application?: string): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/GetAllPricingCustomerPricesForCustomerCodeInventorySelect/${CustomerCode}/${Application}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllPricingCustomerPricesForCustomerCodeInventorySelectEndpoint(CustomerCode, Application));\r\n }));\r\n }\r\n\r\n updatePricingCustomerPriceEndpoint(price: CoreCustomerPrices, id?: number): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/EditPricingCustomerPrice/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(price), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.updatePricingCustomerPriceEndpoint(price, id));\r\n }));\r\n }\r\n\r\n addNewPricingCustomerPriceEndpoint(price: CoreCustomerPrices): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/AddNewPricingCustomerPrice`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(price), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addNewPricingCustomerPriceEndpoint(price));\r\n }));\r\n }\r\n\r\n deletePricingCustomerPriceEndpoint(id: number): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/DeletePricingCustomerPrice/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deletePricingCustomerPriceEndpoint(id));\r\n }));\r\n }\r\n\r\n\r\n deleteAllPricingCustomerPricesForRuleEndpoint(ruleId: number): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/DeleteAllPricingCustomerPricesForRule/${ruleId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.deleteAllPricingCustomerPricesForRuleEndpoint(ruleId));\r\n }));\r\n }\r\n\r\n\r\n getStockCodePriceDetailEndpoint(stockCode?: string): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/GetStockCodePriceDetail/${encodeURIComponent(stockCode)}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCodePriceDetailEndpoint(stockCode));\r\n }));\r\n }\r\n\r\n getSuppliersForCustomerPricingEndpoint(): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/GetSuppliersForCustomerPricing`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSuppliersForCustomerPricingEndpoint());\r\n }));\r\n } \r\n\r\n\r\n getStockCodePriceDetailForSupplierEndpoint(supplier?: string): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/GetStockCodePriceDetailForSupplier/${encodeURIComponent(supplier)}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCodePriceDetailForSupplierEndpoint(supplier));\r\n }));\r\n }\r\n\r\n\r\n getStockCodePriceDetailForCategoryEndpoint(categoryId?: number): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/GetStockCodePriceDetailForCategory/${categoryId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getStockCodePriceDetailForCategoryEndpoint(categoryId));\r\n }));\r\n }\r\n\r\n\r\n applyDefaultPricesToCustomerListEndpoint(postObject: any, application: string, user: string, enabled?: boolean): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/ApplyDefaultPricesToCustomerList/${application}/${user}/${enabled}`;\r\n return this.http.put(endpointUrl, JSON.stringify(postObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.applyDefaultPricesToCustomerListEndpoint(postObject, application, user, enabled ));\r\n }));\r\n }\r\n\r\n\r\n resetCustomerPricingEndpoint(application: string, customer: string): Observable {\r\n const endpointUrl = `${this.coreCustomersUrl}/ResetCustomerPricing/${application}/${customer}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.resetCustomerPricingEndpoint(application, customer));\r\n }));\r\n }\r\n\r\n getAllInboxMessagesEndpoint(): Observable {\r\n const endpointUrl = `${this.whatsappUrl}GetAllInboxMessages`;\r\n //GetAllInboxMessages\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllInboxMessagesEndpoint());\r\n }));\r\n }\r\n\r\n\r\n\r\n getInboxMessagesAsyncEndpoint(): Observable {\r\n const endpointUrl = `${this.whatsappUrl}GetInboxMessagesAsync`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getInboxMessagesAsyncEndpoint());\r\n }));\r\n }\r\n\r\n\r\n getAllOutboxMessagesEndpoint(): Observable {\r\n const endpointUrl = `${this.whatsappUrl}GetAllOutboxMessages`;\r\n //GetAllInboxMessages\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getAllOutboxMessagesEndpoint());\r\n }));\r\n }\r\n\r\n sendwappReplyEndpoint(sendTo: string, message: string, user: string): Observable {\r\n const endpointUrl = `SendReply/${sendTo}/${encodeURIComponent(message)}/${user}`;\r\n\r\n return this.http.post(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.sendwappReplyEndpoint(sendTo, message, user));\r\n }));\r\n }\r\n\r\n ///TestWhatsappWithFile/{sendTo}/{message}/{fileName}\r\n\r\n sendwappWithQuoteEndpoint(sendTo: string, fileName: string, user: string ): Observable {\r\n const endpointUrl = `SendWhatsappWithQuote/${sendTo}/${fileName}/${user}`;\r\n\r\n return this.http.post(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.sendwappWithQuoteEndpoint(sendTo, fileName, user));\r\n }));\r\n }\r\n\r\n sendwappWithPDFEndpoint(sendTo: string, fileName: string, user: string, fileType: string, parameter: string): Observable {\r\n const endpointUrl = `SendWhatsappWithPDF/${sendTo}/${encodeURIComponent(fileName)}/${user}/${fileType}/${parameter}`;\r\n\r\n return this.http.post(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.sendwappWithPDFEndpoint(sendTo, fileName, user, fileType, parameter));\r\n }));\r\n }\r\n \r\n resendWhatsappEndpoint(message?: Outbox, user?: string): Observable {\r\n const endpointUrl = `ResendWhatsapp/${user}`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(message), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.resendWhatsappEndpoint(message, user));\r\n }));\r\n }\r\n\r\n getWappOptInDetailsEndpoint(userName?: string): Observable {\r\n const endpointUrl = `${this.whatsappUrl}GetWappOptIn/${userName}`;\r\n\r\n return this.http.post(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getWappOptInDetailsEndpoint(userName));\r\n }));\r\n }\r\n\r\n addWappOptInDetailsEndpoint(userDetails?: OptIns): Observable {\r\n const endpointUrl = `${this.whatsappUrl}SaveUserForOptIn`;\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(userDetails), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.addWappOptInDetailsEndpoint(userDetails));\r\n }));\r\n }\r\n\r\n\r\n\r\n getUserTelEndpoint(loggedInUser?: string): Observable {\r\n const endpointUrl = `${this.whatsappUrl}GetLoggedInUserTel/${loggedInUser}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserTelEndpoint(loggedInUser));\r\n }));\r\n }\r\n\r\n\r\n GetMetaUserDetailsEndpoint(loggedInUser?: string): Observable {\r\n const endpointUrl = `${this.whatsappUrl}GetMetaUserDetailsEndpoint/${encodeURIComponent(loggedInUser)}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.GetMetaUserDetailsEndpoint(loggedInUser));\r\n }));\r\n }\r\n\r\n\r\n sendTemplateWithFileEndpoint(filename?: string, fileType?: string, recipient_number?: string, user?: string, parameter?: string): Observable {\r\n const endpointUrl = `${this.whatsappUrl}SendTemplateWithFile/${encodeURIComponent(filename)}/${fileType}/${recipient_number}/${user}/${parameter}`;\r\n\r\n return this.http.post(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.sendTemplateWithFileEndpoint(filename, fileType, recipient_number, user, parameter));\r\n }));\r\n }\r\n\r\n\r\n sendTemplateNoFileEndpoint(recipient_number?: string, user?: string, parameter?: string): Observable {\r\n const endpointUrl = `${this.whatsappUrl}SendTemplateNoFile/${recipient_number}/${user}/${parameter}`;\r\n\r\n return this.http.post(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.sendTemplateNoFileEndpoint(recipient_number, user, parameter));\r\n }));\r\n }\r\n\r\n\r\n //getDPDtrackAndTraceEndpoint(waybillNumber?: string): Observable {\r\n\r\n // var dpdURL = \"https://swatws.dawnwing.co.za/dwwebservices/v2/live/api/Token\";\r\n // const header = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n\r\n // const params = new HttpParams()\r\n // .append('userName', \"FOWKESBROS\")\r\n // .append('password', \"FoWK3SBR0S\");\r\n\r\n // return this.http.post(dpdURL, params, { headers: header });\r\n\r\n\r\n // //const endpointUrl = `${dpdURL}/Token`;\r\n // //var postObject = {\r\n // // \"userName\": \"FOWKESBROS\",\r\n // // \"password\": \"FoWK3SBR0S\"\r\n // //};\r\n\r\n // //return this.http.post(endpointUrl, JSON.stringify(postObject)).pipe(\r\n // // catchError(error => {\r\n // // return this.handleError(error, () => this.getDPDtrackAndTraceEndpoint(waybillNumber));\r\n // // }));\r\n //}\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { SysproEndpoint } from './syspro-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { ArCustomer } from '../models/arcustomer.model';\r\nimport { ArNarration } from '../models/arnarration.model';\r\nimport { SalesPerson } from '../models/salesperson.model';\r\nimport { Inventory } from '../models/inventory.model';\r\nimport { CartDetail } from '../models/cart-detail.model';\r\nimport { Supplier } from '../models/supplier.model';\r\nimport { WHAvailQTY } from '../models/inventory-wh.model';\r\nimport { CustomerMovements } from '../models/customer-movements.model';\r\nimport { CustomerPayments } from '../models/customer-payments.model';\r\nimport { QuoteDetail } from '../models/quote-detail.model';\r\nimport { QuoteHeader } from '../models/quote-header.model';\r\nimport { QuoteList } from '../models/quote-list.model';\r\nimport { Email } from '../models/email.model';\r\nimport { ShippingInstr } from '../models/shipping-instructions.model';\r\nimport { Establishment } from '../models/company-establishment.model';\r\nimport { SalesOrderList } from '../models/salesorder-list.model';\r\nimport { SalesOrderHeader } from '../models/salesorder-header.model';\r\nimport { SalesOrderDetail } from '../models/salesorder-detail.model';\r\nimport { SalesOrderStatus } from '../models/salesorder-status.model';\r\nimport { SalesOrderCancelReasonCode } from '../models/salesorder-cancelreasons.model';\r\nimport { InvoiceHeader } from '../models/invoice-header.model';\r\nimport { InvoiceDetail } from '../models/invoice-detail.model';\r\nimport { PurchaseOrderList } from '../models/purchaseorder-list.model';\r\nimport { PurchaseOrderHeader } from '../models/purchaseorder-header.model';\r\nimport { PurchaseOrderDetail } from '../models/purchaseorder-detail.model';\r\nimport { InvoiceReprint } from '../models/invoice-reprint.model';\r\nimport { SalesReportData } from '../models/sales-report.model';\r\nimport { CreditNoteSalesReport } from '../models/creditnote-report.model';\r\nimport { InvoiceTrackingStatus } from '../models/invoice-tracking-status.model';\r\n\r\nimport { User } from '../models/user.model';\r\nimport { CartHeader } from '../models/cart-header.model';\r\nimport { CoreAudit } from '../models/core-audit.model';\r\nimport { start } from 'repl';\r\nimport { ConfigurationSettings } from '../models/configuration-settings.model';\r\nimport { TaxCodes } from '../models/tax-code.model';\r\nimport { Branch } from '../models/branch.model';\r\nimport { InvoiceTrackingProductivity } from '../models/invoice-tracking-productivity.model';\r\nimport { QuoteSalesReport } from '../models/quote-sales-report.model';\r\nimport { SysproUser } from '../models/syspro-user.model';\r\nimport { SalesReportSummary } from '../models/sales-report-summary.model';\r\nimport { MySQLDocument } from '../models/mysqldocument.model';\r\nimport { QuoteSalesReportData } from '../models/quote-sales-report-data.model';\r\nimport { SalesRepData } from '../models/sales-rep.model';\r\nimport { SalesRepSummary } from '../models/sales-rep-summary.model';\r\nimport { CustomerPOList } from '../models/customer-po-list.model';\r\nimport { CustomerSalesConversion } from '../models/customer-sales-conversion.model';\r\nimport { InvoiceBarcode } from '../models/invoice-barcode.model';\r\nimport { BarcodeReference } from '../models/barcode-reference.model';\r\nimport { SalesStats } from '../models/sales-stats.model';\r\nimport { Video } from '../models/video.model';\r\nimport { strictEqual } from 'assert';\r\nimport { Brand } from '../models/brand.model';\r\nimport { CMStockCode } from '../models/cms-stockcode.model';\r\nimport { StockCodeDocuments } from '../models/cms-stockcode.documents.model';\r\nimport { CMCategories } from '../models/cms-category.model';\r\nimport { SimpleTree } from '../models/simple-tree.model';\r\nimport { DocumentCategory } from '../models/document-category.model';\r\nimport { DocumentManagmement } from '../models/document-management.model';\r\nimport { InvoiceDocuments } from '../models/invoice-documents.model';\r\nimport { AltStockCode } from '../models/alt-stockcodes.model';\r\nimport { InventoryAdditional } from '../models/inventory-additional.model';\r\nimport { InvoiceTrackingLookup } from '../models/invoice-tracking-lookup.model';\r\nimport { BankImport, BankImportHeader } from '../models/bank-import.model';\r\nimport { SysproBank } from '../models/syspro-bank.model';\r\nimport { SysproPaymentHeader } from '../models/syspro-payment-header.model';\r\nimport { SysproPaymentDetail } from '../models/syspro-payment-detail.model';\r\nimport { CMCategoryList } from '../models/cms-category-list.model';\r\nimport { InfoBoardNotes } from '../models/info-board-notes.model';\r\nimport { CoreCustomer } from '../models/core-customer.model';\r\nimport { CoreCustomerRule } from '../models/core-customer-rule.model';\r\nimport { CoreCustomerPrices } from '../models/core-customer-prices.model';\r\nimport { WebOrder } from '../models/web-order.model';\r\nimport { WebPayment } from '../models/web-payment.model';\r\nimport { WebLineItem } from '../models/web-line-item.model';\r\nimport { CMCategoryForStockCodeList } from '../models/cms-categoriesforstockcodes-list.model';\r\nimport { CMSAdditionalImage } from '../models/cms-additional-images.model';\r\nimport { DebtorsReleaseData } from '../models/debtors-release-data.model';\r\nimport { DebtorsReleaseSummary } from '../models/debtors-release-summary.model';\r\nimport { InventoryMovements } from '../models/inventory-movements.model';\r\nimport { Inbox, InboxMessageDetails, Outbox } from '../models/wapp-inbox.model';\r\nimport { OptIns } from '../models/wapp-inbox.model';\r\nimport { CustomerOTPReference } from '../models/customerOTPReference.model';\r\nimport { CustomerOTPHeader } from '../models/customerOTPHeader.model';\r\nimport { CreditNoteDataModel } from '../models/credit-note-data.model';\r\nimport { CreditNoteSummaryModel } from '../models/credit-note-summary.model';\r\nimport { CreditNoteReportDetailData } from '../models/creditnote-report-detail-data.model';\r\nimport { CatalogueActionReport } from '../models/catalogue-action-report.model';\r\nimport { CreditNoteDetail } from '../models/invoice-credit-note-detail.model';\r\n//import { DocumentCategory } from '../models/document-category.model';\r\n\r\n@Injectable()\r\nexport class SysproService {\r\n \r\n constructor(\r\n private authService: AuthService,\r\n private sysproEndpoint:SysproEndpoint) {\r\n\r\n }\r\n\r\n get currentUser() {\r\n return this.authService.currentUser;\r\n }\r\n\r\n getCustomers(branch?: string) {\r\n return this.sysproEndpoint.getCustomersEndpoint(branch);\r\n }\r\n \r\n getCustomerDetail(customerId?: string) {\r\n return this.sysproEndpoint.getCustomerDetailEndpoint(customerId);\r\n }\r\n\r\n\r\n getCustomerOrderConversion(customerId?: string) {\r\n return this.sysproEndpoint.getCustomerOrderConversionEndpoint(customerId);\r\n }\r\n\r\n\r\n getCustomerSearchByCriteria(searchOn?: string, searchText?: string) {\r\n return this.sysproEndpoint.getCustomerSearchByCriteriaEndpoint(searchOn, searchText);\r\n }\r\n\r\n\r\n getCustomerSearchByCriteriaByCompany(searchOn?: string, searchText?: string, company?: string) {\r\n return this.sysproEndpoint.getCustomerSearchByCriteriaByCompanyEndpoint(searchOn, searchText, company);\r\n }\r\n\r\n\r\n getCustomerMovements(startDate?: string, endDate?: string,customer?: string) {\r\n return this.sysproEndpoint.getCustomerMovementsEndpoint(startDate, endDate, customer);\r\n }\r\n\r\n\r\n getCustomerPayments(startDate?: string, endDate?: string, customer?: string) {\r\n return this.sysproEndpoint.getCustomerPaymentsEndpoint(startDate, endDate, customer);\r\n }\r\n\r\n\r\n getCustomersLoadedForStatements(application?: string, startDate?: string, endDate?: string) {\r\n return this.sysproEndpoint.getCustomersLoadedForStatementsEndpoint(application, startDate, endDate);\r\n }\r\n\r\n\r\n getCustomersStatementsReadyForEmail(application?: string, startDate?: string, endDate?: string) {\r\n return this.sysproEndpoint.getCustStatementsReadyForEmailEndpoint(application, startDate, endDate);\r\n }\r\n\r\n\r\n updateCustomerNotesHeader(customerId?: string) {\r\n return this.sysproEndpoint.updateCustomerNotesHeaderEndpoint(customerId);\r\n }\r\n\r\n insertCustomerNotes(customerId?: string, line?: number, notation?: string) {\r\n return this.sysproEndpoint.insertCustomerNotesEndpoint(customerId, line, notation);\r\n }\r\n\r\n deleteCustomerNotes(customerId?: string, line?: number) {\r\n return this.sysproEndpoint.deleteCustomerNotesEndpoint(customerId, line);\r\n }\r\n\r\n getCustomerNotes(customerId?: string) {\r\n return this.sysproEndpoint.getCustomerNotesEndpoint(customerId);\r\n }\r\n\r\n GetAllSalesPersons(branch?: string) {\r\n return this.sysproEndpoint.getSalesPersonsEndpoint(branch);\r\n }\r\n\r\n getInventoryForBranch(branch?: string) {\r\n return this.sysproEndpoint.getInventoryForBranchEndpoint(branch);\r\n }\r\n\r\n\r\n getInventoryForAdverts(branch?: string) {\r\n return this.sysproEndpoint.getInventoryForAdvertsEndpoint(branch);\r\n }\r\n\r\n\r\n getStockCodeSearchByCriteria(branch?: string, searchOn?: string, searchText?: string) {\r\n return this.sysproEndpoint.getStockCodeSearchByCriteriaEndpoint(branch, searchOn, searchText);\r\n }\r\n\r\n\r\n getStockCodeDetail(stockCode?: string) {\r\n return this.sysproEndpoint.getStockCodeDetailEndpoint(stockCode);\r\n }\r\n\r\n\r\n getStockCodeAdditionalDetail(stockCode?: string) {\r\n return this.sysproEndpoint.getStockCodeAdditionalDetailEndpoint(stockCode);\r\n }\r\n\r\n\r\n getAltStockCodeDetail(stockCode?: string) {\r\n return this.sysproEndpoint.getAltStockCodeDetailEndpoint(stockCode);\r\n }\r\n\r\n getStockCearanceFlag(id?: number) {\r\n return this.sysproEndpoint.getStockCearanceFlagEndpoint(id);\r\n }\r\n\r\n getStockCodeMovementHistory(stockCode?: string) {\r\n return this.sysproEndpoint.getStockCodeMovementHistoryEndpoint(stockCode);\r\n }\r\n\r\n getCategoriesForStockCodesList() {\r\n return this.sysproEndpoint.getCategoriesForStockCodesListEndpoint();\r\n }\r\n\r\n getStockCodeAvailableQuantities(stockCode?: string) {\r\n return this.sysproEndpoint.getStockCodeAvailableQuantitiesEndpoint(stockCode);\r\n }\r\n\r\n\r\n getCartDetail(cartNumber?: string, branch?: string) {\r\n return this.sysproEndpoint.getCartDetailEndpoint(cartNumber, branch);\r\n }\r\n\r\n\r\n updateCartComments(cartNumber?: string, lineNumber?: number, commentFromLine?: number, comment?: string, commentType?: string) {\r\n return this.sysproEndpoint.updateCartCommentsEndpoint(cartNumber, lineNumber, commentFromLine, comment, commentType);\r\n }\r\n\r\n\r\n updateCartCommentsForPackSize(cartNumber?: string, lineNumber?: number, commentFromLine?: number, comment?: string, commentType?: string, includeLines?: boolean) {\r\n return this.sysproEndpoint.updateCartCommentsForPackSizeEndpoint(cartNumber, lineNumber, commentFromLine, comment, commentType, includeLines);\r\n }\r\n\r\n postCartToQuote(cartNumber?: string) {\r\n return this.sysproEndpoint.postCartToQuoteEndpoint(cartNumber);\r\n }\r\n\r\n\r\n getUpdateQuoteStatus(quoteNumber?: string, quoteStatus?: string) {\r\n return this.sysproEndpoint.getUpdateQuoteStatusEndpoint(quoteNumber, quoteStatus);\r\n }\r\n\r\n\r\n postQuoteTotals(quoteNumber?: string, totalIncl?: number, totalExcl?: number, totalDiscount?: number) {\r\n return this.sysproEndpoint.postQuoteTotalsEndpoint(quoteNumber, totalIncl, totalExcl, totalDiscount);\r\n }\r\n\r\n\r\n updateQuoteComments(quoteNumber?: string, lineNumber?: number, commentFromLine?: number, comment?: string, commentType?: string) {\r\n return this.sysproEndpoint.updateQuoteCommentsEndpoint(quoteNumber, lineNumber, commentFromLine, comment, commentType);\r\n }\r\n\r\n\r\n getCartFromQuote(quoteNumber?: string, cartNumber?: string, branch?: string) {\r\n return this.sysproEndpoint.getCartFromQuoteEndpoint(quoteNumber, cartNumber, branch);\r\n }\r\n\r\n\r\n getAllWebOrders() {\r\n\r\n return this.sysproEndpoint.getAllWebOrdersEndpoint();\r\n }\r\n\r\n\r\n getWebOrderPaymentInfo(orderId?: number) {\r\n\r\n return this.sysproEndpoint.getWebOrderPaymentInfoEndpoint(orderId);\r\n }\r\n\r\n\r\n updateWebOrderStatus(invoice?: string, status?: string) {\r\n\r\n return this.sysproEndpoint.updateWebOrderStatusEndpoint(invoice, status);\r\n }\r\n\r\n UpdateWebOrderStatusWithComment(Id?: number, orderDetail?: WebOrder) {\r\n\r\n return this.sysproEndpoint.UpdateWebOrderStatusWithCommentEndpoint(Id, orderDetail);\r\n }\r\n\r\n\r\n getWebOrderStatus(waybill?: string) {\r\n\r\n return this.sysproEndpoint.getWebOrderStatusEndpoint(waybill);\r\n }\r\n\r\n\r\n getWebOrderLineInfo(orderId?: number) {\r\n\r\n return this.sysproEndpoint.getWebOrderLineInfoEndpoint(orderId);\r\n }\r\n\r\n getQuoteSearchAll(applicationId?: string) {\r\n\r\n return this.sysproEndpoint.getQuoteSearchAllEndpoint(applicationId);\r\n }\r\n\r\n getQuoteNumberSearchByCriteria(searchOn?: string, searchText?: string) {\r\n\r\n return this.sysproEndpoint.getQuoteNumberSearchByCriteriaEndpoint(searchOn, searchText);\r\n }\r\n\r\n\r\n getQuoteNumberSearchByCriteriaByCompany(searchOn?: string, searchText?: string, company?: string) {\r\n\r\n return this.sysproEndpoint.getQuoteNumberSearchByCriteriaByCompanyEndpoint(searchOn, searchText, company);\r\n }\r\n\r\n getQuoteHeader(quoteNumber?: string) {\r\n return this.sysproEndpoint.getQuoteHeaderEndpoint(quoteNumber);\r\n }\r\n\r\n getQuoteDetail(quoteNumber?: string) {\r\n return this.sysproEndpoint.getQuoteDetailEndpoint(quoteNumber);\r\n }\r\n\r\n GetSysproSessionId(user?: User, override?: boolean, compOverride?: string) {\r\n return this.sysproEndpoint.getSysproSessionIdEndpoint(user, override, compOverride);\r\n }\r\n\r\n\r\n postSalesOrderSyspro(postObject?: any) {\r\n return this.sysproEndpoint.postSalesOrderSysproEndpoint(postObject);\r\n }\r\n\r\n GetSysproComments() {\r\n return this.sysproEndpoint.getSysproCommentsEndpoint();\r\n }\r\n\r\n InsertSalesOrderComments(SalesOrder?: string, CartLineNumber?: number, Comment?: string,\r\n NCommentFromLin?: number, NCommentType?: string, includeLines?: boolean) {\r\n return this.sysproEndpoint.insertSalesOrderCommentsEndpoint(SalesOrder, CartLineNumber, Comment, NCommentFromLin, NCommentType, includeLines);\r\n }\r\n\r\n\r\n InsertSalesOrderPaymentComments(SalesOrder?: string, CartLineNumber?: number, Comment?: string,\r\n NCommentFromLin?: number, NCommentType?: string, includeLines?: boolean) {\r\n return this.sysproEndpoint.insertSalesOrderPaymentCommentsEndpoint(SalesOrder, CartLineNumber, Comment, NCommentFromLin, NCommentType, includeLines);\r\n }\r\n\r\n UpdateSalesOrderStatus(salesOrder?: string, status?: string, cancelReason?: string, sessionId?: string) {\r\n return this.sysproEndpoint.postUpdateSalesOrderStatusEndpoint(salesOrder, status, cancelReason, sessionId);\r\n }\r\n\r\n PostSalesOrderUpdateToSyspro(postObject?: any) {\r\n return this.sysproEndpoint.postSalesOrderUpdateToSysproEndpoint(postObject);\r\n }\r\n\r\n\r\n UpdateSalesOrderSyspro(postObject?: any) {\r\n return this.sysproEndpoint.updateSalesOrderSysproEndpoint(postObject);\r\n }\r\n\r\n PostInvoiceToSyspro(salesorder?: string, sessionId?: string) {\r\n return this.sysproEndpoint.postInvoiceToSysproEndpoint(salesorder, sessionId);\r\n }\r\n\r\n\r\n InsertPurchaseOrderStaging(postObject: any, salesOrder: string, supplier: string) {\r\n return this.sysproEndpoint.insertPurchaseOrderStagingEndpoint(postObject, salesOrder, supplier);\r\n }\r\n\r\n PostPurchaseOrderToSyspro(postObject?: any) {\r\n return this.sysproEndpoint.postPurchaseOrderToSysproEndpoint(postObject);\r\n }\r\n\r\n\r\n UpdatePurchaseOrderStatus(PONumber: string, Status: string) {\r\n return this.sysproEndpoint.updatePurchaseOrderStatusEndpoint(PONumber, Status);\r\n }\r\n\r\n UpdatePurchaseOrderTotals(postObject: any) {\r\n return this.sysproEndpoint.updatePurchaseOrderTotalsEndpoint(postObject);\r\n }\r\n\r\n PostGRNToSyspro(postObject?: any) {\r\n return this.sysproEndpoint.postGRNToSysproEndpoint(postObject);\r\n }\r\n\r\n\r\n getSalesOrderSearchAll() {\r\n\r\n return this.sysproEndpoint.getSalesOrderSearchAllEndpoint();\r\n }\r\n\r\n getSalesOrderSearchByCriteria(searchOn?: string, searchText?: string) {\r\n return this.sysproEndpoint.getSalesOrderSearchByCriteriaEndpoint(searchOn, searchText);\r\n }\r\n\r\n getSalesOrderSearchByCriteriaByCompany(searchOn?: string, searchText?: string, company?: string) {\r\n return this.sysproEndpoint.getSalesOrderSearchByCriteriaByCompanyEndpoint(searchOn, searchText, company);\r\n }\r\n\r\n getCreditNoteSearchByCriteria(searchOn?: string, searchText?: string) {\r\n return this.sysproEndpoint.getCreditNoteSearchByCriteriaEndpoint(searchOn, searchText);\r\n }\r\n\r\n getSalesOrderHeader(salesOrderNumber?: string) {\r\n return this.sysproEndpoint.getSalesOrderHeaderEndpoint(salesOrderNumber);\r\n }\r\n\r\n getSalesOrderDetail(salesOrderNumber?: string) {\r\n return this.sysproEndpoint.getSalesOrderDetailEndpoint(salesOrderNumber);\r\n }\r\n\r\n\r\n updateInvoiceTotals(application?: string, salesOrderNumber?: string, invoiceNumber?: string\r\n , vat?: number, totalIncl?: number, totalExcl?: number, totalDisc?: number ) {\r\n\r\n return this.sysproEndpoint.updateInvoiceTotalsEndpoint(application, salesOrderNumber, invoiceNumber, vat, totalIncl, totalExcl, totalDisc);\r\n }\r\n\r\n getAllSuppliers() {\r\n return this.sysproEndpoint.getAllSuppliersEndpoint();\r\n }\r\n\r\n //sendEmail(senderName?: string, senderEmail?: string, cc?: string, bcc?: string, recepientName?: string,\r\n // recepientEmail?: string, subject?: string, body?: string, attachment?: string) {\r\n // return this.sysproEndpoint.getEmailEndpoint(senderName, senderEmail, cc, bcc, recepientName, recepientEmail, subject, body, attachment);\r\n //}\r\n\r\n\r\n sendEmail(emailDetail?: Email) {\r\n return this.sysproEndpoint.getEmailEndpoint(emailDetail);\r\n }\r\n\r\n\r\n sendSMS(test?: string) {\r\n return this.sysproEndpoint.getSMSEndpoint(test);\r\n }\r\n\r\n\r\n getShippingInstructions() {\r\n return this.sysproEndpoint.getShippingInstructionsEndpoint();\r\n }\r\n\r\n getSalesOrderCancelReasonCodes() {\r\n return this.sysproEndpoint.getSalesOrderCancelReasonCodesEndpoint();\r\n }\r\n\r\n getSalesOrderStatuses() {\r\n return this.sysproEndpoint.getSalesOrderStatusesEndpoint();\r\n }\r\n\r\n getEstablishmentDetails(company?: string, branchCode?: string) {\r\n return this.sysproEndpoint.getEstablishmentDetailsEndpoint(company, branchCode);\r\n }\r\n\r\n\r\n updateCartStatus(cartNumber?: string, hasNettPrices?: boolean) {\r\n return this.sysproEndpoint.updateCartStatusEndpoint(cartNumber, hasNettPrices);\r\n }\r\n\r\n\r\n getInvoiceHeader(salesOrderNumber?: string, invoiceNumber?: string) {\r\n return this.sysproEndpoint.getInvoiceHeaderEndpoint(salesOrderNumber, invoiceNumber);\r\n }\r\n\r\n getInvoiceDetail(salesOrderNumber?: string, invoiceNumber?: string) {\r\n return this.sysproEndpoint.getInvoiceDetailEndpoint(salesOrderNumber, invoiceNumber);\r\n }\r\n\r\n getCustomerPOList(customer?: string) {\r\n return this.sysproEndpoint.getCustomerPOListEndpoint(customer);\r\n }\r\n\r\n getPurchaseOrderSearchByCriteria(searchCriteria?: string, searchValue?: string) {\r\n return this.sysproEndpoint.getPurchaseOrderSearchByCriteriaEndpoint(searchCriteria, searchValue);\r\n }\r\n\r\n\r\n getPurchaseOrderSearchByCriteriaByCompany(searchCriteria?: string, searchValue?: string, company?: string) {\r\n return this.sysproEndpoint.getPurchaseOrderSearchByCriteriaByCompanyEndpoint(searchCriteria, searchValue, company);\r\n }\r\n\r\n getPurchaseOrderHeader(purchaseOrder?: string) {\r\n return this.sysproEndpoint.getPurchaseOrderHeaderEndpoint(purchaseOrder);\r\n }\r\n\r\n getPurchaseOrderDetail(poNumber?: string) {\r\n return this.sysproEndpoint.getPurchaseOrderDetailEndpoint(poNumber);\r\n }\r\n\r\n\r\n postCoreAudit(coreAudit: CoreAudit) {\r\n return this.sysproEndpoint.PostCoreAuditEndpoint(coreAudit);\r\n }\r\n\r\n getInvoicePrintAuditTrail(startDate?: string, endDate?: string) {\r\n return this.sysproEndpoint.getInvoiceReprintEndpoint(startDate, endDate);\r\n }\r\n\r\n getInvoiceReprintDetails(invoiceNumber?: string) {\r\n return this.sysproEndpoint.getInvoiceReprintDetailsEndpoint(invoiceNumber);\r\n }\r\n\r\n getQuoteSalesData(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string) {\r\n return this.sysproEndpoint.getQuoteSalesDataEndpoint(startDate, endDate, company, branch, user);\r\n }\r\n\r\n getQuoteSalesSummary(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string) {\r\n return this.sysproEndpoint.getQuoteSalesSummaryEndpoint(startDate, endDate, company, branch, user);\r\n }\r\n\r\n getCreditNoteSales(startDate?: string, endDate?: string, branch?: string, applicationId?: string) {\r\n return this.sysproEndpoint.getCreditNoteSalesEndpoint(startDate, endDate, branch, applicationId);\r\n }\r\n\r\n getAllInvoiceTrackingStatus() {\r\n return this.sysproEndpoint.getAllInvoiceTrackingStatusEndpoint();\r\n }\r\n\r\n getInvoiceTrackingStatusControl(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string) {\r\n return this.sysproEndpoint.getInvoiceTrackingStatusControlEndpoint(startDate, endDate, company, branch, user);\r\n }\r\n\r\n\r\n getInvoiceTrackingStatusDeliveryControl(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string) {\r\n return this.sysproEndpoint.getInvoiceTrackingStatusDeliveryControlEndpoint(startDate, endDate, company, branch, user);\r\n }\r\n\r\n getInvoiceTrackingStatusCollectionsControl(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string) {\r\n return this.sysproEndpoint.getInvoiceTrackingStatusCollectionsControlEndpoint(startDate, endDate, company, branch, user);\r\n }\r\n\r\n getInvoiceTrackingStatus(salesOrder?: string, invoiceNumber?: string) {\r\n return this.sysproEndpoint.getInvoiceTrackingStatusEndpoint(salesOrder, invoiceNumber);\r\n }\r\n\r\n postInvoiceTrackingPurge(salesOrder?: string, invoiceNumber?: string, PurgeUser?: string, PurgeReason?: string, LastOperator?: string) {\r\n return this.sysproEndpoint.postInvoiceTrackingPurgeEndpoint(salesOrder, invoiceNumber, PurgeUser, PurgeReason, LastOperator);\r\n }\r\n\r\n\r\n postInvoiceTrackingCollectedUpdate(salesOrder?: string, invoiceNumber?: string, user?: string, status?: string) {\r\n return this.sysproEndpoint.postInvoiceTrackingCollectedUpdateEndpoint(salesOrder, invoiceNumber, user, status);\r\n }\r\n\r\n deleteInvoiceTrackingDuplicate(salesOrder?: string, invoiceNumber?: string) {\r\n return this.sysproEndpoint.deleteInvoiceTrackingDuplicateEndpoint(salesOrder, invoiceNumber);\r\n }\r\n\r\n\r\n getConfigurationSettings() {\r\n return this.sysproEndpoint.getConfigurationSettingsEndpoint();\r\n }\r\n\r\n\r\n deleteConfigurationSettings(ID?: number, Configuration?: string) {\r\n return this.sysproEndpoint.deleteConfigurationSettingsEndpoint(ID, Configuration);\r\n }\r\n\r\n\r\n updateConfigurationSettings(Configuration?: string, Value?: string, UserName?: string, EffectiveDate?: string) {\r\n return this.sysproEndpoint.updateConfigurationSettingsEndpoint(Configuration, Value, UserName, EffectiveDate);\r\n }\r\n\r\n\r\n updateBranchSettings(Branch?: string, PriceOverridePassword?: string, InvoiceReprintPassword?: string,\r\n SalesOrderPassword?: string, PriceCode?: string, LedgerCode?: string) {\r\n return this.sysproEndpoint.updateBranchSettingsEndpoint(Branch, PriceOverridePassword,\r\n InvoiceReprintPassword, SalesOrderPassword, PriceCode, LedgerCode);\r\n }\r\n\r\n\r\n getSysproTaxCodes() {\r\n return this.sysproEndpoint.getSysproTaxCodesEndpoint();\r\n }\r\n\r\n\r\n getInvoiceTrackingProductivity(startDate?: string, endDate?: string) {\r\n return this.sysproEndpoint.getInvoiceTrackingProductivityEndpoint(startDate, endDate);\r\n }\r\n\r\n\r\n getDebtorsReleaseData(startDate?: string, endDate?: string) {\r\n return this.sysproEndpoint.getDebtorsReleaseDataEndpoint(startDate, endDate);\r\n }\r\n\r\n\r\n getDebtorsReleaseSummary(startDate?: string, endDate?: string) {\r\n return this.sysproEndpoint.getDebtorsReleaseSummaryEndpoint(startDate, endDate);\r\n }\r\n\r\n getCreditNoteReportData(startDate?: string, endDate?: string) {\r\n return this.sysproEndpoint.getCreditNoteReportDataEndpoint(startDate, endDate);\r\n }\r\n\r\n\r\n getCreditNoteReportSummary(startDate?: string, endDate?: string) {\r\n return this.sysproEndpoint.getCreditNoteReportSummaryEndpoint(startDate, endDate);\r\n }\r\n\r\n\r\n getSalesReportData(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string, documentType?: string) {\r\n return this.sysproEndpoint.getSalesDataEndpoint(startDate, endDate, company, branch, user, documentType);\r\n }\r\n\r\n\r\n getSalesReportSummary(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string, documentType?: string) {\r\n return this.sysproEndpoint.getSalesSummaryEndpoint(startDate, endDate, company, branch, user, documentType);\r\n }\r\n\r\n\r\n getSalesRepData(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string, documentType?: string, rep?: string, customer?: string) {\r\n return this.sysproEndpoint.getSalesRepDataEndpoint(startDate, endDate, company, branch, user, documentType, rep, customer);\r\n }\r\n\r\n\r\n getSalesRepSummary(startDate?: string, endDate?: string, company?: string, branch?: string, user?: string, documentType?: string, rep?: string, customer?: string) {\r\n return this.sysproEndpoint.getSalesRepSummaryEndpoint(startDate, endDate, company, branch, user, documentType, rep, customer);\r\n }\r\n\r\n getInvoiceBarcodeSyncReport(startDate?: string, endDate?: string, company?: string, branch?: string, customer?: string, documentType?: string) {\r\n return this.sysproEndpoint.getInvoiceBarcodeSyncReportEndpoint(startDate, endDate, company, branch, customer, documentType);\r\n }\r\n\r\n\r\n getBarcodeForInvoiceSync(invoice?: string, branch?: string) {\r\n return this.sysproEndpoint.getBarcodeForInvoiceSyncEndpoint(invoice, branch);\r\n }\r\n\r\n\r\n syncMultipleInvoices(invoices: { invoice: string; branch: string }[]) {\r\n return this.sysproEndpoint.syncMultipleInvoicesEndpoint(invoices);\r\n }\r\n\r\n\r\n getInvoiceDocumentsSearchByCriteria(searchOn?: string, searchText?: string) {\r\n return this.sysproEndpoint.getInvoiceDocumentsSearchByCriteriaEndpoint(searchOn, searchText);\r\n }\r\n\r\n\r\n updateBarcodeExcluded(invoice?: string) {\r\n return this.sysproEndpoint.updateBarcodeExcludedForInvoiceSyncEndpoint(invoice);\r\n }\r\n\r\n syncFileReferencesByDate(month?: string, day?: string) {\r\n return this.sysproEndpoint.syncFileReferencesByDateEndpoint(month, day);\r\n }\r\n\r\n\r\n getBarcodesAvailableReport(startDate?: string, endDate?: string, company?: string, branch?: string, status?: string) {\r\n return this.sysproEndpoint.getBarcodesAvailableReportEndpoint(startDate, endDate, company, branch, status);\r\n }\r\n\r\n getSysproUserDetailListByCompany(company?: string) {\r\n return this.sysproEndpoint.getSysproUserDetailListByCompanyEndpoint(company);\r\n }\r\n\r\n\r\n getSysproUserDetailList() {\r\n return this.sysproEndpoint.getSysproUserDetailListEndpoint();\r\n }\r\n\r\n getDocuments() {\r\n return this.sysproEndpoint.getMySQLDocumentsEndpoint();\r\n }\r\n\r\n getDocumentsPerMonth(year?: string, month?: string) {\r\n return this.sysproEndpoint.getDocumentsPerMonth(year, month);\r\n }\r\n\r\n getDocumentByPrimaryKey(barcode?: string, prefix?: string) {\r\n return this.sysproEndpoint.getDocumentByPrimaryKey(barcode, prefix);\r\n }\r\n\r\n getDocumentsByRange(from: string, to: string) {\r\n return this.sysproEndpoint.getDocumentsByRange(from, to);\r\n }\r\n\r\n getDocumentsByDateRange(startD: string, endD: string) {\r\n return this.sysproEndpoint.getDocumentsByDateRange(startD, endD);\r\n }\r\n\r\n getBarcodeReferences(startD: string, endD: string, company: string, branch: string, batchFrom: string, batchTo: string) {\r\n return this.sysproEndpoint.getBarcodeReferencesEndpoint(startD, endD, company, branch, batchFrom, batchTo);\r\n }\r\n\r\n getBarcodesUnallocated(startD: string, endD: string, company: string, branch: string, batchFrom: string, batchTo: string) {\r\n return this.sysproEndpoint.getBarcodesUnallocatedEndpoint(startD, endD, company, branch, batchFrom, batchTo);\r\n }\r\n\r\n getFileStream(fileName: string, bnumber: number) {\r\n return this.sysproEndpoint.getFileStream(fileName, bnumber);\r\n }\r\n\r\n getPODByInvoice(invoice: string) {\r\n return this.sysproEndpoint.getPODByInvoice(invoice);\r\n }\r\n\r\n\r\n GetCreditNoteDetailsForInvoice(invoice: string) {\r\n return this.sysproEndpoint.GetCreditNoteDetailsForInvoiceEndpoint(invoice);\r\n }\r\n\r\n deletePOD(invoice: string, fileNumber: number) {\r\n return this.sysproEndpoint.deletePOD(invoice, fileNumber);\r\n }\r\n\r\n savePOD(pod: BarcodeReference, invoice: string) {\r\n return this.sysproEndpoint.savePOD(pod, invoice);\r\n }\r\n\r\n\r\n updateSalesStats(reference?: string, description?: string, value?: number){\r\n return this.sysproEndpoint.updateSalesStatsEndpoint(reference, description, value);\r\n }\r\n\r\n getSalesStats(startDate?: string, endDate?: string, company?: string, user?: string) {\r\n return this.sysproEndpoint.getSalesStatsEndpoint(startDate, endDate, company, user);\r\n }\r\n\r\n getDocumentCatergories(expandIndex: Number) {\r\n return this.sysproEndpoint.getDocumentCatergories(expandIndex);\r\n }\r\n\r\n getVideos() {\r\n return this.sysproEndpoint.getVideos