{"version":3,"file":"main-es2015.js","mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFyB;AACgB;AACN;AACK;AACd;AACM;AACF;AACM;AACD;AACT;AACF;AACI;AACE;AACS;AACf;AACG;AACH;AACS;AACV;AACL;AACO;AACN;AACe;AACT;AAET;AACqB;AAEZ;AACC;AACE;AACE;AACI;AACV;AACA;AACU;AACR;AACO;AACT;AACE;AACsB;AAExB;AACU;AACX;AACE;AACN;AACe;AACX;AACJ;AACQ;AACJ;AACE;AACX;AAED;AACa;AACwE;AACN;AAC7B;AACmC;AACoB;AACX;AACd;AACzB;AACQ;AACA;AACL;AACR;AACf;AACX;AACG;AACM;AACG;AACJ;AACX;AAC0B;AAC2B;AACjC;AACG;AACL;AACY;AACQ;AACR;AACxB;AACS;AAC4B;AACd;AACK;AACL;AACH;AACY;AACR;AACc;AACV;AACK;AACZ;AACb;AACiB;AACQ;AACtB;AACpC;AAIQ;AAC+B;AACjB;AACpB;AACsC;AAC1B;AAyBnB;AACW;AACM;AACN;AACE;AACJ;AAEsB;AAC/B;AACkB;AACb;AACkB;AACR;AACd;AACmD;AACuC;AACgC;AACxB;AAC7B;AACW;AACA;AACZ;AACyC;AAClC;AAC8B;AACG;AAClC;AACkB;AACvB;AACpB;AAC2C;AACtD;AAC0B;AAC4D;AACrC;AACkC;AACG;AACpB;AAC/C;AAC8D;AACpC;AAC8D;AAC3F;AAC2B;AACrB;AACiB;AACsB;AACiB;AACU;AAC/C;AACM;AACmC;AACT;AACb;AACW;AAC0B;AAC7E;AACZ;AAC2D;AACZ;AACzC;AACG;AACqC;AACvB;AACiB;AACvB;AACd;AAC4B;AACT;AACb;AACe;AACuB;AACpB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","sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/animations/fade-animation.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/accounts-table/accounts-table-dialog/accounts-table-dialog.component.ts","./src/app/components/accounts-table/accounts-table-dialog/accounts-table-dialog.component.html","./src/app/components/accounts-table/accounts-table-user/accounts-table-user.component.ts","./src/app/components/accounts-table/accounts-table-user/accounts-table-user.component.html","./src/app/components/accounts-table/accounts-table.component.ts","./src/app/components/accounts-table/accounts-table.component.html","./src/app/components/accounts-table/reset-password-dialog/reset-password-dialog.component.ts","./src/app/components/accounts-table/reset-password-dialog/reset-password-dialog.component.html","./src/app/components/accounts-table/user-permission-dialog/user-permission-dialog.component.ts","./src/app/components/accounts-table/user-permission-dialog/user-permission-dialog.component.html","./src/app/components/accounts-table/user-permission-navigation-dialog/user-permission-navigation-dialog.component.ts","./src/app/components/accounts-table/user-permission-navigation-dialog/user-permission-navigation-dialog.component.html","./src/app/components/bill-of-material-sub-item/bill-of-material-sub-item-confirmation.component.ts","./src/app/components/bill-of-material-sub-item/bill-of-material-sub-item-confirmation.component.html","./src/app/components/bill-of-material-sub-item/bill-of-material-sub-item-dialog..component.ts","./src/app/components/bill-of-material-sub-item/bill-of-material-sub-item-dialog.component.html","./src/app/components/bill-of-material-sub-item/bill-of-material-sub-item.component.ts","./src/app/components/bill-of-material-sub-item/bill-of-material-sub-item.component.html","./src/app/components/bill-of-material/bill-of-material.component.ts","./src/app/components/bill-of-material/bill-of-material.component.html","./src/app/components/bill-of-material/product-component-dialog/product-component-dialog.component.ts","./src/app/components/bill-of-material/product-component-dialog/product-component-dialog.component.html","./src/app/components/bill-of-material/product-enamel/product-enamel.component.ts","./src/app/components/bill-of-material/product-enamel/product-enamel.component.html","./src/app/components/bill-of-material/product-findings/bom-findings/bom-findings.component.ts","./src/app/components/bill-of-material/product-findings/bom-findings/bom-findings.component.html","./src/app/components/bill-of-material/product-findings/bom-jumpring/bom-jumpring.component.ts","./src/app/components/bill-of-material/product-findings/bom-jumpring/bom-jumpring.component.html","./src/app/components/bill-of-material/product-findings/bom-post/bom-post.component.ts","./src/app/components/bill-of-material/product-findings/bom-post/bom-post.component.html","./src/app/components/bill-of-material/product-findings/product-findings-table/product-findings-table.component.ts","./src/app/components/bill-of-material/product-findings/product-findings-table/product-findings-table.component.html","./src/app/components/bill-of-material/product-findings/product-findings.component.ts","./src/app/components/bill-of-material/product-findings/product-findings.component.html","./src/app/components/bill-of-material/product-link-bom/product-link-bom-form/product-link-bom-form.component.ts","./src/app/components/bill-of-material/product-link-bom/product-link-bom-form/product-link-bom-form.component.html","./src/app/components/bill-of-material/product-link-bom/product-link-bom-table/product-link-bom-table.component.ts","./src/app/components/bill-of-material/product-link-bom/product-link-bom-table/product-link-bom-table.component.html","./src/app/components/bill-of-material/product-link-bom/product-link-bom.component.ts","./src/app/components/bill-of-material/product-link-bom/product-link-bom.component.html","./src/app/components/bill-of-materials-a/bill-of-materials-a.component.ts","./src/app/components/bill-of-materials-a/bill-of-materials-a.component.html","./src/app/components/bill-of-materials-b/bill-of-materials-b.component.ts","./src/app/components/bill-of-materials-b/bill-of-materials-b.component.html","./src/app/components/bill-of-materials/bill-of-materials.component.ts","./src/app/components/bill-of-materials/bill-of-materials.component.html","./src/app/components/chain-finished/chain-finished.component.ts","./src/app/components/chain-finished/chain-finished.component.html","./src/app/components/chain-tab/chain-tab.component.ts","./src/app/components/chain-tab/chain-tab.component.html","./src/app/components/chain/chain.component.ts","./src/app/components/chain/chain.component.html","./src/app/components/customer-page/customer-address-dialog/customer-address-dialog.component.ts","./src/app/components/customer-page/customer-address-dialog/customer-address-dialog.component.html","./src/app/components/customer-page/customer-dialog/customer-dialog.component.ts","./src/app/components/customer-page/customer-dialog/customer-dialog.component.html","./src/app/components/customer-page/customer-page.component.ts","./src/app/components/customer-page/customer-page.component.html","./src/app/components/customer-page/customer-setting-dialog/customer-setting-dialog.component.ts","./src/app/components/customer-page/customer-setting-dialog/customer-setting-dialog.component.html","./src/app/components/enamel/enamel.component.ts","./src/app/components/enamel/enamel.component.html","./src/app/components/equations/equations.component.ts","./src/app/components/equations/equations.component.html","./src/app/components/findings/findings.component.ts","./src/app/components/findings/findings.component.html","./src/app/components/forbidden/forbidden.component.ts","./src/app/components/forbidden/forbidden.component.html","./src/app/components/gems-bom/gems-bom.component.ts","./src/app/components/gems-bom/gems-bom.component.html","./src/app/components/gems/gems.component.ts","./src/app/components/gems/gems.component.html","./src/app/components/generic/generic.component.ts","./src/app/components/inventory-log/inventory-log.component.ts","./src/app/components/inventory-log/inventory-log.component.html","./src/app/components/invoicing-shipping/invoicing-shipping.component.ts","./src/app/components/invoicing-shipping/invoicing-shipping.component.html","./src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail-dialog/invoicing-detail-dialog.component.ts","./src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail-dialog/invoicing-detail-dialog.component.html","./src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail.component.ts","./src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail.component.html","./src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-price-dialog/invoicing-price-dialog.component.ts","./src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-price-dialog/invoicing-price-dialog.component.html","./src/app/components/invoicing-shipping/invoicing/invoicing-detail/related-shipment-dialog/related-shipment-dialog.component.ts","./src/app/components/invoicing-shipping/invoicing/invoicing-detail/related-shipment-dialog/related-shipment-dialog.component.html","./src/app/components/invoicing-shipping/invoicing/invoicing-print-dialog/invoicing-print-dialog.component.ts","./src/app/components/invoicing-shipping/invoicing/invoicing-print-dialog/invoicing-print-dialog.component.html","./src/app/components/invoicing-shipping/invoicing/invoicing.component.ts","./src/app/components/invoicing-shipping/invoicing/invoicing.component.html","./src/app/components/invoicing-shipping/invoicing/models/invoice.ts","./src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-detail-dialog/shipping-detail-dialog.component.ts","./src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-detail-dialog/shipping-detail-dialog.component.html","./src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-detail.component.ts","./src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-detail.component.html","./src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-related-invoice-dialog/shipping-related-invoice-dialog.component.ts","./src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-related-invoice-dialog/shipping-related-invoice-dialog.component.html","./src/app/components/invoicing-shipping/shipping/shipping.component.ts","./src/app/components/invoicing-shipping/shipping/shipping.component.html","./src/app/components/login/login.component.ts","./src/app/components/login/login.component.html","./src/app/components/manufactured-materials/manufactured-materials.component.ts","./src/app/components/manufactured-materials/manufactured-materials.component.html","./src/app/components/metal-grain/metal-grain.component.ts","./src/app/components/metal-grain/metal-grain.component.html","./src/app/components/metal-overhead-equations/metal-overhead-equations.component.ts","./src/app/components/metal-overhead-equations/metal-overhead-equations.component.html","./src/app/components/non-precious/non-precious.component.ts","./src/app/components/non-precious/non-precious.component.html","./src/app/components/open-order-report/open-order-report.component.ts","./src/app/components/open-order-report/open-order-report.component.html","./src/app/components/open-order-stone-report/open-order-stone-report.component.ts","./src/app/components/open-order-stone-report/open-order-stone-report.component.html","./src/app/components/open-order-stone-report/stone-receiving-dialog/stone-receiving-dialog.component.ts","./src/app/components/open-order-stone-report/stone-receiving-dialog/stone-receiving-dialog.component.html","./src/app/components/open-order-stone-report/stone-release-history-dialog/stone-release-history-dialog.component.ts","./src/app/components/open-order-stone-report/stone-release-history-dialog/stone-release-history-dialog.component.html","./src/app/components/orderdetails/customer-add-ons/customer-add-ons.component.ts","./src/app/components/orderdetails/customer-add-ons/customer-add-ons.component.html","./src/app/components/orderdetails/list/add-product-by-customer-sku-dialog/add-product-by-customer-sku-dialog.component.ts","./src/app/components/orderdetails/list/add-product-by-customer-sku-dialog/add-product-by-customer-sku-dialog.component.html","./src/app/components/orderdetails/list/list.component.ts","./src/app/components/orderdetails/list/list.component.html","./src/app/components/orderdetails/new-orderdetails-item/new-orderdetails-item.component.ts","./src/app/components/orderdetails/new-orderdetails-item/new-orderdetails-item.component.html","./src/app/components/orderdetails/order-upload-dialog/order-upload-dialog.component.ts","./src/app/components/orderdetails/order-upload-dialog/order-upload-dialog.component.html","./src/app/components/orderdetails/orderdetails-item/orderdetails-item.component.ts","./src/app/components/orderdetails/orderdetails-item/orderdetails-item.component.html","./src/app/components/orderdetails/orderdetails.module.ts","./src/app/components/orderdetails/orderdetails.service.ts","./src/app/components/orderdetails/riva-chain-order/riva-chain-order.component.ts","./src/app/components/orderdetails/riva-chain-order/riva-chain-order.component.html","./src/app/components/orderdetails/riva-findings-order/riva-findings-order-add-item/riva-findings-order-add-item.component.ts","./src/app/components/orderdetails/riva-findings-order/riva-findings-order-add-item/riva-findings-order-add-item.component.html","./src/app/components/orderdetails/riva-findings-order/riva-findings-order-add/riva-findings-order-add.component.ts","./src/app/components/orderdetails/riva-findings-order/riva-findings-order-add/riva-findings-order-add.component.html","./src/app/components/orderdetails/riva-other-component-order/riva-other-component-order.component.ts","./src/app/components/orderdetails/riva-other-component-order/riva-other-component-order.component.html","./src/app/components/orderimporting/orderimporting.component.ts","./src/app/components/orderimporting/orderimporting.component.html","./src/app/components/orders-dialog/orders-confirmation.component.ts","./src/app/components/orders-dialog/orders-confirmation.component.html","./src/app/components/orders-dialog/orders-progress.component.ts","./src/app/components/orders-dialog/orders-progress.component.html","./src/app/components/orders/orders.component.ts","./src/app/components/orders/orders.component.html","./src/app/components/orders/related-invoices-dialog/related-invoices-dialog.component.ts","./src/app/components/orders/related-invoices-dialog/related-invoices-dialog.component.html","./src/app/components/orderview/orderview.component.ts","./src/app/components/orderview/orderview.component.html","./src/app/components/other-components/other-components-routing/other-components-routing-copy-dialog.component.ts","./src/app/components/other-components/other-components-routing/other-components-routing-copy-dialog.component.html","./src/app/components/other-components/other-components-routing/other-components-routing-dialog.component.ts","./src/app/components/other-components/other-components-routing/other-components-routing-dialog.component.html","./src/app/components/other-components/other-components-routing/other-components-routing.component.ts","./src/app/components/other-components/other-components-routing/other-components-routing.component.html","./src/app/components/other-components/other-components-size-dialog/other-components-size-dialog.component.ts","./src/app/components/other-components/other-components-size-dialog/other-components-size-dialog.component.html","./src/app/components/other-components/other-components-sku-generator-dialog/other-components-sku-generator-dialog.component.ts","./src/app/components/other-components/other-components-sku-generator-dialog/other-components-sku-generator-dialog.component.html","./src/app/components/other-components/other-components.component.ts","./src/app/components/other-components/other-components.component.html","./src/app/components/price-custom/price-custom.component.ts","./src/app/components/price-custom/price-custom.component.html","./src/app/components/price-defaults/customer-additional-charges/customer-additional-charges.component.ts","./src/app/components/price-defaults/customer-additional-charges/customer-additional-charges.component.html","./src/app/components/price-defaults/customer-price-defaults/customer-price-defaults.component.ts","./src/app/components/price-defaults/customer-price-defaults/customer-price-defaults.component.html","./src/app/components/price-defaults/price-defaults.component.ts","./src/app/components/price-defaults/price-defaults.component.html","./src/app/components/product-group-table/product-group-table.component.ts","./src/app/components/product-group-table/product-group-table.component.html","./src/app/components/product-pricing/product-pricing.component.ts","./src/app/components/product-pricing/product-pricing.component.html","./src/app/components/product-query/product-invoice-details/product-invoice-details.component.ts","./src/app/components/product-query/product-invoice-details/product-invoice-details.component.html","./src/app/components/product-query/product-invoice/product-invoice.component.ts","./src/app/components/product-query/product-invoice/product-invoice.component.html","./src/app/components/product-query/product-order-details/product-order-details.component.ts","./src/app/components/product-query/product-order-details/product-order-details.component.html","./src/app/components/product-query/product-order/product-order.component.ts","./src/app/components/product-query/product-order/product-order.component.html","./src/app/components/product-query/product-query.component.ts","./src/app/components/product-query/product-query.component.html","./src/app/components/product-report/product-report.component.ts","./src/app/components/product-report/product-report.component.html","./src/app/components/product-routing/product-routing-copy-dialog.component.ts","./src/app/components/product-routing/product-routing-copy-dialog.component.html","./src/app/components/product-routing/product-routing-dialog.component.ts","./src/app/components/product-routing/product-routing-dialog.component.html","./src/app/components/product-routing/product-routing.component.ts","./src/app/components/product-routing/product-routing.component.html","./src/app/components/product-table-v2/product-table-v2.component.ts","./src/app/components/product-table-v2/product-table-v2.component.html","./src/app/components/products-table/enamel-constant/enamel-constant.component.ts","./src/app/components/products-table/enamel-constant/enamel-constant.component.html","./src/app/components/products-table/enamel-variation-dialog/enamel-variation-dialog.component.ts","./src/app/components/products-table/enamel-variation-dialog/enamel-variation-dialog.component.html","./src/app/components/products-table/enamel-variation/enamel-variation.component.ts","./src/app/components/products-table/enamel-variation/enamel-variation.component.html","./src/app/components/products-table/product-image-order-dialog/product-image-order-dialog.component.ts","./src/app/components/products-table/product-image-order-dialog/product-image-order-dialog.component.html","./src/app/components/products-table/product-image/product-image.component.ts","./src/app/components/products-table/product-image/product-image.component.html","./src/app/components/products-table/product-material-dialog/product-material-dialog.component.ts","./src/app/components/products-table/product-material-dialog/product-material-dialog.component.html","./src/app/components/products-table/product-setting-dialog/product-setting-dialog.component.ts","./src/app/components/products-table/product-setting-dialog/product-setting-dialog.component.html","./src/app/components/products-table/product-sizes-dialog/product-sizes-dialog.component.ts","./src/app/components/products-table/product-sizes-dialog/product-sizes-dialog.component.html","./src/app/components/products-table/product-sku-generator-dialog/product-sku-generator-dialog.component.ts","./src/app/components/products-table/product-sku-generator-dialog/product-sku-generator-dialog.component.html","./src/app/components/products-table/products-table.component.ts","./src/app/components/products-table/products-table.component.html","./src/app/components/raw-materials/raw-materials.component.ts","./src/app/components/raw-materials/raw-materials.component.html","./src/app/components/reporting/date-filter-presets.ts","./src/app/components/reporting/general-reports/general-reports.component.ts","./src/app/components/reporting/general-reports/general-reports.component.html","./src/app/components/reporting/general-reports/invoice-reports/invoice-reports.component.ts","./src/app/components/reporting/general-reports/invoice-reports/invoice-reports.component.html","./src/app/components/reporting/general-reports/stone-movements-report/stone-movements-report.component.ts","./src/app/components/reporting/general-reports/stone-movements-report/stone-movements-report.component.html","./src/app/components/reporting/item-weights/item-weights.component.ts","./src/app/components/reporting/item-weights/item-weights.component.html","./src/app/components/reporting/reporting-invoice/reporting-invoice-error-dialog/reporting-invoice-error-dialog.component.ts","./src/app/components/reporting/reporting-invoice/reporting-invoice-error-dialog/reporting-invoice-error-dialog.component.html","./src/app/components/reporting/reporting-invoice/reporting-invoice.component.ts","./src/app/components/reporting/reporting-invoice/reporting-invoice.component.html","./src/app/components/reporting/reporting-item-placed/reporting-item-placed.component.ts","./src/app/components/reporting/reporting-item-placed/reporting-item-placed.component.html","./src/app/components/reporting/reporting-presets/reporting-presets.component.ts","./src/app/components/reporting/reporting-presets/reporting-presets.component.html","./src/app/components/reporting/reporting-top-product/reporting-top-product.component.ts","./src/app/components/reporting/reporting-top-product/reporting-top-product.component.html","./src/app/components/reporting/reporting-total-shipment/reporting-total-shipment.component.ts","./src/app/components/reporting/reporting-total-shipment/reporting-total-shipment.component.html","./src/app/components/reporting/reporting.component.ts","./src/app/components/reporting/reporting.component.html","./src/app/components/reporting/work-order-movement/pd-movement/pd-movement.component.ts","./src/app/components/reporting/work-order-movement/pd-movement/pd-movement.component.html","./src/app/components/reporting/work-order-movement/work-order-employee-down-time/employee-down-time-error-dialog/employee-down-time-error-dialog.component.ts","./src/app/components/reporting/work-order-movement/work-order-employee-down-time/employee-down-time-error-dialog/employee-down-time-error-dialog.component.html","./src/app/components/reporting/work-order-movement/work-order-employee-down-time/work-order-employee-down-time.component.ts","./src/app/components/reporting/work-order-movement/work-order-employee-down-time/work-order-employee-down-time.component.html","./src/app/components/reporting/work-order-movement/work-order-employee/work-order-employee.component.ts","./src/app/components/reporting/work-order-movement/work-order-employee/work-order-employee.component.html","./src/app/components/reporting/work-order-movement/work-order-incomplete/work-order-incomplete.component.ts","./src/app/components/reporting/work-order-movement/work-order-incomplete/work-order-incomplete.component.html","./src/app/components/reporting/work-order-movement/work-order-moved/work-order-moved.component.ts","./src/app/components/reporting/work-order-movement/work-order-moved/work-order-moved.component.html","./src/app/components/reporting/work-order-movement/work-order-movement.component.ts","./src/app/components/reporting/work-order-movement/work-order-movement.component.html","./src/app/components/reporting/work-order-movement/work-order-process-comparison/work-order-process-comparison.component.ts","./src/app/components/reporting/work-order-movement/work-order-process-comparison/work-order-process-comparison.component.html","./src/app/components/reporting/work-order-movement/work-order-product-search/work-order-product-search.component.ts","./src/app/components/reporting/work-order-movement/work-order-product-search/work-order-product-search.component.html","./src/app/components/riva-chain/riva-chain-finish/chain-finish-bom-dialog/chain-finish-bom-dialog.component.ts","./src/app/components/riva-chain/riva-chain-finish/chain-finish-bom-dialog/chain-finish-bom-dialog.component.html","./src/app/components/riva-chain/riva-chain-finish/chain-finish-dialog/chain-finish-dialog.component.ts","./src/app/components/riva-chain/riva-chain-finish/chain-finish-dialog/chain-finish-dialog.component.html","./src/app/components/riva-chain/riva-chain-finish/chain-finished-sku-generator-dialog/chain-finished-sku-generator-dialog.component.ts","./src/app/components/riva-chain/riva-chain-finish/chain-finished-sku-generator-dialog/chain-finished-sku-generator-dialog.component.html","./src/app/components/riva-chain/riva-chain-finish/riva-chain-finish-list/riva-chain-finish-list.component.ts","./src/app/components/riva-chain/riva-chain-finish/riva-chain-finish-list/riva-chain-finish-list.component.html","./src/app/components/riva-chain/riva-chain-page/riva-chain-page.component.ts","./src/app/components/riva-chain/riva-chain-page/riva-chain-page.component.html","./src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing-unfinished/riva-chain-pricing-unfinished-table/riva-chain-pricing-unfinished-table.component.ts","./src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing-unfinished/riva-chain-pricing-unfinished-table/riva-chain-pricing-unfinished-table.component.html","./src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing-unfinished/riva-chain-pricing-unfinished.component.ts","./src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing-unfinished/riva-chain-pricing-unfinished.component.html","./src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing.component.ts","./src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing.component.html","./src/app/components/riva-chain/riva-chain-product/product-chain-finished-table/product-chain-finished-table.component.ts","./src/app/components/riva-chain/riva-chain-product/product-chain-finished-table/product-chain-finished-table.component.html","./src/app/components/riva-chain/riva-chain-product/product-chain-unfinished-table/product-chain-unfinished-table.component.ts","./src/app/components/riva-chain/riva-chain-product/product-chain-unfinished-table/product-chain-unfinished-table.component.html","./src/app/components/riva-chain/riva-chain-product/riva-chain-finished-product/riva-chain-finished-product.component.ts","./src/app/components/riva-chain/riva-chain-product/riva-chain-finished-product/riva-chain-finished-product.component.html","./src/app/components/riva-chain/riva-chain-product/riva-chain-product-container/riva-chain-product-container.component.ts","./src/app/components/riva-chain/riva-chain-product/riva-chain-product-container/riva-chain-product-container.component.html","./src/app/components/riva-chain/riva-chain-product/riva-chain-unfinished-product/riva-chain-unfinished-product.component.ts","./src/app/components/riva-chain/riva-chain-product/riva-chain-unfinished-product/riva-chain-unfinished-product.component.html","./src/app/components/riva-chain/riva-chain-routing/chain-routing-copy-dialog.component.ts","./src/app/components/riva-chain/riva-chain-routing/chain-routing-copy-dialog.component.html","./src/app/components/riva-chain/riva-chain-routing/chain-routing-dialog.component.ts","./src/app/components/riva-chain/riva-chain-routing/chain-routing-dialog.component.html","./src/app/components/riva-chain/riva-chain-routing/chain-routing.component.ts","./src/app/components/riva-chain/riva-chain-routing/chain-routing.component.html","./src/app/components/riva-chain/riva-chain/chain-dialog/chain-dialog.component.ts","./src/app/components/riva-chain/riva-chain/chain-dialog/chain-dialog.component.html","./src/app/components/riva-chain/riva-chain/chain-raw-dialog/chain-raw-dialog.component.ts","./src/app/components/riva-chain/riva-chain/chain-raw-dialog/chain-raw-dialog.component.html","./src/app/components/riva-chain/riva-chain/chain-unfinished-sku-generator-dialog/chain-unfinished-sku-generator-dialog.component.ts","./src/app/components/riva-chain/riva-chain/chain-unfinished-sku-generator-dialog/chain-unfinished-sku-generator-dialog.component.html","./src/app/components/riva-chain/riva-chain/riva-chain.component.ts","./src/app/components/riva-chain/riva-chain/riva-chain.component.html","./src/app/components/riva-confirmation/riva-confirmation.component.ts","./src/app/components/riva-confirmation/riva-confirmation.component.html","./src/app/components/riva-confirmation/riva-confirmation.service.ts","./src/app/components/riva-date-range-picker/riva-date-range-picker.component.ts","./src/app/components/riva-date-range-picker/riva-date-range-picker.component.html","./src/app/components/riva-findings/constants.ts","./src/app/components/riva-findings/finding-routing/finding-routing-dialog.component.ts","./src/app/components/riva-findings/finding-routing/finding-routing-dialog.component.html","./src/app/components/riva-findings/finding-routing/finding-routing.component.ts","./src/app/components/riva-findings/finding-routing/finding-routing.component.html","./src/app/components/riva-findings/finding-setting-dialog/finding-setting-dialog.component.ts","./src/app/components/riva-findings/finding-setting-dialog/finding-setting-dialog.component.html","./src/app/components/riva-findings/finding-stock-dialog/finding-stock-dialog.component.ts","./src/app/components/riva-findings/finding-stock-dialog/finding-stock-dialog.component.html","./src/app/components/riva-findings/findings-details/findings-details.component.ts","./src/app/components/riva-findings/findings-details/findings-details.component.html","./src/app/components/riva-findings/findings-list/findings-list.component.ts","./src/app/components/riva-findings/findings-list/findings-list.component.html","./src/app/components/riva-findings/findings-sku-generator-button/findings-sku-generator-button.component.ts","./src/app/components/riva-findings/findings-sku-generator-button/findings-sku-generator-button.component.html","./src/app/components/riva-findings/findings-sku-generator-dialog/findings-sku-generator-dialog.component.ts","./src/app/components/riva-findings/findings-sku-generator-dialog/findings-sku-generator-dialog.component.html","./src/app/components/riva-findings/flyer/flyer-dialog/flyer-dialog.component.ts","./src/app/components/riva-findings/flyer/flyer-dialog/flyer-dialog.component.html","./src/app/components/riva-findings/flyer/flyer.component.ts","./src/app/components/riva-findings/flyer/flyer.component.html","./src/app/components/riva-findings/jumpring/jumpring-dialog/jumpring-dialog.component.ts","./src/app/components/riva-findings/jumpring/jumpring-dialog/jumpring-dialog.component.html","./src/app/components/riva-findings/jumpring/jumpring.component.ts","./src/app/components/riva-findings/jumpring/jumpring.component.html","./src/app/components/riva-findings/lobster-claw/lobster-claw-dialog/lobster-claw-dialog.component.ts","./src/app/components/riva-findings/lobster-claw/lobster-claw-dialog/lobster-claw-dialog.component.html","./src/app/components/riva-findings/lobster-claw/lobster-claw.component.ts","./src/app/components/riva-findings/lobster-claw/lobster-claw.component.html","./src/app/components/riva-findings/post/post-dialog/post-dialog.component.ts","./src/app/components/riva-findings/post/post-dialog/post-dialog.component.html","./src/app/components/riva-findings/post/post.component.ts","./src/app/components/riva-findings/post/post.component.html","./src/app/components/riva-findings/riva-findings.component.ts","./src/app/components/riva-findings/riva-findings.component.html","./src/app/components/riva-findings/spring-ring/spring-ring-dialog/spring-ring-dialog.component.ts","./src/app/components/riva-findings/spring-ring/spring-ring-dialog/spring-ring-dialog.component.html","./src/app/components/riva-findings/spring-ring/spring-ring.component.ts","./src/app/components/riva-findings/spring-ring/spring-ring.component.html","./src/app/components/riva-findings/spring/spring-dialog/spring-dialog.component.ts","./src/app/components/riva-findings/spring/spring-dialog/spring-dialog.component.html","./src/app/components/riva-findings/spring/spring.component.ts","./src/app/components/riva-findings/spring/spring.component.html","./src/app/components/riva-findings/tags/tags-dialog/tags-dialog.component.ts","./src/app/components/riva-findings/tags/tags-dialog/tags-dialog.component.html","./src/app/components/riva-findings/tags/tags.component.ts","./src/app/components/riva-findings/tags/tags.component.html","./src/app/components/riva-findings/util.ts","./src/app/components/riva-gems/dialogs/stone-confirmation/stone-confirmation.component.ts","./src/app/components/riva-gems/dialogs/stone-confirmation/stone-confirmation.component.html","./src/app/components/riva-gems/dialogs/stone-dialog/stone-dialog.component.ts","./src/app/components/riva-gems/dialogs/stone-dialog/stone-dialog.component.html","./src/app/components/riva-gems/dialogs/stone-images-dialog/stone-images-dialog.component.ts","./src/app/components/riva-gems/dialogs/stone-images-dialog/stone-images-dialog.component.html","./src/app/components/riva-gems/dialogs/stone-inventory-adjustment-dialog/stone-inventory-adjustment-dialog.component.ts","./src/app/components/riva-gems/dialogs/stone-inventory-adjustment-dialog/stone-inventory-adjustment-dialog.component.html","./src/app/components/riva-gems/dialogs/stone-size-dialog/stone-size-dialog.component.ts","./src/app/components/riva-gems/dialogs/stone-size-dialog/stone-size-dialog.component.html","./src/app/components/riva-gems/dialogs/stone-updater-dialog/stone-updater-dialog.component.ts","./src/app/components/riva-gems/dialogs/stone-updater-dialog/stone-updater-dialog.component.html","./src/app/components/riva-gems/gems-details/gems-details.component.ts","./src/app/components/riva-gems/gems-details/gems-details.component.html","./src/app/components/riva-gems/gems-list/gems-list.component.ts","./src/app/components/riva-gems/gems-list/gems-list.component.html","./src/app/components/riva-gems/riva-gems.component.ts","./src/app/components/riva-gems/riva-gems.component.html","./src/app/components/riva-gems/stone-product/stone-override-size-dialog/stone-override-size-dialog.component.ts","./src/app/components/riva-gems/stone-product/stone-override-size-dialog/stone-override-size-dialog.component.html","./src/app/components/riva-gems/stone-product/stone-override-size-multiple-dialog/stone-override-size-multiple-dialog.component.ts","./src/app/components/riva-gems/stone-product/stone-override-size-multiple-dialog/stone-override-size-multiple-dialog.component.html","./src/app/components/riva-gems/stone-product/stone-product.component.ts","./src/app/components/riva-gems/stone-product/stone-product.component.html","./src/app/components/riva-gems/stone.mapper.ts","./src/app/components/riva-gems/stone.service.ts","./src/app/components/riva-stl-viewer/riva-stl-viewer-dialog.component.ts","./src/app/components/riva-stl-viewer/riva-stl-viewer-dialog.component.html","./src/app/components/riva-super-admin-tools/riva-super-admin-toolscomponent.ts","./src/app/components/riva-super-admin-tools/riva-super-admin-tools.component.html","./src/app/components/riva-text-avatar/riva-text-avatar.component.ts","./src/app/components/riva-text-avatar/riva-text-avatar.component.html","./src/app/components/riva-timeout/riva-timeout.component.ts","./src/app/components/riva-timeout/riva-timeout.component.html","./src/app/components/sub-items/sub-items-confirmation.component.ts","./src/app/components/sub-items/sub-items-confirmation.component.html","./src/app/components/sub-items/sub-items-dialog.component.ts","./src/app/components/sub-items/sub-items-dialog.component.html","./src/app/components/sub-items/sub-items.component.ts","./src/app/components/sub-items/sub-items.component.html","./src/app/components/supplier-page/supplier-dialog/supplier-dialog.component.ts","./src/app/components/supplier-page/supplier-dialog/supplier-dialog.component.html","./src/app/components/supplier-page/supplier-page.component.ts","./src/app/components/supplier-page/supplier-page.component.html","./src/app/components/work-order-label-printing/work-order-label-printing.component.ts","./src/app/components/work-order-label-printing/work-order-label-printing.component.html","./src/app/components/work-order-tracking/work-order-tracking.component.ts","./src/app/components/work-order-tracking/work-order-tracking.component.html","./src/app/components/work-order-view/orphan-work-order-dialog/orphan-work-order-dialog.component.ts","./src/app/components/work-order-view/orphan-work-order-dialog/orphan-work-order-dialog.component.html","./src/app/components/work-order-view/receiving-item-dialog/receiving-item-dialog.component.ts","./src/app/components/work-order-view/receiving-item-dialog/receiving-item-dialog.component.html","./src/app/components/work-order-view/work-order-print/work-order-print-dialog.component.ts","./src/app/components/work-order-view/work-order-print/work-order-print-dialog.component.html","./src/app/components/work-order-view/work-order-type.ts","./src/app/components/work-order-view/work-order-view.component.ts","./src/app/components/work-order-view/work-order-view.component.html","./src/app/components/work-order-view/work-orders-release.component.ts","./src/app/components/work-order-view/work-orders-release.component.html","./src/app/components/work-order/work-order.component.ts","./src/app/components/work-order/work-order.component.html","./src/app/core/authentication/authentication.interceptor.ts","./src/app/core/authentication/authentication.service.ts","./src/app/core/authentication/token-storage.service.ts","./src/app/core/user-permission/user-permission-rules/customer-permission.ts","./src/app/core/user-permission/user-permission-rules/enamel-permission.ts","./src/app/core/user-permission/user-permission-rules/findings-permission.ts","./src/app/core/user-permission/user-permission-rules/index.ts","./src/app/core/user-permission/user-permission-rules/invoicing-shipping-permission.ts","./src/app/core/user-permission/user-permission-rules/order-details-permission.ts","./src/app/core/user-permission/user-permission-rules/other-component-permission.ts","./src/app/core/user-permission/user-permission-rules/pages.ts","./src/app/core/user-permission/user-permission-rules/product-permission.ts","./src/app/core/user-permission/user-permission-rules/purchase-order-permission.ts","./src/app/core/user-permission/user-permission-rules/reporting-permission.ts","./src/app/core/user-permission/user-permission-rules/stone-open-order-report-permission.ts","./src/app/core/user-permission/user-permission-rules/stone-permission.ts","./src/app/core/user-permission/user-permission-rules/supplier-permission.ts","./src/app/core/user-permission/user-permission-rules/work-order-movement-permission.ts","./src/app/core/user-permission/user-permission-rules/work-order-permission.ts","./src/app/core/user-permission/user-permission.directive.ts","./src/app/core/user-permission/user-permission.service.ts","./src/app/custom/_alert/alert.component.ts","./src/app/custom/_alert/alert.component.html","./src/app/custom/_alert/alert.model.ts","./src/app/custom/_alert/alert.module.ts","./src/app/custom/_alert/alert.service.ts","./src/app/custom/_alert/index.ts","./src/app/custom/auth.guard.ts","./src/app/custom/directives/autofocus.directive.ts","./src/app/custom/directives/number-only.directive.ts","./src/app/custom/load-overlay/load-overlay.component.ts","./src/app/custom/load-overlay/load-overlay.component.html","./src/app/custom/load-overlay/load-content-overlay.component.html","./src/app/custom/load-overlay/load-overlay.service.ts","./src/app/custom/notification/notification.component.ts","./src/app/custom/notification/notification.component.html","./src/app/custom/pipes/enum-to-array.pipe.ts","./src/app/custom/pipes/id.pipe.ts","./src/app/custom/pipes/no-comma.pipe.ts","./src/app/custom/riva-side-nav/menu.ts","./src/app/custom/riva-side-nav/riva-side-nav.component.ts","./src/app/custom/riva-side-nav/riva-side-nav.component.html","./src/app/models/chain.model.ts","./src/app/models/chainfinished.model.ts","./src/app/models/customer.ts","./src/app/models/enamel.ts","./src/app/models/enum/bom-item-type.enum.ts","./src/app/models/enum/customer.enum.ts","./src/app/models/findings.model.ts","./src/app/models/gems.model.ts","./src/app/models/historylogs.model.ts","./src/app/models/inventory-log.ts","./src/app/models/login.ts","./src/app/models/manufactured-materials.ts","./src/app/models/material-code.ts","./src/app/models/metal-grain.ts","./src/app/models/nonprecious.model.ts","./src/app/models/orders.model.ts","./src/app/models/product-stock.ts","./src/app/models/product.ts","./src/app/models/raw-materials.model.ts","./src/app/models/request/product-search-request.ts","./src/app/models/rgw-order-import.response.ts","./src/app/models/suppliers.model.ts","./src/app/models/work-order.ts","./src/app/services/analytics.service.ts","./src/app/services/chain.service.ts","./src/app/services/chainfinished.service.ts","./src/app/services/chainfinishedinfo.service.ts","./src/app/services/customer-address.service.ts","./src/app/services/customer.service.ts","./src/app/services/enamel.service.ts","./src/app/services/findings.service.ts","./src/app/services/findingsinfo.service.ts","./src/app/services/gem.service.ts","./src/app/services/generic.service.ts","./src/app/services/history.service.ts","./src/app/services/inventory-log.service.ts","./src/app/services/invoice.service.ts","./src/app/services/jewelry-type.service.ts","./src/app/services/jira.service.ts","./src/app/services/manufactured-materials-info.service.ts","./src/app/services/manufactured-materials.service.ts","./src/app/services/material-code.service.ts","./src/app/services/metal-grain.service.ts","./src/app/services/metal-market.service.ts","./src/app/services/non-precious.service.ts","./src/app/services/order.service.ts","./src/app/services/orderdetails.service.ts","./src/app/services/other-components.service.ts","./src/app/services/pricing-addons.service.ts","./src/app/services/pricing-equation.service.ts","./src/app/services/print.service.ts","./src/app/services/product-bom.service.ts","./src/app/services/product-store-info.service.ts","./src/app/services/product.service.ts","./src/app/services/products-routing.service.ts","./src/app/services/raw-materials.service.ts","./src/app/services/rawmaterialsinfo.service.ts","./src/app/services/report.service.ts","./src/app/services/routing-code.service.ts","./src/app/services/scan.service.ts","./src/app/services/search-product.ts","./src/app/services/shared.service.ts","./src/app/services/shipments.service.ts","./src/app/services/sku.service.ts","./src/app/services/stone-release.service.ts","./src/app/services/sub-item.service.ts","./src/app/services/supplier.service.ts","./src/app/services/suppliers.service.ts","./src/app/services/unit-of-measurement.service.ts","./src/app/services/user.service.ts","./src/app/services/work-order-movement.service.ts","./src/app/services/work-order.service.ts","./src/app/shared modules/app-material/app-material.module.ts","./src/app/shared modules/shared.module.ts","./src/app/utilities/alphabet-characters.ts","./src/environments/environment.ts","./src/main.ts","ignored|C:\\Jenkins Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|canvas","ignored|C:\\Jenkins Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|fs","ignored|C:\\Jenkins Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|http","ignored|C:\\Jenkins Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|https","ignored|C:\\Jenkins Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|url","ignored|C:\\Jenkins Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|zlib"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\n\r\nexport const fadeAnimation = trigger('fadeAnimation', [\r\n state(\r\n 'void',\r\n style({\r\n opacity: 0,\r\n }),\r\n ),\r\n state(\r\n '*',\r\n style({\r\n opacity: 1,\r\n }),\r\n ),\r\n transition('void <=> *', [animate('0.2s ease-in-out')]),\r\n]);\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AccountsTableComponent } from './components/accounts-table/accounts-table.component';\r\nimport { ChainTabComponent } from './components/chain-tab/chain-tab.component';\r\nimport { CustomerPageComponent } from './components/customer-page/customer-page.component';\r\nimport { EnamelComponent } from './components/enamel/enamel.component';\r\nimport { EquationsComponent } from './components/equations/equations.component';\r\nimport { ForbiddenComponent } from './components/forbidden/forbidden.component';\r\nimport { InventoryLogComponent } from './components/inventory-log/inventory-log.component';\r\nimport { InvoicingShippingComponent } from './components/invoicing-shipping/invoicing-shipping.component';\r\nimport { InvoicingDetailComponent } from './components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail.component';\r\nimport { ShippingDetailComponent } from './components/invoicing-shipping/shipping/shipping-detail/shipping-detail.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { ManufacturedMaterialsComponent } from './components/manufactured-materials/manufactured-materials.component';\r\nimport { MetalGrainComponent } from './components/metal-grain/metal-grain.component';\r\nimport { MetalOverheadEquationsComponent } from './components/metal-overhead-equations/metal-overhead-equations.component';\r\nimport { NonPreciousComponent } from './components/non-precious/non-precious.component';\r\nimport { OpenOrderReportComponent } from './components/open-order-report/open-order-report.component';\r\nimport { OpenOrderStoneReportComponent } from './components/open-order-stone-report/open-order-stone-report.component';\r\nimport { OrdersComponent } from './components/orders/orders.component';\r\nimport { OrderviewComponent } from './components/orderview/orderview.component';\r\nimport { OtherComponentsComponent } from './components/other-components/other-components.component';\r\nimport { PriceCustomComponent } from './components/price-custom/price-custom.component';\r\nimport { PriceDefaultsComponent } from './components/price-defaults/price-defaults.component';\r\nimport { ProductPricingComponent } from './components/product-pricing/product-pricing.component';\r\nimport { ProductQueryComponent } from './components/product-query/product-query.component';\r\nimport { ProductsTableComponent } from './components/products-table/products-table.component';\r\nimport { GeneralReportsComponent } from './components/reporting/general-reports/general-reports.component';\r\nimport { ItemWeightsComponent } from './components/reporting/item-weights/item-weights.component';\r\nimport { ReportingComponent } from './components/reporting/reporting.component';\r\nimport { WorkOrderMovementComponent } from './components/reporting/work-order-movement/work-order-movement.component';\r\nimport { RivaChainPageComponent } from './components/riva-chain/riva-chain-page/riva-chain-page.component';\r\nimport { RivaChainPricingComponent } from './components/riva-chain/riva-chain-pricing/riva-chain-pricing.component';\r\nimport { RivaFindingsComponent } from './components/riva-findings/riva-findings.component';\r\nimport { RivaGemsComponent } from './components/riva-gems/riva-gems.component';\r\nimport { RivaSuperAdminToolsComponent } from './components/riva-super-admin-tools/riva-super-admin-toolscomponent';\r\nimport { SupplierPageComponent } from './components/supplier-page/supplier-page.component';\r\nimport { WorkOrderLabelPrintingComponent } from './components/work-order-label-printing/work-order-label-printing.component';\r\nimport { WorkOrderTrackingComponent } from './components/work-order-tracking/work-order-tracking.component';\r\nimport { WorkOrderViewComponent } from './components/work-order-view/work-order-view.component';\r\nimport { AuthGuard } from './custom/auth.guard';\r\n\r\nconst routes: Routes = [\r\n { path: '', pathMatch: 'full', redirectTo: '/main/ordersview' },\r\n { path: 'login', component: LoginComponent },\r\n {\r\n path: 'main',\r\n children: [\r\n {\r\n path: 'orders/:ordersId',\r\n component: OrdersComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'ordersview',\r\n component: OrderviewComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'open-order-report',\r\n component: OpenOrderReportComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'stone-open-order-report',\r\n component: OpenOrderStoneReportComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'products',\r\n component: ProductsTableComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'stones',\r\n component: RivaGemsComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n { path: 'chain', component: ChainTabComponent, canActivate: [AuthGuard] },\r\n ],\r\n },\r\n {\r\n path: 'invoicing-and-shipping/:slug',\r\n component: InvoicingShippingComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'reporting',\r\n children: [\r\n {\r\n path: 'graph',\r\n component: ReportingComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'item-weights',\r\n component: ItemWeightsComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'work-order-movement',\r\n component: WorkOrderMovementComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'reports',\r\n component: GeneralReportsComponent,\r\n canActivate: [AuthGuard],\r\n }\r\n ],\r\n },\r\n {\r\n path: 'invoicing-and-shipping/invoicing/:invoiceId',\r\n component: InvoicingDetailComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'invoicing-and-shipping/shipping/:shippingId',\r\n component: ShippingDetailComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'items',\r\n children: [\r\n {\r\n path: 'findings/:slug',\r\n component: RivaFindingsComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'chain/:slug',\r\n component: RivaChainPageComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'metal-grains',\r\n component: MetalGrainComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n { path: 'enamel', component: EnamelComponent, canActivate: [AuthGuard] },\r\n {\r\n path: 'nonprecious',\r\n component: NonPreciousComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'manufactured-materials',\r\n component: ManufacturedMaterialsComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'other-components',\r\n component: OtherComponentsComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n ],\r\n },\r\n {\r\n path: 'admin',\r\n children: [\r\n {\r\n path: 'suppliers',\r\n component: SupplierPageComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'customers',\r\n component: CustomerPageComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'accounts',\r\n component: AccountsTableComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'tools',\r\n component: RivaSuperAdminToolsComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n ],\r\n },\r\n {\r\n path: 'pricing',\r\n children: [\r\n {\r\n path: 'equations',\r\n component: EquationsComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'price-defaults',\r\n component: PriceDefaultsComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'metal-overhead-equations',\r\n component: MetalOverheadEquationsComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'product-pricing',\r\n component: ProductPricingComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'pricing-custom',\r\n component: PriceCustomComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'chain-pricing',\r\n component: RivaChainPricingComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n ],\r\n },\r\n {\r\n path: 'reports',\r\n children: [\r\n {\r\n path: 'work-order',\r\n component: WorkOrderViewComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n ],\r\n },\r\n {\r\n path: 'inventory-log',\r\n component: InventoryLogComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'work-order-tracking',\r\n component: WorkOrderTrackingComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: 'package-label-printing',\r\n component: WorkOrderLabelPrintingComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n { path: '', component: ForbiddenComponent },\r\n { path: 'forbidden', component: ForbiddenComponent },\r\n {\r\n path: 'product-query',\r\n component: ProductQueryComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n { path: '**', redirectTo: '/forbidden' },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component } from '@angular/core';\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 {\r\n title = 'riva-web';\r\n}\r\n","\r\n\r\n\r\n","import { HttpClientModule } from '@angular/common/http';\r\nimport { APP_INITIALIZER, ErrorHandler, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { IvyCarouselModule } from 'angular-responsive-carousel';\r\nimport { ClickOutsideModule } from 'ng-click-outside';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\r\nimport { NgxFileDropModule } from 'ngx-file-drop';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { AppRoutingModule } from './app-routing.module';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\n\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { CurrencyPipe, DatePipe } from '@angular/common';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { IconDefinition } from '@ant-design/icons-angular';\r\nimport { NgxGalleryModule } from '@kolkov/ngx-gallery';\r\nimport { SweetAlert2Module } from '@sweetalert2/ngx-sweetalert2';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\r\nimport { NzLayoutModule } from 'ng-zorro-antd/layout';\r\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\r\nimport { NzProgressModule } from 'ng-zorro-antd/progress';\r\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\r\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\r\nimport { RedZoomModule } from 'ngx-red-zoom';\r\n\r\nimport { NgChartsModule } from 'ng2-charts';\r\nimport { SlickCarouselModule } from 'ngx-slick-carousel';\r\nimport { AccountsTableDialogComponent } from './components/accounts-table/accounts-table-dialog/accounts-table-dialog.component';\r\nimport { AccountsTableUserComponent } from './components/accounts-table/accounts-table-user/accounts-table-user.component';\r\nimport { AccountsTableComponent } from './components/accounts-table/accounts-table.component';\r\nimport { ResetPasswordDialogComponent } from './components/accounts-table/reset-password-dialog/reset-password-dialog.component';\r\nimport { BillOfMaterialSubItemConfirmationComponent } from './components/bill-of-material-sub-item/bill-of-material-sub-item-confirmation.component';\r\nimport { BillOfMaterialSubItemDialogComponent } from './components/bill-of-material-sub-item/bill-of-material-sub-item-dialog..component';\r\nimport { BillOfMaterialSubItemComponent } from './components/bill-of-material-sub-item/bill-of-material-sub-item.component';\r\nimport { BillOfMaterialComponent } from './components/bill-of-material/bill-of-material.component';\r\nimport { BillOfMaterialsAComponent } from './components/bill-of-materials-a/bill-of-materials-a.component';\r\nimport { BillOfMaterialsBComponent } from './components/bill-of-materials-b/bill-of-materials-b.component';\r\nimport { BillOfMaterialsComponent } from './components/bill-of-materials/bill-of-materials.component';\r\nimport { ChainFinishedComponent } from './components/chain-finished/chain-finished.component';\r\nimport { ChainTabComponent } from './components/chain-tab/chain-tab.component';\r\nimport { ChainComponent } from './components/chain/chain.component';\r\nimport { EnamelComponent } from './components/enamel/enamel.component';\r\nimport { FindingsComponent } from './components/findings/findings.component';\r\nimport { ForbiddenComponent } from './components/forbidden/forbidden.component';\r\nimport { GemsBomComponent } from './components/gems-bom/gems-bom.component';\r\nimport { GemsComponent } from './components/gems/gems.component';\r\nimport { InventoryLogComponent } from './components/inventory-log/inventory-log.component';\r\nimport { ManufacturedMaterialsComponent } from './components/manufactured-materials/manufactured-materials.component';\r\nimport { MetalGrainComponent } from './components/metal-grain/metal-grain.component';\r\nimport { NonPreciousComponent } from './components/non-precious/non-precious.component';\r\nimport { OrderdetailsModule } from './components/orderdetails/orderdetails.module';\r\nimport { OrderImportingComponent } from './components/orderimporting/orderimporting.component';\r\nimport { OrdersConfirmationComponent } from './components/orders-dialog/orders-confirmation.component';\r\nimport { OrdersProgressComponent } from './components/orders-dialog/orders-progress.component';\r\nimport { OrdersComponent } from './components/orders/orders.component';\r\nimport { OrderviewComponent } from './components/orderview/orderview.component';\r\nimport { ProductGroupTableComponent } from './components/product-group-table/product-group-table.component';\r\nimport { ProductReportComponent } from './components/product-report/product-report.component';\r\nimport { ProductTableV2Component } from './components/product-table-v2/product-table-v2.component';\r\nimport { ProductsTableComponent } from './components/products-table/products-table.component';\r\nimport { RawMaterialsComponent } from './components/raw-materials/raw-materials.component';\r\nimport { RivaConfirmationComponent } from './components/riva-confirmation/riva-confirmation.component';\r\nimport { ConfirmationService } from './components/riva-confirmation/riva-confirmation.service';\r\nimport { RivaStlViewerDialogComponent } from './components/riva-stl-viewer/riva-stl-viewer-dialog.component';\r\nimport { RivaTextAvatarComponent } from './components/riva-text-avatar/riva-text-avatar.component';\r\nimport { SubItemsConfirmationComponent } from './components/sub-items/sub-items-confirmation.component';\r\nimport { SubItemsDialogComponent } from './components/sub-items/sub-items-dialog.component';\r\nimport { SubItemsComponent } from './components/sub-items/sub-items.component';\r\nimport { WorkOrderViewComponent } from './components/work-order-view/work-order-view.component';\r\nimport { WorkOrdersReleaseComponent } from './components/work-order-view/work-orders-release.component';\r\nimport { WorkOrderComponent } from './components/work-order/work-order.component';\r\nimport { AlertModule } from './custom/_alert';\r\nimport {\r\n LoadContentOverlayComponent,\r\n LoadOverlayComponent,\r\n} from './custom/load-overlay/load-overlay.component';\r\nimport { NotificationComponent } from './custom/notification/notification.component';\r\nimport { EnumToArrayPipe } from './custom/pipes/enum-to-array.pipe';\r\nimport { IdPipe } from './custom/pipes/id.pipe';\r\nimport { RivaSideNavComponent } from './custom/riva-side-nav/riva-side-nav.component';\r\nimport { GenericService } from './services/generic.service';\r\n\r\nimport {\r\n ApiOutline,\r\n CaretDownFill,\r\n CodeOutline,\r\n ControlOutline,\r\n CreditCardOutline,\r\n DeleteFill,\r\n DollarCircleOutline,\r\n EditFill,\r\n FileImageOutline,\r\n FileSearchOutline,\r\n FileSyncOutline,\r\n LeftCircleFill,\r\n LineChartOutline,\r\n LogoutOutline,\r\n MenuFoldOutline,\r\n MenuUnfoldOutline,\r\n QrcodeOutline,\r\n RocketOutline,\r\n SettingOutline,\r\n ShopOutline,\r\n ShoppingCartOutline,\r\n ToolOutline,\r\n} from '@ant-design/icons-angular/icons';\r\nimport { NzAlertModule } from 'ng-zorro-antd/alert';\r\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\r\n\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { Router } from '@angular/router';\r\nimport { NgIdleKeepaliveModule } from '@ng-idle/keepalive';\r\nimport * as Sentry from '@sentry/angular-ivy';\r\nimport { StlModelViewerModule } from 'angular-stl-model-viewer';\r\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { UserPermissionDialogComponent } from './components/accounts-table/user-permission-dialog/user-permission-dialog.component';\r\nimport { UserPermissionNavigationDialogComponent } from './components/accounts-table/user-permission-navigation-dialog/user-permission-navigation-dialog.component';\r\nimport { ProductComponentDialogComponent } from './components/bill-of-material/product-component-dialog/product-component-dialog.component';\r\nimport { ProductEnamelComponent } from './components/bill-of-material/product-enamel/product-enamel.component';\r\nimport { BomFindingsComponent } from './components/bill-of-material/product-findings/bom-findings/bom-findings.component';\r\nimport { BomJumpringComponent } from './components/bill-of-material/product-findings/bom-jumpring/bom-jumpring.component';\r\nimport { BomPostComponent } from './components/bill-of-material/product-findings/bom-post/bom-post.component';\r\nimport { ProductFindingsTableComponent } from './components/bill-of-material/product-findings/product-findings-table/product-findings-table.component';\r\nimport { ProductFindingsComponent } from './components/bill-of-material/product-findings/product-findings.component';\r\nimport { ProductLinkBomFormComponent } from './components/bill-of-material/product-link-bom/product-link-bom-form/product-link-bom-form.component';\r\nimport { ProductLinkBomTableComponent } from './components/bill-of-material/product-link-bom/product-link-bom-table/product-link-bom-table.component';\r\nimport { ProductLinkBomComponent } from './components/bill-of-material/product-link-bom/product-link-bom.component';\r\nimport { CustomerAddressDialogComponent } from './components/customer-page/customer-address-dialog/customer-address-dialog.component';\r\nimport { CustomerDialogComponent } from './components/customer-page/customer-dialog/customer-dialog.component';\r\nimport { CustomerPageComponent } from './components/customer-page/customer-page.component';\r\nimport { CustomerSettingDialogComponent } from './components/customer-page/customer-setting-dialog/customer-setting-dialog.component';\r\nimport { EquationsComponent } from './components/equations/equations.component';\r\nimport { InvoicingShippingComponent } from './components/invoicing-shipping/invoicing-shipping.component';\r\nimport { InvoicingDetailDialogComponent } from './components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail-dialog/invoicing-detail-dialog.component';\r\nimport { InvoicingDetailComponent } from './components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail.component';\r\nimport { InvoicingPriceDialogComponent } from './components/invoicing-shipping/invoicing/invoicing-detail/invoicing-price-dialog/invoicing-price-dialog.component';\r\nimport { RelatedShipmentDialogComponent } from './components/invoicing-shipping/invoicing/invoicing-detail/related-shipment-dialog/related-shipment-dialog.component';\r\nimport { InvoicingPrintDialogComponent } from './components/invoicing-shipping/invoicing/invoicing-print-dialog/invoicing-print-dialog.component';\r\nimport { InvoicingComponent } from './components/invoicing-shipping/invoicing/invoicing.component';\r\nimport { ShippingDetailDialogComponent } from './components/invoicing-shipping/shipping/shipping-detail/shipping-detail-dialog/shipping-detail-dialog.component';\r\nimport { ShippingDetailComponent } from './components/invoicing-shipping/shipping/shipping-detail/shipping-detail.component';\r\nimport { ShippingRelatedInvoiceDialogComponent } from './components/invoicing-shipping/shipping/shipping-detail/shipping-related-invoice-dialog/shipping-related-invoice-dialog.component';\r\nimport { ShippingComponent } from './components/invoicing-shipping/shipping/shipping.component';\r\nimport { MetalOverheadEquationsComponent } from './components/metal-overhead-equations/metal-overhead-equations.component';\r\nimport { OpenOrderReportComponent } from './components/open-order-report/open-order-report.component';\r\nimport { OpenOrderStoneReportComponent } from './components/open-order-stone-report/open-order-stone-report.component';\r\nimport { StoneReceivingDialogComponent } from './components/open-order-stone-report/stone-receiving-dialog/stone-receiving-dialog.component';\r\nimport { StoneReleaseHistoryDialogComponent } from './components/open-order-stone-report/stone-release-history-dialog/stone-release-history-dialog.component';\r\nimport { AddProductByCustomerSkuDialogComponent } from './components/orderdetails/list/add-product-by-customer-sku-dialog/add-product-by-customer-sku-dialog.component';\r\nimport { OrderUploadDialogComponent } from './components/orderdetails/order-upload-dialog/order-upload-dialog.component';\r\nimport { RelatedInvoicesDialogComponent } from './components/orders/related-invoices-dialog/related-invoices-dialog.component';\r\nimport { OtherComponentsRoutingCopyDialogComponent } from './components/other-components/other-components-routing/other-components-routing-copy-dialog.component';\r\nimport { OtherComponentsRoutingDialogComponent } from './components/other-components/other-components-routing/other-components-routing-dialog.component';\r\nimport { OtherComponentsRoutingComponent } from './components/other-components/other-components-routing/other-components-routing.component';\r\nimport { OtherComponentsSizeDialogComponent } from './components/other-components/other-components-size-dialog/other-components-size-dialog.component';\r\nimport { OtherComponentsSkuGeneratorDialogComponent } from './components/other-components/other-components-sku-generator-dialog/other-components-sku-generator-dialog.component';\r\nimport { OtherComponentsComponent } from './components/other-components/other-components.component';\r\nimport { PriceCustomComponent } from './components/price-custom/price-custom.component';\r\nimport { CustomerAdditionalChargesComponent } from './components/price-defaults/customer-additional-charges/customer-additional-charges.component';\r\nimport { CustomerPriceDefaultsComponent } from './components/price-defaults/customer-price-defaults/customer-price-defaults.component';\r\nimport { PriceDefaultsComponent } from './components/price-defaults/price-defaults.component';\r\nimport { ProductPricingComponent } from './components/product-pricing/product-pricing.component';\r\nimport { ProductInvoiceDetailsComponent } from './components/product-query/product-invoice-details/product-invoice-details.component';\r\nimport { ProductInvoiceComponent } from './components/product-query/product-invoice/product-invoice.component';\r\nimport { ProductOrderDetailsComponent } from './components/product-query/product-order-details/product-order-details.component';\r\nimport { ProductOrderComponent } from './components/product-query/product-order/product-order.component';\r\nimport { ProductQueryComponent } from './components/product-query/product-query.component';\r\nimport { ProductRoutingCopyDialogComponent } from './components/product-routing/product-routing-copy-dialog.component';\r\nimport { ProductRoutingDialogComponent } from './components/product-routing/product-routing-dialog.component';\r\nimport { ProductRoutingComponent } from './components/product-routing/product-routing.component';\r\nimport { EnamelConstantComponent } from './components/products-table/enamel-constant/enamel-constant.component';\r\nimport { EnamelVariationDialogComponent } from './components/products-table/enamel-variation-dialog/enamel-variation-dialog.component';\r\nimport { EnamelVariationComponent } from './components/products-table/enamel-variation/enamel-variation.component';\r\nimport { ProductImageOrderDialogComponent } from './components/products-table/product-image-order-dialog/product-image-order-dialog.component';\r\nimport { ProductImageComponent } from './components/products-table/product-image/product-image.component';\r\nimport { ProductMaterialDialogComponent } from './components/products-table/product-material-dialog/product-material-dialog.component';\r\nimport { ProductSettingDialogComponent } from './components/products-table/product-setting-dialog/product-setting-dialog.component';\r\nimport { ProductSizesDialogComponent } from './components/products-table/product-sizes-dialog/product-sizes-dialog.component';\r\nimport { ProductSkuGeneratorDialogComponent } from './components/products-table/product-sku-generator-dialog/product-sku-generator-dialog.component';\r\nimport { GeneralReportsComponent } from './components/reporting/general-reports/general-reports.component';\r\nimport { InvoiceReportsComponent } from './components/reporting/general-reports/invoice-reports/invoice-reports.component';\r\nimport { StoneMovementReportComponent } from './components/reporting/general-reports/stone-movements-report/stone-movements-report.component';\r\nimport { ItemWeightsComponent } from './components/reporting/item-weights/item-weights.component';\r\nimport { ReportingInvoiceErrorDialogComponent } from './components/reporting/reporting-invoice/reporting-invoice-error-dialog/reporting-invoice-error-dialog.component';\r\nimport { ReportingInvoiceComponent } from './components/reporting/reporting-invoice/reporting-invoice.component';\r\nimport { ReportingItemPlacedComponent } from './components/reporting/reporting-item-placed/reporting-item-placed.component';\r\nimport { ReportingPresetsComponent } from './components/reporting/reporting-presets/reporting-presets.component';\r\nimport { ReportingTopProductComponent } from './components/reporting/reporting-top-product/reporting-top-product.component';\r\nimport { ReportingTotalShipmentComponent } from './components/reporting/reporting-total-shipment/reporting-total-shipment.component';\r\nimport { ReportingComponent } from './components/reporting/reporting.component';\r\nimport { PDMovementComponent } from './components/reporting/work-order-movement/pd-movement/pd-movement.component';\r\nimport { EmployeeDownTimeErrorDialogComponent } from './components/reporting/work-order-movement/work-order-employee-down-time/employee-down-time-error-dialog/employee-down-time-error-dialog.component';\r\nimport { WorkOrderEmployeeDownTimeComponent } from './components/reporting/work-order-movement/work-order-employee-down-time/work-order-employee-down-time.component';\r\nimport { WorkOrderEmployeeComponent } from './components/reporting/work-order-movement/work-order-employee/work-order-employee.component';\r\nimport { WorkOrderIncompleteComponent } from './components/reporting/work-order-movement/work-order-incomplete/work-order-incomplete.component';\r\nimport { WorkOrderMovedComponent } from './components/reporting/work-order-movement/work-order-moved/work-order-moved.component';\r\nimport { WorkOrderMovementComponent } from './components/reporting/work-order-movement/work-order-movement.component';\r\nimport { WorkOrderProcessComparisonComponent } from './components/reporting/work-order-movement/work-order-process-comparison/work-order-process-comparison.component';\r\nimport { WorkOrderProductSearchComponent } from './components/reporting/work-order-movement/work-order-product-search/work-order-product-search.component';\r\nimport { ChainFinishBomDialogComponent } from './components/riva-chain/riva-chain-finish/chain-finish-bom-dialog/chain-finish-bom-dialog.component';\r\nimport { ChainFinishDialogComponent } from './components/riva-chain/riva-chain-finish/chain-finish-dialog/chain-finish-dialog.component';\r\nimport { ChainFinishedSkuGeneratorDialogComponent } from './components/riva-chain/riva-chain-finish/chain-finished-sku-generator-dialog/chain-finished-sku-generator-dialog.component';\r\nimport { RivaChainFinishListComponent } from './components/riva-chain/riva-chain-finish/riva-chain-finish-list/riva-chain-finish-list.component';\r\nimport { RivaChainPageComponent } from './components/riva-chain/riva-chain-page/riva-chain-page.component';\r\nimport { RivaChainPricingUnfinishedTableComponent } from './components/riva-chain/riva-chain-pricing/riva-chain-pricing-unfinished/riva-chain-pricing-unfinished-table/riva-chain-pricing-unfinished-table.component';\r\nimport { RivaChainPricingUnfinishedComponent } from './components/riva-chain/riva-chain-pricing/riva-chain-pricing-unfinished/riva-chain-pricing-unfinished.component';\r\nimport { RivaChainPricingComponent } from './components/riva-chain/riva-chain-pricing/riva-chain-pricing.component';\r\nimport { ProductChainFinishedTableComponent } from './components/riva-chain/riva-chain-product/product-chain-finished-table/product-chain-finished-table.component';\r\nimport { ProductChainUnfinishedTableComponent } from './components/riva-chain/riva-chain-product/product-chain-unfinished-table/product-chain-unfinished-table.component';\r\nimport { RivaChainFinishedProductComponent } from './components/riva-chain/riva-chain-product/riva-chain-finished-product/riva-chain-finished-product.component';\r\nimport { RivaChainProductContainerComponent } from './components/riva-chain/riva-chain-product/riva-chain-product-container/riva-chain-product-container.component';\r\nimport { RivaChainUnfinishedProductComponent } from './components/riva-chain/riva-chain-product/riva-chain-unfinished-product/riva-chain-unfinished-product.component';\r\nimport { ChainRoutingCopyDialogComponent } from './components/riva-chain/riva-chain-routing/chain-routing-copy-dialog.component';\r\nimport { ChainRoutingDialogComponent } from './components/riva-chain/riva-chain-routing/chain-routing-dialog.component';\r\nimport { ChainRoutingComponent } from './components/riva-chain/riva-chain-routing/chain-routing.component';\r\nimport { ChainDialogComponent } from './components/riva-chain/riva-chain/chain-dialog/chain-dialog.component';\r\nimport { ChainRawDialogComponent } from './components/riva-chain/riva-chain/chain-raw-dialog/chain-raw-dialog.component';\r\nimport { ChainUnfinishedSkuGeneratorDialogComponent } from './components/riva-chain/riva-chain/chain-unfinished-sku-generator-dialog/chain-unfinished-sku-generator-dialog.component';\r\nimport { RivaChainComponent } from './components/riva-chain/riva-chain/riva-chain.component';\r\nimport { RivaDateRangePickerComponent } from './components/riva-date-range-picker/riva-date-range-picker.component';\r\nimport { FindingRoutingDialogComponent } from './components/riva-findings/finding-routing/finding-routing-dialog.component';\r\nimport { FindingRoutingComponent } from './components/riva-findings/finding-routing/finding-routing.component';\r\nimport { FindingSettingDialogComponent } from './components/riva-findings/finding-setting-dialog/finding-setting-dialog.component';\r\nimport { FindingStockDialogComponent } from './components/riva-findings/finding-stock-dialog/finding-stock-dialog.component';\r\nimport { FindingsDetailsComponent } from './components/riva-findings/findings-details/findings-details.component';\r\nimport { FindingsListComponent } from './components/riva-findings/findings-list/findings-list.component';\r\nimport { FindingsSkuGeneratorButtonComponent } from './components/riva-findings/findings-sku-generator-button/findings-sku-generator-button.component';\r\nimport { FindingsSkuGeneratorDialogComponent } from './components/riva-findings/findings-sku-generator-dialog/findings-sku-generator-dialog.component';\r\nimport { FlyerDialogComponent } from './components/riva-findings/flyer/flyer-dialog/flyer-dialog.component';\r\nimport { FlyerComponent } from './components/riva-findings/flyer/flyer.component';\r\nimport { JumpringDialogComponent } from './components/riva-findings/jumpring/jumpring-dialog/jumpring-dialog.component';\r\nimport { JumpringComponent } from './components/riva-findings/jumpring/jumpring.component';\r\nimport { LobsterClawDialogComponent } from './components/riva-findings/lobster-claw/lobster-claw-dialog/lobster-claw-dialog.component';\r\nimport { LobsterClawComponent } from './components/riva-findings/lobster-claw/lobster-claw.component';\r\nimport { PostDialogComponent } from './components/riva-findings/post/post-dialog/post-dialog.component';\r\nimport { PostComponent } from './components/riva-findings/post/post.component';\r\nimport { RivaFindingsComponent } from './components/riva-findings/riva-findings.component';\r\nimport { SpringRingDialogComponent } from './components/riva-findings/spring-ring/spring-ring-dialog/spring-ring-dialog.component';\r\nimport { SpringRingComponent } from './components/riva-findings/spring-ring/spring-ring.component';\r\nimport { SpringDialogComponent } from './components/riva-findings/spring/spring-dialog/spring-dialog.component';\r\nimport { SpringComponent } from './components/riva-findings/spring/spring.component';\r\nimport { TagsDialogComponent } from './components/riva-findings/tags/tags-dialog/tags-dialog.component';\r\nimport { TagsComponent } from './components/riva-findings/tags/tags.component';\r\nimport { StoneConfirmationComponent } from './components/riva-gems/dialogs/stone-confirmation/stone-confirmation.component';\r\nimport { StoneDialogComponent } from './components/riva-gems/dialogs/stone-dialog/stone-dialog.component';\r\nimport { StoneImagesDialogComponent } from './components/riva-gems/dialogs/stone-images-dialog/stone-images-dialog.component';\r\nimport { StoneInventoryAdjustmentDialogComponent } from './components/riva-gems/dialogs/stone-inventory-adjustment-dialog/stone-inventory-adjustment-dialog.component';\r\nimport { StoneSizeDialogComponent } from './components/riva-gems/dialogs/stone-size-dialog/stone-size-dialog.component';\r\nimport { StoneUpdaterDialogComponent } from './components/riva-gems/dialogs/stone-updater-dialog/stone-updater-dialog.component';\r\nimport { GemsDetailsComponent } from './components/riva-gems/gems-details/gems-details.component';\r\nimport { GemsListComponent } from './components/riva-gems/gems-list/gems-list.component';\r\nimport { RivaGemsComponent } from './components/riva-gems/riva-gems.component';\r\nimport { StoneOverrideSizeDialogComponent } from './components/riva-gems/stone-product/stone-override-size-dialog/stone-override-size-dialog.component';\r\nimport { StoneOverrideSizeMultipleDialogComponent } from './components/riva-gems/stone-product/stone-override-size-multiple-dialog/stone-override-size-multiple-dialog.component';\r\nimport { StoneProductComponent } from './components/riva-gems/stone-product/stone-product.component';\r\nimport { RivaSuperAdminToolsComponent } from './components/riva-super-admin-tools/riva-super-admin-toolscomponent';\r\nimport { RivaTimeoutComponent } from './components/riva-timeout/riva-timeout.component';\r\nimport { SupplierDialogComponent } from './components/supplier-page/supplier-dialog/supplier-dialog.component';\r\nimport { SupplierPageComponent } from './components/supplier-page/supplier-page.component';\r\nimport { WorkOrderLabelPrintingComponent } from './components/work-order-label-printing/work-order-label-printing.component';\r\nimport { WorkOrderTrackingComponent } from './components/work-order-tracking/work-order-tracking.component';\r\nimport { OrphanWorkOrderDialogComponent } from './components/work-order-view/orphan-work-order-dialog/orphan-work-order-dialog.component';\r\nimport { ReceivingItemDialogComponent } from './components/work-order-view/receiving-item-dialog/receiving-item-dialog.component';\r\nimport { WorkOrderPrintDialogComponent } from './components/work-order-view/work-order-print/work-order-print-dialog.component';\r\nimport { authenticationInterceptorProviders } from './core/authentication/authentication.interceptor';\r\nimport { AuthenticationService } from './core/authentication/authentication.service';\r\nimport { NoCommaPipe } from './custom/pipes/no-comma.pipe';\r\nimport { SharedService } from './services/shared.service';\r\nimport { SharedModule } from './shared modules/shared.module';\r\n\r\nconst icons: IconDefinition[] = [\r\n MenuFoldOutline,\r\n MenuUnfoldOutline,\r\n SettingOutline,\r\n ShopOutline,\r\n ControlOutline,\r\n ToolOutline,\r\n LineChartOutline,\r\n CreditCardOutline,\r\n RocketOutline,\r\n ApiOutline,\r\n FileSyncOutline,\r\n ShoppingCartOutline,\r\n LogoutOutline,\r\n DeleteFill,\r\n LeftCircleFill,\r\n FileImageOutline,\r\n EditFill,\r\n CaretDownFill,\r\n QrcodeOutline,\r\n FileSearchOutline,\r\n DollarCircleOutline,\r\n CodeOutline,\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n NotificationComponent,\r\n LoadOverlayComponent,\r\n LoadContentOverlayComponent,\r\n OrderImportingComponent,\r\n InventoryLogComponent,\r\n ProductsTableComponent,\r\n EnumToArrayPipe,\r\n GemsComponent,\r\n ProductTableV2Component,\r\n ProductGroupTableComponent,\r\n RawMaterialsComponent,\r\n EnamelComponent,\r\n BillOfMaterialsBComponent,\r\n BillOfMaterialsAComponent,\r\n MetalGrainComponent,\r\n FindingsComponent,\r\n NonPreciousComponent,\r\n ManufacturedMaterialsComponent,\r\n ChainTabComponent,\r\n ChainFinishedComponent,\r\n ChainComponent,\r\n GemsBomComponent,\r\n BillOfMaterialsComponent,\r\n OrdersComponent,\r\n ForbiddenComponent,\r\n ProductReportComponent,\r\n WorkOrderComponent,\r\n OrderviewComponent,\r\n WorkOrderViewComponent,\r\n IdPipe,\r\n OrdersConfirmationComponent,\r\n OrdersProgressComponent,\r\n WorkOrdersReleaseComponent,\r\n SubItemsComponent,\r\n SubItemsDialogComponent,\r\n SubItemsConfirmationComponent,\r\n BillOfMaterialComponent,\r\n BillOfMaterialSubItemComponent,\r\n BillOfMaterialSubItemDialogComponent,\r\n BillOfMaterialSubItemConfirmationComponent,\r\n AccountsTableUserComponent,\r\n AccountsTableDialogComponent,\r\n RivaConfirmationComponent,\r\n ResetPasswordDialogComponent,\r\n AccountsTableComponent,\r\n RivaTextAvatarComponent,\r\n RivaStlViewerDialogComponent,\r\n RivaSideNavComponent,\r\n EnamelVariationDialogComponent,\r\n EnamelVariationComponent,\r\n ProductRoutingDialogComponent,\r\n ProductRoutingComponent,\r\n ProductComponentDialogComponent,\r\n ProductEnamelComponent,\r\n EnamelConstantComponent,\r\n SupplierPageComponent,\r\n SupplierDialogComponent,\r\n CustomerPageComponent,\r\n CustomerDialogComponent,\r\n InvoicingShippingComponent,\r\n RivaFindingsComponent,\r\n FindingsListComponent,\r\n FindingsDetailsComponent,\r\n ProductFindingsComponent,\r\n ProductFindingsTableComponent,\r\n RivaChainComponent,\r\n RivaChainPageComponent,\r\n ProductRoutingCopyDialogComponent,\r\n ProductImageComponent,\r\n ProductImageOrderDialogComponent,\r\n UserPermissionDialogComponent,\r\n InvoicingComponent,\r\n InvoicingDetailComponent,\r\n InvoicingDetailDialogComponent,\r\n ShippingComponent,\r\n ShippingDetailComponent,\r\n ShippingDetailDialogComponent,\r\n InvoicingPrintDialogComponent,\r\n NoCommaPipe,\r\n RelatedInvoicesDialogComponent,\r\n GemsListComponent,\r\n RivaGemsComponent,\r\n GemsDetailsComponent,\r\n StoneSizeDialogComponent,\r\n StoneDialogComponent,\r\n StoneConfirmationComponent,\r\n StoneProductComponent,\r\n StoneImagesDialogComponent,\r\n WorkOrderPrintDialogComponent,\r\n ProductSettingDialogComponent,\r\n ReceivingItemDialogComponent,\r\n RelatedShipmentDialogComponent,\r\n ShippingRelatedInvoiceDialogComponent,\r\n OrphanWorkOrderDialogComponent,\r\n StoneOverrideSizeDialogComponent,\r\n JumpringComponent,\r\n JumpringDialogComponent,\r\n PostComponent,\r\n PostDialogComponent,\r\n CustomerAddressDialogComponent,\r\n BomJumpringComponent,\r\n BomPostComponent,\r\n LobsterClawComponent,\r\n LobsterClawDialogComponent,\r\n SpringRingComponent,\r\n SpringRingDialogComponent,\r\n ChainDialogComponent,\r\n ChainRawDialogComponent,\r\n RivaChainFinishListComponent,\r\n ChainFinishDialogComponent,\r\n ChainFinishBomDialogComponent,\r\n RivaChainUnfinishedProductComponent,\r\n RivaChainProductContainerComponent,\r\n ProductChainUnfinishedTableComponent,\r\n RivaChainFinishedProductComponent,\r\n ProductChainFinishedTableComponent,\r\n ChainRoutingComponent,\r\n ChainRoutingDialogComponent,\r\n ChainRoutingCopyDialogComponent,\r\n ProductSkuGeneratorDialogComponent,\r\n ChainUnfinishedSkuGeneratorDialogComponent,\r\n ChainFinishedSkuGeneratorDialogComponent,\r\n TagsComponent,\r\n TagsDialogComponent,\r\n SpringComponent,\r\n SpringDialogComponent,\r\n ProductMaterialDialogComponent,\r\n FlyerComponent,\r\n FlyerDialogComponent,\r\n FindingRoutingDialogComponent,\r\n FindingRoutingComponent,\r\n FindingStockDialogComponent,\r\n FindingsSkuGeneratorDialogComponent,\r\n FindingsSkuGeneratorButtonComponent,\r\n BomFindingsComponent,\r\n FindingSettingDialogComponent,\r\n OtherComponentsComponent,\r\n OtherComponentsRoutingDialogComponent,\r\n OtherComponentsRoutingComponent,\r\n OtherComponentsRoutingCopyDialogComponent,\r\n OtherComponentsSizeDialogComponent,\r\n AddProductByCustomerSkuDialogComponent,\r\n OpenOrderReportComponent,\r\n ReportingComponent,\r\n ReportingTotalShipmentComponent,\r\n RivaDateRangePickerComponent,\r\n ReportingItemPlacedComponent,\r\n ReportingTopProductComponent,\r\n CustomerSettingDialogComponent,\r\n ReportingPresetsComponent,\r\n OpenOrderStoneReportComponent,\r\n ItemWeightsComponent,\r\n StoneInventoryAdjustmentDialogComponent,\r\n StoneReceivingDialogComponent,\r\n StoneUpdaterDialogComponent,\r\n OtherComponentsSkuGeneratorDialogComponent,\r\n ReportingInvoiceComponent,\r\n StoneReleaseHistoryDialogComponent,\r\n WorkOrderTrackingComponent,\r\n RivaTimeoutComponent,\r\n ProductLinkBomFormComponent,\r\n ProductLinkBomTableComponent,\r\n ProductLinkBomComponent,\r\n WorkOrderMovementComponent,\r\n WorkOrderMovedComponent,\r\n WorkOrderProductSearchComponent,\r\n WorkOrderIncompleteComponent,\r\n WorkOrderEmployeeComponent,\r\n WorkOrderLabelPrintingComponent,\r\n WorkOrderProcessComparisonComponent,\r\n WorkOrderEmployeeDownTimeComponent,\r\n StoneOverrideSizeMultipleDialogComponent,\r\n UserPermissionNavigationDialogComponent,\r\n OrderUploadDialogComponent,\r\n EmployeeDownTimeErrorDialogComponent,\r\n ReportingInvoiceErrorDialogComponent,\r\n ProductQueryComponent,\r\n ProductOrderComponent,\r\n ProductInvoiceComponent,\r\n ProductOrderDetailsComponent,\r\n ProductInvoiceDetailsComponent,\r\n PDMovementComponent,\r\n ProductSizesDialogComponent,\r\n EquationsComponent,\r\n PriceDefaultsComponent,\r\n CustomerPriceDefaultsComponent,\r\n MetalOverheadEquationsComponent,\r\n InvoiceReportsComponent,\r\n GeneralReportsComponent,\r\n StoneMovementReportComponent,\r\n ProductPricingComponent,\r\n InvoicingPriceDialogComponent,\r\n RivaSuperAdminToolsComponent,\r\n RivaChainPricingComponent,\r\n RivaChainPricingUnfinishedComponent,\r\n RivaChainPricingUnfinishedTableComponent,\r\n PriceCustomComponent,\r\n CustomerAdditionalChargesComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BrowserAnimationsModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n AlertModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatListModule,\r\n NgbModule,\r\n ClickOutsideModule,\r\n Ng2SearchPipeModule,\r\n MatTabsModule,\r\n IvyCarouselModule,\r\n // QRCodeModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n OrderdetailsModule,\r\n NgxMatSelectSearchModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatDialogModule,\r\n MatPaginatorModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatMenuModule,\r\n MatDividerModule,\r\n MatSnackBarModule,\r\n MatRadioModule,\r\n NzLayoutModule,\r\n NzMenuModule,\r\n NzButtonModule,\r\n NzToolTipModule,\r\n StlModelViewerModule,\r\n DragDropModule,\r\n SlickCarouselModule,\r\n RedZoomModule,\r\n NzInputModule,\r\n NzSelectModule,\r\n NzInputNumberModule,\r\n NzTabsModule,\r\n NzCollapseModule,\r\n NzPopoverModule,\r\n NgxGalleryModule,\r\n PdfViewerModule,\r\n NzSwitchModule,\r\n NzAlertModule,\r\n NgChartsModule,\r\n NzIconModule.forRoot(icons),\r\n SweetAlert2Module.forRoot(),\r\n SharedModule,\r\n ToastrModule.forRoot(),\r\n NzProgressModule,\r\n MatButtonToggleModule,\r\n NgIdleKeepaliveModule.forRoot(),\r\n NgxFileDropModule,\r\n NzDividerModule,\r\n ],\r\n exports: [EnumToArrayPipe, CurrencyPipe],\r\n providers: [\r\n GenericService,\r\n DatePipe,\r\n IdPipe,\r\n ConfirmationService,\r\n SharedService,\r\n AuthenticationService,\r\n UserPermissionService,\r\n ...authenticationInterceptorProviders,\r\n {\r\n provide: ErrorHandler,\r\n useValue: Sentry.createErrorHandler(),\r\n },\r\n {\r\n provide: Sentry.TraceService,\r\n deps: [Router],\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: () => () => {},\r\n deps: [Sentry.TraceService],\r\n multi: true,\r\n },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { User } from 'src/app/core/authentication/user';\r\nimport { UserService } from 'src/app/services/user.service';\r\n\r\n@Component({\r\n templateUrl: './accounts-table-dialog.component.html',\r\n styleUrls: ['./accounts-table-dialog.component.scss'],\r\n})\r\nexport class AccountsTableDialogComponent implements OnInit {\r\n accounts: User[] = [];\r\n isSaving: boolean = false;\r\n usernameExist: boolean = false;\r\n usedEmployeeId = new Set();\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: User = {} as User,\r\n public dialogRef: MatDialogRef,\r\n private userService: UserService,\r\n private _snackBar: MatSnackBar,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getAccounts();\r\n if ((this.data.usersID ?? 0) === 0) {\r\n this.data.employeeID = this.generateUniqueRivaEmployeeId();\r\n }\r\n }\r\n getAccounts() {\r\n this.userService.getUsers().subscribe((data = []) => {\r\n this.accounts = data;\r\n const usedIds = data.reduce((list, e) => {\r\n if (e.employeeID?.indexOf('RIVA') >= 0) {\r\n return [...list, Number.parseInt(e.employeeID.replace('RIVA', ''))];\r\n }\r\n return list;\r\n }, []);\r\n this.usedEmployeeId = new Set(usedIds);\r\n });\r\n }\r\n checkUsername() {\r\n this.usernameExist = this.accounts.some(\r\n (account) =>\r\n account.userName?.toLocaleLowerCase() ===\r\n this.data?.userName.toLowerCase() &&\r\n account.usersID !== this.data.usersID,\r\n );\r\n }\r\n\r\n get disabledSaveButton() {\r\n return (\r\n this.usernameExist ||\r\n this.isSaving ||\r\n (!this.data.noLoginUser &&\r\n (!this.data.userName ||\r\n (this.data.usersID ? false : !this.data.password)))\r\n );\r\n }\r\n\r\n onSaveAccount() {\r\n this.isSaving = true;\r\n if (this.data.usersID > 0) {\r\n const { password, ...data } = this.data;\r\n this.userService\r\n .updateUser({\r\n ...data,\r\n tokenTimeout:\r\n this.data.tokenTimeout >= 0 ? this.data.tokenTimeout : 0,\r\n })\r\n .subscribe(\r\n () => {\r\n this.dialogRef.close(true);\r\n this.isSaving = false;\r\n },\r\n () => {\r\n this._snackBar.open(\r\n 'Error encountered when updating account',\r\n 'Dismiss',\r\n {\r\n horizontalPosition: 'center',\r\n verticalPosition: 'bottom',\r\n },\r\n );\r\n this.isSaving = false;\r\n },\r\n );\r\n } else {\r\n this.userService\r\n .setUser({\r\n ...this.data,\r\n userName: this.data.noLoginUser ? '' : this.data.userName,\r\n password: this.data.noLoginUser ? '' : this.data.password,\r\n tokenTimeout:\r\n this.data.tokenTimeout >= 0 ? this.data.tokenTimeout : 0,\r\n })\r\n .subscribe(\r\n () => {\r\n this.dialogRef.close(true);\r\n this.isSaving = false;\r\n },\r\n () => {\r\n this._snackBar.open(\r\n 'Error encountered when adding new account',\r\n 'Dismiss',\r\n {\r\n horizontalPosition: 'center',\r\n verticalPosition: 'bottom',\r\n },\r\n );\r\n },\r\n );\r\n }\r\n }\r\n\r\n generateUniqueNumber(min, max) {\r\n let number;\r\n do {\r\n number = Math.floor(Math.random() * (max - min + 1)) + min;\r\n } while (this.usedEmployeeId.has(number));\r\n\r\n this.usedEmployeeId.add(number);\r\n return number;\r\n }\r\n\r\n padNumber(num, width) {\r\n return String(num).padStart(width, '0');\r\n }\r\n\r\n generateUniqueRivaEmployeeId() {\r\n const min = 0;\r\n const max = 9999999;\r\n const uniqueNumber = this.generateUniqueNumber(min, max);\r\n const paddedNumber = this.padNumber(uniqueNumber, 7);\r\n\r\n return `RIVA${paddedNumber}`;\r\n }\r\n\r\n onChangeNoLoginUser() {\r\n this.data.userName = '';\r\n this.data.password = '';\r\n this.usernameExist = false;\r\n }\r\n setAllowedMultipleWorkOrder() {\r\n this.data.allowedMultipleWorkOrder = !this.data.allowedMultipleWorkOrder;\r\n }\r\n setNoExpiry() {\r\n this.data.infiniteAuthTokenTimeOut = !this.data.infiniteAuthTokenTimeOut;\r\n }\r\n setInactive() {\r\n this.data.inactive = !this.data.inactive;\r\n }\r\n setTimeTracked() {\r\n this.data.timeTracked = !this.data.timeTracked;\r\n }\r\n}\r\n","
\r\n \r\n User Account\r\n\r\n
\r\n
No Login User
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n First Name\r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n
\r\n
\r\n \r\n Employee ID\r\n \r\n \r\n
\r\n \r\n \r\n Username\r\n \r\n Username already exist.\r\n \r\n Username already exist.\r\n
\r\n
\r\n \r\n Password\r\n \r\n \r\n
\r\n
\r\n \r\n Timeout (min)\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Infinite Timeout\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Allow Multiple Work Order\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
Inactive
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Time Tracked\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { User } from 'src/app/core/authentication/user';\r\n\r\n@Component({\r\n selector: 'accounts-table-user',\r\n templateUrl: './accounts-table-user.component.html',\r\n styleUrls: ['./accounts-table-user.component.scss'],\r\n})\r\nexport class AccountsTableUserComponent {\r\n @Input() account: User;\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ account.fullName }}\r\n
\r\n
\r\n @{{ account.userName?.toLowerCase() || account.firstName?.toLowerCase() }}\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { DEFAULT_ROUTE_PAGE } from 'src/app/custom/riva-side-nav/menu';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\nimport { User } from './../../core/authentication/user';\r\nimport { AccountsTableDialogComponent } from './accounts-table-dialog/accounts-table-dialog.component';\r\nimport { ResetPasswordDialogComponent } from './reset-password-dialog/reset-password-dialog.component';\r\nimport { UserPermissionNavigationDialogComponent } from './user-permission-navigation-dialog/user-permission-navigation-dialog.component';\r\n\r\n@Component({\r\n templateUrl: './accounts-table.component.html',\r\n styleUrls: ['./accounts-table.component.scss'],\r\n})\r\nexport class AccountsTableComponent\r\n extends GenericComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n accounts = new MatTableDataSource([]);\r\n accountsRaw: User[] = [];\r\n search = '';\r\n selectedUserId: number | null = null;\r\n user: User;\r\n includeInactiveAccount: boolean = false;\r\n\r\n displayedColumns: string[] = [\r\n 'fullName',\r\n 'employeeID',\r\n 'dateCreated',\r\n 'lastLogin',\r\n 'inactive',\r\n 'actions',\r\n ];\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private userService: UserService,\r\n private userPermissionService: UserPermissionService,\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n ) {\r\n super(loadService, alertService);\r\n this.loadService.load(false);\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.account);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAccounts();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.accounts.sort = this.sort;\r\n this.accounts.paginator = this.paginator;\r\n this.accounts.filterPredicate = (data: User, filterValue: string) => {\r\n const { search, includeInactiveAccount } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.fullName\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.userName?.toLowerCase().includes(search?.toLowerCase());\r\n const isValid = includeInactiveAccount\r\n ? data.inactive || !data.inactive\r\n : !data.inactive;\r\n return searchFilter && isValid;\r\n };\r\n }\r\n\r\n getAccounts() {\r\n this.userService.getUsers().subscribe(\r\n (data = []) => {\r\n this.accounts.data = data.map((account) => ({\r\n ...account,\r\n fullName: this.getFullName(account),\r\n noLoginUser: !account.userName,\r\n defaultUrl: account.defaultUrl ?? DEFAULT_ROUTE_PAGE,\r\n }));\r\n this.onFilterChange();\r\n },\r\n (err) => {\r\n this._snackBar.open(\r\n 'Error encountered while retrieving the accounts',\r\n 'Dismiss',\r\n {\r\n horizontalPosition: 'center',\r\n verticalPosition: 'bottom',\r\n },\r\n );\r\n },\r\n );\r\n }\r\n\r\n getFullName(account: User) {\r\n const name = [];\r\n account.firstName && name.push(account.firstName);\r\n account.lastName && name.push(account.lastName);\r\n if (!name.length) {\r\n name.push(account.userName);\r\n }\r\n return name.join(' ');\r\n }\r\n\r\n setIncludeInactiveAccount() {\r\n this.includeInactiveAccount = !this.includeInactiveAccount;\r\n this.onFilterChange();\r\n }\r\n\r\n onFilterChange() {\r\n this.accounts.filter = JSON.stringify({\r\n search: this.search,\r\n includeInactiveAccount: this.includeInactiveAccount,\r\n });\r\n }\r\n onSelectAccount(loginId, user) {\r\n this.selectedUserId = loginId;\r\n this.user = user;\r\n }\r\n resetPassword() {\r\n const selectedAccount =\r\n this.accounts.data.find(\r\n (account) => account.usersID === this.selectedUserId,\r\n ) ?? {};\r\n\r\n this.dialog.open(ResetPasswordDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n data: { ...selectedAccount },\r\n });\r\n }\r\n setPermissions() {\r\n const selectedAccount =\r\n this.accounts.data.find(\r\n (account) => account.usersID === this.selectedUserId,\r\n ) ?? {};\r\n\r\n const dialogRef = this.dialog.open(\r\n UserPermissionNavigationDialogComponent,\r\n {\r\n disableClose: true,\r\n maxWidth: '650px',\r\n width: '100%',\r\n data: { ...selectedAccount },\r\n },\r\n );\r\n dialogRef.afterClosed().subscribe((success) => {\r\n if (success) {\r\n this.getAccounts();\r\n }\r\n });\r\n }\r\n showAccountDialog(isNew = true) {\r\n let selectedAccount: User = {\r\n inactive: false,\r\n active: true,\r\n } as User;\r\n if (!isNew) {\r\n selectedAccount =\r\n this.accounts.data.find(\r\n (account) => account.usersID === this.selectedUserId,\r\n ) ?? {} as User;\r\n }\r\n\r\n const dialogRef = this.dialog.open(AccountsTableDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '450px',\r\n width: '100%',\r\n data: { ...selectedAccount },\r\n });\r\n dialogRef.afterClosed().subscribe((success) => {\r\n if (success) {\r\n this.getAccounts();\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Include Inactive Account\r\n
\r\n
\r\n \r\n Search by name or username\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n User\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Employee ID\r\n \r\n \r\n {{ element.employeeID || '–' }}\r\n \r\n \r\n \r\n \r\n Date Created\r\n \r\n \r\n
–
\r\n
\r\n
\r\n {{ element.created | date : 'MMMM dd, yyyy' }}\r\n
\r\n
\r\n at {{ element.created | date : 'hh:mm a' }}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Last Login Date\r\n \r\n \r\n
–
\r\n
\r\n
\r\n {{ element.lastLogin | date : 'MMMM dd, yyyy' }}\r\n
\r\n
\r\n at {{ element.lastLogin | date : 'hh:mm a' }}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Inactive\r\n \r\n \r\n {{ element.inactive ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n \r\n \r\n Actions\r\n \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Edit Account\r\n \r\n \r\n Set Permissions\r\n \r\n \r\n Reset Password\r\n \r\n \r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { User } from 'src/app/core/authentication/user';\r\nimport { UserService } from 'src/app/services/user.service';\r\n\r\n@Component({\r\n templateUrl: './reset-password-dialog.component.html',\r\n styleUrls: ['./reset-password-dialog.component.scss'],\r\n})\r\nexport class ResetPasswordDialogComponent {\r\n newPassword: string;\r\n confirmNewPassword: string;\r\n hasPasswordError: boolean;\r\n isSaving: boolean = false;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: User = {} as User,\r\n public dialogRef: MatDialogRef,\r\n private userService: UserService,\r\n ) {}\r\n\r\n get disabledSaveButton() {\r\n return this.isSaving || !this.newPassword || !this.confirmNewPassword;\r\n }\r\n\r\n onResetPassword() {\r\n this.hasPasswordError = false;\r\n if (this.newPassword !== this.confirmNewPassword) {\r\n this.hasPasswordError = true;\r\n return;\r\n }\r\n this.isSaving = true;\r\n if (this.data.usersID > 0) {\r\n this.data.password = this.newPassword;\r\n this.userService\r\n .resetUserPassword(this.data.usersID, this.newPassword)\r\n .subscribe(() => {\r\n this.dialogRef.close(true);\r\n this.isSaving = false;\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n

Reset Password

\r\n \r\n
\r\n \r\n New Password\r\n \r\n \r\n
\r\n
\r\n \r\n Confirm New Password\r\n \r\n \r\n
\r\n Password didn't match.\r\n
\r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { User } from 'src/app/core/authentication/user';\r\nimport { UserPermission } from 'src/app/core/user-permission/user-permission';\r\nimport { PAGES } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { UserService } from 'src/app/services/user.service';\r\n\r\n@Component({\r\n templateUrl: './user-permission-dialog.component.html',\r\n styleUrls: ['./user-permission-dialog.component.scss'],\r\n})\r\nexport class UserPermissionDialogComponent implements OnInit {\r\n displayedColumns = ['page', 'permission'];\r\n userPermissions: UserPermission[] = [];\r\n accessLevels = [\r\n {\r\n value: 'SuperUser',\r\n label: 'Super User',\r\n },\r\n {\r\n value: 'User',\r\n label: 'User',\r\n },\r\n {\r\n value: 'Viewer',\r\n label: 'Viewer',\r\n },\r\n {\r\n value: 'Disabled',\r\n label: 'Disabled',\r\n },\r\n ];\r\n isSaving = false;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: User = {} as User,\r\n public dialogRef: MatDialogRef,\r\n private userPermissionService: UserPermissionService,\r\n private userService: UserService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.userPermissionService\r\n .getUserPermissions(this.data.usersID)\r\n .subscribe((data) => {\r\n this.userPermissions = PAGES.map((page) => {\r\n const permission = data?.[page.pageName];\r\n return {\r\n usersPagesPermissionsID: 0,\r\n usersID: this.data.usersID,\r\n accessLevel: '',\r\n ...page,\r\n ...(permission ?? {}),\r\n };\r\n });\r\n });\r\n }\r\n\r\n onSavePermission() {\r\n this.isSaving = true;\r\n const permissions = this.userPermissions.filter((u) => !!u.accessLevel);\r\n this.userPermissionService.setUserPermissions(permissions).subscribe(() => {\r\n this.dialogRef.close();\r\n this.isSaving = false;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n User Permissions\r\n
\r\n
Administrator
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Page{{ element.label }}Permission\r\n \r\n Access Level\r\n \r\n \r\n {{ accessLevel.label }}\r\n \r\n \r\n \r\n
No Available Data
\r\n
\r\n
\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport { User } from 'src/app/core/authentication/user';\r\nimport { UserPermission } from 'src/app/core/user-permission/user-permission';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { DEFAULT_ROUTE_PAGE, menus } from 'src/app/custom/riva-side-nav/menu';\r\nimport { UserService } from 'src/app/services/user.service';\r\n\r\n@Component({\r\n templateUrl: './user-permission-navigation-dialog.component.html',\r\n styleUrls: ['./user-permission-navigation-dialog.component.scss'],\r\n})\r\nexport class UserPermissionNavigationDialogComponent implements OnInit {\r\n displayedColumns = ['page', 'permission'];\r\n userPermissions: UserPermission[] = [];\r\n accessLevels = [\r\n {\r\n value: 'SuperUser',\r\n label: 'Super User',\r\n },\r\n {\r\n value: 'User',\r\n label: 'User',\r\n },\r\n {\r\n value: 'Viewer',\r\n label: 'Viewer',\r\n },\r\n {\r\n value: 'Disabled',\r\n label: 'Disabled',\r\n },\r\n ];\r\n isSaving = false;\r\n menuPermission = menus;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: User = {} as User,\r\n public dialogRef: MatDialogRef,\r\n private userPermissionService: UserPermissionService,\r\n private userService: UserService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.userPermissionService\r\n .getUserPermissions(this.data.usersID)\r\n .subscribe((data) => {\r\n this.menuPermission = menus.reduce((permissionMenus, menu) => {\r\n const adminPermission = {\r\n usersPagesPermissionsID: 0,\r\n usersID: this.data.usersID,\r\n accessLevel: 'SuperUser',\r\n pageName: menu.pageName,\r\n };\r\n const normalPermission =\r\n menu.pageName != null\r\n ? data?.[menu.pageName] ?? {\r\n usersPagesPermissionsID: 0,\r\n usersID: this.data.usersID,\r\n accessLevel: 'Disabled',\r\n pageName: menu.pageName,\r\n }\r\n : null;\r\n const permission = this.data.isAdmin\r\n ? adminPermission\r\n : normalPermission;\r\n return [\r\n ...permissionMenus,\r\n {\r\n ...menu,\r\n isDefaultPage: menu.url === this.data.defaultUrl,\r\n permission,\r\n subMenu: menu.subMenu?.map((s) => {\r\n const adminPermissionSubMenu = {\r\n usersPagesPermissionsID: 0,\r\n usersID: this.data.usersID,\r\n accessLevel: 'SuperUser',\r\n pageName: s.pageName,\r\n };\r\n const normalPermissionSubMenu =\r\n s.pageName != null\r\n ? data?.[s.pageName] ?? {\r\n usersPagesPermissionsID: 0,\r\n usersID: this.data.usersID,\r\n accessLevel: 'Disabled',\r\n pageName: s.pageName,\r\n }\r\n : null;\r\n const permissionSubMenu = this.data.isAdmin\r\n ? adminPermissionSubMenu\r\n : normalPermissionSubMenu;\r\n return {\r\n ...s,\r\n isDefaultPage: s.url === this.data.defaultUrl,\r\n permission: permissionSubMenu,\r\n };\r\n }),\r\n },\r\n ];\r\n }, []);\r\n });\r\n }\r\n\r\n onSavePermission() {\r\n this.isSaving = true;\r\n\r\n const permissions = this.menuPermission.reduce((accum, menu) => {\r\n let menuPermissions = [];\r\n if (menu.permission != null) {\r\n menuPermissions = [menu.permission];\r\n }\r\n if (menu.subMenu != null) {\r\n const subMenuPermissions = menu.subMenu.reduce(\r\n (subsPermissions, sub) => {\r\n if (sub.permission == null) return subsPermissions;\r\n return [...subsPermissions, sub.permission];\r\n },\r\n [],\r\n );\r\n menuPermissions = [...menuPermissions, ...subMenuPermissions];\r\n }\r\n return [...accum, ...menuPermissions];\r\n }, []);\r\n\r\n forkJoin([\r\n this.userPermissionService.setUserPermissions(permissions),\r\n this.userService.updateUser(this.data),\r\n ]).subscribe(() => {\r\n this.dialogRef.close(true);\r\n this.isSaving = false;\r\n });\r\n }\r\n onSetDefaultPage(url: string) {\r\n this.data.defaultUrl = url ?? DEFAULT_ROUTE_PAGE;\r\n this.menuPermission = this.menuPermission.map((m) => ({\r\n ...m,\r\n isDefaultPage: m.url === url,\r\n subMenu: m.subMenu?.map((s) => ({\r\n ...s,\r\n isDefaultPage: s.url === url,\r\n })),\r\n }));\r\n }\r\n}\r\n","
\r\n \r\n User Permissions\r\n
\r\n
Administrator
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n \r\n \r\n {{ menu.name }}\r\n \r\n {{ menu.name }}\r\n \r\n \r\n \r\n
    Default Page
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'bill-of-material-sub-item-confirmation',\r\n templateUrl: './bill-of-material-sub-item-confirmation.component.html',\r\n})\r\nexport class BillOfMaterialSubItemConfirmationComponent {}\r\n","

    Delete Item

    \r\n\r\n
    Are you sure you want to delete this item?
    \r\n
    \r\n\r\n\r\n \r\n Cancel\r\n \r\n \r\n Delete\r\n \r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { SubItem } from 'src/app/models/sub-item.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { SubItemService } from 'src/app/services/sub-item.service';\r\nimport { BillOfMaterialSubItem } from './../../models/bill-material-sub-item';\r\n\r\n@Component({\r\n selector: 'bill-of-material-sub-item-dialog',\r\n templateUrl: './bill-of-material-sub-item-dialog.component.html',\r\n styleUrls: ['./bill-of-material-sub-item.component.scss'],\r\n})\r\nexport class BillOfMaterialSubItemDialogComponent implements OnInit {\r\n isSaving: boolean = false;\r\n imageFiles: FileList | null = null;\r\n uomOptions$: Observable;\r\n subItem: SubItem = {} as SubItem;\r\n subItems: SubItem[] = [];\r\n filteredSubItems$: Observable;\r\n subItemControl = new FormControl();\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: BillOfMaterialSubItem = {} as BillOfMaterialSubItem,\r\n public subItemService: SubItemService,\r\n public productService: ProductService,\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n initializeFilters() {\r\n this.filteredSubItems$ = this.subItemControl.valueChanges.pipe(\r\n startWith(this.subItem.name),\r\n map((value) => this._filterSubItems(value)),\r\n );\r\n }\r\n\r\n displayFn(item: SubItem): string {\r\n return item?.name ?? '';\r\n }\r\n\r\n private _filterSubItems(name: string): SubItem[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.subItems.filter(\r\n (option) =>\r\n option.name?.toLowerCase().includes(filterValue) ||\r\n option.description?.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['name'];\r\n return this.subItems.filter(\r\n (option) =>\r\n option.name?.toLowerCase().includes(filterValue.toLowerCase()) ||\r\n option.description?.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.subItems;\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n const { productsBOMID, productId, notes, qty } = this.data;\r\n const data = {\r\n notes,\r\n qty,\r\n productsId: productId,\r\n productsBOMID: productsBOMID ?? 0,\r\n subItemId: this.subItem?.subItemsID,\r\n custProvided: false,\r\n };\r\n this.productService.setProductBillOfMaterial(data).subscribe(() => {\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n}\r\n","

    Sub Item

    \r\n\r\n\r\n
    \r\n
    \r\n \r\n Sub item\r\n \r\n \r\n \r\n
    \r\n
    Name
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Name
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ item.name }}\r\n
    \r\n
    \r\n {{ item.description }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \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 Quantity\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { BillOfMaterialSubItem } from 'src/app/models/bill-material-sub-item';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { BillOfMaterialSubItemConfirmationComponent } from './bill-of-material-sub-item-confirmation.component';\r\nimport { BillOfMaterialSubItemDialogComponent } from './bill-of-material-sub-item-dialog..component';\r\n\r\n@Component({\r\n selector: 'app-bill-of-material-sub-item',\r\n templateUrl: './bill-of-material-sub-item.component.html',\r\n styleUrls: ['./bill-of-material-sub-item.component.scss'],\r\n})\r\nexport class BillOfMaterialSubItemComponent implements OnChanges {\r\n @Input() productId: number;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n subItems = new MatTableDataSource([]);\r\n search = '';\r\n\r\n displayedColumns: string[] = [\r\n 'picPath',\r\n 'subItemName',\r\n 'subItemDescription',\r\n 'notes',\r\n 'qty',\r\n 'edit',\r\n 'delete',\r\n ];\r\n\r\n constructor(\r\n private _productService: ProductService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n this.subItems.sort = this.sort;\r\n this.subItems.paginator = this.paginator;\r\n this.loadBillOfMaterialItems();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.loadBillOfMaterialItems();\r\n }\r\n\r\n loadBillOfMaterialItems() {\r\n if (!this.productId) return;\r\n this._productService\r\n .getProductBillOfMaterial(this.productId)\r\n .subscribe((data) => {\r\n this.subItems.data = data;\r\n });\r\n }\r\n\r\n onDialogOpen(subItem?: BillOfMaterialSubItem) {\r\n const dialogRef = this.dialog.open(BillOfMaterialSubItemDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '450px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: { ...subItem, productId: this.productId },\r\n });\r\n dialogRef.afterClosed().subscribe((result: boolean) => {\r\n if (result) {\r\n this.loadBillOfMaterialItems();\r\n }\r\n });\r\n }\r\n\r\n onDelete(id: number) {\r\n const dialogRef = this.dialog.open(\r\n BillOfMaterialSubItemConfirmationComponent,\r\n {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n },\r\n );\r\n dialogRef.afterClosed().subscribe((isDelete: boolean) => {\r\n if (isDelete) {\r\n this._productService.deleteProductBillOfMaterial(id).subscribe(() => {\r\n this.loadBillOfMaterialItems();\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n New Sub Item\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n Name\r\n \r\n {{ element.subItemName }}\r\n \r\n \r\n \r\n Description\r\n \r\n \r\n {{ element.subItemDescription }}\r\n \r\n \r\n \r\n \r\n Notes\r\n \r\n \r\n {{ element.notes }}\r\n \r\n \r\n \r\n \r\n Quantity\r\n \r\n {{ element.qty }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n
    \r\n
    \r\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { ProductFindings } from 'src/app/models/findings.model';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport {\r\n ProductChainFinished,\r\n ProductChainRaw,\r\n} from '../riva-chain/riva-chain-product/model';\r\nimport { ProductComponentDialogComponent } from './product-component-dialog/product-component-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-bill-of-material',\r\n templateUrl: './bill-of-material.component.html',\r\n styleUrls: ['./bill-of-material.component.scss'],\r\n})\r\nexport class BillOfMaterialComponent implements OnInit, OnChanges {\r\n @Input() productId: number;\r\n @Input() editMode: boolean;\r\n productFindings: ProductFindings[] = [];\r\n productChainUnfinished: ProductChainRaw[] = [];\r\n productChainFinished: ProductChainFinished[] = [];\r\n\r\n isReloading = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private productService: ProductService,\r\n private productBomService: ProductBomService,\r\n private loadService: LoadService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadService.reloadProductFindings = () => this.getProductFindings();\r\n this.loadService.reloadStoneProduct = () => this.onReloadStones();\r\n this.loadService.reloadProductChainUnfinished = () =>\r\n this.getProductChainUnfinished();\r\n this.loadService.reloadProductChainFinished = () =>\r\n this.getProductChainFinished();\r\n }\r\n\r\n ngOnChanges() {\r\n this.productFindings = [];\r\n if (this.productId) {\r\n this.getProductFindings();\r\n this.getProductChainUnfinished();\r\n this.getProductChainFinished();\r\n }\r\n }\r\n\r\n onDialogOpen() {\r\n const dialogRef = this.dialog.open(ProductComponentDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: { productId: this.productId },\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n this.productService.reloadEnamelConstant();\r\n this.productService.reloadEnamelVariation();\r\n this.productBomService.reloadProductLinkBomListDisplay(this.productId);\r\n });\r\n }\r\n\r\n getProductFindings() {\r\n this.productBomService\r\n .getProductFindings(this.productId)\r\n .subscribe((data) => {\r\n this.productFindings = data;\r\n });\r\n }\r\n getProductChainUnfinished() {\r\n this.productBomService\r\n .getProductChainRaw(this.productId)\r\n .subscribe((data) => {\r\n this.productChainUnfinished = data;\r\n });\r\n }\r\n getProductChainFinished() {\r\n this.productBomService\r\n .getProductChainFinished(this.productId)\r\n .subscribe((data) => {\r\n this.productChainFinished = data;\r\n });\r\n }\r\n onDeleteFindings(findings: ProductFindings) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product Findings',\r\n content: 'Are you sure you want to delete this findings?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.productBomService\r\n .deleteProductFindings(findings.productsBOMFindingsID)\r\n .subscribe(() => {\r\n this.loadService.reloadProductFindings();\r\n });\r\n });\r\n }\r\n onReloadStones() {\r\n this.isReloading = true;\r\n setTimeout(() => {\r\n this.isReloading = false;\r\n }, 0);\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n Component (Custom)\r\n \r\n \r\n \r\n \r\n \r\n Components\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n New Component\r\n \r\n \r\n \r\n \r\n
    Product Findings
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    Chain Unfinished
    \r\n \r\n
    \r\n
    \r\n
    Chain Finished
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { StoneProductComponent } from '../../riva-gems/stone-product/stone-product.component';\r\nimport { ProductEnamelComponent } from '../product-enamel/product-enamel.component';\r\nimport { ProductFindingsComponent } from '../product-findings/product-findings.component';\r\n\r\nconst PRODUCT_ENAMEL_INDEX = 0;\r\nconst PRODUCT_FINDINGS_INDEX = 1;\r\nconst PRODUCT_STONES_INDEX = 2;\r\n\r\n@Component({\r\n selector: 'product-component-dialog',\r\n templateUrl: './product-component-dialog.component.html',\r\n styleUrls: ['./product-component-dialog.component.scss'],\r\n})\r\nexport class ProductComponentDialogComponent implements OnInit {\r\n @ViewChild(ProductEnamelComponent)\r\n productEnamelComponent: ProductEnamelComponent;\r\n @ViewChild(ProductFindingsComponent)\r\n productFindingsComponent: ProductFindingsComponent;\r\n @ViewChild(StoneProductComponent)\r\n stoneProductComponent: StoneProductComponent;\r\n selectedIndex = PRODUCT_ENAMEL_INDEX;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { productId: number },\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n get isSaveEnabled() {\r\n switch (this.selectedIndex) {\r\n case PRODUCT_ENAMEL_INDEX:\r\n return !this.productEnamelComponent?.isEnamelSaving;\r\n case PRODUCT_FINDINGS_INDEX:\r\n return !this.productFindingsComponent?.isFindingsSaving;\r\n case PRODUCT_STONES_INDEX:\r\n return !this.stoneProductComponent?.isStoneSaving;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n onSave() {\r\n switch (this.selectedIndex) {\r\n case PRODUCT_ENAMEL_INDEX:\r\n this.productEnamelComponent.onSave();\r\n break;\r\n case PRODUCT_FINDINGS_INDEX:\r\n this.productFindingsComponent.onSave();\r\n break;\r\n case PRODUCT_STONES_INDEX:\r\n this.stoneProductComponent.onSave();\r\n break;\r\n }\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

    Components

    \r\n\r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n \r\n Close\r\n \r\n \r\n Save\r\n \r\n \r\n\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { PRODUCT_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/product-permission';\r\nimport { Enamel } from 'src/app/models/enamel';\r\nimport { ProductEnamel } from 'src/app/models/product';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { getTypeLabel } from 'src/app/services/generic.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductComponentDialogComponent } from '../product-component-dialog/product-component-dialog.component';\r\nimport { ConfirmationService } from './../../riva-confirmation/riva-confirmation.service';\r\n\r\n@Component({\r\n selector: 'product-enamel',\r\n templateUrl: './product-enamel.component.html',\r\n styleUrls: ['./product-enamel.component.scss'],\r\n})\r\nexport class ProductEnamelComponent implements OnInit {\r\n @Input() productId: number;\r\n\r\n productFeatureKey = PRODUCT_FEATURE_KEY;\r\n displayedColumns: string[] = [\r\n 'variation',\r\n 'color',\r\n 'name',\r\n 'pantoneColor',\r\n 'hardness',\r\n 'delete',\r\n ];\r\n search = '';\r\n isEnamelSaving = false;\r\n maxVariation = 30;\r\n isVariationLimit = false;\r\n enamelControl = new FormControl();\r\n filteredEnamels: Observable;\r\n selection = new SelectionModel(true, []);\r\n selectedEnamel: Enamel;\r\n enamels = new MatTableDataSource([]);\r\n rawEnamels: Enamel[];\r\n productEnamels = new MatTableDataSource([]);\r\n getTypeLabel = getTypeLabel;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private enamelService: EnamelService,\r\n private productBomService: ProductBomService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.enamels.filterPredicate = (data: Enamel, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.enamelName\r\n .toString()\r\n .toLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.enamelSku.toLowerCase().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n }\r\n\r\n initiateFilters() {\r\n this.filteredEnamels = this.enamelControl.valueChanges.pipe(\r\n startWith(this.selectedEnamel?.enamelName),\r\n map((value) => this._filterEnamels(value)),\r\n );\r\n }\r\n\r\n private _filterEnamels(name: string): Enamel[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.enamels.data.filter(\r\n (option) =>\r\n option.enamelName?.toLowerCase().includes(filterValue) ||\r\n option.enamelSku?.toLowerCase().includes(filterValue) ||\r\n option.pantoneColor?.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.enamels.data;\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.enamels.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected()\r\n ? this.selection.clear()\r\n : this.enamels.data.forEach((row) => this.selection.select(row));\r\n }\r\n\r\n onFilterChange() {\r\n this.enamels.filter = JSON.stringify({ search: this.search });\r\n }\r\n\r\n onCheckVariation() {\r\n this.enamels.data = this.rawEnamels.filter((e) => {\r\n return !this.productEnamels.data.some((p) => p.enamelID === e.enamelId);\r\n });\r\n }\r\n\r\n onAddSelectedItem() {\r\n this.productEnamels.data = this.selection.selected.reduce(\r\n (accum, { enamelId, enamelSku, ...selected }) => [\r\n ...accum,\r\n {\r\n ...selected,\r\n enamelID: enamelId,\r\n enamelSKU: enamelSku,\r\n productsID: this.productId,\r\n },\r\n ],\r\n [...this.productEnamels.data],\r\n );\r\n this.selection.clear();\r\n this.onCheckVariation();\r\n }\r\n\r\n displayFn(item: Enamel): string {\r\n return item?.enamelName ?? '';\r\n }\r\n\r\n onSelectEnamel(enamel: Enamel) {\r\n if (this.productEnamels.data.length >= this.maxVariation) {\r\n this.isVariationLimit = true;\r\n return;\r\n }\r\n const { enamelId, ...selected } = enamel;\r\n this.productEnamels.data = [\r\n ...this.productEnamels.data,\r\n {\r\n ...selected,\r\n enamelID: enamelId,\r\n productsID: this.productId,\r\n },\r\n ];\r\n this.onCheckVariation();\r\n this.selectedEnamel = null;\r\n }\r\n\r\n onDeleteEnamel(enamel: ProductEnamel) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product Enamel',\r\n content: 'Are you sure you want to delete this enamel?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.productEnamels.data = this.productEnamels.data.filter(\r\n (p) => p.enamelID !== enamel.enamelID,\r\n );\r\n if (enamel.productsBOMEnamelID) {\r\n this.productBomService\r\n .deleteProductEnamel(enamel.productsBOMEnamelID)\r\n .subscribe();\r\n }\r\n this.onCheckVariation();\r\n this.initiateFilters();\r\n this.isVariationLimit = false;\r\n });\r\n }\r\n\r\n onSave() {\r\n this.isEnamelSaving = true;\r\n const newProductEnamels = this.productEnamels.data.reduce(\r\n (variations, p) => [\r\n ...variations,\r\n {\r\n productsBOMEnamelID: p.productsBOMEnamelID ?? 0,\r\n enamelID: p.enamelID,\r\n productsID: this.productId,\r\n variation: p.variation,\r\n },\r\n ],\r\n [],\r\n );\r\n if (!newProductEnamels.length) {\r\n this.isEnamelSaving = false;\r\n this.dialogRef.close();\r\n return;\r\n }\r\n this.productBomService.setProductEnamel(newProductEnamels).subscribe(() => {\r\n this.isEnamelSaving = false;\r\n this.dialogRef.close();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n forkJoin([\r\n this.enamelService.getList(),\r\n this.productBomService.getProductEnamel(this.productId),\r\n ])\r\n .pipe(\r\n map(([enamels, productEnamelList]) => {\r\n const productEnamels = productEnamelList.map((p) => {\r\n const enamel = enamels.find((e) => e.enamelId === p.enamelID) ?? {};\r\n return { ...enamel, ...p };\r\n });\r\n return { enamels, productEnamels };\r\n }),\r\n )\r\n .subscribe(({ enamels, productEnamels }) => {\r\n this.rawEnamels = enamels;\r\n this.productEnamels.data = productEnamels;\r\n this.onCheckVariation();\r\n this.initiateFilters();\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Search enamels to add\r\n \r\n \r\n \r\n
    \r\n
    Color
    \r\n
    Name
    \r\n
    Pantone Color
    \r\n
    Type
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Color
    \r\n
    SKU
    \r\n
    Name
    \r\n
    Pantone Color
    \r\n
    Type
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ enamel.enamelName }}\r\n
    \r\n
    \r\n {{ enamel.pantoneColor }}\r\n
    \r\n
    \r\n {{ getTypeLabel(enamel.hardness) }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n \r\n You reach the limit. Maximum variation per product is\r\n {{ maxVariation }}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    Variation\r\n \r\n Color\r\n \r\n Name{{ element.enamelName }}Pantone Color\r\n {{ element.pantoneColor }}\r\n Type\r\n {{ getTypeLabel(element.hardness) }}\r\n Supplier\r\n {{ element.supplierDisplayName }}\r\n Color{{ element.colorHex }}\r\n \r\n
    No Available Data
    \r\n
    \r\n\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FINDINGS_TYPE } from 'src/app/components/riva-findings/constants';\r\nimport { Finding, FindingsStock } from 'src/app/components/riva-findings/model';\r\nimport { FindingsMaterial } from 'src/app/models/findings.model';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\n\r\n@Component({\r\n selector: 'bom-findings',\r\n templateUrl: './bom-findings.component.html',\r\n styleUrls: ['./bom-findings.component.scss'],\r\n})\r\nexport class BomFindingsComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() findings: Finding[];\r\n @Input() selectedFinding: Finding;\r\n @Input() findingsType: number;\r\n @Output() onReloadList = new EventEmitter();\r\n @Output() onSelectFinding = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n selectedStock: FindingsStock = {} as FindingsStock;\r\n stocks: FindingsStock[] = [];\r\n list = new MatTableDataSource([]);\r\n materialCodes: MaterialCode[] = [];\r\n displayedColumns = [];\r\n isOverride = false;\r\n selectedMaterial: FindingsMaterial;\r\n materials = [];\r\n columns: Record; // Key and Label (name: 'Name')\r\n\r\n jumpringColumns = {\r\n size_1: 'Wire Diameter',\r\n jumpringSize: 'ID',\r\n };\r\n postColumns = {\r\n size_1: 'Length',\r\n size_2: 'Thickness',\r\n };\r\n flyerColumns = {\r\n size_1: 'Size',\r\n };\r\n springColumns = {\r\n size_1: 'Spring height',\r\n size_2: 'Wire Thickness',\r\n size_3: 'Spring Angle',\r\n size_4: 'Hole Inside Diameter',\r\n };\r\n springRingColumns = {\r\n name: 'Name',\r\n size_1: 'Size',\r\n };\r\n lobsterClawColumns = {\r\n name: 'Name',\r\n size_1: 'Size',\r\n };\r\n tagColumns = {\r\n name: 'Name',\r\n customerName: 'Customer',\r\n size_1: 'Lengths',\r\n size_2: 'Width',\r\n size_3: 'Thickness',\r\n };\r\n\r\n constructor(\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.columns = this.getColumns(this.findingsType);\r\n this.displayedColumns = Object.keys(this.columns);\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.list.data = this.findings.filter(\r\n (f) => f.findingsTypesID === this.findingsType,\r\n );\r\n }\r\n ngAfterViewInit() {\r\n this.list.sort = this.sort;\r\n this.list.paginator = this.paginator;\r\n }\r\n getStockBySizeId() {\r\n if (!this.selectedFinding.findingSizesID) {\r\n this.selectedStock = {} as FindingsStock;\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.selectedFinding.findingSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n const [stock = {} as FindingsStock] = data ?? [];\r\n this.selectedStock = this.selectedStock.materialsCodeID\r\n ? {\r\n ...(data.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n ) ?? ({} as FindingsStock)),\r\n }\r\n : { ...stock };\r\n });\r\n }\r\n\r\n onTableRowClick(selected: Finding) {\r\n this.onSelectFinding.emit(selected);\r\n }\r\n\r\n onChangeMaterialCode() {\r\n const stock = this.stocks.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n );\r\n this.selectedStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialsCodeID: this.selectedStock.materialsCodeID,\r\n } as FindingsStock);\r\n }\r\n\r\n isOverrideChange() {\r\n if (!this.isOverride) {\r\n this.selectedFinding.findingsMaterialsID = null;\r\n }\r\n }\r\n\r\n getColumns(typeId) {\r\n switch (typeId) {\r\n case FINDINGS_TYPE.JUMPRINGS:\r\n return this.jumpringColumns;\r\n case FINDINGS_TYPE.POST:\r\n return this.postColumns;\r\n case FINDINGS_TYPE.FLYER:\r\n return this.flyerColumns;\r\n case FINDINGS_TYPE.SPRING:\r\n return this.springColumns;\r\n case FINDINGS_TYPE.SPRING_RING:\r\n return this.springRingColumns;\r\n case FINDINGS_TYPE.LOBSTER_CLAW:\r\n return this.lobsterClawColumns;\r\n case FINDINGS_TYPE.TAGS:\r\n return this.tagColumns;\r\n default:\r\n return this.jumpringColumns;\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ columns['name'] }}\r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n {{ columns['size_1'] }}\r\n \r\n {{ element.size_1 }}mm\r\n \r\n \r\n \r\n \r\n {{ columns['size_2'] }}\r\n \r\n \r\n {{ element.size_2 }}mm\r\n \r\n \r\n \r\n \r\n {{ columns['size_3'] }}\r\n \r\n \r\n {{ element.size_3 }}mm\r\n \r\n \r\n \r\n \r\n {{ columns['size_4'] }}\r\n \r\n \r\n {{ element.size_4 }}mm\r\n \r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n {{ element.customerName }}\r\n \r\n \r\n \r\n \r\n ID\r\n \r\n \r\n {{ element.jumpringSize }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Qty\r\n \r\n \r\n
    \r\n
    \r\n Override Material\r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ mat.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Comment\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FINDINGS_TYPE } from 'src/app/components/riva-findings/constants';\r\nimport { Finding, FindingsStock } from 'src/app/components/riva-findings/model';\r\nimport { FindingsMaterial } from 'src/app/models/findings.model';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\n\r\n@Component({\r\n selector: 'bom-finding-jumpring',\r\n templateUrl: './bom-jumpring.component.html',\r\n styleUrls: ['./bom-jumpring.component.scss'],\r\n})\r\nexport class BomJumpringComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() findings: Finding[];\r\n @Input() selectedJumpring: Finding;\r\n @Output() onReloadList = new EventEmitter();\r\n @Output() onSelectFinding = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n // selectedJumpring: Finding = {} as Finding;\r\n selectedStock: FindingsStock = {} as FindingsStock;\r\n stocks: FindingsStock[] = [];\r\n jumprings = new MatTableDataSource([]);\r\n materialCodes: MaterialCode[] = [];\r\n displayedColumns = ['size_1', 'jumpringSize'];\r\n isOverride = false;\r\n selectedMaterial: FindingsMaterial;\r\n materials = [];\r\n\r\n constructor(\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.jumprings.data = this.findings.filter(\r\n (f) => f.findingsTypesID === FINDINGS_TYPE.JUMPRINGS,\r\n );\r\n // this.getStockBySizeId();\r\n // this.selectedJumpring =\r\n // this.jumprings.data?.[this.jumprings.data?.length - 1] ?? ({} as Finding);\r\n // this.getStockBySizeId();\r\n // this.onSelectFinding.emit(this.selectedJumpring);\r\n }\r\n ngAfterViewInit() {\r\n this.jumprings.sort = this.sort;\r\n this.jumprings.paginator = this.paginator;\r\n }\r\n getStockBySizeId() {\r\n if (!this.selectedJumpring.findingSizesID) {\r\n this.selectedStock = {} as FindingsStock;\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.selectedJumpring.findingSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n const [stock = {} as FindingsStock] = data ?? [];\r\n this.selectedStock = this.selectedStock.materialsCodeID\r\n ? {\r\n ...(data.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n ) ?? ({} as FindingsStock)),\r\n }\r\n : { ...stock };\r\n });\r\n }\r\n\r\n onTableRowClick(selected: Finding) {\r\n // this.selectedJumpring = selected;\r\n this.onSelectFinding.emit(selected);\r\n }\r\n\r\n onChangeMaterialCode() {\r\n const stock = this.stocks.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n );\r\n this.selectedStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialsCodeID: this.selectedStock.materialsCodeID,\r\n } as FindingsStock);\r\n }\r\n\r\n isOverrideChange() {\r\n if (!this.isOverride) {\r\n this.selectedJumpring.findingsMaterialsID = null;\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Wire Diameter\r\n \r\n \r\n {{ element.size_1 }}mm\r\n \r\n \r\n \r\n \r\n ID\r\n \r\n \r\n {{ element.jumpringSize }}\r\n \r\n \r\n \r\n \r\n ID 1\r\n \r\n \r\n {{ element.size_2 }}\r\n \r\n \r\n \r\n \r\n ID 2\r\n \r\n \r\n {{ element.size_3 }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Qty\r\n \r\n \r\n
    \r\n
    \r\n Override Material\r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ mat.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Comment\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FINDINGS_TYPE } from 'src/app/components/riva-findings/constants';\r\nimport { Finding, FindingsStock } from 'src/app/components/riva-findings/model';\r\nimport { FindingsMaterial } from 'src/app/models/findings.model';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\n\r\n@Component({\r\n selector: 'bom-finding-post',\r\n templateUrl: './bom-post.component.html',\r\n styleUrls: ['./bom-post.component.scss'],\r\n})\r\nexport class BomPostComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() findings: Finding[];\r\n @Input() selectedPost: Finding;\r\n @Output() onReloadList = new EventEmitter();\r\n @Output() onSelectFinding = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n // selectedPost: Finding = {} as Finding;\r\n selectedStock: FindingsStock = {} as FindingsStock;\r\n stocks: FindingsStock[] = [];\r\n posts = new MatTableDataSource([]);\r\n materialCodes: MaterialCode[] = [];\r\n displayedColumns = ['size_1', 'size_2'];\r\n isOverride = false;\r\n selectedMaterial: FindingsMaterial;\r\n materials = [];\r\n\r\n constructor(\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.posts.data = this.findings.filter(\r\n (f) => f.findingsTypesID === FINDINGS_TYPE.POST,\r\n );\r\n // this.getStockBySizeId();\r\n // this.selectedPost =\r\n // this.posts.data?.[this.posts.data?.length - 1] ?? ({} as Finding);\r\n // this.getStockBySizeId();\r\n // this.onSelectFinding.emit(this.selectedPost);\r\n }\r\n ngAfterViewInit() {\r\n this.posts.sort = this.sort;\r\n this.posts.paginator = this.paginator;\r\n }\r\n getStockBySizeId() {\r\n if (!this.selectedPost.findingSizesID) {\r\n this.selectedStock = {} as FindingsStock;\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.selectedPost.findingSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n const [stock = {} as FindingsStock] = data ?? [];\r\n this.selectedStock = this.selectedStock.materialsCodeID\r\n ? {\r\n ...(data.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n ) ?? ({} as FindingsStock)),\r\n }\r\n : { ...stock };\r\n });\r\n }\r\n\r\n onTableRowClick(selected: Finding) {\r\n // this.selectedPost = selected;\r\n this.onSelectFinding.emit(selected);\r\n // this.getStockBySizeId();\r\n }\r\n\r\n onChangeMaterialCode() {\r\n const stock = this.stocks.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n );\r\n this.selectedStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialsCodeID: this.selectedStock.materialsCodeID,\r\n } as FindingsStock);\r\n }\r\n\r\n isOverrideChange() {\r\n if (!this.isOverride) {\r\n this.selectedPost.findingsMaterialsID = null;\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Length\r\n \r\n \r\n {{ element.size_1 }}mm\r\n \r\n \r\n \r\n \r\n Thickness\r\n \r\n \r\n {{ element.size_2 }}mm\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Qty\r\n \r\n \r\n
    \r\n
    \r\n Override Material\r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ mat.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Comment\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ProductFindings } from 'src/app/models/findings.model';\r\n\r\n@Component({\r\n selector: 'product-findings-table',\r\n styleUrls: ['./product-findings-table.component.scss'],\r\n templateUrl: './product-findings-table.component.html',\r\n})\r\nexport class ProductFindingsTableComponent implements OnInit {\r\n @Input() productFindings: ProductFindings[];\r\n @Input() editMode: boolean;\r\n @Output() onDeleteFindings = new EventEmitter();\r\n\r\n displayedColumns: string[] = [\r\n 'picPath',\r\n 'name',\r\n 'material',\r\n 'size',\r\n 'qty',\r\n 'comment',\r\n ];\r\n action: string[] = ['delete'];\r\n\r\n ngOnInit(): void {\r\n if (this.onDeleteFindings.observers.length && this.editMode) {\r\n this.displayedColumns = [...this.displayedColumns, ...this.action];\r\n }\r\n }\r\n}\r\n","
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    Name\r\n {{ element.findings.name || element.size.findingsTypeName }}\r\n SKU{{ element.findings.sku }}Finding Type\r\n {{ element.size.findingsTypeName }}\r\n Material\r\n {{ element.material?.description }}\r\n Size{{ element.sizeLabel }}Qty{{ element.qty }}Comment{{ element.comment }}\r\n \r\n
    No Available Data
    \r\n
    \r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Finding } from 'src/app/components/riva-findings/model';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport {\r\n FindingsMaterial,\r\n FindingsSize,\r\n ProductFindings,\r\n RivaFindings,\r\n} from 'src/app/models/findings.model';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { Guid } from '../../generic/generic.component';\r\nimport { FINDINGS_TYPE } from '../../riva-findings/constants';\r\nimport { ProductComponentDialogComponent } from '../product-component-dialog/product-component-dialog.component';\r\nimport { ConfirmationService } from './../../riva-confirmation/riva-confirmation.service';\r\n\r\n@Component({\r\n selector: 'product-findings',\r\n templateUrl: './product-findings.component.html',\r\n styleUrls: ['./product-findings.component.scss'],\r\n})\r\nexport class ProductFindingsComponent implements OnInit {\r\n @Input() productId: number;\r\n\r\n displayedColumns: string[] = [\r\n 'name',\r\n 'sku',\r\n 'material',\r\n 'size',\r\n 'qty',\r\n 'comment',\r\n 'delete',\r\n ];\r\n search = '';\r\n isFindingsSaving = false;\r\n maxVariation = 30;\r\n isVariationLimit = false;\r\n findingsControl = new FormControl();\r\n filteredFindings: Observable;\r\n selection = new SelectionModel(true, []);\r\n selectedFindings: RivaFindings;\r\n selectedMaterial: FindingsMaterial;\r\n selectedSize: FindingsSize;\r\n comment = '';\r\n qty = 1;\r\n findings = new MatTableDataSource([]);\r\n findingsList: Finding[] = [];\r\n rawFindings: RivaFindings[];\r\n productFindings = new MatTableDataSource([]);\r\n isOverride = false;\r\n selectedFinding: Finding = {} as Finding;\r\n\r\n selectedTabIndex = 0;\r\n findingsType = FINDINGS_TYPE;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private findingsService: FindingsService,\r\n private productBomService: ProductBomService,\r\n private loadService: LoadService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.findings.filterPredicate = (\r\n data: RivaFindings,\r\n filterValue: string,\r\n ) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.name.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.sku.toLowerCase().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n this.getFindings();\r\n this.getProductFindings();\r\n this.getFindingsSize();\r\n }\r\n\r\n getFindings() {\r\n this.findingsService.getFindings().subscribe((findings) => {\r\n this.findings.data = findings;\r\n this.initiateFilters();\r\n });\r\n }\r\n\r\n getFindingsSize() {\r\n this.findingsService.getFindingList().subscribe((data) => {\r\n this.findingsList = data ?? [];\r\n });\r\n }\r\n\r\n getProductFindings() {\r\n this.productBomService\r\n .getProductFindings(this.productId)\r\n .subscribe((data) => {\r\n this.productFindings.data = data;\r\n });\r\n }\r\n\r\n initiateFilters() {\r\n this.filteredFindings = this.findingsControl.valueChanges.pipe(\r\n startWith(this.selectedFindings?.name),\r\n map((value) => this._filterFindings(value)),\r\n );\r\n }\r\n\r\n private _filterFindings(name: string): RivaFindings[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.findings.data.filter(\r\n (option) =>\r\n option.name.toLowerCase().includes(filterValue) ||\r\n option.sku.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.findings.data;\r\n }\r\n\r\n onFilterChange() {\r\n this.findings.filter = JSON.stringify({ search: this.search });\r\n }\r\n\r\n onCheckFindings() {\r\n this.findings.data = this.rawFindings.filter((f) => {\r\n return !this.productFindings.data.some(\r\n (p) => p.findings.findingsId === f.findingsId,\r\n );\r\n });\r\n }\r\n\r\n displayFn(item: RivaFindings): string {\r\n return item?.name ?? '';\r\n }\r\n\r\n onFindingsChange() {\r\n this.selectedMaterial = null;\r\n this.selectedSize = null;\r\n }\r\n\r\n addProductFindings() {\r\n const newProductFindings: ProductFindings = {\r\n tempProductsBOMFindingsID: Guid.newGuid(),\r\n findings: this.selectedFindings,\r\n productsBOMFindingsID: 0,\r\n productsID: this.productId,\r\n findingsID: this.selectedFindings.findingsId,\r\n findingsSizesID: this.selectedSize.findingSizesID,\r\n findingsMaterialsID:\r\n this.selectedMaterial?.findingsMaterialsCodeId ?? null,\r\n qty: this.qty,\r\n comment: this.comment,\r\n size: this.selectedSize.size,\r\n material: this.selectedMaterial,\r\n };\r\n\r\n this.productFindings.data = [\r\n ...this.productFindings.data,\r\n newProductFindings,\r\n ];\r\n this.selectedFindings = null;\r\n this.selectedMaterial = null;\r\n this.selectedSize = null;\r\n this.isOverride = false;\r\n this.qty = 1;\r\n this.comment = '';\r\n }\r\n\r\n onDeleteFindings(findings: ProductFindings) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product Findings',\r\n content: 'Are you sure you want to delete this findings?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.productFindings.data = this.productFindings.data.filter((p) =>\r\n findings.productsBOMFindingsID\r\n ? p.productsBOMFindingsID !== findings.productsBOMFindingsID\r\n : p.tempProductsBOMFindingsID !==\r\n findings.tempProductsBOMFindingsID,\r\n );\r\n if (findings.productsBOMFindingsID) {\r\n this.productBomService\r\n .deleteProductFindings(findings.productsBOMFindingsID)\r\n .subscribe(() => {\r\n this.loadService.reloadProductFindings();\r\n });\r\n }\r\n this.initiateFilters();\r\n });\r\n }\r\n\r\n onSave() {\r\n this.isFindingsSaving = true;\r\n const newProductFindings = {\r\n productsBOMFindingsID: 0,\r\n productsID: this.productId,\r\n findingsID: this.selectedFinding.findingsId,\r\n findingsSizesID: this.selectedFinding.findingSizesID,\r\n findingsMaterialsID: this.selectedFinding.findingsMaterialsID,\r\n qty: this.selectedFinding.qty,\r\n comment: this.selectedFinding.comment,\r\n };\r\n this.productBomService\r\n .setProductFindings(newProductFindings)\r\n .subscribe(() => {\r\n this.loadService.reloadProductFindings();\r\n this.isFindingsSaving = false;\r\n this.dialogRef.close();\r\n });\r\n }\r\n\r\n onSelectFinding($event) {\r\n this.selectedFinding = $event;\r\n }\r\n\r\n //TODO: Deprecated\r\n onSaveOrig() {\r\n const productFindings = this.productFindings.data.reduce(\r\n (findings$, findings) => {\r\n if (findings.productsBOMFindingsID) return findings$;\r\n const newProductFindings = {\r\n productsBOMFindingsID: 0,\r\n productsID: this.productId,\r\n findingsID: findings.findingsID,\r\n findingsSizesID: findings.findingsSizesID,\r\n findingsMaterialsID: findings.findingsMaterialsID,\r\n qty: findings.qty,\r\n comment: findings.comment,\r\n };\r\n return [\r\n ...findings$,\r\n this.productBomService.setProductFindings(newProductFindings),\r\n ];\r\n },\r\n [],\r\n );\r\n if (!productFindings.length) {\r\n this.isFindingsSaving = false;\r\n this.dialogRef.close();\r\n return;\r\n }\r\n this.isFindingsSaving = true;\r\n forkJoin(productFindings).subscribe(() => {\r\n this.loadService.reloadProductFindings();\r\n this.isFindingsSaving = false;\r\n this.dialogRef.close();\r\n });\r\n }\r\n\r\n isOverrideChange() {\r\n if (!this.isOverride) {\r\n this.selectedMaterial = null;\r\n }\r\n }\r\n\r\n get isFormValid() {\r\n return (\r\n this.selectedFindings?.findingsId &&\r\n this.selectedSize?.findingSizesID &&\r\n this.qty &&\r\n (!this.isOverride || this.selectedMaterial?.findingsMaterialsCodeId)\r\n );\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { forkJoin, Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport { Product, ProductSizes } from 'src/app/models/product';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport {\r\n ProductLinkBom,\r\n ProductLinkBomGroupByProduct,\r\n ProductSizeBom,\r\n} from '../product-link-bom';\r\n\r\n@Component({\r\n selector: 'product-link-bom-form',\r\n templateUrl: './product-link-bom-form.component.html',\r\n styleUrls: ['./product-link-bom-form.component.scss'],\r\n})\r\nexport class ProductLinkBomFormComponent implements OnInit, OnChanges {\r\n @Input() productId: number;\r\n\r\n products: Product[] = [];\r\n productSizes: ProductSizes[] = [];\r\n productBomSizes: ProductSizeBom[] = [];\r\n product: Product = new Product();\r\n productControl = new FormControl();\r\n filteredProducts: Observable;\r\n productLinksBom = new MatTableDataSource([]);\r\n\r\n displayedColumns = ['picPath', 'productName', 'delete'];\r\n displayedSizesColumns = ['size', 'productsSizesID_Primary', 'qty'];\r\n\r\n productLinkBom: ProductLinkBom = {} as ProductLinkBom;\r\n isSaving = false;\r\n\r\n constructor(\r\n private productBomService: ProductBomService,\r\n private productService: ProductService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.productService.getList().subscribe((products) => {\r\n this.products = products;\r\n this.initiateFilter();\r\n });\r\n }\r\n ngOnChanges(): void {\r\n if (this.productId) {\r\n this.productLinkBom.productsID_Primary = this.productId;\r\n this.productService\r\n .getProduct(this.productId)\r\n .subscribe(({ responseObject }) => {\r\n this.productSizes = responseObject.productSizes;\r\n if (this.productSizes.length === 1) {\r\n this.productLinkBom.productsSizesID_Primary =\r\n this.productSizes[0]?.productsSizesID;\r\n }\r\n });\r\n // this.getProductLinkBom(this.productId);\r\n }\r\n }\r\n\r\n // getProductLinkBom(productId) {\r\n // if (productId) {\r\n // this.productBomService.getProductLinkBom(productId).subscribe((data) => {\r\n // const groupByProduct = groupBy(data, 'productsID_BOM');\r\n\r\n // this.productLinksBom.data = Object.keys(groupByProduct).reduce(\r\n // (accum, key) => {\r\n // const productItems = groupByProduct[key];\r\n // const [item] = productItems;\r\n // return [\r\n // ...accum,\r\n // {\r\n // productsID_BOM: item.productsID_BOM,\r\n // productName: item.productName,\r\n // picPath: item.picPath,\r\n // sizes: productItems,\r\n // },\r\n // ];\r\n // },\r\n // [],\r\n // );\r\n // });\r\n // }\r\n // }\r\n\r\n initiateFilter() {\r\n this.filteredProducts = this.productControl.valueChanges.pipe(\r\n startWith(this.product?.productName ?? ''),\r\n map((value) => this._filterProduct(value)),\r\n );\r\n }\r\n\r\n private _filterProduct(name: string): Product[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.products.filter(\r\n (option) =>\r\n option.productName.toLowerCase().includes(filterValue) ||\r\n option.productDesc.toLowerCase().includes(filterValue) ||\r\n option.sku.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['productName'];\r\n return this.products.filter(\r\n (option) =>\r\n option.productName\r\n .toLowerCase()\r\n .includes(filterValue.toLowerCase()) ||\r\n option.productDesc\r\n .toLowerCase()\r\n .includes(filterValue.toLowerCase()) ||\r\n option.sku.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.products;\r\n }\r\n\r\n onProductChange() {\r\n this.productLinkBom.productsSizesID_BOM = 0;\r\n if (this.product.productsId == null) return;\r\n this.productLinkBom.productsID_BOM = this.product.productsId;\r\n this.productService\r\n .getProduct(this.productLinkBom.productsID_BOM)\r\n .subscribe(({ responseObject }) => {\r\n this.productBomSizes = responseObject.productSizes;\r\n if (this.productBomSizes.length === 1) {\r\n this.productLinkBom.productsSizesID_BOM =\r\n this.productBomSizes[0]?.productsSizesID;\r\n }\r\n });\r\n }\r\n productChange(event) {}\r\n\r\n displayFn(item: Product): string {\r\n return item && item.productName ? item.productName : '';\r\n }\r\n\r\n addProductBom() {\r\n this.isSaving = true;\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n const request = this.productBomSizes.reduce((accum, size) => {\r\n if (size.productsSizesID_Primary == null || (size.qty ?? 0) === 0) return accum;\r\n return [\r\n ...accum,\r\n this.productBomService.setProductLinkBom({\r\n productsBOMProductsID: 0,\r\n productsID_Primary: this.productId,\r\n productsID_BOM: size.productsID,\r\n productsSizesID_Primary: size.productsSizesID_Primary,\r\n productsSizesID_BOM: size.productsSizesID,\r\n qty: size.qty,\r\n }),\r\n ];\r\n }, []);\r\n forkJoin(request).subscribe(\r\n () => {\r\n this.isSaving = false;\r\n this.productBomSizes = [];\r\n this.product = null;\r\n this.productBomService.reloadProductLinkBomList(this.productId);\r\n this.initiateFilter();\r\n },\r\n () => {\r\n this.isSaving = false;\r\n },\r\n );\r\n }\r\n\r\n onDeleteProductLink(group: ProductLinkBomGroupByProduct) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product BOM',\r\n content: 'Are you sure you want to delete this product?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n const request = group.sizes.map((s) =>\r\n this.productBomService.deleteProductLinkBom(s.productsBOMProductsID),\r\n );\r\n\r\n forkJoin(request).subscribe(() => {\r\n this.productBomService.reloadProductLinkBomList(this.productId);\r\n });\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const bomSizes = this.productBomSizes.filter((s) => s.productsSizesID_Primary != null || s.qty > 0);\r\n if (bomSizes.length === 0) return false;\r\n return bomSizes.every(\r\n (s) => s.productsSizesID_Primary != null && s.qty > 0,\r\n );\r\n }\r\n}\r\n","\r\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport groupBy from 'lodash/groupBy';\r\nimport { forkJoin } from 'rxjs';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductLinkBomGroupByProduct } from '../product-link-bom';\r\n\r\n@Component({\r\n selector: 'product-link-bom-table',\r\n templateUrl: './product-link-bom-table.component.html',\r\n styleUrls: ['./product-link-bom-table.component.scss'],\r\n})\r\nexport class ProductLinkBomTableComponent implements OnInit, OnChanges {\r\n @Input() productId: number;\r\n @Input() isDisplayOnly: boolean = false;\r\n\r\n productLinksBom = new MatTableDataSource([]);\r\n displayedColumns = ['picPath', 'productName', 'sizes', 'delete'];\r\n\r\n constructor(\r\n private productBomService: ProductBomService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(): void {\r\n if (this.productId) {\r\n this.getProductLinkBom(this.productId);\r\n this.displayedColumns = this.isDisplayOnly\r\n ? this.displayedColumns.filter((c) => c !== 'delete')\r\n : this.displayedColumns;\r\n if (this.isDisplayOnly) {\r\n this.productBomService.reloadProductLinkBomListDisplay = (productId) =>\r\n this.getProductLinkBom(productId);\r\n } else {\r\n this.productBomService.reloadProductLinkBomList = (productId) =>\r\n this.getProductLinkBom(productId);\r\n }\r\n }\r\n }\r\n\r\n getProductLinkBom(productId) {\r\n if (productId) {\r\n this.productBomService.getProductLinkBom(productId).subscribe((data) => {\r\n const groupByProduct = groupBy(data, 'productsID_BOM');\r\n\r\n this.productLinksBom.data = Object.keys(groupByProduct).reduce(\r\n (accum, key) => {\r\n const productItems = groupByProduct[key];\r\n const [item] = productItems;\r\n return [\r\n ...accum,\r\n {\r\n productsID_BOM: item.productsID_BOM,\r\n productName: item.productName,\r\n picPath: item.picPath,\r\n sizes: productItems,\r\n },\r\n ];\r\n },\r\n [],\r\n );\r\n });\r\n }\r\n }\r\n\r\n onDeleteProductLink(group: ProductLinkBomGroupByProduct) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product BOM',\r\n content: 'Are you sure you want to delete this product?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n const request = group.sizes.map((s) =>\r\n this.productBomService.deleteProductLinkBom(s.productsBOMProductsID),\r\n );\r\n\r\n forkJoin(request).subscribe(() => {\r\n this.getProductLinkBom(this.productId);\r\n });\r\n });\r\n }\r\n}\r\n"," 0\"\r\n>\r\n Product BOM\r\n\r\n 0)\"\r\n>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    Pic\r\n \r\n \r\n \r\n \r\n Product{{ element.productName }}Size\r\n
    4 }\">\r\n
    \r\n
    \r\n {{ size.bomSize }}\r\n
    \r\n
    \r\n
    {{ size.primarySize || 'All' }}
    \r\n Qty: {{ size.qty || 0 }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    No Available Data
    \r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\n\r\n@Component({\r\n selector: 'product-link-bom',\r\n templateUrl: './product-link-bom.component.html',\r\n styleUrls: ['./product-link-bom.component.scss'],\r\n})\r\nexport class ProductLinkBomComponent implements OnInit {\r\n @Input() productId: number;\r\n\r\n constructor(private productBomService: ProductBomService) {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { Product, ProductsBOM, ProductsInfo } from 'src/app/models/product';\r\nimport {\r\n BomResponse,\r\n BomTableAResponse,\r\n FabMethod,\r\n} from 'src/app/models/product-bom-b';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\n@Component({\r\n selector: 'app-bill-of-materials-a',\r\n templateUrl: './bill-of-materials-a.component.html',\r\n styleUrls: ['./bill-of-materials-a.component.scss'],\r\n})\r\nexport class BillOfMaterialsAComponent\r\n extends GenericComponent\r\n implements OnInit\r\n{\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private productBomService: ProductBomService,\r\n private materialCodeService: MaterialCodeService,\r\n ) {\r\n super(loadService, alertService);\r\n this.load();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n materialCodes: MaterialCode[] = [];\r\n\r\n private _editModeInput: boolean = undefined;\r\n @Input() set editModeInput(data: boolean) {\r\n this._editModeInput = data;\r\n this.editMode = this._editModeInput;\r\n this.newTableAItem = [];\r\n }\r\n\r\n get editModeInput(): boolean {\r\n return this._editModeInput;\r\n }\r\n\r\n private _productInput: Product = undefined;\r\n @Input() set productInput(data: Product) {\r\n this._productInput = data;\r\n this.refreshProductData(this._productInput);\r\n }\r\n\r\n get productInput(): Product {\r\n return this._productInput;\r\n }\r\n\r\n refreshProductData(product: Product) {\r\n if (product.productsId !== undefined) {\r\n this.productBomService\r\n .getTableAList(this.productInput.productsId)\r\n .subscribe((result) => {\r\n this.tableA = result;\r\n });\r\n }\r\n }\r\n\r\n private _productInfoInput: ProductsInfo[] = [];\r\n @Input() set productInfoInput(data: ProductsInfo[]) {\r\n this._productInfoInput = data;\r\n }\r\n\r\n get productInfoInput(): ProductsInfo[] {\r\n return this._productInfoInput;\r\n }\r\n\r\n private _selectedProductInfoInput: ProductsInfo = undefined;\r\n @Input() set selectedProductInfoInput(data: ProductsInfo) {\r\n this._selectedProductInfoInput = data;\r\n }\r\n\r\n get selectedProductInfoInput(): ProductsInfo {\r\n return this._selectedProductInfoInput;\r\n }\r\n\r\n get distinctMaterials(): ProductsInfo[] {\r\n var materials: ProductsInfo[] = [];\r\n this.productInfoInput.forEach((item) => {\r\n let exist = materials.find(\r\n (x) => x.materialCodeId == item.materialCodeId,\r\n );\r\n if (exist == undefined) {\r\n materials.push(item);\r\n }\r\n });\r\n return materials;\r\n }\r\n\r\n getMaterialSizes(materialCodeId: number) {\r\n let info = this.productInfoInput.filter(\r\n (x) => x.materialCodeId == materialCodeId,\r\n );\r\n var result: ProductsInfo[] = [];\r\n if (info !== undefined) {\r\n if (info.length != 0) {\r\n info.forEach((item) => {\r\n result.push(item);\r\n });\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n tableA: BomResponse[] = [];\r\n keyword: string = '';\r\n tableAOptions: BomTableAResponse[] = [];\r\n fabMethods: FabMethod[] = [];\r\n\r\n load() {\r\n this.materialCodeService.getList().subscribe((result) => {\r\n this.materialCodes = result.responseObject;\r\n });\r\n this.productBomService.getTableAOptions().subscribe((result) => {\r\n this.tableAOptions = result;\r\n });\r\n this.productBomService.getFabMethods().subscribe((result) => {\r\n this.fabMethods = result;\r\n });\r\n }\r\n\r\n showDropdown(show: boolean) {\r\n if (show) {\r\n document\r\n .getElementById('search-option')\r\n .nextElementSibling.classList.remove('hidden');\r\n } else {\r\n document\r\n .getElementById('search-option')\r\n .nextElementSibling.classList.add('hidden');\r\n }\r\n }\r\n\r\n newTableAItem: BomTableAResponse[] = [];\r\n\r\n // addToTableAItem(item: BomTableAResponse){\r\n // this.newTableAItem.push(item);\r\n // this.showDropdown(false);\r\n // }\r\n\r\n checkIfListed(subItemId: number, itemType: number) {\r\n let item = this.tableA.find(\r\n (x) => x.subItemId == subItemId && x.itemType == itemType,\r\n );\r\n let x = this.newTableAItem.find(\r\n (x) => x.id == subItemId && x.type == itemType,\r\n );\r\n if (item !== undefined || x !== undefined) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n addToTableA(subItemId: number, itemType: number, qty: number) {\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n let newBom = new ProductsBOM();\r\n newBom.productsId = this.productInput.productsId;\r\n newBom.subItemId = subItemId;\r\n newBom.bomItemTypeId = itemType;\r\n newBom.itemQty = qty;\r\n this.productBomService.addUpdate(newBom).subscribe(\r\n (result) => {\r\n this.tableA.push(result);\r\n this.newTableAItem = this.newTableAItem.filter(\r\n (x) => x.id != subItemId,\r\n );\r\n this.autosaveCounter -= 1;\r\n },\r\n (error) => {\r\n this.alertService.error('Unable to add item.');\r\n this.autosaveCounter -= 1;\r\n },\r\n );\r\n }\r\n\r\n updateTableAItem(bom: BomResponse) {\r\n if (bom.bomQty == 0) {\r\n this.delete(bom.bomId);\r\n } else {\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n let updateBom = new ProductsBOM();\r\n updateBom.productsBomid = bom.bomId;\r\n updateBom.itemQty = bom.bomQty;\r\n updateBom.notes = bom.itemDescription;\r\n updateBom.productsInfoId = bom.productsInfoId;\r\n this.productBomService.addUpdate(updateBom).subscribe(\r\n (result) => {\r\n var updated = this.tableA.find((x) => x.bomId == result.bomId);\r\n var index = this.tableA.indexOf(updated);\r\n this.tableA[index] = result;\r\n this.autosaveCounter -= 1;\r\n },\r\n (error) => {\r\n this.alertService.error('Unable to add item.');\r\n this.autosaveCounter -= 1;\r\n },\r\n );\r\n }\r\n }\r\n\r\n delete(bomId: number) {\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n this.productBomService.delete(bomId, '').subscribe((result) => {\r\n if (result.wasSuccess) {\r\n this.tableA = this.tableA.filter((x) => x.bomId != bomId);\r\n }\r\n this.autosaveCounter -= 1;\r\n });\r\n }\r\n\r\n getMaterial(materialCodeId: number) {\r\n let x = this.materialCodes.find((x) => x.materialCodeId == materialCodeId);\r\n if (x !== undefined) {\r\n return x.description;\r\n }\r\n return '';\r\n }\r\n}\r\n","

    \r\n BOM Table A\r\n 0 && showAutosaveCounter\"\r\n class=\"autosave-note\"\r\n >\r\n Saving... \r\n \r\n \r\n Saved \r\n \r\n

    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    QTYSKUNameNotesLocked Size
    \r\n {{ a.bomQty }}\r\n \r\n {{ a.sku }}{{ a.itemName }}\r\n {{ a.itemDescription }}\r\n \r\n \r\n {{ a.isSizeDependent }}\r\n \r\n \r\n -- None --\r\n \r\n \r\n {{ info.size }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {{ item.sku }} ({{ item.name }})\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { ChainFinishedColumns } from 'src/app/models/chainfinished.model';\r\nimport { Enamel, EnamelColumns } from 'src/app/models/enamel';\r\nimport { BomItemType } from 'src/app/models/enum/bom-item-type.enum';\r\nimport { FindingsColumn } from 'src/app/models/findings.model';\r\nimport { GemInventory, GemsColumns } from 'src/app/models/gems.model';\r\nimport { ManufacturedMatsColumns } from 'src/app/models/manufactured-materials';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { NonpreciousColumns } from 'src/app/models/nonprecious.model';\r\nimport { Product, ProductsBOM, ProductsInfo } from 'src/app/models/product';\r\nimport { BomResponse } from 'src/app/models/product-bom-b';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { ChainfinishedService } from 'src/app/services/chainfinished.service';\r\nimport { ChainfinishedinfoService } from 'src/app/services/chainfinishedinfo.service';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FindingsinfoService } from 'src/app/services/findingsinfo.service';\r\nimport { GemService } from 'src/app/services/gem.service';\r\nimport { ManufacturedMaterialsInfoService } from 'src/app/services/manufactured-materials-info.service';\r\nimport { ManufacturedMaterialsService } from 'src/app/services/manufactured-materials.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { MetalGrainService } from 'src/app/services/metal-grain.service';\r\nimport { NonPreciousService } from 'src/app/services/non-precious.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nexport class OptionSizes {\r\n id: number = 0;\r\n parentId: number = 0;\r\n materialCodeId: number = 0;\r\n size: string = '';\r\n subItemInfoId: number = 0;\r\n}\r\n\r\n//Refactor this\r\nexport class AllOptionSizes {\r\n id: number = 0;\r\n parentId: number = 0;\r\n materialCodeId: number = 0;\r\n size: string = '';\r\n subItemInfoId: number = 0;\r\n type: number = 0;\r\n}\r\n\r\n@Component({\r\n selector: 'app-bill-of-materials-b',\r\n templateUrl: './bill-of-materials-b.component.html',\r\n styleUrls: ['./bill-of-materials-b.component.scss'],\r\n})\r\nexport class BillOfMaterialsBComponent\r\n extends GenericComponent\r\n implements OnInit\r\n{\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private productBomService: ProductBomService,\r\n private gemService: GemService,\r\n private modalService: NgbModal,\r\n private enamelService: EnamelService,\r\n private manufacturedMatService: ManufacturedMaterialsService,\r\n private metalGrainSerivce: MetalGrainService,\r\n private findingService: FindingsService,\r\n private nonPreciousService: NonPreciousService,\r\n private supplierService: SupplierService,\r\n private uomService: UnitOfMeasureService,\r\n private materialCodeService: MaterialCodeService,\r\n private chainFinishedService: ChainfinishedService,\r\n private chainFinishedInfoService: ChainfinishedinfoService,\r\n private findingsInfoService: FindingsinfoService,\r\n private manufacturedMatsInfoService: ManufacturedMaterialsInfoService,\r\n ) {\r\n super(loadService, alertService);\r\n this.loadSize();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n private _editModeInput: boolean = undefined;\r\n @Input() set editModeInput(data: boolean) {\r\n this._editModeInput = data;\r\n this.editMode = this._editModeInput;\r\n }\r\n\r\n get editModeInput(): boolean {\r\n return this._editModeInput;\r\n }\r\n\r\n private _productInput: Product = undefined;\r\n @Input() set productInput(data: Product) {\r\n this._productInput = data;\r\n this.refreshProductData(this._productInput);\r\n }\r\n\r\n get productInput(): Product {\r\n return this._productInput;\r\n }\r\n\r\n refreshProductData(product: Product) {\r\n if (product.productsId !== undefined) {\r\n this.productBomService\r\n .getTableBList(this.productInput.productsId)\r\n .subscribe((result) => {\r\n this.tableB = result;\r\n });\r\n }\r\n }\r\n\r\n private _productInfoInput: ProductsInfo[] = [];\r\n @Input() set productInfoInput(data: ProductsInfo[]) {\r\n this._productInfoInput = data;\r\n }\r\n\r\n get productInfoInput(): ProductsInfo[] {\r\n return this._productInfoInput;\r\n }\r\n\r\n private _selectedProductInfoInput: ProductsInfo = undefined;\r\n @Input() set selectedProductInfoInput(data: ProductsInfo) {\r\n this._selectedProductInfoInput = data;\r\n }\r\n\r\n get selectedProductInfoInput(): ProductsInfo {\r\n return this._selectedProductInfoInput;\r\n }\r\n\r\n get distinctMaterials(): ProductsInfo[] {\r\n var materials: ProductsInfo[] = [];\r\n this.productInfoInput.forEach((item) => {\r\n let exist = materials.find(\r\n (x) => x.materialCodeId == item.materialCodeId,\r\n );\r\n if (exist == undefined) {\r\n materials.push(item);\r\n }\r\n });\r\n return materials;\r\n }\r\n\r\n getMaterialSizes(materialCodeId: number) {\r\n let info = this.productInfoInput.filter(\r\n (x) => x.materialCodeId == materialCodeId,\r\n );\r\n var result: ProductsInfo[] = [];\r\n if (info !== undefined) {\r\n if (info.length != 0) {\r\n info.forEach((item) => {\r\n result.push(item);\r\n });\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n tableB: BomResponse[] = [];\r\n suppliers: Suppliers[] = [];\r\n uom: UnitOfMeasure[] = [];\r\n materialCodes: MaterialCode[] = [];\r\n\r\n load() {\r\n this.supplierService.getList().subscribe((result) => {\r\n this.suppliers = result;\r\n });\r\n this.uomService.getList().subscribe((result) => {\r\n this.uom = result.responseObject;\r\n });\r\n this.materialCodeService.getList().subscribe((result) => {\r\n this.materialCodes = result.responseObject;\r\n });\r\n if (this.productInput.productsId !== undefined) {\r\n this.productBomService\r\n .getTableBList(this.productInput.productsId)\r\n .subscribe((result) => {\r\n this.tableB = result;\r\n });\r\n }\r\n }\r\n\r\n get tableB_filteredByMatSize() {\r\n if (this.selectedProductInfoInput.productsInfoId != undefined) {\r\n return this.tableB.filter(\r\n (b) =>\r\n this.productInfoInput.find(\r\n (i) => i.productsInfoId == b.productsInfoId,\r\n )?.size == this.selectedProductInfoInput.size ||\r\n b.productsInfoId == 0 ||\r\n b.productsInfoId == undefined ||\r\n b.productsInfoId == null,\r\n );\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n enamels: Enamel[] = [];\r\n gems: GemInventory[] = [];\r\n bomType: number = BomItemType.Chain;\r\n popupTableB_ColumnNames = [];\r\n popupTableB_RowData = [];\r\n tableB_filtered = [];\r\n\r\n searchTimeout() {\r\n if (this.searchString == '') {\r\n // this.tableB_filtered = [];\r\n this.tableB_filtered = this.popupTableB_RowData;\r\n } else {\r\n let searchResult = [];\r\n\r\n if (this.bomType == BomItemType.Enamel) {\r\n searchResult = this.popupTableB_RowData.filter(\r\n (x) =>\r\n x['enamelSku']\r\n .toLowerCase()\r\n .includes(this.searchString.toLowerCase()) ||\r\n x['enamelName']\r\n .toLowerCase()\r\n .includes(this.searchString.toLowerCase()),\r\n );\r\n } else {\r\n searchResult = this.popupTableB_RowData.filter(\r\n (x) =>\r\n x['SKU'].toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n x['Name'].toLowerCase().includes(this.searchString.toLowerCase()),\r\n );\r\n }\r\n\r\n if (searchResult !== undefined) {\r\n this.tableB_filtered = searchResult;\r\n }\r\n }\r\n }\r\n\r\n getDistinctOptionSizes(parentId: number): OptionSizes[] {\r\n var sizes: OptionSizes[] = [];\r\n let filtered = [];\r\n filtered = this.sizeSelection.filter((x) => x.parentId == parentId);\r\n filtered.forEach((item) => {\r\n let exist = sizes.find((x) => x.id == item.id);\r\n if (exist == undefined) {\r\n sizes.push(item);\r\n }\r\n });\r\n return sizes;\r\n }\r\n\r\n sizeSelected = 0;\r\n sizeSelection: OptionSizes[] = [];\r\n allSizes: AllOptionSizes[] = [];\r\n\r\n getAllOptionSizes(id: number, type: number) {\r\n let info = [];\r\n info = this.allSizes.filter((x) => x.parentId == id && x.type == type);\r\n this.tableB.forEach((item) => {\r\n info = info.filter((x) => x.parentId == id && x.id != item.subItemInfoId);\r\n });\r\n return info;\r\n }\r\n\r\n getOptionSizes(id: number) {\r\n let info = [];\r\n info = this.sizeSelection.filter((x) => x.parentId == id);\r\n this.tableB.forEach((item) => {\r\n info = info.filter((x) => x.parentId == id && x.id != item.subItemInfoId);\r\n });\r\n return info;\r\n }\r\n\r\n loadSize() {\r\n forkJoin([\r\n this.chainFinishedInfoService.getList(),\r\n this.findingsInfoService.getList(),\r\n this.manufacturedMatsInfoService.getList(),\r\n ])\r\n .pipe(\r\n map(([chainInfos, findingInfos, manufacturedMatInfos]) => {\r\n return { chainInfos, findingInfos, manufacturedMatInfos };\r\n }),\r\n )\r\n .subscribe((response) => {\r\n response.chainInfos.forEach((element) => {\r\n let optionSize = new AllOptionSizes();\r\n optionSize.id = element.chainFinishedInfoId;\r\n optionSize.parentId = element.chainFinishedId;\r\n optionSize.materialCodeId = element.materialCodeId;\r\n optionSize.size = element.size;\r\n optionSize.type = BomItemType.Chain;\r\n if (\r\n this.allSizes.find(\r\n (x) => x.size == optionSize.size && x.type == BomItemType.Chain,\r\n ) == undefined\r\n ) {\r\n this.allSizes.push(optionSize);\r\n }\r\n });\r\n\r\n response.findingInfos.forEach((element) => {\r\n let optionSize = new AllOptionSizes();\r\n optionSize.id = element.findingsInfoId;\r\n optionSize.parentId = element.findingsId;\r\n optionSize.materialCodeId = element.materialCodeId;\r\n optionSize.size = element.size;\r\n optionSize.type = BomItemType.Findings;\r\n if (\r\n this.allSizes.find(\r\n (x) =>\r\n x.size == optionSize.size && x.type == BomItemType.Findings,\r\n ) == undefined\r\n ) {\r\n this.allSizes.push(optionSize);\r\n }\r\n });\r\n\r\n response.manufacturedMatInfos.forEach((element) => {\r\n let optionSize = new AllOptionSizes();\r\n optionSize.id = element.findingsInfoId;\r\n optionSize.parentId = element.findingsId;\r\n optionSize.materialCodeId = element.materialCodeId;\r\n optionSize.size = element.size;\r\n optionSize.type = BomItemType.ManufacturedMats;\r\n if (\r\n this.allSizes.find(\r\n (x) =>\r\n x.size == optionSize.size && x.type == BomItemType.Findings,\r\n ) == undefined\r\n ) {\r\n this.allSizes.push(optionSize);\r\n }\r\n });\r\n });\r\n }\r\n\r\n showTableBOptions(itemType: number) {\r\n this.searchString = '';\r\n this.searchTimeout();\r\n this.sizeSelection = [];\r\n if (itemType == BomItemType.Chain) {\r\n this.resetTableBPopupData(new ChainFinishedColumns());\r\n\r\n forkJoin([\r\n this.chainFinishedService.getList(),\r\n this.chainFinishedInfoService.getList(),\r\n ])\r\n .pipe(\r\n map(([list, infoList]) => {\r\n return { list, infoList };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n let list = response.list;\r\n let columns: ChainFinishedColumns[] = [];\r\n\r\n let infoList = response.infoList;\r\n\r\n infoList.forEach((element) => {\r\n let optionSize = new OptionSizes();\r\n optionSize.id = element.chainFinishedInfoId;\r\n optionSize.parentId = element.chainFinishedId;\r\n optionSize.materialCodeId = element.materialCodeId;\r\n optionSize.size = element.size;\r\n if (\r\n this.sizeSelection.find((x) => x.size == optionSize.size) ==\r\n undefined\r\n ) {\r\n this.sizeSelection.push(optionSize);\r\n }\r\n });\r\n\r\n list.forEach((element) => {\r\n let column = new ChainFinishedColumns();\r\n column.ID = element.chainFinishedId;\r\n column.Name = element.name;\r\n column.SKU = element.sku;\r\n columns.push(column);\r\n });\r\n\r\n this.popupTableB_RowData = columns;\r\n this.tableB_filtered = this.popupTableB_RowData;\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n } else if (itemType == BomItemType.Enamel) {\r\n this.resetTableBPopupData(new EnamelColumns());\r\n\r\n this.enamelService.getList().subscribe(\r\n (result) => {\r\n this.popupTableB_RowData = result;\r\n this.tableB_filtered = this.popupTableB_RowData;\r\n },\r\n (error) => {\r\n this.alertService.error('Error getting list of enamel.');\r\n },\r\n );\r\n } else if (itemType == BomItemType.Findings) {\r\n this.resetTableBPopupData(new FindingsColumn());\r\n\r\n forkJoin([\r\n this.findingService.getList(),\r\n this.findingsInfoService.getList(),\r\n ])\r\n .pipe(\r\n map(([list, infoList]) => {\r\n return { list, infoList };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n let list = response.list;\r\n let columns: FindingsColumn[] = [];\r\n\r\n let infoList = response.infoList;\r\n\r\n infoList.forEach((element) => {\r\n let optionSize = new OptionSizes();\r\n optionSize.id = element.findingsInfoId;\r\n optionSize.parentId = element.findingsId;\r\n optionSize.materialCodeId = element.materialCodeId;\r\n optionSize.size = element.size;\r\n if (\r\n this.sizeSelection.find((x) => x.size == optionSize.size) ==\r\n undefined\r\n ) {\r\n this.sizeSelection.push(optionSize);\r\n }\r\n });\r\n\r\n list.forEach((element) => {\r\n let column = new FindingsColumn();\r\n column.ID = element.findingsId;\r\n column.Name = element.name;\r\n column.SKU = element.sku;\r\n column.Supplier = this.supplierName(element.suppliersId);\r\n column.Unit = this.getUom(element.unitsOfMeasureId);\r\n columns.push(column);\r\n });\r\n\r\n this.popupTableB_RowData = columns;\r\n this.tableB_filtered = this.popupTableB_RowData;\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n } else if (itemType == BomItemType.ManufacturedMats) {\r\n this.resetTableBPopupData(new ManufacturedMatsColumns());\r\n\r\n forkJoin([\r\n this.manufacturedMatService.getList(),\r\n this.manufacturedMatsInfoService.getList(),\r\n ])\r\n .pipe(\r\n map(([list, infoList]) => {\r\n return { list, infoList };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n let list = response.list;\r\n let columns: ManufacturedMatsColumns[] = [];\r\n\r\n let infoList = response.infoList;\r\n\r\n infoList.forEach((element) => {\r\n let optionSize = new OptionSizes();\r\n optionSize.id = element.manufacturedMaterialsInfoId;\r\n optionSize.parentId = element.manufacturedMaterialsId;\r\n optionSize.materialCodeId = element.materialCodeId;\r\n optionSize.size = element.size;\r\n if (\r\n this.sizeSelection.find((x) => x.size == optionSize.size) ==\r\n undefined\r\n ) {\r\n this.sizeSelection.push(optionSize);\r\n }\r\n });\r\n\r\n list.forEach((element) => {\r\n let column = new ManufacturedMatsColumns();\r\n column.ID = element.manufacturedMaterialsId;\r\n column.Name = element.name;\r\n column.SKU = element.sku;\r\n column.Supplier = this.supplierName(element.suppliersId);\r\n column.Unit = this.getUom(element.unitsOfMeasureId);\r\n columns.push(column);\r\n });\r\n\r\n this.popupTableB_RowData = columns;\r\n this.tableB_filtered = this.popupTableB_RowData;\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n\r\n // this.manufacturedMatService.getList().subscribe(result => {\r\n // let x = result;\r\n // let columns: ManufacturedMatsColumns[] = [];\r\n\r\n // x.forEach(element => {\r\n // let column = new ManufacturedMatsColumns();\r\n // column.ID = element.manufacturedMaterialsId;\r\n // column.Name = element.name;\r\n // column.SKU = element.sku;\r\n // column.Supplier = this.supplierName(element.suppliersId);\r\n // column.Unit = this.getUom(element.unitsOfMeasureId);\r\n // columns.push(column);\r\n // });\r\n\r\n // this.popupTableB_RowData = columns;\r\n // this.tableB_filtered = this.popupTableB_RowData;\r\n // }, error => {\r\n // this.alertService.error('Error getting list of sheets and wires.');\r\n // });\r\n }\r\n // else if(itemType == BomItemType.MetalGrains){\r\n // this.resetTableBPopupData(new MetalGrainColumn());\r\n\r\n // this.metalGrainSerivce.getList().subscribe(result => {\r\n // let x = result;\r\n // let columns: MetalGrainColumn[] = [];\r\n\r\n // x.forEach(element => {\r\n // let column = new MetalGrainColumn();\r\n // column.ID = element.metalGrainsId;\r\n // column.Name = element.name;\r\n // column.SKU = element.sku;\r\n // column.Supplier = this.supplierName(element.suppliersId);\r\n // column[\"Supplier SKU\"] = element.supplierSku;\r\n // column.Material = this.getMaterial(element.materialCode);\r\n // column.Unit = this.getUom(element.unitsOfMeasureId);\r\n // column[\"QTY in Stock\"] = element.qtyinStock;\r\n // column[\"QTY in Scrap\"] = element.qtyinScrap;\r\n // columns.push(column);\r\n // });\r\n\r\n // this.popupTableB_RowData = columns;\r\n // }, error => {\r\n // this.alertService.error('Error getting list of enamel.');\r\n // });\r\n // }\r\n else if (itemType == BomItemType.Gems) {\r\n this.resetTableBPopupData(new GemsColumns());\r\n\r\n this.gemService.getList().subscribe(\r\n (result) => {\r\n this.popupTableB_RowData = result.responseObject;\r\n this.tableB_filtered = this.popupTableB_RowData;\r\n },\r\n (error) => {\r\n this.alertService.error('Error getting list of gems.');\r\n },\r\n );\r\n } else if (itemType == BomItemType.Nonprecious) {\r\n this.resetTableBPopupData(new NonpreciousColumns());\r\n\r\n this.nonPreciousService.getList().subscribe(\r\n (result) => {\r\n let x = result;\r\n let columns: NonpreciousColumns[] = [];\r\n\r\n x.forEach((element) => {\r\n let column = new NonpreciousColumns();\r\n column.ID = element.nonPreciousId;\r\n column.Name = element.name;\r\n column.SKU = element.sku;\r\n column.Supplier = this.supplierName(element.suppliersId);\r\n column.Unit = this.getUom(element.unitsOfMeasureId);\r\n column['Stock QTY'] = element.stockQty;\r\n column['Supplier Price'] = element.supplierPrice;\r\n columns.push(column);\r\n });\r\n\r\n this.popupTableB_RowData = columns;\r\n this.tableB_filtered = this.popupTableB_RowData;\r\n },\r\n (error) => {\r\n this.alertService.error(\r\n 'Error getting list of nonprecious materials.',\r\n );\r\n },\r\n );\r\n }\r\n }\r\n\r\n resetTableBPopupData(object: any) {\r\n this.popupTableB_ColumnNames = [];\r\n this.popupTableB_ColumnNames = Object.keys(object);\r\n this.popupTableB_RowData = [];\r\n this.tableB_filtered = this.popupTableB_RowData;\r\n }\r\n\r\n checkIfListed(subItemId: number, itemType: number) {\r\n let item = this.tableB.find(\r\n (x) => x.subItemId == subItemId && x.itemType == itemType,\r\n );\r\n if (item !== undefined) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n addGemToTableB(input: GemInventory) {\r\n let exist = this.tableB.find(\r\n (x) => x.subItemId == input.gemInventoryId && x.itemType == this.bomType,\r\n );\r\n if (exist == undefined) {\r\n this.addToTableB(input.gemInventoryId, this.bomType, 1);\r\n } else {\r\n this.alertService.error('Gem already in BOM table.');\r\n }\r\n }\r\n\r\n addToTableB(\r\n subItemId: number,\r\n itemType: number,\r\n qty: number,\r\n infoId?: number,\r\n ) {\r\n // this.tableB_filtered = [];\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n let newBom = new ProductsBOM();\r\n newBom.productsId = this.productInput.productsId;\r\n newBom.subItemId = subItemId;\r\n newBom.bomItemTypeId = itemType;\r\n newBom.itemQty = qty;\r\n newBom.subItemInfoId = infoId;\r\n this.productBomService.addUpdate(newBom).subscribe(\r\n (result) => {\r\n this.tableB.push(result);\r\n this.modalService.dismissAll('Add item');\r\n this.autosaveCounter -= 1;\r\n },\r\n (error) => {\r\n this.modalService.dismissAll('Error');\r\n this.alertService.error('Unable to add item.');\r\n this.autosaveCounter -= 1;\r\n },\r\n );\r\n }\r\n\r\n updateTableBItem(bom: BomResponse) {\r\n if (bom.bomQty == 0) {\r\n this.delete(bom.bomId);\r\n } else {\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n let updateBom = new ProductsBOM();\r\n updateBom.productsBomid = bom.bomId;\r\n updateBom.itemQty = bom.bomQty;\r\n updateBom.notes = bom.itemDescription;\r\n updateBom.productsInfoId = bom.productsInfoId;\r\n updateBom.sizeLocked = bom.isSizeDependent;\r\n updateBom.productsInfoId = 0;\r\n if (bom.isSizeDependent) {\r\n updateBom.productsInfoId = this.selectedProductInfoInput.productsInfoId;\r\n }\r\n\r\n var updated = this.tableB.find((x) => x.bomId == bom.bomId);\r\n var index = this.tableB.indexOf(updated);\r\n this.tableB[index] = bom;\r\n\r\n this.productBomService.addUpdate(updateBom).subscribe(\r\n (result) => {\r\n // var updated = this.tableB.find(x => x.bomId == result.bomId);\r\n // var index = this.tableB.indexOf(updated);\r\n // this.tableB[index] = result;\r\n this.modalService.dismissAll('Add item');\r\n this.autosaveCounter -= 1;\r\n },\r\n (error) => {\r\n this.modalService.dismissAll('Error');\r\n this.alertService.error('Unable to add item.');\r\n this.autosaveCounter -= 1;\r\n },\r\n );\r\n }\r\n }\r\n\r\n // updateSizeLock(productsBomId: number, productsInfoId: number){\r\n // this.showAutosaveCounter = true;\r\n // this.autosaveCounter += 1;\r\n // let updateBom = new ProductsBOM();\r\n // updateBom.\r\n // }\r\n\r\n delete(bomId: number) {\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n this.productBomService.delete(bomId, '').subscribe((result) => {\r\n if (result.wasSuccess) {\r\n this.tableB = this.tableB.filter((x) => x.bomId != bomId);\r\n }\r\n this.autosaveCounter -= 1;\r\n });\r\n }\r\n\r\n getPopupLabel(itemType: number) {\r\n if (itemType == BomItemType.Chain) {\r\n return 'Chain';\r\n } else if (itemType == BomItemType.Enamel) {\r\n return 'Enamel';\r\n } else if (itemType == BomItemType.Findings) {\r\n return 'Findings';\r\n } else if (itemType == BomItemType.Gems) {\r\n return 'Gem';\r\n } else if (itemType == BomItemType.ManufacturedMats) {\r\n return 'Manufactured Materials';\r\n }\r\n // else if(itemType == BomItemType.MetalGrains){\r\n // return 'Metal Grains';\r\n // }\r\n else if (itemType == BomItemType.Nonprecious) {\r\n return 'Nonprecious';\r\n }\r\n }\r\n\r\n supplierName(supplierId: number) {\r\n if (this.suppliers.length != 0) {\r\n let data = this.suppliers.find((x) => x.suppliersId == supplierId);\r\n if (data != undefined) {\r\n let supplierName = '(' + data.supplierId + ') ' + data.companyName;\r\n return supplierName;\r\n }\r\n }\r\n return '-ERROR-';\r\n }\r\n\r\n getUom(uomId: number) {\r\n let x = this.uom.find((x) => x.unitsOfMeasureId == uomId);\r\n if (x !== undefined) {\r\n return x.uom;\r\n }\r\n return '';\r\n }\r\n\r\n getMaterial(materialCodeId: number) {\r\n let x = this.materialCodes.find((x) => x.materialCodeId == materialCodeId);\r\n if (x !== undefined) {\r\n return x.description;\r\n }\r\n return '';\r\n }\r\n\r\n closeResult = '';\r\n\r\n openModal(value) {\r\n this.modalService\r\n .open(value, { ariaLabelledBy: 'modal-basic-title' })\r\n .result.then(\r\n (result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n },\r\n (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n },\r\n );\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n}\r\n","

    \r\n BOM Table B\r\n 0 && showAutosaveCounter\"\r\n class=\"autosave-note\"\r\n >\r\n Saving... \r\n \r\n \r\n Saved \r\n \r\n

    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    QTYSKUNameNotesLocked Size
    \r\n {{ b.bomQty }}\r\n \r\n {{ b.sku }}{{ b.itemName }}\r\n {{ b.itemDescription }}\r\n \r\n \r\n {{ b.isSizeDependent }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n

    \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 BOM ({{ getPopupLabel(bomType) }})\r\n
    \r\n \r\n ×\r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {{ column }}
    {{ x.ID }}{{ x.Name }}{{ x.SKU }}\r\n \r\n \r\n \r\n \r\n {{ info.size }}\r\n \r\n \r\n
    {{ x.enamelId }}{{ x.enamelSku }}\r\n {{ x.enamelName }}\r\n *listed*\r\n {{ x.pantoneColor }}{{ x.hardness }}{{ supplierName(x.supplierId) }}\r\n \r\n \r\n \r\n
    {{ x.ID }}\r\n {{ x.Name }}\r\n *listed*\r\n {{ x.SKU }}{{ x.Supplier }}{{ x.Unit }}\r\n \r\n \r\n \r\n {{ info.size }}\r\n \r\n \r\n \r\n
    {{ x.ID }}\r\n {{ x.Name }}\r\n *listed*\r\n {{ x.SKU }}{{ x.Supplier }}{{ x.Unit }}\r\n \r\n \r\n \r\n {{ info.size }}\r\n \r\n \r\n \r\n
    {{ x.ID }}\r\n {{ x.Name }}\r\n *listed*\r\n {{ x.SKU }}{{ x.Supplier }}{{ x.Unit }}{{ x[\"Stock QTY\"] }}{{ x[\"Supplier Price\"] }}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { ChainFinishedColumns } from 'src/app/models/chainfinished.model';\r\nimport { Enamel, EnamelColumns } from 'src/app/models/enamel';\r\nimport { BomItemType } from 'src/app/models/enum/bom-item-type.enum';\r\nimport { FindingsColumn } from 'src/app/models/findings.model';\r\nimport { GemInventory, GemsColumns } from 'src/app/models/gems.model';\r\nimport { ManufacturedMatsColumns } from 'src/app/models/manufactured-materials';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { NonpreciousColumns } from 'src/app/models/nonprecious.model';\r\nimport { Product, ProductsBOM, ProductsInfo } from 'src/app/models/product';\r\nimport { BomResponse, BomTableAResponse } from 'src/app/models/product-bom-b';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { ChainfinishedService } from 'src/app/services/chainfinished.service';\r\nimport { ChainfinishedinfoService } from 'src/app/services/chainfinishedinfo.service';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FindingsinfoService } from 'src/app/services/findingsinfo.service';\r\nimport { GemService } from 'src/app/services/gem.service';\r\nimport { ManufacturedMaterialsInfoService } from 'src/app/services/manufactured-materials-info.service';\r\nimport { ManufacturedMaterialsService } from 'src/app/services/manufactured-materials.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { MetalGrainService } from 'src/app/services/metal-grain.service';\r\nimport { NonPreciousService } from 'src/app/services/non-precious.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { OptionSizes } from '../bill-of-materials-b/bill-of-materials-b.component';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\n@Component({\r\n selector: 'app-bill-of-materials',\r\n templateUrl: './bill-of-materials.component.html',\r\n styleUrls: ['./bill-of-materials.component.scss'],\r\n})\r\nexport class BillOfMaterialsComponent\r\n extends GenericComponent\r\n implements OnInit\r\n{\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private productBomService: ProductBomService,\r\n private gemService: GemService,\r\n private modalService: NgbModal,\r\n private enamelService: EnamelService,\r\n private manufacturedMatService: ManufacturedMaterialsService,\r\n private metalGrainSerivce: MetalGrainService,\r\n private findingService: FindingsService,\r\n private nonPreciousService: NonPreciousService,\r\n private supplierService: SupplierService,\r\n private uomService: UnitOfMeasureService,\r\n private materialCodeService: MaterialCodeService,\r\n private chainFinishedService: ChainfinishedService,\r\n private chainFinishedInfoService: ChainfinishedinfoService,\r\n private findingsInfoService: FindingsinfoService,\r\n private manufacturedMatsInfoService: ManufacturedMaterialsInfoService,\r\n ) {\r\n super(loadService, alertService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n private _editModeInput: boolean = undefined;\r\n @Input() set editModeInput(data: boolean) {\r\n this._editModeInput = data;\r\n this.editMode = this._editModeInput;\r\n }\r\n\r\n get editModeInput(): boolean {\r\n return this._editModeInput;\r\n }\r\n\r\n private _productInput: Product = undefined;\r\n @Input() set productInput(data: Product) {\r\n this._productInput = data;\r\n this.refreshProductData(this._productInput);\r\n }\r\n\r\n get productInput(): Product {\r\n return this._productInput;\r\n }\r\n\r\n refreshProductData(product: Product) {\r\n if (product.productsId !== undefined) {\r\n this.productBomService\r\n .getTableBList(this.productInput.productsId)\r\n .subscribe((result) => {\r\n this.tableB = result;\r\n });\r\n }\r\n }\r\n\r\n private _productInfoInput: ProductsInfo[] = [];\r\n @Input() set productInfoInput(data: ProductsInfo[]) {\r\n this._productInfoInput = data;\r\n }\r\n\r\n get productInfoInput(): ProductsInfo[] {\r\n return this._productInfoInput;\r\n }\r\n\r\n private _selectedProductInfoInput: ProductsInfo = undefined;\r\n @Input() set selectedProductInfoInput(data: ProductsInfo) {\r\n this._selectedProductInfoInput = data;\r\n }\r\n\r\n get selectedProductInfoInput(): ProductsInfo {\r\n return this._selectedProductInfoInput;\r\n }\r\n\r\n get distinctMaterials(): ProductsInfo[] {\r\n var materials: ProductsInfo[] = [];\r\n this.productInfoInput.forEach((item) => {\r\n let exist = materials.find(\r\n (x) => x.materialCodeId == item.materialCodeId,\r\n );\r\n if (exist == undefined) {\r\n materials.push(item);\r\n }\r\n });\r\n return materials;\r\n }\r\n\r\n getMaterialSizes(materialCodeId: number) {\r\n let info = this.productInfoInput.filter(\r\n (x) => x.materialCodeId == materialCodeId,\r\n );\r\n var result: ProductsInfo[] = [];\r\n if (info !== undefined) {\r\n if (info.length != 0) {\r\n info.forEach((item) => {\r\n result.push(item);\r\n });\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n tableB: BomResponse[] = [];\r\n suppliers: Suppliers[] = [];\r\n uom: UnitOfMeasure[] = [];\r\n materialCodes: MaterialCode[] = [];\r\n tableA: BomResponse[] = [];\r\n keyword: string = '';\r\n tableAOptions: BomTableAResponse[] = [];\r\n\r\n load() {\r\n this.supplierService.getList().subscribe((result) => {\r\n this.suppliers = result;\r\n });\r\n this.uomService.getList().subscribe((result) => {\r\n this.uom = result.responseObject;\r\n });\r\n this.materialCodeService.getList().subscribe((result) => {\r\n this.materialCodes = result.responseObject;\r\n });\r\n if (this.productInput.productsId !== undefined) {\r\n this.productBomService\r\n .getTableBList(this.productInput.productsId)\r\n .subscribe((result) => {\r\n this.tableB = result;\r\n });\r\n }\r\n }\r\n\r\n showDropdown(show: boolean) {\r\n if (show) {\r\n document\r\n .getElementById('search-option')\r\n .nextElementSibling.classList.remove('hidden');\r\n } else {\r\n document\r\n .getElementById('search-option')\r\n .nextElementSibling.classList.add('hidden');\r\n }\r\n }\r\n\r\n enamels: Enamel[] = [];\r\n gems: GemInventory[] = [];\r\n bomType: number = BomItemType.Chain;\r\n popupTableB_ColumnNames = [];\r\n popupTableB_RowData = [];\r\n tableB_filtered = [];\r\n\r\n searchTimeout() {\r\n if (this.searchString == '') {\r\n this.tableB_filtered = [];\r\n } else {\r\n let searchResult = [];\r\n\r\n if (this.bomType == BomItemType.Enamel) {\r\n searchResult = this.popupTableB_RowData.filter(\r\n (x) =>\r\n x['enamelSku']\r\n .toLowerCase()\r\n .includes(this.searchString.toLowerCase()) ||\r\n x['enamelName']\r\n .toLowerCase()\r\n .includes(this.searchString.toLowerCase()),\r\n );\r\n } else {\r\n searchResult = this.popupTableB_RowData.filter(\r\n (x) =>\r\n x['SKU'].toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n x['Name'].toLowerCase().includes(this.searchString.toLowerCase()),\r\n );\r\n }\r\n\r\n if (searchResult !== undefined) {\r\n this.tableB_filtered = searchResult;\r\n }\r\n }\r\n }\r\n\r\n sizeSelection: OptionSizes[] = [];\r\n\r\n getOptionSizes(id: number) {\r\n let info = [];\r\n info = this.sizeSelection.filter((x) => x.parentId == id);\r\n this.tableB.forEach((item) => {\r\n info = this.sizeSelection.filter(\r\n (x) => x.parentId == id && x.id != item.subItemInfoId,\r\n );\r\n });\r\n return info;\r\n }\r\n\r\n showTableBOptions(itemType: number) {\r\n this.searchString = '';\r\n this.searchTimeout();\r\n this.sizeSelection = [];\r\n if (itemType == BomItemType.Chain) {\r\n this.resetTableBPopupData(new ChainFinishedColumns());\r\n\r\n forkJoin([\r\n this.chainFinishedService.getList(),\r\n this.chainFinishedInfoService.getList(),\r\n ])\r\n .pipe(\r\n map(([list, infoList]) => {\r\n return { list, infoList };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n let list = response.list;\r\n let columns: ChainFinishedColumns[] = [];\r\n\r\n let infoList = response.infoList;\r\n\r\n infoList.forEach((element) => {\r\n let optionSize = new OptionSizes();\r\n optionSize.id = element.chainFinishedInfoId;\r\n optionSize.parentId = element.chainFinishedId;\r\n optionSize.materialCodeId = element.materialCodeId;\r\n optionSize.size = element.size;\r\n this.sizeSelection.push(optionSize);\r\n });\r\n\r\n this.sizeSelection;\r\n\r\n list.forEach((element) => {\r\n let column = new ChainFinishedColumns();\r\n column.ID = element.chainFinishedId;\r\n column.Name = element.name;\r\n column.SKU = element.sku;\r\n columns.push(column);\r\n });\r\n\r\n this.popupTableB_RowData = columns;\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n } else if (itemType == BomItemType.Enamel) {\r\n this.resetTableBPopupData(new EnamelColumns());\r\n\r\n this.enamelService.getList().subscribe(\r\n (result) => {\r\n this.popupTableB_RowData = result;\r\n },\r\n (error) => {\r\n this.alertService.error('Error getting list of enamel.');\r\n },\r\n );\r\n } else if (itemType == BomItemType.Findings) {\r\n this.resetTableBPopupData(new FindingsColumn());\r\n\r\n forkJoin([\r\n this.findingService.getList(),\r\n this.findingsInfoService.getList(),\r\n ])\r\n .pipe(\r\n map(([list, infoList]) => {\r\n return { list, infoList };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n let list = response.list;\r\n let columns: FindingsColumn[] = [];\r\n\r\n let infoList = response.infoList;\r\n\r\n infoList.forEach((element) => {\r\n let optionSize = new OptionSizes();\r\n optionSize.id = element.findingsInfoId;\r\n optionSize.parentId = element.findingsId;\r\n optionSize.materialCodeId = element.materialCodeId;\r\n optionSize.size = element.size;\r\n this.sizeSelection.push(optionSize);\r\n });\r\n\r\n this.sizeSelection;\r\n\r\n list.forEach((element) => {\r\n let column = new FindingsColumn();\r\n column.ID = element.findingsId;\r\n column.Name = element.name;\r\n column.SKU = element.sku;\r\n column.Supplier = this.supplierName(element.suppliersId);\r\n column.Unit = this.getUom(element.unitsOfMeasureId);\r\n columns.push(column);\r\n });\r\n\r\n this.popupTableB_RowData = columns;\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n } else if (itemType == BomItemType.ManufacturedMats) {\r\n this.resetTableBPopupData(new ManufacturedMatsColumns());\r\n\r\n forkJoin([\r\n this.manufacturedMatService.getList(),\r\n this.manufacturedMatsInfoService.getList(),\r\n ])\r\n .pipe(\r\n map(([list, infoList]) => {\r\n return { list, infoList };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n let list = response.list;\r\n let columns: ManufacturedMatsColumns[] = [];\r\n\r\n let infoList = response.infoList;\r\n\r\n infoList.forEach((element) => {\r\n let optionSize = new OptionSizes();\r\n optionSize.id = element.manufacturedMaterialsInfoId;\r\n optionSize.parentId = element.manufacturedMaterialsId;\r\n optionSize.materialCodeId = element.materialCodeId;\r\n optionSize.size = element.size;\r\n this.sizeSelection.push(optionSize);\r\n });\r\n\r\n this.sizeSelection;\r\n\r\n list.forEach((element) => {\r\n let column = new ManufacturedMatsColumns();\r\n column.ID = element.manufacturedMaterialsId;\r\n column.Name = element.name;\r\n column.SKU = element.sku;\r\n column.Supplier = this.supplierName(element.suppliersId);\r\n column.Unit = this.getUom(element.unitsOfMeasureId);\r\n columns.push(column);\r\n });\r\n\r\n this.popupTableB_RowData = columns;\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n } else if (itemType == BomItemType.Gems) {\r\n this.resetTableBPopupData(new GemsColumns());\r\n\r\n this.gemService.getList().subscribe(\r\n (result) => {\r\n this.popupTableB_RowData = result.responseObject;\r\n },\r\n (error) => {\r\n this.alertService.error('Error getting list of gems.');\r\n },\r\n );\r\n } else if (itemType == BomItemType.Nonprecious) {\r\n this.resetTableBPopupData(new NonpreciousColumns());\r\n\r\n this.nonPreciousService.getList().subscribe(\r\n (result) => {\r\n let x = result;\r\n let columns: NonpreciousColumns[] = [];\r\n\r\n x.forEach((element) => {\r\n let column = new NonpreciousColumns();\r\n column.ID = element.nonPreciousId;\r\n column.Name = element.name;\r\n column.SKU = element.sku;\r\n column.Supplier = this.supplierName(element.suppliersId);\r\n column.Unit = this.getUom(element.unitsOfMeasureId);\r\n column['Stock QTY'] = element.stockQty;\r\n column['Supplier Price'] = element.supplierPrice;\r\n columns.push(column);\r\n });\r\n\r\n this.popupTableB_RowData = columns;\r\n },\r\n (error) => {\r\n this.alertService.error(\r\n 'Error getting list of nonprecious materials.',\r\n );\r\n },\r\n );\r\n }\r\n }\r\n\r\n resetTableBPopupData(object: any) {\r\n this.popupTableB_ColumnNames = [];\r\n this.popupTableB_ColumnNames = Object.keys(object);\r\n this.popupTableB_RowData = [];\r\n }\r\n\r\n checkIfListed(subItemId: number, itemType: number) {\r\n let item = this.tableB.find(\r\n (x) => x.subItemId == subItemId && x.itemType == itemType,\r\n );\r\n if (item !== undefined) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n addGemToTableB(input: GemInventory) {\r\n let exist = this.tableB.find(\r\n (x) => x.subItemId == input.gemInventoryId && x.itemType == this.bomType,\r\n );\r\n if (exist == undefined) {\r\n this.addToTableB(input.gemInventoryId, this.bomType, 1);\r\n } else {\r\n this.alertService.error('Gem already in BOM table.');\r\n }\r\n }\r\n\r\n addToTableB(\r\n subItemId: number,\r\n itemType: number,\r\n qty: number,\r\n infoId?: number,\r\n ) {\r\n this.tableB_filtered = [];\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n let newBom = new ProductsBOM();\r\n newBom.productsId = this.productInput.productsId;\r\n newBom.subItemId = subItemId;\r\n newBom.bomItemTypeId = itemType;\r\n newBom.itemQty = qty;\r\n newBom.subItemInfoId = infoId;\r\n this.productBomService.addUpdate(newBom).subscribe(\r\n (result) => {\r\n this.tableB.push(result);\r\n this.modalService.dismissAll('Add item');\r\n this.autosaveCounter -= 1;\r\n },\r\n (error) => {\r\n this.modalService.dismissAll('Error');\r\n this.alertService.error('Unable to add item.');\r\n this.autosaveCounter -= 1;\r\n },\r\n );\r\n }\r\n\r\n newTableAItem: BomTableAResponse[] = [];\r\n\r\n addToTableA(subItemId: number, itemType: number, qty: number) {\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n let newBom = new ProductsBOM();\r\n newBom.productsId = this.productInput.productsId;\r\n newBom.subItemId = subItemId;\r\n newBom.bomItemTypeId = itemType;\r\n newBom.itemQty = qty;\r\n this.productBomService.addUpdate(newBom).subscribe(\r\n (result) => {\r\n this.tableA.push(result);\r\n this.newTableAItem = this.newTableAItem.filter(\r\n (x) => x.id != subItemId,\r\n );\r\n this.autosaveCounter -= 1;\r\n },\r\n (error) => {\r\n this.alertService.error('Unable to add item.');\r\n this.autosaveCounter -= 1;\r\n },\r\n );\r\n }\r\n\r\n updateTableAItem(bom: BomResponse) {\r\n if (bom.bomQty == 0) {\r\n this.delete(bom.bomId);\r\n } else {\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n let updateBom = new ProductsBOM();\r\n updateBom.productsBomid = bom.bomId;\r\n updateBom.itemQty = bom.bomQty;\r\n updateBom.notes = bom.itemDescription;\r\n updateBom.productsInfoId = bom.productsInfoId;\r\n this.productBomService.addUpdate(updateBom).subscribe(\r\n (result) => {\r\n var updated = this.tableA.find((x) => x.bomId == result.bomId);\r\n var index = this.tableA.indexOf(updated);\r\n this.tableA[index] = result;\r\n this.autosaveCounter -= 1;\r\n },\r\n (error) => {\r\n this.alertService.error('Unable to add item.');\r\n this.autosaveCounter -= 1;\r\n },\r\n );\r\n }\r\n }\r\n\r\n updateTableBItem(bom: BomResponse) {\r\n if (bom.bomQty == 0) {\r\n this.delete(bom.bomId);\r\n } else {\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n let updateBom = new ProductsBOM();\r\n updateBom.productsBomid = bom.bomId;\r\n updateBom.itemQty = bom.bomQty;\r\n updateBom.notes = bom.itemDescription;\r\n updateBom.productsInfoId = bom.productsInfoId;\r\n this.productBomService.addUpdate(updateBom).subscribe(\r\n (result) => {\r\n var updated = this.tableB.find((x) => x.bomId == result.bomId);\r\n var index = this.tableB.indexOf(updated);\r\n this.tableB[index] = result;\r\n this.modalService.dismissAll('Add item');\r\n this.autosaveCounter -= 1;\r\n },\r\n (error) => {\r\n this.modalService.dismissAll('Error');\r\n this.alertService.error('Unable to add item.');\r\n this.autosaveCounter -= 1;\r\n },\r\n );\r\n }\r\n }\r\n\r\n // updateSizeLock(productsBomId: number, productsInfoId: number){\r\n // this.showAutosaveCounter = true;\r\n // this.autosaveCounter += 1;\r\n // let updateBom = new ProductsBOM();\r\n // updateBom.\r\n // }\r\n\r\n delete(bomId: number) {\r\n this.showAutosaveCounter = true;\r\n this.autosaveCounter += 1;\r\n this.productBomService.delete(bomId, '').subscribe((result) => {\r\n if (result.wasSuccess) {\r\n this.tableB = this.tableB.filter((x) => x.bomId != bomId);\r\n }\r\n this.autosaveCounter -= 1;\r\n });\r\n }\r\n\r\n getPopupLabel(itemType: number) {\r\n if (itemType == BomItemType.Chain) {\r\n return 'Chain';\r\n } else if (itemType == BomItemType.Enamel) {\r\n return 'Enamel';\r\n } else if (itemType == BomItemType.Findings) {\r\n return 'Findings';\r\n } else if (itemType == BomItemType.Gems) {\r\n return 'Gem';\r\n } else if (itemType == BomItemType.ManufacturedMats) {\r\n return 'Manufactured Materials';\r\n }\r\n // else if(itemType == BomItemType.MetalGrains){\r\n // return 'Metal Grains';\r\n // }\r\n else if (itemType == BomItemType.Nonprecious) {\r\n return 'Nonprecious';\r\n }\r\n }\r\n\r\n supplierName(supplierId: number) {\r\n if (this.suppliers.length != 0) {\r\n let data = this.suppliers.find((x) => x.suppliersId == supplierId);\r\n if (data != undefined) {\r\n let supplierName = '(' + data.supplierId + ') ' + data.companyName;\r\n return supplierName;\r\n }\r\n }\r\n return '-ERROR-';\r\n }\r\n\r\n getUom(uomId: number) {\r\n let x = this.uom.find((x) => x.unitsOfMeasureId == uomId);\r\n if (x !== undefined) {\r\n return x.uom;\r\n }\r\n return '';\r\n }\r\n\r\n getMaterial(materialCodeId: number) {\r\n let x = this.materialCodes.find((x) => x.materialCodeId == materialCodeId);\r\n if (x !== undefined) {\r\n return x.description;\r\n }\r\n return '';\r\n }\r\n\r\n closeResult = '';\r\n\r\n openModal(value) {\r\n this.modalService\r\n .open(value, { ariaLabelledBy: 'modal-basic-title' })\r\n .result.then(\r\n (result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n },\r\n (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n },\r\n );\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n

    \r\n BOM Table A\r\n 0 && showAutosaveCounter\"\r\n class=\"autosave-note\"\r\n >\r\n Saving... \r\n \r\n \r\n Saved \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    QTYSKUNameNotesLocked Size
    \r\n {{ a.bomQty }}\r\n \r\n {{ a.sku }}{{ a.itemName }}\r\n {{ a.itemDescription }}\r\n \r\n \r\n {{ a.isSizeDependent }}\r\n \r\n \r\n -- None --\r\n \r\n \r\n {{ info.size }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {{ item.sku }} ({{ item.name }})\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n BOM Table B\r\n 0 && showAutosaveCounter\"\r\n class=\"autosave-note\"\r\n >\r\n Saving... \r\n \r\n \r\n Saved \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    QTYSKUNameNotesLocked Size
    \r\n {{ b.bomQty }}\r\n \r\n {{ b.sku }}{{ b.itemName }}\r\n {{ b.itemDescription }}\r\n \r\n \r\n {{ b.isSizeDependent }}\r\n \r\n \r\n -- None --\r\n \r\n \r\n {{ info.size }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n

    \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 BOM ({{ getPopupLabel(bomType) }})\r\n
    \r\n \r\n ×\r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {{ column }}\r\n
    {{ x.ID }}{{ x.Name }}{{ x.SKU }}\r\n \r\n \r\n {{ getMaterial(info.materialCodeId) }} - {{ info.size }}\r\n \r\n \r\n
    {{ x.enamelId }}{{ x.enamelSku }}\r\n {{ x.enamelName }}\r\n *listed*\r\n {{ x.pantoneColor }}{{ x.hardness }}{{ supplierName(x.supplierId) }}\r\n \r\n \r\n \r\n
    {{ x.ID }}\r\n {{ x.Name }}\r\n *listed*\r\n {{ x.SKU }}{{ x.Supplier }}{{ x.Unit }}\r\n \r\n \r\n {{ getMaterial(info.materialCodeId) }} - {{ info.size }}\r\n \r\n \r\n
    {{ x.ID }}\r\n {{ x.Name }}\r\n *listed*\r\n {{ x.SKU }}{{ x.Supplier }}{{ x.Unit }}\r\n \r\n \r\n {{ getMaterial(info.materialCodeId) }} - {{ info.size }}\r\n \r\n \r\n
    {{ x.ID }}\r\n {{ x.Name }}\r\n *listed*\r\n {{ x.SKU }}{{ x.Supplier }}{{ x.Unit }}{{ x['Stock QTY'] }}{{ x['Supplier Price'] }}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n","import { DatePipe } from '@angular/common';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nimport {\r\n Chainfinished,\r\n ChainfinishedInfo,\r\n} from 'src/app/models/chainfinished.model';\r\nimport { ChainfinishedService } from 'src/app/services/chainfinished.service';\r\n\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { SuppliersService } from 'src/app/services/suppliers.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { Historylogs } from '../../models/historylogs.model';\r\n\r\n@Component({\r\n selector: 'app-chain-finished',\r\n templateUrl: './chain-finished.component.html',\r\n styleUrls: ['./chain-finished.component.scss'],\r\n})\r\nexport class ChainFinishedComponent extends GenericComponent implements OnInit {\r\n tableCollapsed = false;\r\n editMode = false;\r\n\r\n uom: UnitOfMeasure[];\r\n materialCodes: MaterialCode[];\r\n suppliers: Suppliers[];\r\n\r\n chainfinishedList: Chainfinished[];\r\n allChainFinished: Chainfinished[];\r\n chainfinished = new Chainfinished();\r\n\r\n // Material and List Variables\r\n chainFinishedInfo: ChainfinishedInfo[];\r\n selectedChainFinishedInfo = new ChainfinishedInfo();\r\n selectedMaterialCode: number = -1;\r\n selectedSize = -1;\r\n MatList: number[];\r\n SizeList: number[];\r\n highlightSize: boolean = false;\r\n highlightMats: boolean = false;\r\n\r\n newChainFinished = new ChainfinishedInfo();\r\n modalMaterialCode = 0;\r\n modalSize = 0;\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private tokenStorageService: TokenStorageService,\r\n private uomService: UnitOfMeasureService,\r\n private chainfinishedService: ChainfinishedService,\r\n private materialCodeService: MaterialCodeService,\r\n private supplierService: SuppliersService,\r\n private _date: DatePipe,\r\n private modalService: NgbModal,\r\n ) {\r\n super(loadService, alertService);\r\n this.loadService.loadContent(true);\r\n this.load();\r\n }\r\n\r\n tableActive = false;\r\n selectedUOM = 1;\r\n newFlag = false;\r\n lastUpdated = new Historylogs();\r\n\r\n @ViewChild('uploadImage') imageUploader: ElementRef;\r\n\r\n ngOnInit(): void {\r\n this.loadService.loadContent(false);\r\n }\r\n\r\n load() {\r\n forkJoin([\r\n this.uomService.getList(),\r\n this.chainfinishedService.getList(),\r\n this.materialCodeService.getList(),\r\n this.supplierService.getList(),\r\n ])\r\n .pipe(\r\n map(([unitOfMeasurements, chainlist, materialCodes, suppliers]) => {\r\n this.uom = unitOfMeasurements.responseObject;\r\n this.chainfinishedList = chainlist;\r\n this.allChainFinished = chainlist;\r\n this.materialCodes = materialCodes.responseObject;\r\n this.suppliers = suppliers;\r\n\r\n return { unitOfMeasurements, chainlist, materialCodes, suppliers };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n if (this.allChainFinished.length > 0) {\r\n this.chainfinished = this.allChainFinished[0];\r\n\r\n if (this.chainfinished.chainFinishedInfo.length > 0) {\r\n this.chainFinishedInfo = this.chainfinished.chainFinishedInfo;\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n this.getHistoryLog(this.chainfinished.chainFinishedId);\r\n }\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n getHistoryLog(id: number) {\r\n this.chainfinishedService.lastupdate(id).subscribe((res) => {\r\n this.lastUpdated = res;\r\n\r\n if (this.lastUpdated != null) {\r\n this.lastUpdated = res;\r\n } else {\r\n this.lastUpdated = new Historylogs();\r\n }\r\n });\r\n }\r\n\r\n getMaterialList() {\r\n if (this.chainFinishedInfo.length > 0) {\r\n this.MatList = this.chainFinishedInfo\r\n .map((x) => parseInt(x.materialCodeId.toString()))\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.SizeList = this.chainFinishedInfo\r\n .map((x) => parseInt(x.size.toString()))\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n if (this.MatList.length > 0 && this.SizeList.length > 0) {\r\n this.selectedSize = parseInt(this.chainFinishedInfo[0].size);\r\n this.selectedMaterialCode = this.chainFinishedInfo[0].materialCodeId;\r\n\r\n this.highlightMaterials(this.selectedSize);\r\n this.highlightSizes(this.selectedMaterialCode);\r\n\r\n this.getSelectedChainFinishedInfo();\r\n }\r\n } else {\r\n this.selectedSize = -1;\r\n this.selectedMaterialCode = 0;\r\n this.selectedChainFinishedInfo = new ChainfinishedInfo();\r\n this.MatList = [];\r\n this.SizeList = [];\r\n }\r\n }\r\n\r\n getSelectedChainFinishedInfo() {\r\n this.selectedChainFinishedInfo = new ChainfinishedInfo();\r\n\r\n if (this.selectedMaterialCode != 0 && this.selectedSize != -1) {\r\n this.selectedChainFinishedInfo = this.chainFinishedInfo.filter(\r\n (x) =>\r\n x.materialCodeId == this.selectedMaterialCode &&\r\n parseInt(x.size) == this.selectedSize,\r\n )[0];\r\n\r\n if (this.selectedChainFinishedInfo == undefined) {\r\n this.selectedChainFinishedInfo = new ChainfinishedInfo();\r\n }\r\n }\r\n }\r\n\r\n highlightMaterials(size: number) {\r\n if (this.selectedMaterialCode !== 0) {\r\n // var materials = this.lstMatCodeSize.filter(mat => mat.matID == this.productDetails.matID);\r\n var materials = this.chainFinishedInfo.filter(\r\n (info) => info.materialCodeId == this.selectedMaterialCode,\r\n );\r\n\r\n if (materials !== undefined) {\r\n var filtered = materials.find(\r\n (mat) => mat.size.toString() == size.toString(),\r\n );\r\n\r\n if (filtered !== undefined) {\r\n this.highlightMats = true;\r\n\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n highlightSizes(materialCodeId: number) {\r\n if (this.chainFinishedInfo.length > 0 && this.selectedSize != -1) {\r\n var sizes = this.chainFinishedInfo.find(\r\n (x) => parseInt(x.size) === this.selectedSize,\r\n );\r\n\r\n if (sizes !== undefined) {\r\n this.highlightSize = true;\r\n\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n get totalChainFinished() {\r\n if (this.chainfinishedList !== undefined) {\r\n return this.chainfinishedList.length;\r\n }\r\n return 0;\r\n }\r\n\r\n searchString = '';\r\n\r\n searchTimeout() {\r\n this.chainfinishedList = this.allChainFinished.filter(\r\n (p) =>\r\n p.name.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.sku.toLowerCase().includes(this.searchString.toLowerCase()),\r\n );\r\n }\r\n\r\n sortColumn = [\r\n { column: 'chainFinishedId', sort: '' },\r\n { column: 'name', sort: '' },\r\n { column: 'sku', sort: '' },\r\n { column: 'suppliersId', sort: '' },\r\n ];\r\n\r\n onSort(column: string) {\r\n if (\r\n this.checkStringIfEmpty(\r\n this.sortColumn.find((s) => s.column === column).sort,\r\n ) ||\r\n this.sortColumn.find((s) => s.column === column).sort !== 'asc'\r\n ) {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'asc';\r\n this.chainfinishedList.sort((a, b) => {\r\n if (a[column] > b[column]) {\r\n return 1;\r\n }\r\n if (a[column] < b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n } else {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'desc';\r\n this.chainfinishedList.sort((a, b) => {\r\n if (a[column] < b[column]) {\r\n return 1;\r\n }\r\n if (a[column] > b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n\r\n sortClass(column) {\r\n if (this.sortColumn.find((s) => s.column === column).sort === 'asc') {\r\n return 'fa-arrow-up';\r\n } else if (\r\n this.sortColumn.find((s) => s.column === column).sort === 'desc'\r\n ) {\r\n return 'fa-arrow-down';\r\n }\r\n return '';\r\n }\r\n\r\n applyColorBand(chainFinished: Chainfinished) {\r\n let index = this.allChainFinished.indexOf(chainFinished);\r\n if (index % 2 == 0 || index == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getFinding(chainfinished: Chainfinished) {\r\n this.chainfinished = chainfinished;\r\n\r\n this.chainFinishedInfo = [];\r\n\r\n if (this.chainfinished.chainFinishedInfo.length > 0) {\r\n this.chainFinishedInfo = this.chainfinished.chainFinishedInfo;\r\n }\r\n\r\n this.getMaterialList();\r\n\r\n this.getHistoryLog(chainfinished.chainFinishedId);\r\n }\r\n\r\n toggleEdit() {\r\n this.editMode = !this.editMode;\r\n this.newFlag = false;\r\n this.getMaterialList();\r\n }\r\n\r\n toggleCancel() {\r\n this.editMode = !this.editMode;\r\n\r\n if (this.newFlag == false) {\r\n return;\r\n }\r\n\r\n this.getMaterialList();\r\n\r\n this.chainfinishedService\r\n .delete(this.chainfinished.chainFinishedId)\r\n .subscribe();\r\n }\r\n\r\n save() {\r\n this.editMode = !this.editMode;\r\n\r\n this.chainfinished.chainFinishedInfo = [];\r\n this.chainfinished.chainFinishedInfo = this.chainFinishedInfo;\r\n\r\n this.chainfinishedService.addupdate(this.chainfinished).subscribe((res) => {\r\n this.chainfinished = res;\r\n\r\n this.getHistoryLog(this.chainfinished.chainFinishedId);\r\n\r\n // Need to recall, freaking array doesn't work\r\n this.chainfinishedService.getList().subscribe((res) => {\r\n this.chainfinishedList = res;\r\n this.allChainFinished = res;\r\n });\r\n\r\n this.alertService.success('item details updated.');\r\n });\r\n }\r\n\r\n newProduct() {\r\n this.editMode = !this.editMode;\r\n\r\n this.newFlag = true;\r\n\r\n this.chainfinished = new Chainfinished();\r\n this.chainfinished.name = 'NEW_ITEM';\r\n this.chainfinished.sku = 'NEW_ITEM';\r\n this.chainfinished.createdBy = '';\r\n this.chainfinished.createdDate = new Date();\r\n\r\n this.chainFinishedInfo = [];\r\n\r\n this.chainfinished.createdBy =\r\n this.tokenStorageService.currentUser?.userName ?? '';\r\n\r\n this.chainfinishedService.addupdate(this.chainfinished).subscribe((res) => {\r\n this.chainfinished = res;\r\n });\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n uploadProductImage(files) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append(\r\n 'chainfinishedId',\r\n this.chainfinished.chainFinishedId.toString(),\r\n );\r\n formData.append('sku', this.chainfinished.sku);\r\n\r\n this.chainfinishedService.uploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.chainfinished.picPath = event.body.responseObject[0];\r\n }\r\n });\r\n }\r\n\r\n formatDate(iDate: Date) {\r\n return this._date.transform(iDate, 'MM.dd.yyyy HH:mm');\r\n }\r\n\r\n getMaterialDesc(matId: number): string {\r\n let materialCode = new MaterialCode();\r\n let desc = '';\r\n\r\n materialCode = this.materialCodes.filter(\r\n (x) => x.materialCodeId == matId,\r\n )[0];\r\n\r\n if (materialCode != undefined) {\r\n desc = materialCode.description;\r\n }\r\n\r\n return desc;\r\n }\r\n\r\n // Modal\r\n createMatSizeOpen(content) {\r\n this.modalOpen(content);\r\n }\r\n\r\n closeResult = '';\r\n\r\n modalOpen(content) {\r\n this.modalService\r\n .open(content, { ariaLabelledBy: 'modal-basic-title' })\r\n .result.then(\r\n (result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n\r\n // Add New Info\r\n this.AddNewChainFinishedInfo();\r\n },\r\n (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n },\r\n );\r\n }\r\n\r\n AddNewChainFinishedInfo() {\r\n this.newChainFinished = new ChainfinishedInfo();\r\n this.newChainFinished.chainFinishedInfoId = 0;\r\n this.newChainFinished.chainFinishedId = this.chainfinished.chainFinishedId;\r\n this.newChainFinished.size = this.modalSize.toString();\r\n this.newChainFinished.materialCodeId = this.modalMaterialCode;\r\n\r\n this.newChainFinished.stockQty = 0;\r\n this.newChainFinished.supplierSku = '';\r\n this.newChainFinished.supplierPrice = 0;\r\n\r\n if (\r\n this.chainFinishedInfo != undefined &&\r\n this.chainFinishedInfo.length > 0\r\n ) {\r\n let index = this.chainFinishedInfo.findIndex(\r\n (d) =>\r\n d.materialCodeId.toString() == this.modalMaterialCode.toString() &&\r\n d.size == this.modalSize.toString(),\r\n );\r\n\r\n if (index == -1) {\r\n this.chainFinishedInfo.push(this.newChainFinished);\r\n } else {\r\n this.alertService.error(\r\n 'Existing Material and size combination exist!',\r\n );\r\n }\r\n } else {\r\n this.chainFinishedInfo = [];\r\n this.chainFinishedInfo.push(this.newChainFinished);\r\n }\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n getSupplierName(supplierId: number) {\r\n return this.suppliers.filter((x) => x.suppliersId == supplierId)[0]\r\n .companyName;\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n LAST UPDATE BY : {{ lastUpdated.username }} / DATE :\r\n {{ formatDate(lastUpdated.date) }}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Items: {{ totalChainFinished }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ID\r\n \r\n NAME\r\n \r\n SKU\r\n \r\n \r\n SUPPLIER\r\n
    {{ item.chainFinishedId }}{{ item.name }}{{ item.sku }}\r\n {{ getSupplierName(item.suppliersId) }}\r\n
    {{ item.chainFinishedId }}{{ item.name }}{{ item.sku }}\r\n {{ getSupplierName(item.suppliersId) }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ITEM NAME / SKU\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n NAME\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n SKU\r\n
    \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
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ sups.supplierId }}\r\n \r\n \r\n\r\n
    \r\n
    \r\n SUPPLIER CODE\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    COMMENTS
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n 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 *{{ getMaterialDesc(item) }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n \r\n {{ item }}\r\n
    \r\n
    \r\n\r\n \r\n \r\n Add Materials\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \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 + New\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n Create Material and Sizes\r\n
    \r\n \r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n {{ mats.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 Save\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\n\r\n@Component({\r\n selector: 'app-chain-tab',\r\n templateUrl: './chain-tab.component.html',\r\n styleUrls: ['./chain-tab.component.scss'],\r\n})\r\nexport class ChainTabComponent implements OnInit {\r\n constructor(private userPermissionService: UserPermissionService) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.chain);\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { Chain, ChainLinkSize, ChainType } from './../../models/chain.model';\r\nimport { MaterialCode } from './../../models/material-code';\r\nimport { Suppliers } from './../../models/suppliers.model';\r\nimport { ChainService } from './../../services/chain.service';\r\nimport { MaterialCodeService } from './../../services/material-code.service';\r\n\r\n@Component({\r\n selector: 'app-chain',\r\n templateUrl: './chain.component.html',\r\n styleUrls: ['./chain.component.scss'],\r\n})\r\nexport class ChainComponent extends GenericComponent implements OnInit {\r\n chainlist: Chain[]; // Data bind list\r\n allchainlist: Chain[]; // Stored list for dynamic binding\r\n\r\n chainTypes: ChainType[] = [];\r\n chainLinkSizes: ChainLinkSize[] = [];\r\n suppliers: Suppliers[];\r\n materialCodes: MaterialCode[];\r\n\r\n selectedChain = new Chain();\r\n selectedChainType: ChainType;\r\n selectedChainLinkSizes: ChainLinkSize;\r\n selectedMaterialCode: MaterialCode;\r\n\r\n newChainType: string;\r\n newChainLinkSizes: string;\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private chainService: ChainService,\r\n private supplierService: SupplierService,\r\n private materialCodeService: MaterialCodeService,\r\n ) {\r\n super(loadService, alertService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n load() {\r\n forkJoin([\r\n this.chainService.getList(),\r\n this.chainService.getListType(),\r\n this.chainService.getListLinkSize(),\r\n this.supplierService.getList(),\r\n this.materialCodeService.getList(),\r\n ])\r\n .pipe(\r\n map(\r\n ([\r\n chainlist,\r\n chaintypes,\r\n chainlinksizes,\r\n suppliers,\r\n materialcodes,\r\n ]) => {\r\n this.chainlist = chainlist;\r\n this.allchainlist = chainlist;\r\n this.chainTypes = chaintypes;\r\n this.chainLinkSizes = chainlinksizes;\r\n this.suppliers = suppliers;\r\n this.materialCodes = materialcodes.responseObject;\r\n this.materialCodes = this.materialCodes.filter(\r\n (x) => parseInt(x.karat) >= 10 && parseInt(x.karat) <= 18,\r\n );\r\n\r\n if (this.chainTypes.length > 0) {\r\n this.selectedChainType = this.chainTypes[0];\r\n }\r\n\r\n if (this.chainLinkSizes.length > 0) {\r\n this.selectedChainLinkSizes = this.chainLinkSizes[0];\r\n }\r\n\r\n this.selectedMaterialCode = this.materialCodes[0];\r\n\r\n this.getSelectedChainByCheck();\r\n\r\n return {\r\n chainlist,\r\n chaintypes,\r\n chainlinksizes,\r\n suppliers,\r\n materialcodes,\r\n };\r\n },\r\n ),\r\n )\r\n .subscribe(\r\n (response) => {\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n getSelectedChainByCheck() {\r\n this.selectedChain = new Chain();\r\n this.selectedChain.chainTypeId = this.selectedChainType.chainTypeId;\r\n this.selectedChain.chainLinkSizeId =\r\n this.selectedChainLinkSizes.chainLinkSizeId;\r\n this.selectedChain.materialCode = this.selectedMaterialCode.materialCodeId;\r\n\r\n this.chainService.getChain(this.selectedChain).subscribe((res) => {\r\n this.selectedChain = res;\r\n });\r\n }\r\n\r\n getSelectedChainType(chainType: ChainType) {\r\n this.selectedChainType = chainType;\r\n\r\n this.getSelectedChainByCheck();\r\n }\r\n\r\n getSelectedChainLinkSizes(chainlinksize: ChainLinkSize) {\r\n this.selectedChainLinkSizes = chainlinksize;\r\n\r\n this.getSelectedChainByCheck();\r\n }\r\n\r\n getSelectedMaterialCode(materialcode: MaterialCode) {\r\n this.selectedMaterialCode = materialcode;\r\n\r\n this.getSelectedChainByCheck();\r\n }\r\n\r\n saveChain() {\r\n // Fail safe in the event user puts decimal point on the quantity\r\n this.selectedChain.stockQty = parseInt(\r\n this.selectedChain.stockQty.toString(),\r\n );\r\n\r\n this.chainService.addupdate(this.selectedChain).subscribe(\r\n (res) => {\r\n this.selectedChain = res;\r\n\r\n this.chainService.getList().subscribe(\r\n (ret) => {\r\n this.chainlist = ret;\r\n this.allchainlist = ret;\r\n },\r\n (err) => {\r\n err;\r\n },\r\n );\r\n\r\n this.alertService.clear();\r\n this.alertService.success('CHAIN SAVED!');\r\n },\r\n (error) => {\r\n this.alertService.error(\r\n error.statusText +\r\n '. ' +\r\n (error.error.errorText !== undefined ? error.error.errorText : ''),\r\n );\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n addchainType() {\r\n if (this.newChainType == '') return;\r\n\r\n let chaintype = new ChainType();\r\n chaintype.chainTypeName = this.newChainType;\r\n\r\n var check = this.chainTypes.filter(\r\n (x) => x.chainTypeName == this.newChainType,\r\n );\r\n if (check.length > 0) {\r\n this.alertService.clear();\r\n this.alertService.success('Duplicate CHAIN TYPE!');\r\n return;\r\n }\r\n\r\n this.chainService.addchaintype(chaintype).subscribe((res) => {\r\n this.chainTypes.push(res);\r\n\r\n this.getSelectedChainByCheck();\r\n\r\n this.newChainType = '';\r\n\r\n this.alertService.clear();\r\n this.alertService.success('Added NEW CHAIN TYPE!');\r\n });\r\n }\r\n\r\n addLinkSize() {\r\n if (this.newChainLinkSizes == '') return;\r\n\r\n let chainlinksize = new ChainLinkSize();\r\n chainlinksize.linkSize = this.newChainLinkSizes;\r\n\r\n var check = this.chainLinkSizes.filter(\r\n (x) => x.linkSize == this.newChainLinkSizes,\r\n );\r\n if (check.length > 0) {\r\n this.alertService.clear();\r\n this.alertService.success('Duplicate CHAIN TYPE!');\r\n return;\r\n }\r\n\r\n this.chainService.addlinksize(chainlinksize).subscribe((res) => {\r\n this.chainLinkSizes.push(res);\r\n\r\n this.getSelectedChainByCheck();\r\n\r\n this.newChainLinkSizes = '';\r\n\r\n this.alertService.clear();\r\n this.alertService.success('Added NEW CHAIN LINK SIZE!');\r\n });\r\n }\r\n\r\n getHighlightedLink(chainlinksize: ChainLinkSize) {\r\n let value: Boolean = false;\r\n\r\n var check1 = this.chainlist.filter(\r\n (x) => x.chainId == this.selectedChain.chainId,\r\n );\r\n\r\n var check = this.chainlist.filter(\r\n (x) =>\r\n x.chainId == this.selectedChain.chainId &&\r\n x.chainLinkSizeId == chainlinksize.chainLinkSizeId,\r\n )[0];\r\n\r\n if (check != null || check != undefined) {\r\n value = true;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n getHighlightedMaterialCode(materialCode: MaterialCode) {\r\n let value: Boolean = false;\r\n\r\n var check = this.chainlist.filter(\r\n (x) =>\r\n x.chainId == this.selectedChain.chainId &&\r\n x.materialCode == materialCode.materialCodeId,\r\n )[0];\r\n\r\n if (check != null || check != undefined) {\r\n value = true;\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n","\r\n
    \r\n
    \r\n \r\n
    \r\n CHAIN - STYLE / SIZE INFO / MATERIAL / 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
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    CHAIN STYLE
    {{ item.chainTypeName }}
    \r\n
    \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 Type\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    SIZE INFO
    {{ item.linkSize }}
    \r\n
    \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 Size\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    MATERIAL CODE
    {{ item.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 SAVE\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from '@angular/material/dialog';\r\nimport { DateTime } from 'luxon';\r\nimport { CustomerAddress } from 'src/app/models/customer';\r\nimport { CustomerAddressService } from 'src/app/services/customer-address.service';\r\n\r\n@Component({\r\n selector: 'customer-address-dialog',\r\n templateUrl: './customer-address-dialog.component.html',\r\n styleUrls: ['./customer-address-dialog.component.scss'],\r\n})\r\nexport class CustomerAddressDialogComponent implements OnInit {\r\n isSaving: boolean = false;\r\n\r\n customerAddress: CustomerAddress = {\r\n tempCustomersAddressesId: DateTime.now().valueOf(),\r\n } as CustomerAddress;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n private customerAddressService: CustomerAddressService,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: {\r\n customerId: number;\r\n addressType?: number;\r\n customerAddress?: CustomerAddress;\r\n },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.props.customerAddress) {\r\n this.customerAddress = this.props.customerAddress;\r\n }\r\n this.customerAddress.custIdno = this.props.customerId;\r\n this.customerAddress.addressType = this.props.addressType ?? 0;\r\n }\r\n\r\n onSaveAddress() {\r\n if (!this.customerAddress.custIdno) {\r\n this.dialogRef.close(this.customerAddress);\r\n return;\r\n }\r\n this.isSaving = true;\r\n this.customerAddressService\r\n .setCustomerAddress(this.customerAddress)\r\n .subscribe((customerAddress) => {\r\n this.isSaving = false;\r\n this.dialogRef.close(customerAddress);\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const { address1, city, region, postalCode, country } =\r\n this.customerAddress;\r\n return address1 && city && region && postalCode && country;\r\n }\r\n}\r\n","

    Customer Address

    \r\n\r\n\r\n
    \r\n
    \r\n \r\n Address 1\r\n \r\n \r\n \r\n Address 2\r\n \r\n \r\n
    \r\n
    \r\n \r\n City\r\n \r\n \r\n \r\n Region\r\n \r\n \r\n \r\n Postal Code\r\n \r\n \r\n
    \r\n
    \r\n \r\n Country\r\n \r\n \r\n \r\n Phone\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n\r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { DateTime } from 'luxon';\r\nimport { CustomerAddressDialogComponent } from 'src/app/components/customer-page/customer-address-dialog/customer-address-dialog.component';\r\nimport { CustomerAddress, Customers } from 'src/app/models/customer';\r\nimport { CustomerAddressService } from 'src/app/services/customer-address.service';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { Guid } from '../../generic/generic.component';\r\nimport { CustomerSettingDialogComponent } from '../customer-setting-dialog/customer-setting-dialog.component';\r\n\r\nconst getAddressType = (type) => {\r\n switch (type) {\r\n case 0:\r\n return 'Production Shipment';\r\n case 1:\r\n return 'Billing';\r\n case 2:\r\n return 'Development Shipment';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nconst addressesTypeField = {\r\n 0: 'productionAddresses',\r\n 1: 'billingAddresses',\r\n 2: 'developmentAddresses',\r\n};\r\n\r\n@Component({\r\n selector: 'customer-dialog',\r\n templateUrl: './customer-dialog.component.html',\r\n styleUrls: ['./customer-dialog.component.scss'],\r\n})\r\nexport class CustomerDialogComponent implements OnInit {\r\n customer: Customers;\r\n imageFiles: FileList | null = null;\r\n isSaving: boolean = false;\r\n addressColumns = ['address', 'phone', 'action'];\r\n reloadList: boolean = false;\r\n\r\n selectedAddress: CustomerAddress = null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n private sanitizer: DomSanitizer,\r\n private customerService: CustomerService,\r\n private customerAddressService: CustomerAddressService,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { customer: Customers, edit: boolean },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const { billingAddresses, developmentAddresses, productionAddresses } =\r\n this.props.customer?.addresses?.reduce(\r\n (accum, address) => {\r\n address.fullAddress = this.formatAddress(address);\r\n address.addressTypeLabel = getAddressType(address.addressType);\r\n switch (address.addressType) {\r\n case 0:\r\n accum.productionAddresses.push(address);\r\n break;\r\n case 1:\r\n accum.billingAddresses.push(address);\r\n break;\r\n case 2:\r\n accum.developmentAddresses.push(address);\r\n break;\r\n }\r\n return accum;\r\n },\r\n {\r\n billingAddresses: [] as CustomerAddress[],\r\n developmentAddresses: [] as CustomerAddress[],\r\n productionAddresses: [] as CustomerAddress[],\r\n },\r\n ) ?? {\r\n billingAddresses: [] as CustomerAddress[],\r\n developmentAddresses: [] as CustomerAddress[],\r\n productionAddresses: [] as CustomerAddress[],\r\n };\r\n this.customer = {\r\n ...this.props.customer,\r\n billingAddresses,\r\n developmentAddresses,\r\n productionAddresses,\r\n };\r\n }\r\n\r\n sanitize(url: string) {\r\n return this.sanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n onUploadChange(files: FileList) {\r\n this.imageFiles = files;\r\n this.customer.picPath = URL.createObjectURL(files[0]);\r\n }\r\n\r\n uploadImage() {\r\n const formData = new FormData();\r\n for (var i = 0; i < this.imageFiles.length; i++) {\r\n formData.append('file[]', this.imageFiles[i]);\r\n }\r\n const fileId = Guid.newGuid();\r\n formData.append('id', fileId);\r\n this.isSaving = true;\r\n this.customerService.uploadTempPhoto(formData).subscribe((response) => {\r\n if (response.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * response.loaded) / response.total) +\r\n '%',\r\n );\r\n } else if (response.type === HttpEventType.Response) {\r\n this.customerService\r\n .moveTemp(this.customer.custIdno, fileId)\r\n .subscribe((upload) => {\r\n this.customer.picPath = upload.responseObject;\r\n this.customerService.post(this.customer, '').subscribe((result) => {\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n uploadPicture() {\r\n const formData = new FormData();\r\n for (var i = 0; i < this.imageFiles.length; i++) {\r\n formData.append('file[]', this.imageFiles[i]);\r\n }\r\n formData.append('customerId', this.customer.custIdno.toString());\r\n this.isSaving = true;\r\n this.customerService.uploadPicture(formData).subscribe((response) => {\r\n if (response.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * response.loaded) / response.total) +\r\n '%',\r\n );\r\n } else if (response.type === HttpEventType.Response) {\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n }\r\n });\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n const {\r\n billingAddresses,\r\n developmentAddresses,\r\n productionAddresses,\r\n ...customer\r\n } = this.customer;\r\n const addresses = [\r\n ...billingAddresses,\r\n ...developmentAddresses,\r\n ...productionAddresses,\r\n ];\r\n this.customerService.post(customer, '').subscribe((result) => {\r\n this.customer.custIdno = result.custIdno;\r\n if (addresses.length) {\r\n this.onSaveAddresses(this.customer.custIdno, addresses).subscribe(\r\n () => {\r\n if (this.imageFiles?.length) {\r\n this.uploadPicture();\r\n return;\r\n }\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n },\r\n );\r\n return;\r\n }\r\n if (this.imageFiles?.length) {\r\n this.uploadPicture();\r\n return;\r\n }\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n\r\n onSaveAddresses(custIdNo, addresses) {\r\n return this.customerAddressService.setCustomerAddresses(\r\n custIdNo,\r\n addresses,\r\n );\r\n }\r\n\r\n selectAddress(\r\n address = {\r\n tempCustomersAddressesId: DateTime.now().valueOf(),\r\n } as CustomerAddress,\r\n ) {\r\n this.selectedAddress = address;\r\n }\r\n\r\n formatAddress(address: CustomerAddress) {\r\n const address1 = address.address1 ? `${address.address1} ` : '';\r\n const address2 = address.address2 ? `${address.address2} ` : '';\r\n const city = address.city ? `${address.city}, ` : '';\r\n const region = address.region ? `${address.region} ` : '';\r\n const postalCode = address.postalCode ? `${address.postalCode}, ` : '';\r\n const country = address.country ? `${address.country}` : '';\r\n\r\n return `${address1}${address2}${city}${region}${postalCode}${country}`;\r\n }\r\n\r\n onAddAddress() {\r\n this.selectedAddress.fullAddress = this.formatAddress(this.selectedAddress);\r\n this.selectedAddress.addressTypeLabel = getAddressType(\r\n this.selectedAddress.addressType,\r\n );\r\n const addressField =\r\n addressesTypeField[this.selectedAddress.addressType] ?? 'addresses';\r\n\r\n const selectedIndex = this.customer[addressField].findIndex((a) =>\r\n this.selectedAddress.customersAddressesId\r\n ? a.customersAddressesId === this.selectedAddress.customersAddressesId\r\n : a.tempCustomersAddressesId ===\r\n this.selectedAddress.tempCustomersAddressesId,\r\n );\r\n\r\n if (selectedIndex >= 0) {\r\n this.customer[addressField][selectedIndex] = this.selectedAddress;\r\n } else {\r\n this.customer[addressField] = [\r\n ...(this.customer[addressField] ?? []),\r\n this.selectedAddress,\r\n ];\r\n }\r\n this.selectedAddress = null;\r\n }\r\n onCancelAddress() {\r\n this.selectedAddress = null;\r\n }\r\n isDefault(address: CustomerAddress) {\r\n if (address.isDefault) return true;\r\n if (!address.customersAddressesId) return false;\r\n switch (address.addressType) {\r\n case 0:\r\n return (\r\n address.customersAddressesId === this.customer.defaultProdShipAddress\r\n );\r\n case 1:\r\n return (\r\n address.customersAddressesId === this.customer.defaultBillAddress\r\n );\r\n case 2:\r\n return (\r\n address.customersAddressesId === this.customer.defaultDevShipAddress\r\n );\r\n default:\r\n return false;\r\n }\r\n }\r\n onSetDefault(address: CustomerAddress) {\r\n if (!this.props.edit) return;\r\n const addressType = {\r\n 0: 'defaultProdShipAddress',\r\n 1: 'defaultBillAddress',\r\n 2: 'defaultDevShipAddress',\r\n };\r\n const key = addressType[address.addressType];\r\n this.customer[key] = address.customersAddressesId ?? 0;\r\n if (!address.customersAddressesId) {\r\n const field = addressesTypeField[address.addressType] ?? 'addresses';\r\n this.customer[field] = this.customer[field].map((a) => ({\r\n ...a,\r\n isDefault:\r\n address.addressType !== a.addressType\r\n ? a.isDefault\r\n : a.tempCustomersAddressesId === address.tempCustomersAddressesId,\r\n }));\r\n return;\r\n }\r\n\r\n this.customerAddressService\r\n .setAddressDefault({\r\n customerId: this.customer.custIdno,\r\n defaultProdShipAddress: this.customer.defaultProdShipAddress ?? 0,\r\n defaultDevShipAddress: this.customer.defaultDevShipAddress ?? 0,\r\n defaultBillAddress: this.customer.defaultBillAddress ?? 0,\r\n })\r\n .subscribe();\r\n }\r\n\r\n onOpenAddressDialog(addressType, customerAddress = null) {\r\n const dialogRef = this.dialog.open(CustomerAddressDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '700px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n customerId: 0,\r\n addressType,\r\n customerAddress,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((customerAddress) => {\r\n this.selectedAddress = customerAddress;\r\n this.onAddAddress();\r\n });\r\n }\r\n\r\n onOpenSettingDialog() {\r\n const dialogRef = this.dialog.open(CustomerSettingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: { customer: this.customer },\r\n });\r\n dialogRef.afterClosed().subscribe((customer: Customers | string) => {\r\n if (typeof customer !== 'string' && customer?.custIdno > 0) {\r\n this.reloadList = true;\r\n this.customer.hwDisclaimFlag = customer.hwDisclaimFlag;\r\n this.customer.dontAllowMixedInvoices = customer.dontAllowMixedInvoices;\r\n this.customer.lockInvoiceGoldPrice = customer.lockInvoiceGoldPrice;\r\n } else {\r\n this.reloadList = false\r\n }\r\n })\r\n }\r\n\r\n onClose() {\r\n this.dialogRef.close(this.reloadList);\r\n }\r\n}\r\n","
    \r\n

    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 No Image\r\n
    \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\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 Company Name\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Contact Name\r\n \r\n \r\n
    \r\n
    \r\n \r\n Email Address\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Lead Time (Days)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Payment Terms\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Preferred Shipping\r\n \r\n \r\n
    \r\n
    \r\n \r\n Shipping Account Number\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Address 1\r\n \r\n \r\n \r\n Address 2\r\n \r\n \r\n
    \r\n
    \r\n \r\n City\r\n \r\n \r\n \r\n Region\r\n \r\n \r\n \r\n Postal Code\r\n \r\n \r\n
    \r\n
    \r\n \r\n Country\r\n \r\n \r\n \r\n Phone\r\n \r\n \r\n \r\n Address Type\r\n \r\n Production Shipment\r\n Development Shipment\r\n Billing\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    Billing Address
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n New\r\n \r\n
    \r\n
    \r\n
    \r\n {{ element.fullAddress }}\r\n {{\r\n element.addressTypeLabel\r\n }}\r\n default\r\n Set Default\r\n {{ element.phone }}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n No Billing Address\r\n
    \r\n
    \r\n
    Production Shipping Address
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n New\r\n \r\n
    \r\n
    \r\n
    \r\n {{ element.fullAddress }}\r\n {{\r\n element.addressTypeLabel\r\n }}\r\n default\r\n Set Default\r\n {{ element.phone }}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n No Production Shipping Address\r\n
    \r\n
    \r\n
    Development Shipping Address
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n New\r\n \r\n
    \r\n
    \r\n
    \r\n {{ element.fullAddress }}\r\n {{\r\n element.addressTypeLabel\r\n }}\r\n default\r\n Set Default\r\n {{ element.phone }}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n No Development Shipping Address\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { CUSTOMER_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/customer-permission';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { CustomerDialogComponent } from './customer-dialog/customer-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-customer-page',\r\n templateUrl: './customer-page.component.html',\r\n styleUrls: ['./customer-page.component.scss'],\r\n})\r\nexport class CustomerPageComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n customers = new MatTableDataSource([]);\r\n search = '';\r\n featureKey = CUSTOMER_FEATURE_KEY;\r\n isAdmin = true;\r\n\r\n displayedColumns: string[] = [\r\n 'picPath',\r\n 'customerId',\r\n 'companyName',\r\n 'contactName',\r\n 'emailAddress',\r\n 'leadtimeDays',\r\n 'paymentTerms',\r\n 'edit',\r\n ];\r\n\r\n constructor(\r\n private customerService: CustomerService,\r\n private userPermissionService: UserPermissionService,\r\n private tokenStorageService: TokenStorageService,\r\n public dialog: MatDialog,\r\n ) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.customer);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isAdmin = this.tokenStorageService.getUser()?.isAdmin ?? false;\r\n this.getCustomers();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.customers.sort = this.sort;\r\n this.customers.paginator = this.paginator;\r\n this.customers.filterPredicate = (data: Customers, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.companyName\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.contactName?.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.emailAddress?.toString().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n }\r\n\r\n getCustomers() {\r\n this.customerService.getList().subscribe((result) => {\r\n this.customers.data = result.map((c) => ({\r\n ...c,\r\n shippingMethod: c.addresses[0]?.shippingMethod,\r\n }));\r\n });\r\n }\r\n\r\n onFilterChange() {\r\n this.customers.filter = JSON.stringify({ search: this.search });\r\n }\r\n\r\n onOpenDialog(customer = new Customers(), edit = true) {\r\n const dialogRef = this.dialog.open(CustomerDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '900px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: { customer, edit },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.getCustomers();\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n

    Customers

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n New Customer\r\n \r\n
    \r\n \r\n Search by company, contact or 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 Customer ID\r\n \r\n {{ element.customerId }}\r\n \r\n \r\n \r\n Company\r\n \r\n {{ element.companyName }}\r\n \r\n \r\n \r\n Contact\r\n \r\n {{ element.contactName }}\r\n \r\n \r\n \r\n Email\r\n \r\n {{ element.emailAddress }}\r\n \r\n \r\n \r\n Leadtime\r\n \r\n \r\n {{ element.leadtimeDays }}\r\n \r\n \r\n \r\n \r\n Payment Terms\r\n \r\n {{ element.paymentTerms }}\r\n \r\n \r\n \r\n \r\n \r\n Edit\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 No Available Data\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\n\r\n@Component({\r\n selector: 'customer-setting-dialog',\r\n templateUrl: './customer-setting-dialog.component.html',\r\n styleUrls: ['./customer-setting-dialog.component.scss'],\r\n})\r\nexport class CustomerSettingDialogComponent implements OnInit {\r\n isSaving = false;\r\n customer: Customers\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n private customerService: CustomerService,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { customer: Customers },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.customer = {...this.props.customer}\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n const {\r\n billingAddresses,\r\n developmentAddresses,\r\n productionAddresses,\r\n ...customer\r\n } = this.customer;\r\n\r\n this.customerService.post(customer, '').subscribe((result) => {\r\n this.isSaving = false;\r\n this.dialogRef.close(this.customer);\r\n });\r\n }\r\n}\r\n","
    \r\n

    Customer Settings

    \r\n
    \r\n\r\n
    \r\n Harry Winston Disclaimer\r\n Don’t Allow Mixed Invoices\r\n Lock Gold Price\r\n
    \r\n
    \r\n\r\n\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n\r\n","import { AfterViewInit, Component, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ENAMEL_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/enamel-permission';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { Enamel } from 'src/app/models/enamel';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { getTypeLabel } from 'src/app/services/generic.service';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\n@Component({\r\n selector: 'app-enamel',\r\n templateUrl: './enamel.component.html',\r\n styleUrls: ['./enamel.component.scss'],\r\n})\r\nexport class EnamelComponent extends GenericComponent implements AfterViewInit {\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private enamelService: EnamelService,\r\n private supplierService: SupplierService,\r\n private userPermissionService: UserPermissionService,\r\n ) {\r\n super(loadService, alertService);\r\n this.load();\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.enamel);\r\n }\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n enamels = new MatTableDataSource([]);\r\n suppliers: Suppliers[] = [];\r\n getTypeLabel = getTypeLabel;\r\n featureKey = ENAMEL_FEATURE_KEY;\r\n displayedColumns: string[] = [\r\n 'enamelId',\r\n 'enamelName',\r\n 'pantoneColor',\r\n 'hardnessDisplayText',\r\n 'supplierDisplayName',\r\n 'colorHex',\r\n ];\r\n\r\n ngAfterViewInit(): void {\r\n this.enamels.sort = this.sort;\r\n this.enamels.filterPredicate = (e: Enamel, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue);\r\n return (\r\n e.enamelName?.toLowerCase().includes(search.toLowerCase()) ||\r\n e.pantoneColor?.toLowerCase().includes(search.toLowerCase()) ||\r\n e.colorHex?.toLowerCase().includes(search.toLowerCase()) ||\r\n e.supplierDisplayName\r\n ?.toLocaleLowerCase()\r\n .includes(search.toLowerCase()) ||\r\n e.hardnessDisplayText\r\n ?.toLocaleLowerCase()\r\n .includes(search.toLowerCase())\r\n );\r\n };\r\n }\r\n\r\n load() {\r\n this.loadService.loadContent(true);\r\n this.enamel = new Enamel();\r\n\r\n forkJoin([this.enamelService.getList(), this.supplierService.getList()])\r\n .pipe(\r\n map(([enamelList, supplierList]) => {\r\n let enamelsResult = enamelList;\r\n let suppliersResult = supplierList;\r\n return { enamelsResult, suppliersResult };\r\n }),\r\n )\r\n .subscribe(\r\n (data) => {\r\n this.suppliers = data.suppliersResult;\r\n this.enamels.data = data.enamelsResult?.map((e) => ({\r\n ...e,\r\n supplierDisplayName: this.supplierName(e.supplierId),\r\n hardnessDisplayText: getTypeLabel(e.hardness),\r\n }));\r\n if (this.enamels.data.length != 0) {\r\n this.selectItem(this.enamels.data[0]);\r\n }\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n },\r\n );\r\n }\r\n\r\n searchString = '';\r\n filteredEnamels: Enamel[] = [];\r\n\r\n searchTimeout() {\r\n this.enamels.filter = JSON.stringify({\r\n search: this.searchString,\r\n });\r\n }\r\n\r\n enamel: Enamel = new Enamel();\r\n\r\n selectItem(enamel: Enamel) {\r\n if (!this.editMode) {\r\n this.enamel.enamelId = enamel.enamelId;\r\n this.enamel.enamelSku = enamel.enamelSku;\r\n this.enamel.enamelName = enamel.enamelName;\r\n this.enamel.pantoneColor = enamel.pantoneColor;\r\n this.enamel.hardness = enamel.hardness;\r\n this.enamel.colorHex = enamel.colorHex;\r\n this.enamel.supplierId = enamel.supplierId;\r\n }\r\n }\r\n\r\n editMode: boolean = false;\r\n\r\n toggleEdit(edit: boolean) {\r\n this.editMode = edit;\r\n }\r\n\r\n save() {\r\n this.enamelService.post(this.enamel, '').subscribe((result) => {\r\n this.load();\r\n this.editMode = false;\r\n });\r\n }\r\n\r\n cancelChanges() {\r\n this.enamel = new Enamel();\r\n this.enamels.data = [];\r\n this.filteredEnamels = [];\r\n this.editMode = false;\r\n this.load();\r\n }\r\n\r\n new() {\r\n this.enamel = new Enamel();\r\n this.editMode = true;\r\n }\r\n\r\n supplierName(supplierId: number) {\r\n if (this.suppliers.length != 0) {\r\n let data = this.suppliers.find((x) => x.suppliersId == supplierId);\r\n if (data != undefined) {\r\n let supplierName = '(' + data.supplierId + ') ' + data.companyName;\r\n return supplierName;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n // applyColorBand(enamel: Enamel) {\r\n // let index = this.enamels.data.indexOf(enamel);\r\n // if (index % 2 == 0 || index == 0) {\r\n // return false;\r\n // }\r\n // return true;\r\n // }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Items: {{ enamels.filteredData.length }}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n ID\r\n \r\n {{ element.enamelId }}\r\n \r\n \r\n \r\n Name\r\n \r\n \r\n
    \r\n
    \r\n
    {{ element.enamelName }}
    \r\n
    \r\n \r\n \r\n \r\n \r\n Pantone Color\r\n \r\n \r\n {{ element.pantoneColor }}\r\n \r\n \r\n \r\n \r\n Type\r\n \r\n \r\n {{ element.hardnessDisplayText }}\r\n \r\n \r\n \r\n \r\n Supplier\r\n \r\n \r\n {{ element.supplierDisplayName }}\r\n \r\n \r\n \r\n \r\n ColorHex\r\n \r\n \r\n {{ element.colorHex }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n ({{ item.supplierId }}) {{ item.companyName }}\r\n \r\n \r\n
    \r\n
    \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 Cancel\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n","import { Component } from '@angular/core';\r\nimport { Parser } from 'expr-eval';\r\nimport { TOTAL_PRICING_FORMULA } from '../product-pricing/product-pricing.component';\r\n\r\n@Component({\r\n selector: 'app-equations',\r\n templateUrl: './equations.component.html',\r\n styleUrls: ['./equations.component.scss'],\r\n})\r\nexport class EquationsComponent {\r\n equation = {\r\n metalWeight: 0,\r\n castingCost: 0,\r\n metalGramCost: 0,\r\n laborTime: 0,\r\n laborTimeCost: 0,\r\n settingTime: 0,\r\n settingTimeCost: 0,\r\n stoneCost: 0,\r\n otherCost: 0,\r\n overheadPercentage: 0,\r\n profitPercentage: 0,\r\n };\r\n\r\n total = 0;\r\n totalMetalCost = 0;\r\n totalOtherCost = 0;\r\n totalLaborCost = 0;\r\n totalOverheadCost = 0;\r\n totalProfit = 0;\r\n equationParser = new Parser();\r\n totalFormula = TOTAL_PRICING_FORMULA;\r\n totalMetalCostFormula = '(metalWeight * metalGramCost) + (metalWeight * castingCost)';\r\n totalOtherCostFormula = 'stoneCost + otherCost';\r\n totalLaborCostFormula = '(laborTime*laborTimeCost) + (settingTime*settingTimeCost)';\r\n totalOverheadCostFormula = '((laborTime*laborTimeCost) + (settingTime*settingTimeCost)) * overheadPercentage';\r\n totalProfitFormula = 'profitPercentage * (((laborTime*laborTimeCost) + (settingTime*settingTimeCost)) + (((laborTime*laborTimeCost) + (settingTime*settingTimeCost))*overheadPercentage))';\r\n\r\n\r\n onValueChange() {\r\n this.calculateLaborCost();\r\n this.calculateOtherCost();\r\n this.calculateTotalMetalCost();\r\n this.calculateOverheadCost();\r\n this.calculateProfit();\r\n this.calculateTotal();\r\n }\r\n\r\n calculateTotalMetalCost() {\r\n const equation = this.equationParser.parse(this.totalMetalCostFormula);\r\n this.totalMetalCost = equation.evaluate(this.equation);\r\n }\r\n\r\n calculateOtherCost() {\r\n const equation = this.equationParser.parse(this.totalOtherCostFormula);\r\n this.totalOtherCost = equation.evaluate(this.equation);\r\n }\r\n\r\n calculateLaborCost() {\r\n const equation = this.equationParser.parse(this.totalLaborCostFormula);\r\n this.totalLaborCost = equation.evaluate(this.equation);\r\n }\r\n\r\n calculateOverheadCost() {\r\n const equation = this.equationParser.parse(this.totalOverheadCostFormula);\r\n this.totalOverheadCost = equation.evaluate(this.equation);\r\n }\r\n\r\n calculateProfit() {\r\n const equation = this.equationParser.parse(this.totalProfitFormula);\r\n this.totalProfit = equation.evaluate(this.equation);\r\n }\r\n\r\n calculateTotal() {\r\n const equation = this.equationParser.parse(this.totalFormula);\r\n this.total = equation.evaluate(this.equation);\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n Metal Weight\r\n \r\n \r\n \r\n Casting Cost\r\n \r\n \r\n \r\n Metal Gram Cost\r\n \r\n \r\n \r\n Labor Time\r\n \r\n \r\n \r\n Labor Time Cost\r\n \r\n \r\n \r\n Setting Time\r\n \r\n \r\n \r\n Setting Time Cost\r\n \r\n \r\n \r\n Stone Cost\r\n \r\n \r\n \r\n Other Cost\r\n \r\n \r\n \r\n Overhead Percentage\r\n \r\n \r\n \r\n Profit Percentage\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    View of Total Metal Cost
    \r\n
    {{ totalMetalCost | currency }}
    \r\n
    \r\n \r\n \r\n Re-calculate\r\n \r\n
    \r\n
    \r\n
    \r\n
    View of Other Cost
    \r\n
    {{ totalOtherCost | currency }}
    \r\n
    \r\n \r\n \r\n Re-calculate\r\n \r\n
    \r\n
    \r\n
    \r\n
    View of Labor Cost
    \r\n
    {{ totalLaborCost | currency }}
    \r\n
    \r\n \r\n \r\n Re-calculate\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    View of Overhead Cost
    \r\n
    {{ totalOverheadCost | currency }}
    \r\n
    \r\n \r\n \r\n Re-calculate\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    View of Profit
    \r\n
    {{ totalProfit | currency }}
    \r\n
    \r\n \r\n \r\n Re-calculate\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    Total
    \r\n
    {{ total | currency }}
    \r\n
    \r\n \r\n \r\n Re-calculate\r\n \r\n
    \r\n
    \r\n
    \r\n","import { DatePipe } from '@angular/common';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nimport { Findings, FindingsInfo } from 'src/app/models/findings.model';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\n\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { SuppliersService } from 'src/app/services/suppliers.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { Historylogs } from '../../models/historylogs.model';\r\n\r\n@Component({\r\n selector: 'app-findings',\r\n templateUrl: './findings.component.html',\r\n styleUrls: ['./findings.component.scss'],\r\n})\r\nexport class FindingsComponent extends GenericComponent implements OnInit {\r\n tableCollapsed = false;\r\n editMode = false;\r\n\r\n uom: UnitOfMeasure[];\r\n materialCodes: MaterialCode[];\r\n suppliers: Suppliers[];\r\n\r\n findings: Findings[];\r\n allfindings: Findings[];\r\n finding = new Findings();\r\n\r\n // Material and List Variables\r\n findingsInfo: FindingsInfo[];\r\n selectedFindingsInfo = new FindingsInfo();\r\n selectedMaterialCode: number = -1;\r\n selectedSize = '';\r\n MatList: number[];\r\n SizeList: string[];\r\n highlightSize: boolean = false;\r\n highlightMats: boolean = false;\r\n\r\n newFindingsInfo = new FindingsInfo();\r\n modalMaterialCode = 0;\r\n modalSize = 0;\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private tokenStorageService: TokenStorageService,\r\n private uomService: UnitOfMeasureService,\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n private supplierService: SuppliersService,\r\n private _date: DatePipe,\r\n private modalService: NgbModal,\r\n ) {\r\n super(loadService, alertService);\r\n this.loadService.loadContent(true);\r\n this.load();\r\n }\r\n\r\n tableActive = false;\r\n selectedUOM = 1;\r\n newFlag = false;\r\n lastUpdated = new Historylogs();\r\n\r\n @ViewChild('uploadImage') imageUploader: ElementRef;\r\n\r\n ngOnInit(): void {\r\n this.loadService.loadContent(false);\r\n }\r\n\r\n load() {\r\n forkJoin([\r\n this.uomService.getList(),\r\n this.findingsService.getList(),\r\n this.materialCodeService.getList(),\r\n this.supplierService.getList(),\r\n ])\r\n .pipe(\r\n map(([unitOfMeasurements, findings, materialCodes, suppliers]) => {\r\n this.uom = unitOfMeasurements.responseObject;\r\n this.findings = findings;\r\n this.allfindings = findings;\r\n this.materialCodes = materialCodes.responseObject;\r\n this.suppliers = suppliers;\r\n\r\n return { unitOfMeasurements, findings, materialCodes, suppliers };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n if (this.allfindings.length > 0) {\r\n this.finding = this.allfindings[0];\r\n\r\n if (this.finding.findingsInfo.length > 0) {\r\n this.findingsInfo = this.finding.findingsInfo;\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n this.getHistoryLog(this.finding.findingsId);\r\n }\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n get totalFindings() {\r\n if (this.findings !== undefined) {\r\n return this.findings.length;\r\n }\r\n return 0;\r\n }\r\n\r\n searchString = '';\r\n\r\n searchTimeout() {\r\n this.findings = this.allfindings.filter(\r\n (p) =>\r\n p.name.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.sku.toLowerCase().includes(this.searchString.toLowerCase()),\r\n );\r\n }\r\n\r\n sortColumn = [\r\n { column: 'findingsId', sort: '' },\r\n { column: 'name', sort: '' },\r\n { column: 'sku', sort: '' },\r\n { column: 'suppliersId', sort: '' },\r\n ];\r\n\r\n onSort(column: string) {\r\n if (\r\n this.checkStringIfEmpty(\r\n this.sortColumn.find((s) => s.column === column).sort,\r\n ) ||\r\n this.sortColumn.find((s) => s.column === column).sort !== 'asc'\r\n ) {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'asc';\r\n this.findings.sort((a, b) => {\r\n if (a[column] > b[column]) {\r\n return 1;\r\n }\r\n if (a[column] < b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n } else {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'desc';\r\n this.findings.sort((a, b) => {\r\n if (a[column] < b[column]) {\r\n return 1;\r\n }\r\n if (a[column] > b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n\r\n sortClass(column) {\r\n if (this.sortColumn.find((s) => s.column === column).sort === 'asc') {\r\n return 'fa-arrow-up';\r\n } else if (\r\n this.sortColumn.find((s) => s.column === column).sort === 'desc'\r\n ) {\r\n return 'fa-arrow-down';\r\n }\r\n return '';\r\n }\r\n\r\n applyColorBand(finding: Findings) {\r\n let index = this.allfindings.indexOf(finding);\r\n if (index % 2 == 0 || index == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getFinding(finding: Findings) {\r\n this.finding = finding;\r\n\r\n this.findingsInfo = [];\r\n\r\n if (this.finding.findingsInfo.length > 0) {\r\n this.findingsInfo = this.finding.findingsInfo;\r\n }\r\n\r\n this.getMaterialList();\r\n\r\n this.getHistoryLog(finding.findingsId);\r\n }\r\n\r\n toggleEdit() {\r\n this.editMode = !this.editMode;\r\n this.newFlag = false;\r\n this.getMaterialList();\r\n }\r\n\r\n toggleCancel() {\r\n this.editMode = !this.editMode;\r\n\r\n if (this.newFlag == false) {\r\n return;\r\n }\r\n\r\n this.getMaterialList();\r\n\r\n this.findingsService.delete(this.finding.findingsId).subscribe();\r\n }\r\n\r\n save() {\r\n this.editMode = !this.editMode;\r\n\r\n this.finding.findingsInfo = [];\r\n this.finding.findingsInfo = this.findingsInfo;\r\n\r\n this.findingsService.addupdate(this.finding).subscribe((res) => {\r\n this.finding = res;\r\n\r\n // Need to recall, freaking array doesn't work\r\n this.findingsService.getList().subscribe((res) => {\r\n this.findings = res;\r\n this.allfindings = res;\r\n });\r\n\r\n this.alertService.success('product details updated.');\r\n });\r\n }\r\n\r\n newProduct() {\r\n this.editMode = !this.editMode;\r\n\r\n this.newFlag = true;\r\n\r\n this.finding = new Findings();\r\n this.finding.name = 'NEW_ITEM';\r\n this.finding.sku = 'NEW_ITEM';\r\n this.finding.createdBy = '';\r\n this.finding.createdDate = new Date();\r\n\r\n this.findingsInfo = [];\r\n\r\n this.finding.createdBy =\r\n this.tokenStorageService.currentUser?.userName ?? '';\r\n\r\n this.findingsService.addupdate(this.finding).subscribe((res) => {\r\n this.finding = res;\r\n });\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n uploadProductImage(files) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append('findingsId', this.finding.findingsId.toString());\r\n formData.append('sku', this.finding.sku);\r\n\r\n // FUNCTION UNDER-CONTRUCTION\r\n this.findingsService.uploadImage(formData).subscribe(\r\n (event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * event.loaded) / event.total) +\r\n '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.finding.picPath = event.body.responseObject[0];\r\n }\r\n },\r\n (err) => {\r\n err;\r\n },\r\n );\r\n }\r\n\r\n getHistoryLog(id: number) {\r\n this.findingsService.lastupdate(id).subscribe((res) => {\r\n this.lastUpdated = res;\r\n\r\n if (this.lastUpdated != null) {\r\n this.lastUpdated = res;\r\n } else {\r\n this.lastUpdated = new Historylogs();\r\n }\r\n });\r\n }\r\n\r\n formatDate(iDate: Date) {\r\n return this._date.transform(iDate, 'MM.dd.yyyy HH:mm');\r\n }\r\n\r\n // Material and sizes -- codes ***************************************** -- START\r\n getMaterialDesc(matId: number): string {\r\n let materialCode = new MaterialCode();\r\n let desc = '';\r\n\r\n materialCode = this.materialCodes.filter(\r\n (x) => x.materialCodeId == matId,\r\n )[0];\r\n\r\n if (materialCode != undefined) {\r\n desc = materialCode.description;\r\n }\r\n\r\n return desc;\r\n }\r\n\r\n getSelectedFindingsInfo() {\r\n this.selectedFindingsInfo = new FindingsInfo();\r\n\r\n if (this.selectedMaterialCode != 0 && this.selectedSize != '') {\r\n this.selectedFindingsInfo = this.findingsInfo.filter(\r\n (x) =>\r\n x.materialCodeId == this.selectedMaterialCode &&\r\n x.size == this.selectedSize,\r\n )[0];\r\n\r\n if (this.selectedFindingsInfo == undefined) {\r\n this.selectedFindingsInfo = new FindingsInfo();\r\n }\r\n }\r\n }\r\n\r\n getMaterialList() {\r\n if (this.findingsInfo.length > 0) {\r\n this.MatList = this.findingsInfo\r\n .map((x) => parseInt(x.materialCodeId.toString()))\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.SizeList = this.findingsInfo\r\n .map((x) => x.size)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n if (this.MatList.length > 0 && this.SizeList.length > 0) {\r\n this.selectedSize = this.findingsInfo[0].size;\r\n this.selectedMaterialCode = this.findingsInfo[0].materialCodeId;\r\n\r\n this.highlightMaterials(this.selectedSize);\r\n this.highlightSizes(this.selectedMaterialCode);\r\n\r\n this.getSelectedFindingsInfo();\r\n }\r\n } else {\r\n this.selectedSize = '';\r\n this.selectedMaterialCode = 0;\r\n this.selectedFindingsInfo = new FindingsInfo();\r\n this.MatList = [];\r\n this.SizeList = [];\r\n }\r\n }\r\n\r\n highlightMaterials(size: string) {\r\n if (this.selectedMaterialCode !== 0) {\r\n // var materials = this.lstMatCodeSize.filter(mat => mat.matID == this.productDetails.matID);\r\n var materials = this.findingsInfo.filter(\r\n (info) => info.materialCodeId == this.selectedMaterialCode,\r\n );\r\n\r\n if (materials !== undefined) {\r\n var filtered = materials.find(\r\n (mat) => mat.size.toString() == size.toString(),\r\n );\r\n\r\n if (filtered !== undefined) {\r\n this.highlightMats = true;\r\n\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n highlightSizes(materialCodeId: number) {\r\n if (this.findingsInfo.length > 0 && this.selectedSize != '') {\r\n var sizes = this.findingsInfo.find((x) => x.size === this.selectedSize);\r\n\r\n if (sizes !== undefined) {\r\n this.highlightSize = true;\r\n\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // Modal\r\n createMatSizeOpen(content) {\r\n this.modalOpen(content);\r\n }\r\n\r\n closeResult = '';\r\n\r\n modalOpen(content) {\r\n this.modalService\r\n .open(content, { ariaLabelledBy: 'modal-basic-title' })\r\n .result.then(\r\n (result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n\r\n // Add New Info\r\n this.AddNewFindingsInfo();\r\n },\r\n (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n },\r\n );\r\n }\r\n\r\n AddNewFindingsInfo() {\r\n this.newFindingsInfo = new FindingsInfo();\r\n this.newFindingsInfo.findingsInfoId = 0;\r\n this.newFindingsInfo.findingsId = this.finding.findingsId;\r\n this.newFindingsInfo.size = this.modalSize.toString();\r\n this.newFindingsInfo.materialCodeId = this.modalMaterialCode;\r\n\r\n this.newFindingsInfo.stockQty = 0;\r\n this.newFindingsInfo.weight = 0;\r\n\r\n if (this.findingsInfo != undefined && this.findingsInfo.length > 0) {\r\n let index = this.findingsInfo.findIndex(\r\n (d) =>\r\n d.materialCodeId.toString() == this.modalMaterialCode.toString() &&\r\n d.size == this.modalSize.toString(),\r\n );\r\n\r\n if (index == -1) {\r\n this.findingsInfo.push(this.newFindingsInfo);\r\n } else {\r\n this.alertService.error(\r\n 'Existing Material and size combination exist!',\r\n );\r\n }\r\n } else {\r\n this.findingsInfo = [];\r\n this.findingsInfo.push(this.newFindingsInfo);\r\n }\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n getSupplierName(supplierId: number) {\r\n return this.suppliers.filter((x) => x.suppliersId == supplierId)[0]\r\n .companyName;\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n LAST UPDATE BY : {{ lastUpdated.username }} / DATE :\r\n {{ formatDate(lastUpdated.date) }}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n\r\n
    \r\n Items: {{ totalFindings }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ID\r\n \r\n NAME\r\n \r\n SKU\r\n \r\n \r\n SUPPLIER\r\n
    {{ item.findingsId }}{{ item.name }}{{ item.sku }}\r\n {{ getSupplierName(item.suppliersId) }}\r\n
    {{ item.findingsId }}{{ item.name }}{{ item.sku }}\r\n {{ getSupplierName(item.suppliersId) }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ITEM NAME / SKU\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n NAME\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n SKU\r\n
    \r\n
    \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 / UNIT OF MEASURE\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ sups.supplierId }}\r\n \r\n \r\n\r\n
    \r\n
    \r\n SUPPLIER CODE\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {{ unit.uom }}\r\n \r\n \r\n
    \r\n
    \r\n UOM\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    COMMENTS
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n 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 *{{ getMaterialDesc(item) }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n \r\n {{ item }}\r\n
    \r\n
    \r\n\r\n \r\n \r\n Add Materials\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \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 + New\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n Create Material and Sizes\r\n
    \r\n \r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n {{ mats.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 Save\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\n\r\n@Component({\r\n selector: 'app-forbidden',\r\n templateUrl: './forbidden.component.html',\r\n styleUrls: ['./forbidden.component.scss'],\r\n})\r\nexport class ForbiddenComponent implements OnInit {\r\n constructor(private userPermissionService: UserPermissionService) {\r\n this.userPermissionService.checkPagePermission(null);\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","\r\n\r\n\r\n\r\n
    \r\n \r\n
    \r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport {\r\n GemCuts,\r\n GemInventory,\r\n Gems,\r\n GemSizes,\r\n GemTypes,\r\n} from '../../models/gems.model';\r\nimport { Suppliers } from '../../models/suppliers.model';\r\nimport { GemService } from '../../services/gem.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\n@Component({\r\n selector: 'app-gems-bom',\r\n templateUrl: './gems-bom.component.html',\r\n styleUrls: ['./gems-bom.component.scss'],\r\n})\r\nexport class GemsBomComponent extends GenericComponent implements OnInit {\r\n gemlist: GemInventory[]; // Data bind list\r\n allgemlist: GemInventory[]; // Stored list for dynamic binding\r\n\r\n gemCuts: GemCuts[] = []; // Gem Cuts\r\n gemTypes: GemTypes[] = [];\r\n allGemSizes: GemSizes[] = [];\r\n gemSizes: GemSizes[] = [];\r\n selectedCut = new GemCuts();\r\n selectedType = new GemTypes();\r\n selectedSize = new GemSizes();\r\n selectedInventory = new GemInventory();\r\n\r\n suppliers: Suppliers[];\r\n newSize: string = '';\r\n\r\n // This will control the behavior of the updating\r\n currentGem = new Gems();\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private gemSvc: GemService,\r\n private supplierService: SupplierService,\r\n ) {\r\n super(loadService, alertService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n load() {\r\n forkJoin([\r\n this.gemSvc.getList(),\r\n this.gemSvc.getCutList(),\r\n this.gemSvc.getTypeList(),\r\n this.gemSvc.getSizeList(),\r\n this.supplierService.getList(),\r\n ])\r\n .pipe(\r\n map(([gemlist, cutlist, typelist, sizelist, suppliers]) => {\r\n this.gemlist = gemlist.responseObject;\r\n this.allgemlist = gemlist.responseObject;\r\n\r\n this.gemCuts = cutlist.responseObject;\r\n if (this.gemCuts.length > 0) {\r\n this.selectedCut = this.gemCuts[0];\r\n }\r\n\r\n this.gemTypes = typelist.responseObject;\r\n if (this.gemTypes.length > 0) {\r\n this.selectedType = this.gemTypes[0];\r\n }\r\n\r\n this.allGemSizes = sizelist.responseObject;\r\n\r\n this.getupdatedSize();\r\n\r\n this.suppliers = suppliers;\r\n\r\n this.getSelectedInventory();\r\n\r\n return { gemlist, cutlist, typelist, sizelist, suppliers };\r\n }),\r\n )\r\n .subscribe(\r\n () => {\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n getSelectedType(type: GemTypes) {\r\n this.selectedType = type;\r\n this.getSelectedInventory();\r\n }\r\n\r\n getSelectedCut(cut: GemCuts) {\r\n this.selectedCut = cut;\r\n this.getupdatedSize();\r\n\r\n this.getSelectedInventory();\r\n }\r\n\r\n getSelectedSize(size: GemSizes) {\r\n this.selectedSize = size;\r\n this.getSelectedInventory();\r\n }\r\n\r\n getSelectedInventory() {\r\n this.selectedInventory = new GemInventory();\r\n this.selectedInventory.gemTypesId = this.selectedType.gemTypesId;\r\n this.selectedInventory.gemCutsId = this.selectedCut.gemCutsId;\r\n if (this.selectedSize != null) {\r\n this.selectedInventory.gemSizesId = this.selectedSize.gemSizesId;\r\n }\r\n\r\n this.gemSvc.getGemInventory(this.selectedInventory).subscribe((res) => {\r\n this.selectedInventory = res.responseObject;\r\n });\r\n }\r\n\r\n @Output() gemInventoryOutput = new EventEmitter();\r\n\r\n saveInventory() {\r\n this.gemInventoryOutput.emit(this.selectedInventory);\r\n }\r\n\r\n addsize() {\r\n if (this.newSize == '') return;\r\n\r\n let gemsize = new GemSizes();\r\n gemsize.gemSizeDesc = this.newSize;\r\n gemsize.gemCutsId = this.selectedCut.gemCutsId;\r\n\r\n var gemcheck = this.allGemSizes.filter(\r\n (x) => x.gemSizeDesc == this.newSize && x.gemCutsId == gemsize.gemCutsId,\r\n );\r\n if (gemcheck.length > 0) {\r\n this.alertService.clear();\r\n this.alertService.success('Duplicate GEM SIZE!');\r\n return;\r\n }\r\n\r\n this.gemSvc.addupdateSize(gemsize).subscribe((res) => {\r\n this.allGemSizes.push(res);\r\n this.getupdatedSize();\r\n this.getSelectedInventory();\r\n this.newSize = '';\r\n this.alertService.clear();\r\n this.alertService.success('Added NEW SIZE!');\r\n });\r\n }\r\n\r\n getupdatedSize() {\r\n this.gemSizes = this.allGemSizes.filter(\r\n (x) => x.gemCutsId == this.selectedCut.gemCutsId,\r\n );\r\n\r\n // this.gemSizes = this.allGemSizes;\r\n if (this.gemSizes.length > 0) {\r\n this.selectedSize = this.gemSizes[0];\r\n } else {\r\n this.selectedSize = null;\r\n }\r\n }\r\n\r\n getHighlightedCut() {\r\n let value: Boolean = false;\r\n\r\n var gemInventory = this.gemlist.filter(\r\n (x) =>\r\n x.gemTypesId == this.selectedType.gemTypesId &&\r\n x.gemCutsId == this.selectedCut.gemCutsId,\r\n )[0];\r\n\r\n if (gemInventory != null || gemInventory != undefined) {\r\n value = true;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n getHighlightedCutbyCut(cut: GemCuts) {\r\n let value: Boolean = false;\r\n\r\n var gemInventory = this.gemlist.filter(\r\n (x) =>\r\n x.gemTypesId == this.selectedType.gemTypesId &&\r\n x.gemCutsId == cut.gemCutsId,\r\n )[0];\r\n\r\n if (gemInventory != null || gemInventory != undefined) {\r\n value = true;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n getHighlightedSizebyCut(item: GemSizes) {\r\n let value: Boolean = false;\r\n\r\n var gemInventory = this.gemlist.filter(\r\n (x) =>\r\n x.gemTypesId == this.selectedType.gemTypesId &&\r\n x.gemCutsId == this.selectedCut.gemCutsId &&\r\n x.gemSizesId == item.gemSizesId,\r\n )[0];\r\n\r\n if (gemInventory != null || gemInventory != undefined) {\r\n value = true;\r\n }\r\n\r\n return value;\r\n }\r\n} // end class\r\n","\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    TYPES
    {{ item.colorClarity }}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    CUTS
    {{ item.cutName }}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    SIZES
    {{ item.gemSizeDesc }}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \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 TO BOM\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\nimport {\r\n GemCuts,\r\n GemInventory,\r\n Gems,\r\n GemSizes,\r\n GemTypes,\r\n} from './../../models/gems.model';\r\nimport { Suppliers } from './../../models/suppliers.model';\r\nimport { GemService } from './../../services/gem.service';\r\n\r\n@Component({\r\n selector: 'app-gems',\r\n templateUrl: './gems.component.html',\r\n styleUrls: ['./gems.component.scss'],\r\n})\r\nexport class GemsComponent extends GenericComponent implements OnInit {\r\n gemlist: GemInventory[]; // Data bind list\r\n allgemlist: GemInventory[]; // Stored list for dynamic binding\r\n\r\n gemCuts: GemCuts[] = []; // Gem Cuts\r\n gemTypes: GemTypes[] = [];\r\n allGemSizes: GemSizes[] = [];\r\n gemSizes: GemSizes[] = [];\r\n selectedCut = new GemCuts();\r\n selectedType = new GemTypes();\r\n selectedSize = new GemSizes();\r\n selectedInventory = new GemInventory();\r\n\r\n suppliers: Suppliers[];\r\n newSize: string = '';\r\n\r\n // This will control the behavior of the updating\r\n currentGem = new Gems();\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private gemSvc: GemService,\r\n private supplierService: SupplierService,\r\n private userPermissionService: UserPermissionService,\r\n ) {\r\n super(loadService, alertService);\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.stone);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n load() {\r\n forkJoin([\r\n this.gemSvc.getList(),\r\n this.gemSvc.getCutList(),\r\n this.gemSvc.getTypeList(),\r\n this.gemSvc.getSizeList(),\r\n this.supplierService.getList(),\r\n ])\r\n .pipe(\r\n map(([gemlist, cutlist, typelist, sizelist, suppliers]) => {\r\n this.gemlist = gemlist.responseObject;\r\n this.allgemlist = gemlist.responseObject;\r\n\r\n this.gemCuts = cutlist.responseObject;\r\n if (this.gemCuts.length > 0) {\r\n this.selectedCut = this.gemCuts[0];\r\n }\r\n\r\n this.gemTypes = typelist.responseObject;\r\n if (this.gemTypes.length > 0) {\r\n this.selectedType = this.gemTypes[0];\r\n }\r\n\r\n this.allGemSizes = sizelist.responseObject;\r\n\r\n this.getupdatedSize();\r\n\r\n this.suppliers = suppliers;\r\n\r\n this.getSelectedInventory();\r\n\r\n return { gemlist, cutlist, typelist, sizelist, suppliers };\r\n }),\r\n )\r\n .subscribe(\r\n () => {\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n getSelectedType(type: GemTypes) {\r\n this.selectedType = type;\r\n this.getSelectedInventory();\r\n }\r\n\r\n getSelectedCut(cut: GemCuts) {\r\n this.selectedCut = cut;\r\n this.getupdatedSize();\r\n\r\n this.getSelectedInventory();\r\n }\r\n\r\n getSelectedSize(size: GemSizes) {\r\n this.selectedSize = size;\r\n this.getSelectedInventory();\r\n }\r\n\r\n getSelectedInventory() {\r\n this.selectedInventory = new GemInventory();\r\n this.selectedInventory.gemTypesId = this.selectedType.gemTypesId;\r\n this.selectedInventory.gemCutsId = this.selectedCut.gemCutsId;\r\n if (this.selectedSize != null) {\r\n this.selectedInventory.gemSizesId = this.selectedSize.gemSizesId;\r\n }\r\n\r\n this.gemSvc.getGemInventory(this.selectedInventory).subscribe((res) => {\r\n this.selectedInventory = res.responseObject;\r\n });\r\n }\r\n\r\n saveInventory() {\r\n this.selectedInventory.stockQty = parseInt(\r\n this.selectedInventory.stockQty.toString(),\r\n );\r\n\r\n this.gemSvc.addupdate(this.selectedInventory).subscribe(\r\n (res) => {\r\n this.selectedInventory = res.responseObject;\r\n\r\n this.gemSvc.getList().subscribe(\r\n (ret) => {\r\n this.gemlist = ret.responseObject;\r\n this.allgemlist = ret.responseObject;\r\n },\r\n (err) => {\r\n err;\r\n },\r\n );\r\n\r\n this.alertService.clear();\r\n this.alertService.success('Gem Inventory SAVED!');\r\n },\r\n (error) => {\r\n this.alertService.error(\r\n error.statusText +\r\n '. ' +\r\n (error.error.errorText !== undefined ? error.error.errorText : ''),\r\n );\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n addsize() {\r\n if (this.newSize == '') return;\r\n\r\n let gemsize = new GemSizes();\r\n gemsize.gemSizeDesc = this.newSize;\r\n gemsize.gemCutsId = this.selectedCut.gemCutsId;\r\n\r\n var gemcheck = this.allGemSizes.filter(\r\n (x) => x.gemSizeDesc == this.newSize && x.gemCutsId == gemsize.gemCutsId,\r\n );\r\n if (gemcheck.length > 0) {\r\n this.alertService.clear();\r\n this.alertService.success('Duplicate GEM SIZE!');\r\n return;\r\n }\r\n\r\n this.gemSvc.addupdateSize(gemsize).subscribe((res) => {\r\n this.allGemSizes.push(res);\r\n this.getupdatedSize();\r\n this.getSelectedInventory();\r\n this.newSize = '';\r\n this.alertService.clear();\r\n this.alertService.success('Added NEW SIZE!');\r\n });\r\n }\r\n\r\n getupdatedSize() {\r\n this.gemSizes = this.allGemSizes.filter(\r\n (x) => x.gemCutsId == this.selectedCut.gemCutsId,\r\n );\r\n\r\n // this.gemSizes = this.allGemSizes;\r\n if (this.gemSizes.length > 0) {\r\n this.selectedSize = this.gemSizes[0];\r\n } else {\r\n this.selectedSize = null;\r\n }\r\n }\r\n\r\n getHighlightedCut() {\r\n let value: Boolean = false;\r\n\r\n var gemInventory = this.gemlist.filter(\r\n (x) =>\r\n x.gemTypesId == this.selectedType.gemTypesId &&\r\n x.gemCutsId == this.selectedCut.gemCutsId,\r\n )[0];\r\n\r\n if (gemInventory != null || gemInventory != undefined) {\r\n value = true;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n getHighlightedCutbyCut(cut: GemCuts) {\r\n let value: Boolean = false;\r\n\r\n var gemInventory = this.gemlist.filter(\r\n (x) =>\r\n x.gemTypesId == this.selectedType.gemTypesId &&\r\n x.gemCutsId == cut.gemCutsId,\r\n )[0];\r\n\r\n if (gemInventory != null || gemInventory != undefined) {\r\n value = true;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n getHighlightedSizebyCut(item: GemSizes) {\r\n let value: Boolean = false;\r\n\r\n var gemInventory = this.gemlist.filter(\r\n (x) =>\r\n x.gemTypesId == this.selectedType.gemTypesId &&\r\n x.gemCutsId == this.selectedCut.gemCutsId &&\r\n x.gemSizesId == item.gemSizesId,\r\n )[0];\r\n\r\n if (gemInventory != null || gemInventory != undefined) {\r\n value = true;\r\n }\r\n\r\n return value;\r\n }\r\n} // end class\r\n","\r\n
    \r\n
    \r\n
    \r\n
    \r\n GEM - TYPES / CUTS / SIZES / 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
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    TYPES
    {{ item.colorClarity }}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    CUTS
    {{ item.cutName }}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    SIZES
    {{ item.gemSizeDesc }}
    \r\n
    \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 Size\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n SAVE\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n","import { AlertService } from 'src/app/custom/_alert';\r\nimport { BomItemType } from 'src/app/models/enum/bom-item-type.enum';\r\nimport { LoadService } from '../../custom/load-overlay/load-overlay.service';\r\n\r\nexport abstract class GenericComponent {\r\n searchString = '';\r\n public editMode: boolean = false;\r\n autosaveCounter: number = 0;\r\n showAutosaveCounter: boolean = false;\r\n isAuthorized: boolean = false; // for read/write page permission\r\n\r\n constructor(\r\n public loadService: LoadService,\r\n public alertService: AlertService,\r\n ) {}\r\n\r\n pagePermissionError() {\r\n this.alertService.error('Error: Action is unauthorized for this user.');\r\n }\r\n\r\n checkStringIfEmpty(value: string): boolean {\r\n return value === undefined || value === '';\r\n }\r\n\r\n rowColor(itemType: number) {\r\n if (itemType == BomItemType.Subassemblies) {\r\n return 'row-item-sa';\r\n } else if (itemType == BomItemType.Chain) {\r\n return 'row-item-chain';\r\n } else if (itemType == BomItemType.Enamel) {\r\n return 'row-item-enamel';\r\n } else if (itemType == BomItemType.Findings) {\r\n return 'row-item-finding';\r\n } else if (itemType == BomItemType.Gems) {\r\n return 'row-item-gem';\r\n } else if (itemType == BomItemType.ManufacturedMats) {\r\n return 'row-item-mm';\r\n } else if (itemType == BomItemType.MetalGrains) {\r\n return 'row-item-mg';\r\n } else if (itemType == BomItemType.Nonprecious) {\r\n return 'row-item-np';\r\n }\r\n }\r\n}\r\n\r\nexport class Guid {\r\n static newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\r\n /[xy]/g,\r\n function (c) {\r\n var r = (Math.random() * 16) | 0,\r\n v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n },\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { InventoryLog } from 'src/app/models/inventory-log';\r\nimport { InventoryLogService } from 'src/app/services/inventory-log.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\n@Component({\r\n templateUrl: './inventory-log.component.html',\r\n styleUrls: ['./inventory-log.component.scss'],\r\n})\r\nexport class InventoryLogComponent extends GenericComponent implements OnInit {\r\n inventoryLogs: InventoryLog[];\r\n newTotalEditable = true;\r\n wkoID: number;\r\n uom: string;\r\n gramsPerUnit: number;\r\n\r\n inventory: InventoryLog = new InventoryLog();\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private inventoryLogService: InventoryLogService,\r\n private tokenStorageService: TokenStorageService,\r\n private userPermissionService: UserPermissionService,\r\n ) {\r\n super(loadService, alertService);\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.inventory);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadTable();\r\n }\r\n\r\n loadTable() {\r\n // this.loadService.loadContent(true);\r\n this.inventoryLogService.getList().subscribe(\r\n (response) => {\r\n this.inventoryLogs = response;\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n getScannerData() {\r\n let param = this.inventory.barcodeId;\r\n\r\n if (param !== undefined) {\r\n this.loadService.loadContent(true);\r\n this.inventoryLogService.getScannerData(param).subscribe(\r\n (response) => {\r\n this.mapResponse(response);\r\n this.alertService.clear();\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n }\r\n\r\n getScannerDataItemNo() {\r\n let param = this.inventory.itemNo;\r\n\r\n if (param !== undefined) {\r\n this.loadService.loadContent(true);\r\n this.inventoryLogService.getScannerDataItemNo(this.inventory).subscribe(\r\n (response) => {\r\n this.mapResponse(response);\r\n this.alertService.clear();\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n }\r\n\r\n getScannerDataWKO() {\r\n let param = this.wkoID.toString().replace('e', '').replace('E', '');\r\n\r\n ///alert(param);\r\n\r\n if (param !== undefined) {\r\n this.loadService.loadContent(true);\r\n this.inventoryLogService.getScannerDataWKO(param).subscribe(\r\n (response) => {\r\n this.mapResponsewKO(response);\r\n this.alertService.clear();\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n }\r\n\r\n addInventoryLog() {\r\n let inventoryLog = this.inventory;\r\n this.inventoryLogService.addInventoryLog(inventoryLog).subscribe(\r\n (response) => {\r\n this.alertService.clear();\r\n this.loadTable();\r\n this.inventory = new InventoryLog();\r\n this.wkoID = 0;\r\n this.alertService.success(response.messageText);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n newTotalToggle() {\r\n this.newTotalEditable = !this.newTotalEditable;\r\n }\r\n\r\n updateNewTotal() {\r\n if (this.inventory.qtyNew !== undefined && this.gramsPerUnit)\r\n this.inventory.gramWgtNew = this.inventory.qtyNew * this.gramsPerUnit;\r\n }\r\n\r\n mapResponse(response: any) {\r\n this.inventory.barcodeId = response.barcodeId;\r\n this.inventory.itemType = response.inventoryType;\r\n this.inventory.itemNo = response.itemNo;\r\n this.inventory.karat = response.karat;\r\n this.uom = response.iuom;\r\n this.gramsPerUnit = response.gramsPerUnit;\r\n this.inventory.qtyOld = response.oldWtg;\r\n this.inventory.gramWgtOld = response.oldWtgTotal;\r\n this.wkoID = response.idwko;\r\n if (this.inventory.qtyNew !== undefined)\r\n this.inventory.gramWgtNew = this.inventory.qtyNew * this.gramsPerUnit;\r\n else {\r\n this.inventory.qtyNew = undefined;\r\n this.inventory.gramWgtNew = undefined;\r\n }\r\n\r\n this.inventory.webUser =\r\n this.tokenStorageService.currentUser?.userName ?? '';\r\n }\r\n\r\n mapResponsewKO(response: any) {\r\n this.inventory.barcodeId = response.idwko;\r\n this.inventory.itemType = response.inventoryType;\r\n this.inventory.itemNo = response.itemNo;\r\n this.inventory.karat = response.karat;\r\n this.uom = response.iuom;\r\n this.gramsPerUnit = response.gramsPerUnit;\r\n this.inventory.qtyOld = response.oldWtg;\r\n this.inventory.gramWgtOld = response.oldWtgTotal;\r\n this.wkoID = response.idwko;\r\n if (this.inventory.qtyNew !== undefined)\r\n this.inventory.gramWgtNew = this.inventory.qtyNew * this.gramsPerUnit;\r\n else {\r\n this.inventory.qtyNew = undefined;\r\n this.inventory.gramWgtNew = undefined;\r\n }\r\n\r\n this.inventory.webUser =\r\n this.tokenStorageService.currentUser?.userName ?? '';\r\n }\r\n\r\n setInventoryLog(selected: InventoryLog) {\r\n let selectedInventory = new InventoryLog();\r\n\r\n // NOTE : Cannot assign object to object as it is binded on the table\r\n selectedInventory.barcodeId = selected.barcodeId;\r\n selectedInventory.itemType = selected.itemType;\r\n selectedInventory.itemNo = selected.itemNo;\r\n selectedInventory.karat = selected.karat;\r\n selectedInventory.entryDate = selected.entryDate;\r\n selectedInventory.qtyOld = selected.qtyOld;\r\n selectedInventory.qtyNew = selected.qtyNew;\r\n selectedInventory.gramWgtOld = selected.gramWgtOld;\r\n selectedInventory.gramWgtNew = selected.gramWgtNew;\r\n\r\n selectedInventory.id = 0;\r\n selectedInventory.webUser =\r\n this.tokenStorageService.currentUser?.userName ?? '';\r\n\r\n this.inventory = selectedInventory;\r\n }\r\n}\r\n","
    \r\n

    INVENTORY SCANNING

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ENABLE 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 No data found!\r\n \r\n \r\n
    IDBARCODE IDITEM TYPEITEM NOKARATENTRY DATEQTY OLDQTY NEWGRAM WGT OLDGRAM WGT NEWWEB USER
    \r\n {{ log.id }}\r\n {{ log.barcodeId }}{{ log.itemType }}{{ log.itemNo }}{{ log.karat }}{{ log.entryDate }}{{ log.qtyOld }}{{ log.qtyNew }}{{ log.gramWgtOld }}{{ log.gramWgtNew }}{{ log.webUser }}
    \r\n
    \r\n
    \r\n","import { Location } from '@angular/common';\r\nimport { Component, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { WorkOrderService } from 'src/app/services/work-order.service';\r\nimport { OrphanWorkOrderDialogComponent } from '../work-order-view/orphan-work-order-dialog/orphan-work-order-dialog.component';\r\nimport { WorkOrdersReleaseComponent } from '../work-order-view/work-orders-release.component';\r\n\r\n@Component({\r\n selector: 'invoicing-shipping',\r\n templateUrl: './invoicing-shipping.component.html',\r\n styleUrls: ['./invoicing-shipping.component.scss'],\r\n})\r\nexport class InvoicingShippingComponent {\r\n @ViewChild('confirmationWorkOrder')\r\n public readonly confirmationWorkOrder!: SwalComponent;\r\n selectedTabIndex = 0;\r\n confirmation: {\r\n icon: string;\r\n title: string;\r\n description: string;\r\n timer?: number;\r\n } = {\r\n icon: 'question',\r\n title: '',\r\n description: '',\r\n };\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public workOrderService: WorkOrderService,\r\n private userPermissionService: UserPermissionService,\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n ) {\r\n this.userPermissionService.checkPagePermission(\r\n PAGE_NAME.invoicingAndShipping,\r\n );\r\n this.route.params.subscribe((params: { slug: string }) => {\r\n this.selectedTabIndex = params.slug === 'shipping' ? 1 : 0;\r\n });\r\n }\r\n\r\n onTabChange(event) {\r\n const slug = event === 0 ? 'invoicing' : 'shipping';\r\n this.location.replaceState(`invoicing-and-shipping/${slug}`);\r\n }\r\n\r\n onScanWorkOrder(action: string) {\r\n const dialogRef = this.dialog.open(WorkOrdersReleaseComponent, {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n data: {\r\n workOrders: [],\r\n action,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (action === 'shipped') {\r\n this.workOrderService.setWorkOrderShipments(result).subscribe(\r\n () => {\r\n this.confirmation = {\r\n title: 'Work Order Shipped',\r\n description: `Successfully shipped work order number '${result}'`,\r\n icon: 'success',\r\n timer: 1000,\r\n };\r\n setTimeout(() => {\r\n this.confirmationWorkOrder.fire();\r\n }, 100);\r\n },\r\n () => {\r\n this.confirmation = {\r\n title: 'Shipping Failed',\r\n description: `Unable to ship work order number '${result}'. Please contact the administration`,\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.confirmationWorkOrder.fire();\r\n }, 100);\r\n },\r\n );\r\n }\r\n if (action === 'invoiced') {\r\n this.workOrderService.setWorkOrderInvoices(result).subscribe(\r\n () => {\r\n this.confirmation = {\r\n title: 'Work Order Invoiced',\r\n description: `Successfully invoiced work order number '${result}'`,\r\n icon: 'success',\r\n timer: 1000,\r\n };\r\n setTimeout(() => {\r\n this.confirmationWorkOrder.fire();\r\n }, 100);\r\n },\r\n () => {\r\n this.confirmation = {\r\n title: 'Invoicing Failed',\r\n description: `Unable to invoice work order number '${result}'. Please contact the administration`,\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.confirmationWorkOrder.fire();\r\n }, 100);\r\n },\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n onOpenOrphanWorkOrderDialog() {\r\n this.dialog.open(OrphanWorkOrderDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '800px',\r\n width: '100%',\r\n autoFocus: false,\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n Orphaned Work Orders\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { alphabet } from 'src/app/utilities/alphabet-characters';\r\nimport { InvoicingLookupItem } from '../../models/invoicing-lookup-item';\r\n\r\n@Component({\r\n selector: 'invoicing-detail-dialog',\r\n templateUrl: './invoicing-detail-dialog.component.html',\r\n styleUrls: ['./invoicing-detail-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class InvoicingDetailDialogComponent implements OnInit {\r\n displayedColumns: string[] = [\r\n 'selection',\r\n 'index',\r\n 'productPicPath',\r\n 'productName',\r\n 'material',\r\n 'size',\r\n 'weight',\r\n 'wghtgrmsSecondary',\r\n 'qty',\r\n 'cipo',\r\n ];\r\n invoiceOrders: InvoicingLookupItem[] = [];\r\n isSelectedAll = true;\r\n isSomeSelected = false;\r\n hasSecondaryWeight = true;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { items: InvoicingLookupItem[] },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.hasSecondaryWeight = this.props.items.some(\r\n (i) => (i.ordersDetailsChainId ?? 0) > 0,\r\n );\r\n if (!this.hasSecondaryWeight) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'wghtgrmsSecondary',\r\n );\r\n }\r\n this.invoiceOrders = this.props.items.map((item, index) => ({\r\n ...item,\r\n maxQty: item.qty,\r\n index: alphabet[index] ?? `A${alphabet[index - 25]}`,\r\n }));\r\n this.selectAll(true);\r\n }\r\n\r\n onSelect() {\r\n const selected = this.invoiceOrders.filter((i) => i.selected);\r\n this.isSelectedAll = selected.length === this.invoiceOrders.length;\r\n this.isSomeSelected = selected.length > 0 && !this.isSelectedAll;\r\n }\r\n\r\n selectAll(checked) {\r\n this.invoiceOrders = this.invoiceOrders.map((i) => ({\r\n ...i,\r\n selected: i.isClosed ? checked : false,\r\n price: 0,\r\n }));\r\n this.onSelect();\r\n }\r\n\r\n onAddItem() {\r\n this.dialogRef.close(this.invoiceOrders.filter((i) => i.selected));\r\n }\r\n}\r\n","

    Select Work Order 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 Pic\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Index\r\n {{ element.index }}\r\n \r\n \r\n Product Name\r\n {{ element.productName }}\r\n \r\n \r\n Metal\r\n \r\n {{ element.material }}\r\n / {{ element.materialCode2 }}\r\n \r\n \r\n \r\n Size\r\n {{ element.size }}\r\n \r\n \r\n \r\n {{ hasSecondaryWeight ? 'Primary Weight' : 'Weight' }}\r\n \r\n \r\n {{ element.weight }}g\r\n \r\n \r\n \r\n Secondary Weight\r\n \r\n {{ element.wghtgrmsSecondary\r\n }}g\r\n \r\n \r\n \r\n Qty\r\n \r\n
    \r\n \r\n {{ element.maxQty }}\r\n
    \r\n \r\n
    \r\n \r\n CIPO\r\n {{ element.cipo }}\r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Add\r\n \r\n \r\n\r\n","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatCalendarCellClassFunction } from '@angular/material/datepicker';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { Parser } from 'expr-eval';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { forkJoin } from 'rxjs';\r\nimport { CustomerAddressDialogComponent } from 'src/app/components/customer-page/customer-address-dialog/customer-address-dialog.component';\r\nimport { BASE_METAL } from 'src/app/components/metal-overhead-equations/metal-overhead-equations.component';\r\nimport { CustomerPriceDefault } from 'src/app/components/price-defaults/customer-price-defaults/customer-price-default';\r\nimport { TOTAL_PRICING_FORMULA } from 'src/app/components/product-pricing/product-pricing.component';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport {\r\n ProductStone,\r\n RivaGems,\r\n} from 'src/app/components/riva-gems/riva-gems.model';\r\nimport { WorkOrderType } from 'src/app/components/work-order-view/work-order-type';\r\nimport { INVOICING_SHIPPING_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/invoicing-shipping-permission';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { CustomerAddress, Customers } from 'src/app/models/customer';\r\nimport {\r\n MaterialCode,\r\n MaterialCodeCalculation,\r\n} from 'src/app/models/material-code';\r\nimport { MetalMarket, MetalMarketPremiums } from 'src/app/models/metal-market';\r\nimport { ProductDetailV2 } from 'src/app/models/product';\r\nimport {\r\n CustomerService,\r\n formatAddress,\r\n} from 'src/app/services/customer.service';\r\nimport { InvoiceService } from 'src/app/services/invoice.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { PricingEquationService } from 'src/app/services/pricing-equation.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { WorkOrdersReleaseComponent } from '../../../work-order-view/work-orders-release.component';\r\nimport { ShipmentDetail } from '../../shipping/models/shipment';\r\nimport { InvoicingPrintDialogComponent } from '../invoicing-print-dialog/invoicing-print-dialog.component';\r\nimport { Invoice, InvoiceDetail, InvoiceItemType } from '../models/invoice';\r\nimport { InvoicingLookupItem } from '../models/invoicing-lookup-item';\r\nimport { MetalMarketService } from './../../../../services/metal-market.service';\r\nimport { InvoicingDetailDialogComponent } from './invoicing-detail-dialog/invoicing-detail-dialog.component';\r\nimport { InvoicingPriceDialogComponent } from './invoicing-price-dialog/invoicing-price-dialog.component';\r\nimport { RelatedShipmentDialogComponent } from './related-shipment-dialog/related-shipment-dialog.component';\r\n\r\nconst productColumns = [\r\n 'expander',\r\n 'productPicPath',\r\n 'key',\r\n 'productName',\r\n 'material',\r\n 'size',\r\n 'weight',\r\n 'rollingWeightAverage',\r\n 'productPricingStandardWeight',\r\n 'wghtgrmsSecondary',\r\n 'enamel',\r\n 'chainRawLength',\r\n 'stoneType',\r\n 'stoneColor',\r\n 'stoneSize',\r\n 'chain',\r\n 'qty',\r\n 'poNumber',\r\n 'cipo',\r\n 'pricePerInch',\r\n 'price',\r\n 'priceExt',\r\n 'action',\r\n];\r\n@Component({\r\n selector: 'invoicing-detail',\r\n templateUrl: './invoicing-detail.component.html',\r\n styleUrls: ['./invoicing-detail.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'),\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class InvoicingDetailComponent implements OnInit, AfterViewInit {\r\n @ViewChild('confirmationDialog')\r\n public readonly confirmationDialog!: SwalComponent;\r\n @ViewChild(MatSort) sort: MatSort;\r\n displayedColumns: string[] = [...productColumns];\r\n confirmation: {\r\n icon: string;\r\n title: string;\r\n description: string;\r\n timer?: number;\r\n } = {\r\n icon: 'question',\r\n title: '',\r\n description: '',\r\n };\r\n invoiceId = 0;\r\n invoiceDetail: Invoice = {\r\n invoicedDate: '',\r\n customer: {},\r\n metalMarket: {},\r\n invoicesDetails: [],\r\n shippingCost: 0,\r\n } as Invoice;\r\n customers: Customers[];\r\n filteredCustomers: Customers[];\r\n metalMarkets: MetalMarket[];\r\n selectedMetalMarket: MetalMarket = {} as MetalMarket;\r\n customerFilterCtrl = new FormControl();\r\n invoiceDetails = new MatTableDataSource([]);\r\n expandedElement: InvoiceDetail | null;\r\n expandedInvoice: Record = {};\r\n billingAddresses: CustomerAddress[] = [];\r\n invoiceUrl = '';\r\n featureKey = INVOICING_SHIPPING_FEATURE_KEY;\r\n workOrderType: WorkOrderType;\r\n hasStoneType = false;\r\n hasStoneColor = false;\r\n hasStoneSize = false;\r\n hasStoneChain = false;\r\n hasLength = false;\r\n hasEnamel = false;\r\n hasPricePerInch = false;\r\n byPassWorkOrders = false;\r\n hasSecondaryWeight = false;\r\n hasStandardWeight = false;\r\n generatedShipmentDetails: Array> = [];\r\n isLoading = false;\r\n isGeneratingPrice = false;\r\n editMode = true;\r\n dontAllowMixedInvoices = false;\r\n materialCodes: MaterialCode[];\r\n metalMarketPremiums: MetalMarketPremiums = {} as MetalMarketPremiums;\r\n metalMarket: MetalMarket = {} as MetalMarket;\r\n materialCalculations: MaterialCodeCalculation[] = [];\r\n customerPriceDefaults: CustomerPriceDefault[];\r\n customerPriceDefault: CustomerPriceDefault;\r\n productDetails: ProductDetailV2[] = [];\r\n equationParser = new Parser();\r\n\r\n dateClass: MatCalendarCellClassFunction = (cellDate, view) => {\r\n if (view === 'month') {\r\n const currentDate = DateTime.fromJSDate(cellDate).toFormat('yyyy-MM-dd');\r\n const hasMetalMarketValue = this.metalMarkets?.some(\r\n (m) => m.marketDate === currentDate,\r\n );\r\n return hasMetalMarketValue ? 'has-metal-market-value' : '';\r\n }\r\n return '';\r\n };\r\n\r\n metalFilter = (cellDate: Date | null): boolean => {\r\n const currentDate = DateTime.fromJSDate(cellDate).toFormat('yyyy-MM-dd');\r\n return this.metalMarkets?.some((m) => m.marketDate === currentDate);\r\n };\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private dialog: MatDialog,\r\n private invoiceService: InvoiceService,\r\n private customerService: CustomerService,\r\n private metalMarketService: MetalMarketService,\r\n private userPermissionService: UserPermissionService,\r\n private productBomService: ProductBomService,\r\n private materialCodeService: MaterialCodeService,\r\n private pricingEquationService: PricingEquationService,\r\n private productService: ProductService,\r\n private toastrService: ToastrService,\r\n private _confirmationService: ConfirmationService,\r\n ) {\r\n this.userPermissionService.checkPagePermission(\r\n PAGE_NAME.invoicingAndShipping,\r\n );\r\n this.route.params.subscribe((params: Params) => {\r\n this.invoiceId = +params.invoiceId ?? 0;\r\n this.invoiceDetail.invoicesID = this.invoiceId;\r\n this.editMode = this.invoiceId <= 0;\r\n this.getInvoices();\r\n if (this.invoiceId > 0) {\r\n this.invoiceService\r\n .getShipmentByInvoiceId(this.invoiceId)\r\n .subscribe((data) => {\r\n this.generatedShipmentDetails = data;\r\n });\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.metalMarketService.getMetalMarketDates().subscribe((data = []) => {\r\n this.metalMarkets = data;\r\n if (!this.invoiceDetail.metalMarket?.marketDate) {\r\n const metalMarket = data[data.length - 1];\r\n this.invoiceDetail.metalMarket = {\r\n marketDate: new Date(metalMarket?.marketDate + 'T00:00:00'),\r\n metalMarketID: metalMarket?.metalMarketID,\r\n };\r\n if (this.invoiceId <= 0) {\r\n this.onGetSelectedMetalMarket(metalMarket?.metalMarketID);\r\n }\r\n }\r\n });\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n this.customerService.getList().subscribe((customers) => {\r\n this.customers = orderBy(\r\n customers.map((customer) => ({\r\n ...customer,\r\n addresses: customer.addresses.map((address) => ({\r\n ...address,\r\n fullAddress: formatAddress(address),\r\n })),\r\n })),\r\n 'companyName',\r\n );\r\n this.customerFilterCtrl.valueChanges.subscribe(() => {\r\n this.filterCustomers();\r\n });\r\n });\r\n }\r\n\r\n onSelectCustomer() {\r\n const customer = this.customers.find(\r\n (c) => c.custIdno === this.invoiceDetail.custIDNo,\r\n );\r\n if (customer == null) return;\r\n this.invoiceDetail.custIDNo = customer.custIdno;\r\n this.invoiceDetail.customer = {\r\n id: customer.custIdno,\r\n companyName: customer.companyName,\r\n lockInvoiceGoldPrice: customer.lockInvoiceGoldPrice,\r\n };\r\n this.billingAddresses = (customer.addresses ?? []).filter(\r\n (a) => a.addressType === 1,\r\n );\r\n const [firstAddress] = this.billingAddresses;\r\n\r\n if (this.invoiceDetail.invoicesID) return;\r\n this.invoiceDetail.billingAddressId =\r\n customer.defaultBillAddress ?? firstAddress?.customersAddressesId ?? 0;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.invoiceDetails.sort = this.sort;\r\n }\r\n\r\n redirectToShipment() {\r\n sessionStorage.setItem(\r\n 'invoicing-generated-shipment',\r\n JSON.stringify(this.generatedShipmentDetails),\r\n );\r\n sessionStorage.setItem(\r\n 'invoicing-generated-customer',\r\n JSON.stringify({\r\n customerId: this.invoiceDetail.custIDNo,\r\n addressId: this.invoiceDetail.billingAddressId,\r\n }),\r\n );\r\n this.router.navigate(['invoicing-and-shipping/shipping/0']);\r\n }\r\n\r\n getInvoices() {\r\n this.displayedColumns = [...productColumns];\r\n if (this.invoiceId === 0) {\r\n const generatedInvoice = sessionStorage.getItem(\r\n 'shipping-generated-invoice',\r\n );\r\n const customerDetail = sessionStorage.getItem(\r\n 'shipping-generated-customer',\r\n );\r\n if (generatedInvoice) {\r\n const data = JSON.parse(generatedInvoice);\r\n this.invoiceDetails.data = data.map((d) => ({\r\n ...d,\r\n maxQty: d.qty,\r\n ...this.calculatePercentageDifference(\r\n d.weight,\r\n d.rollingWeightAverage,\r\n ),\r\n }));\r\n sessionStorage.removeItem('shipping-generated-invoice');\r\n }\r\n if (customerDetail) {\r\n const detail = JSON.parse(customerDetail);\r\n this.getCustomer(detail.customerId, detail.addressId);\r\n sessionStorage.removeItem('shipping-generated-customer');\r\n }\r\n const byPassWorkOrderOrdersId = sessionStorage.getItem(\r\n 'orderDetailByPassWorkOrderOrdersId',\r\n );\r\n this.byPassWorkOrders =\r\n sessionStorage.getItem('bypassWorkOrder') === 'yes';\r\n if (byPassWorkOrderOrdersId) {\r\n this.getOrders(Number.parseInt(byPassWorkOrderOrdersId));\r\n }\r\n return;\r\n }\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'expander',\r\n );\r\n this.isLoading = this.invoiceId > 0;\r\n this.invoiceService.getInvoiceById(this.invoiceId).subscribe((invoice) => {\r\n this.invoiceDetail =\r\n invoice ??\r\n ({ invoicesID: 0, customer: {}, invoicesDetails: [] } as Invoice);\r\n this.invoiceDetail.invoicePaid = this.invoiceDetail.invoicePaid\r\n ? DateTime.fromJSDate(\r\n new Date(this.invoiceDetail.invoicePaid),\r\n ).toFormat('MM/dd/yyyy')\r\n : '';\r\n const charges =\r\n invoice.invoicesDetailsCharges?.map((charges, index) => ({\r\n invoicesDetailsChargesID: charges.invoicesDetailsChargesID,\r\n key: this.invoiceDetail.invoicesDetails.length + index,\r\n invoicesDetailsID: charges.invoicesDetailsID,\r\n orderDetailsAltID: 0,\r\n invoicesID: charges.invoicesID,\r\n qty: charges.qty,\r\n ordersDetailsID: 0,\r\n productName: charges.chargeDescription,\r\n material: charges.materialDescription,\r\n materialsCodeId: charges.materialCodesID,\r\n weight: charges.unitWeightGrams,\r\n size: '',\r\n cipo: '',\r\n productPicPath: '',\r\n price: charges.price,\r\n priceExtension: 0,\r\n enamelColor: '',\r\n enamelName: '',\r\n uom: '',\r\n productWeights: [],\r\n stone: {} as RivaGems,\r\n overrideStoneSize: '',\r\n overrideStoneSizeID: 0,\r\n invoicesDetailsCharges: [],\r\n isCharges: true,\r\n })) ?? [];\r\n this.invoiceDetails.data = [\r\n ...this.invoiceDetail.invoicesDetails,\r\n ...charges,\r\n ].map((i) => ({\r\n ...i,\r\n maxQty: i.qty,\r\n ...this.calculatePercentageDifference(i.weight, i.rollingWeightAverage),\r\n }));\r\n this.hasStoneType = this.invoiceDetail.invoicesDetails.some(\r\n (i) => i.stoneType,\r\n );\r\n this.hasStoneColor = this.invoiceDetail.invoicesDetails.some(\r\n (i) => i.stoneColor,\r\n );\r\n this.hasStoneSize = this.invoiceDetail.invoicesDetails.some(\r\n (i) => i.stoneSize || i.overrideStoneSize,\r\n );\r\n this.hasStoneChain = this.invoiceDetail.invoicesDetails.some(\r\n (i) => i.chain,\r\n );\r\n this.hasLength = this.invoiceDetail.invoicesDetails.some(\r\n (i) => i.chainRawLength,\r\n );\r\n this.hasEnamel = this.invoiceDetail.invoicesDetails.some(\r\n (i) => !!i.enamelName,\r\n );\r\n\r\n this.hasPricePerInch = this.invoiceDetail.invoicesDetails.some(\r\n (i) => i.isUnfinishedChain,\r\n );\r\n this.hasSecondaryWeight = this.invoiceDetails.data.some(\r\n (i) => (i.chain ?? '') !== '',\r\n );\r\n\r\n this.hasStandardWeight = this.invoiceDetails.data.some(\r\n (i) => (i.productPricingStandardWeight ?? 0) > 0,\r\n );\r\n\r\n if (!this.hasStandardWeight) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'productPricingStandardWeight',\r\n );\r\n }\r\n\r\n if (!this.hasSecondaryWeight) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'wghtgrmsSecondary',\r\n );\r\n }\r\n\r\n if (!this.hasPricePerInch) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'pricePerInch',\r\n );\r\n }\r\n\r\n if (!this.hasEnamel) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'enamel',\r\n );\r\n }\r\n\r\n if (!this.hasLength) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'chainRawLength',\r\n );\r\n }\r\n\r\n if (!this.hasStoneType) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'stoneType',\r\n );\r\n }\r\n if (!this.hasStoneColor) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'stoneColor',\r\n );\r\n }\r\n if (!this.hasStoneSize) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'stoneSize',\r\n );\r\n }\r\n if (!this.hasStoneChain) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'chain',\r\n );\r\n }\r\n this.selectedMetalMarket = {\r\n ...(invoice.metalMarket ?? {}),\r\n marketDate:\r\n invoice.metalMarket?.metalMarketID > 0\r\n ? DateTime.fromJSDate(\r\n new Date(invoice.metalMarket?.marketDate),\r\n ).toFormat('MM/dd/yyyy')\r\n : '',\r\n enteredDate:\r\n invoice.metalMarket?.metalMarketID > 0\r\n ? DateTime.fromJSDate(\r\n new Date(invoice.metalMarket?.enteredDate),\r\n ).toFormat('yyyy-MM-dd')\r\n : '',\r\n };\r\n this.getCustomer(this.invoiceDetail.custIDNo);\r\n this.invoiceDetail.invoicesDetails.forEach((i) => {\r\n this.expandedInvoice[i.key] =\r\n (i.invoicesDetailsCharges?.length ?? 0) > 0;\r\n });\r\n this.isLoading = false;\r\n });\r\n this.invoiceService.generatePdf(this.invoiceId).subscribe((data) => {\r\n this.invoiceUrl = data;\r\n });\r\n }\r\n\r\n getOrders(ordersId) {\r\n sessionStorage.removeItem('orderDetailByPassWorkOrderOrdersId');\r\n sessionStorage.removeItem('bypassWorkOrder');\r\n this.invoiceService.getOrderItems(ordersId).subscribe((items) => {\r\n const mappedItems = items.reduce((accum, item) => {\r\n if (item.qty === 0) return accum;\r\n const invoicedItem = this.invoiceDetails.data.find(\r\n (i) => i.ordersDetailsID === item.ordersDetailsID,\r\n );\r\n item.price = 0;\r\n item.weight =\r\n (item.avgWeightGrams ?? 0) > 0\r\n ? item.avgWeightGrams ?? 0\r\n : item.rollingWeightAverage;\r\n item.hasWeight = (item.avgWeightGrams ?? 0) > 0;\r\n item.isClosed = item.totalClosedQty > 0;\r\n item.maxQty = item.qty;\r\n if (invoicedItem == null) return [...accum, item];\r\n item.qty = item.qty - invoicedItem.qty;\r\n item.maxQty = item.qty;\r\n if (item.qty > 0) return [...accum, item];\r\n return accum;\r\n }, []);\r\n const chains = mappedItems.filter((item) => item.itemType > 0);\r\n const products = mappedItems.filter((item) => item.itemType === 0);\r\n\r\n const [item] = mappedItems;\r\n this.getCustomer(item.customerId, null, item.receivedDate);\r\n\r\n if (chains.length > 0) {\r\n this.processOverrideItems(chains, [], true);\r\n if (products.length === 0) {\r\n this.checkColumns();\r\n }\r\n }\r\n if (products.length > 0) {\r\n this.getStoneDetails(products).subscribe((stones: ProductStone[]) => {\r\n this.processOverrideItems(products, stones);\r\n this.checkColumns();\r\n });\r\n }\r\n });\r\n }\r\n\r\n filterCustomers() {\r\n this.filteredCustomers = orderBy(\r\n this.customers.filter((customer) =>\r\n customer.customerId\r\n ?.toLocaleLowerCase()\r\n .includes(this.customerFilterCtrl.value?.trim()),\r\n ),\r\n 'companyName',\r\n );\r\n }\r\n\r\n goToInvoicingAndShipping() {\r\n this.router.navigate(['invoicing-and-shipping/invoicing']);\r\n }\r\n\r\n onScanWorkOrder() {\r\n const dialogRef = this.dialog.open(WorkOrdersReleaseComponent, {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n data: {\r\n workOrders: [],\r\n action: 'invoiced',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(({ code, workOrderType }) => {\r\n this.workOrderType = workOrderType;\r\n if (code) {\r\n this.invoiceService\r\n .getLookUpItems(code, workOrderType)\r\n .subscribe((items) => {\r\n const customerId =\r\n this.invoiceDetail.custIDNo ??\r\n this.invoiceDetails.data?.[0]?.customerId ??\r\n 0;\r\n const hasOtherCustomer =\r\n customerId && items.some((i) => i.customerId !== customerId);\r\n if (hasOtherCustomer) {\r\n this.confirmation = {\r\n title: 'Invalid Customer',\r\n description: `Work order number ${code} is coming from a different customer.`,\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.confirmationDialog.fire();\r\n }, 100);\r\n return;\r\n }\r\n const [currentItem] = this.invoiceDetails.data ?? [];\r\n const [lookupItem] = items;\r\n const hasDifferentPO =\r\n currentItem != null &&\r\n this.dontAllowMixedInvoices &&\r\n (currentItem.poInternal !== lookupItem?.poInternal ||\r\n currentItem.poExternal !== lookupItem?.poExternal);\r\n if (hasDifferentPO) {\r\n this.confirmation = {\r\n title: 'Has Invalid PO',\r\n description: 'Different PO, Customer Requests Unmixed Invoices',\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.confirmationDialog.fire();\r\n }, 100);\r\n return;\r\n }\r\n const mappedItems = items.reduce((accum, item) => {\r\n const invoicedItem = this.invoiceDetails.data.find(\r\n (i) => i.ordersDetailsID === item.ordersDetailsID,\r\n );\r\n item.weight = item.wghtgrms ?? 0;\r\n item.hasWeight = (item.wghtgrms ?? 0) > 0;\r\n item.isClosed = item.totalClosedQty > 0;\r\n if (invoicedItem == null) return [...accum, item];\r\n item.qty = item.qty - invoicedItem.qty;\r\n if (item.qty > 0) return [...accum, item];\r\n return accum;\r\n }, []);\r\n\r\n if (mappedItems.length === 0) {\r\n this.confirmation = {\r\n title: 'Work Order Items',\r\n description: `Work order number ${code} is already invoiced.`,\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.confirmationDialog.fire();\r\n }, 100);\r\n return;\r\n }\r\n this.openWorkOrders(mappedItems);\r\n });\r\n }\r\n });\r\n }\r\n\r\n getStoneDetails(selectedItems) {\r\n const request = selectedItems.map((item) =>\r\n this.productBomService.getStoneByOrderDetailsId(item.ordersDetailsID),\r\n );\r\n return forkJoin(request);\r\n }\r\n\r\n openWorkOrders(items: InvoicingLookupItem[]) {\r\n const dialogRef = this.dialog.open(InvoicingDetailDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '900px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n items,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((selectedItems) => {\r\n if (!selectedItems) return;\r\n const [item] = selectedItems;\r\n this.getCustomer(item.customerId, null, item.receivedDate);\r\n\r\n if (this.workOrderType !== WorkOrderType.Product) {\r\n this.processDetails(selectedItems, []);\r\n } else {\r\n this.getStoneDetails(selectedItems).subscribe(\r\n (stones: ProductStone[]) => {\r\n this.processDetails(selectedItems, stones);\r\n },\r\n );\r\n }\r\n });\r\n }\r\n\r\n processDetails(selectedItems, stones = []) {\r\n this.invoiceDetails.data = this.invoiceDetails.data.map(\r\n (invoice, index) => {\r\n const itemQty =\r\n selectedItems.find(\r\n (s) => s.ordersDetailsID === invoice.ordersDetailsID,\r\n )?.qty ?? 0;\r\n return {\r\n ...invoice,\r\n qty: itemQty + invoice.qty,\r\n pricePerInch: 0,\r\n ...this.calculatePercentageDifference(\r\n invoice.weight,\r\n invoice.rollingWeightAverage,\r\n ),\r\n };\r\n },\r\n );\r\n this.invoiceDetails.data = selectedItems.reduce(\r\n (items, s, index) => {\r\n const isExist = items.some(\r\n (i) => i.ordersDetailsID === s.ordersDetailsID,\r\n );\r\n const overrideSize = stones[index]?.overrideStoneSize;\r\n const stone = stones[index]?.stone ?? ({} as RivaGems);\r\n if (isExist) return items;\r\n const hasPoExternalAndInternal = s.poExternal && s.poInternal;\r\n const isEqual =\r\n hasPoExternalAndInternal && s.poExternal === s.poInternal;\r\n return [\r\n ...items,\r\n {\r\n ...s,\r\n orderDetailsAltID:\r\n this.workOrderType !== WorkOrderType.Product\r\n ? s.ordersDetailsID\r\n : 0,\r\n poNumber:\r\n hasPoExternalAndInternal && !isEqual\r\n ? `${s.poExternal}/${s.poInternal}`\r\n : s.poExternal || s.poInternal,\r\n stoneType: stone.stoneType?.name,\r\n stoneColor: stone.stoneColor?.colorName,\r\n stoneSize: overrideSize || stone.stoneSize?.displayText,\r\n },\r\n ];\r\n },\r\n [...this.invoiceDetails.data],\r\n );\r\n this.invoiceDetails.data = this.invoiceDetails.data.map(\r\n (detail, index) => ({\r\n ...detail,\r\n key: index,\r\n ...this.calculatePercentageDifference(\r\n detail.weight,\r\n detail.rollingWeightAverage,\r\n ),\r\n }),\r\n );\r\n this.hasStoneType = this.invoiceDetails.data.some((i) => i.stoneType);\r\n this.hasStoneColor = this.invoiceDetails.data.some((i) => i.stoneColor);\r\n this.hasStoneSize = this.invoiceDetails.data.some(\r\n (i) => i.stoneSize || i.overrideStoneSize,\r\n );\r\n this.hasStoneChain = this.invoiceDetails.data.some((i) => i.chain);\r\n\r\n this.hasLength = this.invoiceDetails.data.some((i) => i.chainRawLength);\r\n\r\n this.hasEnamel = this.invoiceDetails.data.some((i) => !!i.enamelName);\r\n\r\n this.hasPricePerInch = this.invoiceDetails.data.some(\r\n (i) => i.isUnfinishedChain,\r\n );\r\n\r\n this.displayedColumns = [...productColumns];\r\n\r\n this.hasStandardWeight = this.invoiceDetails.data.some(\r\n (i) => (i.productPricingStandardWeight ?? 0) > 0,\r\n );\r\n\r\n if (!this.hasStandardWeight) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'productPricingStandardWeight',\r\n );\r\n }\r\n\r\n this.hasSecondaryWeight = this.invoiceDetails.data.some(\r\n (i) => (i.chain ?? '') !== '',\r\n );\r\n\r\n if (!this.hasSecondaryWeight) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'wghtgrmsSecondary',\r\n );\r\n }\r\n\r\n if (!this.hasPricePerInch) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'pricePerInch',\r\n );\r\n }\r\n\r\n if (!this.hasEnamel) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'enamel',\r\n );\r\n }\r\n\r\n if (!this.hasLength) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'chainRawLength',\r\n );\r\n }\r\n\r\n if (!this.hasStoneType) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'stoneType',\r\n );\r\n }\r\n if (!this.hasStoneColor) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'stoneColor',\r\n );\r\n }\r\n if (!this.hasStoneSize) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'stoneSize',\r\n );\r\n }\r\n if (!this.hasStoneChain) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'chain',\r\n );\r\n }\r\n }\r\n\r\n processOverrideItems(selectedItems, stones = [], isChain = false) {\r\n this.invoiceDetails.data = this.invoiceDetails.data.map(\r\n (invoice, index) => {\r\n const itemQty =\r\n selectedItems.find(\r\n (s) => s.ordersDetailsID === invoice.ordersDetailsID,\r\n )?.qty ?? 0;\r\n return {\r\n ...invoice,\r\n qty: itemQty + invoice.qty,\r\n };\r\n },\r\n );\r\n this.invoiceDetails.data = selectedItems.reduce(\r\n (items, s, index) => {\r\n const isExist = items.some(\r\n (i) => i.ordersDetailsID === s.ordersDetailsID,\r\n );\r\n const overrideSize = stones[index]?.overrideStoneSize;\r\n const stone = stones[index]?.stone ?? ({} as RivaGems);\r\n if (isExist) return items;\r\n const hasPoExternalAndInternal = s.poExternal && s.poInternal;\r\n const isEqual =\r\n hasPoExternalAndInternal && s.poExternal === s.poInternal;\r\n return [\r\n ...items,\r\n {\r\n ...s,\r\n orderDetailsAltID: isChain ? s.ordersDetailsID : 0,\r\n poNumber:\r\n hasPoExternalAndInternal && !isEqual\r\n ? `${s.poExternal}/${s.poInternal}`\r\n : s.poExternal || s.poInternal,\r\n stoneType: stone.stoneType?.name,\r\n stoneColor: stone.stoneColor?.colorName,\r\n stoneSize: overrideSize || stone.stoneSize?.displayText,\r\n },\r\n ];\r\n },\r\n [...this.invoiceDetails.data],\r\n );\r\n this.invoiceDetails.data = this.invoiceDetails.data.map(\r\n (detail, index) => ({\r\n ...detail,\r\n key: index,\r\n ...this.calculatePercentageDifference(\r\n detail.weight,\r\n detail.rollingWeightAverage,\r\n ),\r\n }),\r\n );\r\n }\r\n\r\n checkColumns() {\r\n this.hasStoneType = this.invoiceDetails.data.some((i) => i.stoneType);\r\n this.hasStoneColor = this.invoiceDetails.data.some((i) => i.stoneColor);\r\n this.hasStoneSize = this.invoiceDetails.data.some(\r\n (i) => i.stoneSize || i.overrideStoneSize,\r\n );\r\n this.hasStoneChain = this.invoiceDetails.data.some((i) => i.chain);\r\n this.hasLength = this.invoiceDetails.data.some((i) => i.chainRawLength);\r\n this.hasEnamel = this.invoiceDetails.data.some((i) => !!i.enamelName);\r\n\r\n this.hasPricePerInch = this.invoiceDetails.data.some(\r\n (i) => i.isUnfinishedChain,\r\n );\r\n this.hasStandardWeight = this.invoiceDetails.data.some(\r\n (i) => (i.productPricingStandardWeight ?? 0) > 0,\r\n );\r\n\r\n if (!this.hasStandardWeight) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'productPricingStandardWeight',\r\n );\r\n }\r\n this.hasSecondaryWeight = this.invoiceDetails.data.some(\r\n (i) => (i.chain ?? '') !== '',\r\n );\r\n\r\n this.displayedColumns = [...productColumns];\r\n\r\n if (!this.hasSecondaryWeight) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'wghtgrmsSecondary',\r\n );\r\n }\r\n\r\n if (!this.hasPricePerInch) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'pricePerInch',\r\n );\r\n }\r\n\r\n if (!this.hasEnamel) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'enamel',\r\n );\r\n }\r\n\r\n if (!this.hasLength) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'chainRawLength',\r\n );\r\n }\r\n\r\n if (!this.hasStoneType) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'stoneType',\r\n );\r\n }\r\n if (!this.hasStoneColor) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'stoneColor',\r\n );\r\n }\r\n if (!this.hasStoneSize) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'stoneSize',\r\n );\r\n }\r\n if (!this.hasStoneChain) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'chain',\r\n );\r\n }\r\n }\r\n\r\n getCustomer(\r\n customerId,\r\n defaultCustomersAddressesId = null,\r\n receivedDate = null,\r\n ) {\r\n this.customerService.getCustomer(customerId).subscribe((data) => {\r\n this.dontAllowMixedInvoices = data.dontAllowMixedInvoices;\r\n this.invoiceDetail.custIDNo = data.custIdno;\r\n this.invoiceDetail.customer = {\r\n id: data.custIdno,\r\n companyName: data.companyName,\r\n lockInvoiceGoldPrice: data.lockInvoiceGoldPrice,\r\n };\r\n if (data.lockInvoiceGoldPrice && receivedDate != null) {\r\n this.getMetalMarketByReceivedDate(receivedDate);\r\n }\r\n this.billingAddresses = (data.addresses ?? []).filter(\r\n (a) => a.addressType === 1,\r\n );\r\n const [firstAddress] = this.billingAddresses;\r\n\r\n if (this.invoiceDetail.invoicesID) return;\r\n this.invoiceDetail.billingAddressId =\r\n defaultCustomersAddressesId ??\r\n data.defaultBillAddress ??\r\n firstAddress?.customersAddressesId ??\r\n 0;\r\n });\r\n }\r\n\r\n onSubmitInvoice(isUpdate = false) {\r\n const data = this.invoiceDetails.data.reduce((invoices, i) => {\r\n if (i.isCharges) return invoices;\r\n return [\r\n ...invoices,\r\n {\r\n invoiceDetailsId: i.invoicesDetailsID ?? 0,\r\n orderDetailsId:\r\n i.orderDetailsAltID || i.ordersDetailsAltID ? 0 : i.ordersDetailsID,\r\n orderDetailsAltId:\r\n i.orderDetailsAltID || i.ordersDetailsAltID\r\n ? i.orderDetailsAltID ?? i.ordersDetailsAltID ?? i.ordersDetailsID\r\n : 0,\r\n qty: i.qty,\r\n pricePerInch: i.pricePerInch,\r\n price: i.price,\r\n unitWeightGrams: i.hasWeight ? i.unitWeightGrams : i.weight,\r\n unitWeightG_Secondary: i.hasSecondaryWeight\r\n ? i.unitWeightG_Secondary\r\n : i.wghtgrmsSecondary,\r\n chargeItems:\r\n i.invoicesDetailsCharges?.map((c) => ({\r\n ...c,\r\n invoicesDetailsID: c.invoicesDetailsID,\r\n invoicesDetailsChargesID: c.invoicesDetailsChargesID ?? 0,\r\n invoicesID: i.invoicesID ?? 0,\r\n })) ?? [],\r\n },\r\n ];\r\n }, []);\r\n const charges = this.invoiceDetails.data.reduce((invoices, i) => {\r\n if (!i.isCharges) return invoices;\r\n return [\r\n ...invoices,\r\n {\r\n invoicesDetailsChargesID: i.invoicesDetailsChargesID ?? 0,\r\n invoicesID: i.invoicesID,\r\n invoicesDetailsID: i.invoicesDetailsID ?? 0,\r\n chargeDescription: i.productName,\r\n qty: i.qty,\r\n price: i.price,\r\n materialCodesID: i.materialsCodeId,\r\n unitWeightGrams: i.weight,\r\n },\r\n ];\r\n }, []);\r\n\r\n const invoice = {\r\n invoicesID: this.invoiceDetail.invoicesID,\r\n metalMarketID: this.invoiceDetail.metalMarket?.metalMarketID ?? 0,\r\n invoicePaid: this.invoiceDetail.invoicePaid,\r\n shippingCost: this.invoiceDetail.shippingCost,\r\n internalComment: this.invoiceDetail.internalComment,\r\n externalComment: this.invoiceDetail.externalComment,\r\n billingAddressId: this.invoiceDetail.billingAddressId,\r\n byPassWorkOrders: this.byPassWorkOrders,\r\n lineItems: data,\r\n chargeItems: charges,\r\n customerId: this.invoiceDetail.custIDNo,\r\n };\r\n\r\n const request = [];\r\n\r\n if (isUpdate) {\r\n const data = {\r\n invoicesID: invoice.invoicesID,\r\n metalMarketID: invoice.metalMarketID ?? 0,\r\n invoicePaid: invoice.invoicePaid,\r\n shippingCost: invoice.shippingCost,\r\n externalComments: invoice.externalComment,\r\n comments: invoice.internalComment,\r\n };\r\n request.push(this.invoiceService.updateInvoices(data));\r\n }\r\n\r\n forkJoin([this.invoiceService.setInvoices(invoice), ...request]).subscribe(\r\n (data) => {\r\n if (this.invoiceId > 0) {\r\n this.editMode = false;\r\n this.getInvoices();\r\n } else {\r\n this.router.navigate([`invoicing-and-shipping/invoicing/${data}`]);\r\n }\r\n },\r\n );\r\n }\r\n\r\n get invoiceSubmitValid() {\r\n return (\r\n this.invoiceDetail.custIDNo > 0 &&\r\n this.invoiceDetails.data.length > 0 &&\r\n this.invoiceDetails.data.every((i) => i.isCharges || i.price != 0) &&\r\n this.invoiceDetail.metalMarket.metalMarketID > 0\r\n );\r\n }\r\n\r\n get totalQty() {\r\n return this.invoiceDetails.data.reduce((total, i) => {\r\n return total + i.qty;\r\n }, 0);\r\n }\r\n\r\n get totalPriceExt() {\r\n return this.invoiceDetails.data.reduce((total, i) => {\r\n const totalChargesPrice =\r\n i.invoicesDetailsCharges?.reduce(\r\n (charges, c) => charges + c.qty * c.price,\r\n 0,\r\n ) ?? 0;\r\n return total + totalChargesPrice + i.qty * i.price;\r\n }, this.invoiceDetail.shippingCost || 0);\r\n }\r\n\r\n onPrintInvoice() {\r\n this.dialog.open(InvoicingPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'invoicing-print-dialog-container',\r\n data: {\r\n detail: this.invoiceDetail,\r\n },\r\n });\r\n }\r\n\r\n onDownloadInvoice() {\r\n window.open(this.invoiceUrl);\r\n }\r\n\r\n onChangeDate(date: Date) {\r\n const selectedDate = DateTime.fromJSDate(date).toFormat('yyyy-MM-dd');\r\n const metalMarketId =\r\n this.metalMarkets.find((m) => m.marketDate === selectedDate)\r\n ?.metalMarketID ?? 0;\r\n this.invoiceDetail.metalMarket = {\r\n marketDate: date,\r\n metalMarketID: metalMarketId,\r\n };\r\n this.onGetSelectedMetalMarket(metalMarketId);\r\n }\r\n\r\n onGetSelectedMetalMarket(id) {\r\n this.selectedMetalMarket = {} as MetalMarket;\r\n if (!id) return;\r\n this.metalMarketService.getMetalMarketById(id).subscribe((data) => {\r\n this.selectedMetalMarket = data;\r\n });\r\n }\r\n\r\n onPaidInvoices() {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Paid invoice?',\r\n content: 'Has this invoice already been paid?',\r\n confirmLabel: 'Yes',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n const data = {\r\n invoicesID: this.invoiceDetail.invoicesID,\r\n metalMarketID: this.invoiceDetail.metalMarket?.metalMarketID ?? 0,\r\n invoicePaid: DateTime.local(),\r\n shippingCost: this.invoiceDetail.shippingCost,\r\n externalComments: this.invoiceDetail.externalComment,\r\n comments: this.invoiceDetail.internalComment,\r\n };\r\n this.invoiceService.updateInvoices(data).subscribe(() => {\r\n this.getInvoices();\r\n });\r\n });\r\n }\r\n\r\n onRemoveInvoice(invoice: InvoiceDetail) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Remove order?',\r\n content: `Are you sure you want to remove this item? You can't undo this action after you remove it.`,\r\n confirmLabel: 'Yes',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.invoiceDetails.data = this.invoiceDetails.data.filter((i) =>\r\n i.tempKey\r\n ? i.tempKey !== invoice.tempKey\r\n : i.ordersDetailsID !== invoice.ordersDetailsID,\r\n );\r\n if (invoice.isCharges && invoice.invoicesDetailsChargesID) {\r\n this.invoiceService\r\n .deleteInvoiceCharge(invoice.invoicesDetailsChargesID)\r\n .subscribe();\r\n } else if (!invoice.isCharges && invoice.invoicesDetailsID) {\r\n this.invoiceService\r\n .deleteLineItem(invoice.invoicesDetailsID)\r\n .subscribe();\r\n }\r\n this.checkColumns();\r\n });\r\n }\r\n\r\n onOpenRelatedShipments() {\r\n this.dialog.open(RelatedShipmentDialogComponent, {\r\n disableClose: true,\r\n minWidth: '800px',\r\n autoFocus: false,\r\n data: {\r\n invoiceId: this.invoiceId,\r\n },\r\n });\r\n }\r\n\r\n onAddNewAddress() {\r\n const dialogRef = this.dialog.open(CustomerAddressDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '700px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n customerId: this.invoiceDetail.custIDNo,\r\n addressType: 1,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe(({ customersAddressesId }) => {\r\n customersAddressesId &&\r\n this.getCustomer(this.invoiceDetail.custIDNo, customersAddressesId);\r\n });\r\n }\r\n\r\n updateExpandedInvoice(row: InvoiceDetail) {\r\n if (row.isCharges) return;\r\n this.expandedInvoice[row.key] = !this.expandedInvoice[row.key];\r\n }\r\n\r\n onAddCharges(row: InvoiceDetail) {\r\n row.invoicesDetailsCharges = [\r\n ...(row.invoicesDetailsCharges ?? []),\r\n {\r\n tempUniqueKey: +new Date(),\r\n invoicesDetailsChargesID: 0,\r\n invoicesID: row.invoicesID ?? 0,\r\n invoicesDetailsID: row.invoicesDetailsID ?? 0,\r\n chargeDescription: '',\r\n qty: row.qty,\r\n price: 0,\r\n priceTotal: 0,\r\n },\r\n ];\r\n }\r\n\r\n onDeleteCharges(row: InvoiceDetail, tempUniqueKey: number) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Remove charge?',\r\n content: 'Are you sure you want to remove this charge?',\r\n confirmLabel: 'Yes',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n row.invoicesDetailsCharges = row.invoicesDetailsCharges.filter(\r\n (i) => i.tempUniqueKey !== tempUniqueKey,\r\n );\r\n if (row.invoicesDetailsChargesID) {\r\n this.invoiceService\r\n .deleteInvoiceCharge(row.invoicesDetailsChargesID)\r\n .subscribe();\r\n }\r\n });\r\n }\r\n\r\n onAddCharge() {\r\n this.invoiceDetails.data = [\r\n ...this.invoiceDetails.data,\r\n {\r\n tempKey: +new Date(),\r\n key: this.invoiceDetails.data.length,\r\n invoicesDetailsID: 0,\r\n orderDetailsAltID: 0,\r\n invoicesID: this.invoiceDetail.invoicesID ?? 0,\r\n qty: 1,\r\n ordersDetailsID: 0,\r\n productName: '',\r\n material: '',\r\n size: '',\r\n cipo: '',\r\n productPicPath: '',\r\n price: 0,\r\n priceExtension: 0,\r\n enamelColor: '',\r\n enamelName: '',\r\n uom: '',\r\n productWeights: [],\r\n stone: {} as RivaGems,\r\n overrideStoneSize: '',\r\n overrideStoneSizeID: 0,\r\n invoicesDetailsCharges: [],\r\n isCharges: true,\r\n },\r\n ];\r\n this.checkColumns();\r\n }\r\n onEditInvoice() {\r\n this.editMode = true;\r\n this.displayedColumns = ['expander', ...this.displayedColumns];\r\n }\r\n onCancelInvoiceEditing() {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Cancel changes?',\r\n content: `Are you sure you want to cancel your updates?`,\r\n confirmLabel: 'Yes',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.editMode = false;\r\n this.getInvoices();\r\n });\r\n }\r\n\r\n onPricePerInchChange(item: InvoiceDetail) {\r\n item.price =\r\n Math.round(\r\n item.pricePerInch * (parseFloat(item.chainRawLength) ?? 0) * 100,\r\n ) / 100;\r\n }\r\n onPriceChange(item: InvoiceDetail) {\r\n // TODO: NaN when adding charges\r\n item.pricePerInch =\r\n Math.round((item.price / (parseFloat(item.chainRawLength) ?? 0)) * 100) /\r\n 100;\r\n item.generatedPriceDetails = null;\r\n item.overridePriceDetails = null;\r\n }\r\n\r\n checkWeightAlarming(item: InvoiceDetail) {\r\n if ((item.rollingWeightAverage ?? 0) === 0) return false;\r\n\r\n const lowerLimit = item.rollingWeightAverage * 0.4;\r\n const upperLimit = item.rollingWeightAverage * 1.06;\r\n const isWithinRange =\r\n item.weight >= lowerLimit && item.weight <= upperLimit;\r\n\r\n return !isWithinRange;\r\n }\r\n\r\n onChangeWeight(row: InvoiceDetail) {\r\n const percentDiff = this.calculatePercentageDifference(\r\n row.weight,\r\n row.rollingWeightAverage,\r\n );\r\n row.percentDifference = percentDiff.percentDifference;\r\n row.percentDifferenceDisplay = percentDiff.percentDifferenceDisplay;\r\n }\r\n\r\n calculatePercentageDifference(currentValue, expectedValue) {\r\n if (currentValue > expectedValue) {\r\n const percentageOver =\r\n ((currentValue - expectedValue) / expectedValue) * 100;\r\n return {\r\n percentDifference: percentageOver,\r\n percentDifferenceDisplay: `+${Number.parseFloat(\r\n percentageOver.toFixed(2),\r\n )}%`,\r\n };\r\n } else if (currentValue < expectedValue) {\r\n const percentageUnder =\r\n ((expectedValue - currentValue) / expectedValue) * 100;\r\n return {\r\n percentDifference: -percentageUnder,\r\n percentDifferenceDisplay: `-${Number.parseFloat(\r\n percentageUnder.toFixed(2),\r\n )}%`,\r\n };\r\n } else {\r\n return { percentDifference: 0, percentDifferenceDisplay: `0%` };\r\n }\r\n }\r\n\r\n onGeneratePrice() {\r\n const requests = this.invoiceDetails.data\r\n .filter(\r\n (p) =>\r\n (p.productsId ?? 0) > 0 &&\r\n p.invoiceItemType === InvoiceItemType.Product,\r\n )\r\n .map((p) => this.productService.getProductDetailV2(p.productsId));\r\n this.invoiceDetails.data = this.invoiceDetails.data.map((row) => {\r\n row.invoicesDetailsCharges = row.pricingAddOns.reduce((accum, addons) => {\r\n const isExist = accum.some(\r\n (a) =>\r\n a.chargeDescription === addons.name && a.price === addons.price,\r\n );\r\n if (isExist) return accum;\r\n return [\r\n ...accum,\r\n {\r\n tempUniqueKey: +new Date(),\r\n invoicesDetailsChargesID: 0,\r\n invoicesID: row.invoicesID ?? 0,\r\n invoicesDetailsID: row.invoicesDetailsID ?? 0,\r\n chargeDescription: addons.name,\r\n qty: 1,\r\n price: addons.price,\r\n priceTotal: 0,\r\n },\r\n ];\r\n }, row.invoicesDetailsCharges ?? []);\r\n return row;\r\n });\r\n if (requests.length === 0) return;\r\n this.isGeneratingPrice = true;\r\n forkJoin(requests).subscribe((products) => {\r\n const rhodiumPlatingRequest = products.map((p) =>\r\n this.pricingEquationService.getRhodiumPlatingByProductId(p.productsId),\r\n );\r\n forkJoin(rhodiumPlatingRequest).subscribe((rhodiumPlatingsByProduct) => {\r\n this.productDetails = products.map((product, index) => ({\r\n ...product,\r\n rhodiumPlatings: rhodiumPlatingsByProduct[index],\r\n }));\r\n forkJoin([\r\n this.pricingEquationService.getCustomerDefaults(),\r\n this.metalMarketService.getMetalMarketPremiums(),\r\n this.materialCodeService.getMaterialCodeCalculations(),\r\n ]).subscribe(\r\n ([customerPriceDefaults, [premiums], materialCodeCalculations]) => {\r\n this.customerPriceDefaults = customerPriceDefaults;\r\n this.customerPriceDefault =\r\n this.customerPriceDefaults.find(\r\n (c) => c.customerID === this.invoiceDetail.custIDNo,\r\n ) ?? this.customerPriceDefaults.find((c) => c.customerID === 0);\r\n\r\n this.metalMarketPremiums = premiums;\r\n this.materialCalculations = materialCodeCalculations;\r\n this.invoiceDetails.data = this.invoiceDetails.data.map(\r\n (detail) => ({\r\n ...detail,\r\n ...this.onCalculateEstimatedPricing(detail),\r\n }),\r\n );\r\n this.isGeneratingPrice = false;\r\n },\r\n (error) => {\r\n this.toastrService.error(\r\n 'There is an error when generating pricing',\r\n );\r\n this.isGeneratingPrice = false;\r\n throw new Error(error);\r\n },\r\n );\r\n });\r\n });\r\n }\r\n\r\n onCalculateEstimatedPricing(invoiceDetail: InvoiceDetail) {\r\n if (invoiceDetail.invoiceItemType !== InvoiceItemType.Product) return {};\r\n const productDetail = this.productDetails.find(\r\n (p) => p.productsId === invoiceDetail.productsId,\r\n );\r\n if (productDetail == null) return {};\r\n const defaultProductPricing = productDetail?.pricing?.find(\r\n (p) => (p.productsSizesID ?? 0) === 0,\r\n );\r\n if (\r\n (!invoiceDetail.materialCodeId ||\r\n !(\r\n invoiceDetail.weight || invoiceDetail.productPricingStandardWeight\r\n )) &&\r\n !defaultProductPricing?.metalSupplied\r\n )\r\n return {};\r\n const materialCalculation = defaultProductPricing?.metalSupplied\r\n ? null\r\n : this.materialCalculations.find(\r\n (c) => c.materialCodeID === invoiceDetail.materialCodeId,\r\n );\r\n if (materialCalculation == null && !defaultProductPricing?.metalSupplied)\r\n return {};\r\n\r\n const currentProductPricing =\r\n productDetail.pricing.find(\r\n (p) => p.productsSizesID === invoiceDetail.productsSizeId,\r\n ) ?? defaultProductPricing;\r\n if (currentProductPricing == null) return {};\r\n const laborTime = currentProductPricing.jewelerTime ?? 0;\r\n const settingTime = currentProductPricing.setterTime ?? 0;\r\n\r\n // Return zero if both are unset\r\n if (laborTime === 0 && settingTime === 0) return {};\r\n\r\n const calculationWeight = defaultProductPricing?.metalSupplied\r\n ? 0\r\n : invoiceDetail.productPricingStandardWeight || invoiceDetail.weight || 0;\r\n const metalGramCost = defaultProductPricing?.metalSupplied\r\n ? 0\r\n : this.getPricePerGram(materialCalculation) ?? 0;\r\n const castingCost = defaultProductPricing?.metalSupplied\r\n ? 0\r\n : this.getTotalCastingFee({\r\n ...materialCalculation,\r\n totalGrams: calculationWeight,\r\n }) ?? 0;\r\n const stoneCost = currentProductPricing.stonePrice ?? 0;\r\n const otherCost =\r\n (currentProductPricing.chainPrice ?? 0) +\r\n (currentProductPricing.findingsPrice ?? 0);\r\n const laborTimeCost = this.customerPriceDefault.stdLaborPerMinCost ?? 0;\r\n const settingTimeCost =\r\n this.customerPriceDefault.settingLaborPerMinCost ?? 0;\r\n const overheadPercentage = this.customerPriceDefault.ohPercent ?? 0;\r\n const profitPercentage = this.customerPriceDefault.profitPercent ?? 0;\r\n\r\n const equation = this.equationParser.parse(TOTAL_PRICING_FORMULA);\r\n const total = equation.evaluate({\r\n metalWeight: calculationWeight,\r\n castingCost,\r\n metalGramCost,\r\n laborTime,\r\n laborTimeCost,\r\n settingTime,\r\n settingTimeCost,\r\n stoneCost,\r\n otherCost,\r\n overheadPercentage,\r\n profitPercentage,\r\n });\r\n const rhodiumPlating = productDetail.rhodiumPlatings.find(\r\n (r) => r.checked && r.materialCodeID === invoiceDetail.materialCodeId,\r\n );\r\n const price = Number.isNaN(total)\r\n ? 0\r\n : Number.parseFloat(\r\n (total + (rhodiumPlating?.rhodiumPlatingCost ?? 0)).toFixed(2),\r\n );\r\n return {\r\n price,\r\n generatedPriceDetails: {\r\n metalWeight: invoiceDetail.weight,\r\n productPricingStandardWeight:\r\n invoiceDetail.productPricingStandardWeight,\r\n castingCost,\r\n metalGramCost,\r\n jewelerTime: laborTime,\r\n laborTimeCost,\r\n setterTime: settingTime,\r\n settingTimeCost,\r\n stonePrice: stoneCost,\r\n otherCost,\r\n chainPrice: currentProductPricing.chainPrice,\r\n findingsPrice: currentProductPricing.findingsPrice,\r\n overheadPercentage,\r\n profitPercentage,\r\n price,\r\n },\r\n overridePriceDetails: null,\r\n };\r\n }\r\n\r\n getTotalCastingFee(data: MaterialCodeCalculation) {\r\n const list = Array.from({ length: data.totalGrams }, (_, i) => i + 1);\r\n return (\r\n list.reduce(\r\n (total, value) => total + this.getPriceForCurrentGram(data, value),\r\n 0,\r\n ) / data.totalGrams\r\n );\r\n }\r\n\r\n getPriceForCurrentGram(data: MaterialCodeCalculation, currentGram: number) {\r\n if (currentGram <= data.bottomCutOff) return data.castingFee;\r\n if (currentGram > data.topCutOff) return 0;\r\n return (\r\n data.castingFee *\r\n (1 -\r\n (currentGram - data.bottomCutOff) /\r\n (data.topCutOff - data.bottomCutOff))\r\n );\r\n }\r\n\r\n getPricePerGram(data: MaterialCodeCalculation) {\r\n if (!data.baseMetal1 || data.baseMetal1 === BASE_METAL.notApplicable)\r\n return 0;\r\n let metalMarketValue1 = 0;\r\n let premium1 = 0;\r\n\r\n let metalMarketValue2 = 0;\r\n let premium2 = 0;\r\n\r\n switch (data.baseMetal1) {\r\n case BASE_METAL.gold:\r\n metalMarketValue1 = this.selectedMetalMarket.ldpmGold;\r\n premium1 = this.metalMarketPremiums.gold;\r\n break;\r\n case BASE_METAL.fairminedGold:\r\n metalMarketValue1 = this.selectedMetalMarket.ldpmGold;\r\n premium1 = this.metalMarketPremiums.fairminedGold;\r\n break;\r\n case BASE_METAL.platinum:\r\n metalMarketValue1 = this.selectedMetalMarket.ldpmPlatinum;\r\n premium1 = this.metalMarketPremiums.platinum;\r\n break;\r\n case BASE_METAL.silver:\r\n metalMarketValue1 = this.selectedMetalMarket.ldpmSilver;\r\n premium1 = this.metalMarketPremiums.silver;\r\n break;\r\n case BASE_METAL.palladium:\r\n metalMarketValue1 = this.selectedMetalMarket.ldpmPalladium;\r\n premium1 = this.metalMarketPremiums.palladium;\r\n break;\r\n }\r\n\r\n switch (data.baseMetal2) {\r\n case BASE_METAL.gold:\r\n metalMarketValue2 = this.selectedMetalMarket.ldpmGold;\r\n premium2 = this.metalMarketPremiums.gold;\r\n break;\r\n case BASE_METAL.fairminedGold:\r\n metalMarketValue2 = this.selectedMetalMarket.ldpmGold;\r\n premium2 = this.metalMarketPremiums.fairminedGold;\r\n break;\r\n case BASE_METAL.platinum:\r\n metalMarketValue2 = this.selectedMetalMarket.ldpmPlatinum;\r\n premium2 = this.metalMarketPremiums.platinum;\r\n break;\r\n case BASE_METAL.silver:\r\n metalMarketValue2 = this.selectedMetalMarket.ldpmSilver;\r\n premium2 = this.metalMarketPremiums.silver;\r\n break;\r\n case BASE_METAL.palladium:\r\n metalMarketValue2 = this.selectedMetalMarket.ldpmPalladium;\r\n premium2 = this.metalMarketPremiums.palladium;\r\n break;\r\n }\r\n const preciousPercentage1 = data.preciousPercentage1 ?? 0;\r\n const preciousPercentage2 = data.preciousPercentage2 ?? 0;\r\n\r\n const alloyCost = data.alloyCost ?? 0;\r\n const lossFactor = data.lossFactor ?? 0;\r\n\r\n const metal1 = (metalMarketValue1 + premium1) * preciousPercentage1;\r\n const metal2 = (metalMarketValue2 + premium2) * preciousPercentage2;\r\n return ((metal1 + metal2) / 31.1035 + alloyCost) * lossFactor;\r\n }\r\n\r\n onOpenPriceDialog(item: InvoiceDetail) {\r\n const dialogRef = this.dialog.open(InvoicingPriceDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1500px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n item,\r\n selectedMetalMarket: this.selectedMetalMarket,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((pricing) => {\r\n if (pricing?.estimatedPrice) {\r\n const { estimatedPrice, ...overridePriceDetails } = pricing;\r\n item.price = estimatedPrice;\r\n item.overridePriceDetails = overridePriceDetails;\r\n }\r\n });\r\n }\r\n\r\n getMetalMarketByReceivedDate(receivedDate) {\r\n this.metalMarketService\r\n .getMetalMarketByReceivedDate(receivedDate)\r\n .subscribe((data) => {\r\n this.selectedMetalMarket = data;\r\n this.invoiceDetail.metalMarket = {\r\n marketDate: new Date(data?.marketDate + 'T00:00:00'),\r\n metalMarketID: data?.metalMarketID,\r\n };\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Invoice Detail\r\n
    \r\n \r\n
    \r\n \r\n Open Invoice\r\n \r\n
    \r\n
    \r\n \r\n Linked Shipments\r\n \r\n
    \r\n
    \r\n \r\n Generate Shipment\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Invoice No\r\n \r\n \r\n \r\n Invoiced Date\r\n \r\n \r\n \r\n Customer\r\n 0\r\n \"\r\n >\r\n \r\n {{ customer.companyName }}\r\n \r\n \r\n \r\n \r\n Billing Address\r\n \r\n \r\n {{ billing.fullAddress }}\r\n \r\n \r\n Add New Address\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    London PM Fix
    \r\n
    \r\n
    \r\n
    Date
    \r\n
    {{ selectedMetalMarket.marketDate }}
    \r\n
    \r\n
    \r\n
    Silver
    \r\n
    {{ selectedMetalMarket.ldpmSilver | currency }}
    \r\n
    \r\n
    \r\n
    Gold
    \r\n
    {{ selectedMetalMarket.ldpmGold | currency }}
    \r\n
    \r\n
    \r\n
    Platinum
    \r\n
    {{ selectedMetalMarket.ldpmPlatinum | currency }}
    \r\n
    \r\n
    \r\n
    Palladium
    \r\n
    {{ selectedMetalMarket.ldpmPalladium | currency }}
    \r\n
    \r\n
    \r\n\r\n \r\n Metal Market Date\r\n \r\n \r\n \r\n \r\n \r\n Internal Comments\r\n \r\n \r\n \r\n External Comments\r\n \r\n \r\n
    \r\n \r\n Paid\r\n \r\n \r\n \r\n Paid Invoice\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Scan Work Order\r\n \r\n
    \r\n \r\n Add Charge\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Submit Invoice\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n Scan Work Order\r\n \r\n \r\n Add Charge\r\n \r\n
    \r\n
    \r\n \r\n Submit Invoice\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 Invoice\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pic\r\n \r\n \r\n \r\n \r\n CUSTOM\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Index\r\n \r\n \r\n {{ element.key + 1 }}\r\n \r\n \r\n \r\n \r\n \r\n Product Name\r\n \r\n \r\n \r\n \r\n {{ element.productName }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Metal\r\n \r\n \r\n \r\n {{ element.material }}\r\n / {{ element.productMaterial?.materialCode2 }}\r\n / {{ element.materialCode2 }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Size\r\n \r\n {{ element.size }}\r\n \r\n \r\n \r\n \r\n Enamel\r\n \r\n \r\n
    \r\n
    \r\n \r\n [{{ element.pantoneColor }}]\r\n {{ element.enamelName }}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Length\r\n \r\n \r\n {{ element.chainRawLength }}\r\n \r\n \r\n \r\n \r\n \r\n {{ hasSecondaryWeight ? 'Weight 1' : 'Weight per piece' }}\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n Weight 2\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n Expected Weight\r\n \r\n \r\n 5 ||\r\n element.percentDifference < -5\r\n }\"\r\n [nzTooltipTitle]=\"element.percentDifferenceDisplay\"\r\n nzTooltipPlacement=\"topLeft\"\r\n nz-tooltip\r\n style=\"cursor: pointer\"\r\n nzTooltipColor=\"#000000\"\r\n nzTooltipOverlayClassName=\"invoice-detail-tooltip\"\r\n >\r\n {{ element.rollingWeightAverage\r\n }}g\r\n \r\n \r\n \r\n \r\n \r\n \r\n Standard Weight\r\n \r\n \r\n \r\n {{ element.productPricingStandardWeight\r\n }}g\r\n \r\n \r\n \r\n \r\n \r\n \r\n Stone Type\r\n \r\n \r\n {{ element.stoneType }}\r\n \r\n \r\n \r\n \r\n \r\n Stone Color\r\n \r\n \r\n {{ element.stoneColor }}\r\n \r\n \r\n \r\n \r\n \r\n Stone Size\r\n \r\n \r\n {{ element.overrideStoneSize || element.stoneSize }}\r\n \r\n \r\n \r\n \r\n \r\n Chain\r\n \r\n \r\n {{ element.chain }}\r\n \r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n \r\n
    \r\n \r\n \r\n {{\r\n element.maxQty\r\n }}\r\n
    \r\n {{ element.qty }}\r\n \r\n {{ totalQty }}\r\n
    \r\n \r\n \r\n PO Number\r\n \r\n \r\n
    \r\n \r\n {{ element.poNumber }}\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n CIPO\r\n \r\n {{ element.cipo }}\r\n \r\n \r\n \r\n \r\n Price per inch\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Price\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Price Ext.\r\n \r\n {{ element.qty * element.price | currency }}\r\n \r\n \r\n
    \r\n Shipping cost\r\n \r\n
    \r\n
    \r\n {{ totalPriceExt | currency }}\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n Generate 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 No Available Data\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    Charge Name
    \r\n \r\n
    Price
    \r\n
    Total
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {{\r\n item.chargeDescription\r\n }}\r\n
    \r\n
    \r\n
    \r\n \r\n {{\r\n item.price | currency\r\n }}\r\n
    \r\n
    \r\n
    \r\n {{ item.price * item.qty | currency }}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n No Charges\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n

    \r\n {{ isGeneratingPrice ? 'Generating price...' : 'Loading Details...' }}\r\n

    \r\n
    \r\n
    \r\n \r\n\r\n\r\n\r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Parser } from 'expr-eval';\r\nimport { forkJoin } from 'rxjs';\r\nimport { BASE_METAL } from 'src/app/components/metal-overhead-equations/metal-overhead-equations.component';\r\nimport { CustomerPriceDefault } from 'src/app/components/price-defaults/customer-price-defaults/customer-price-default';\r\nimport { TOTAL_PRICING_FORMULA } from 'src/app/components/product-pricing/product-pricing.component';\r\nimport { MaterialCodeCalculation } from 'src/app/models/material-code';\r\nimport { MetalMarket, MetalMarketPremiums } from 'src/app/models/metal-market';\r\nimport { ProductDetailV2 } from 'src/app/models/product';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { MetalMarketService } from 'src/app/services/metal-market.service';\r\nimport { PricingEquationService } from 'src/app/services/pricing-equation.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { InvoiceDetail } from '../../models/invoice';\r\nimport { InvoicingLookupItem } from '../../models/invoicing-lookup-item';\r\nimport {\r\n ProductPricing as ProductPricingModel,\r\n RhodiumPlating,\r\n} from './../../../../product-pricing/product-pricing';\r\n\r\ninterface ProductPricing {\r\n productPicPath: string;\r\n productName: string;\r\n material: string;\r\n size: string;\r\n metalWeight: number;\r\n productPricingStandardWeight: number;\r\n jewelerTime: number;\r\n setterTime: number;\r\n chainPrice: number;\r\n stonePrice: number;\r\n findingsPrice: number;\r\n estimatedPrice: number;\r\n rhodiumPlating?: RhodiumPlating;\r\n defaultPricing?: ProductPricingModel;\r\n}\r\n\r\n@Component({\r\n selector: 'invoicing-price-dialog',\r\n templateUrl: './invoicing-price-dialog.component.html',\r\n styleUrls: ['./invoicing-price-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class InvoicingPriceDialogComponent implements OnInit {\r\n formatterDollar = (value: number): string =>\r\n value ? `$ ${value.toFixed(2)}` : '';\r\n parserDollar = (value: string): string => value.replace('$ ', '');\r\n\r\n displayedColumns: string[] = [\r\n 'productPicPath',\r\n 'productName',\r\n 'material',\r\n 'size',\r\n 'metalWeight',\r\n 'productPricingStandardWeight',\r\n 'rhodiumPlating',\r\n 'jewelerTime',\r\n 'setterTime',\r\n 'chainPrice',\r\n 'stonePrice',\r\n 'findingsPrice',\r\n 'metalSupplied',\r\n 'estimatedPrice',\r\n 'reset',\r\n ];\r\n invoiceOrders: InvoicingLookupItem[] = [];\r\n isSelectedAll = true;\r\n isSomeSelected = false;\r\n\r\n metalMarketPremiums: MetalMarketPremiums = {} as MetalMarketPremiums;\r\n metalMarket: MetalMarket = {} as MetalMarket;\r\n materialCalculations: MaterialCodeCalculation[] = [];\r\n customerPriceDefaults: CustomerPriceDefault[];\r\n customerPriceDefault: CustomerPriceDefault;\r\n productDetail: ProductDetailV2;\r\n equationParser = new Parser();\r\n productPricing: ProductPricing[] = [];\r\n defaultProductPricing: ProductPricingModel = {} as ProductPricingModel;\r\n rhodiumPlating: RhodiumPlating = {} as RhodiumPlating;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private productService: ProductService,\r\n private pricingEquationService: PricingEquationService,\r\n private metalMarketService: MetalMarketService,\r\n private materialCodeService: MaterialCodeService,\r\n\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: {\r\n item: InvoiceDetail;\r\n selectedMetalMarket: MetalMarket;\r\n },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if ((this.props.item.productPricingStandardWeight ?? 0) === 0) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'productPricingStandardWeight',\r\n );\r\n }\r\n forkJoin([\r\n this.productService.getProductDetailV2(this.props.item.productsId),\r\n this.pricingEquationService.getCustomerDefaults(),\r\n this.metalMarketService.getMetalMarketPremiums(),\r\n this.materialCodeService.getMaterialCodeCalculations(),\r\n this.pricingEquationService.getRhodiumPlatingByProductId(\r\n this.props.item.productsId,\r\n ),\r\n ]).subscribe(\r\n ([\r\n product,\r\n customerPriceDefaults,\r\n [premiums],\r\n materialCodeCalculations,\r\n rhodiumPlatings,\r\n ]) => {\r\n this.productDetail = product;\r\n this.customerPriceDefaults = customerPriceDefaults;\r\n this.customerPriceDefault =\r\n this.customerPriceDefaults.find(\r\n (c) => c.customerID === this.props.item.customerId,\r\n ) ?? this.customerPriceDefaults.find((c) => c.customerID === 0);\r\n\r\n this.metalMarketPremiums = premiums;\r\n this.materialCalculations = materialCodeCalculations;\r\n this.rhodiumPlating =\r\n rhodiumPlatings.find(\r\n (r) =>\r\n r.checked && r.materialCodeID === this.props.item.materialCodeId,\r\n ) ?? ({} as RhodiumPlating);\r\n\r\n this.defaultProductPricing =\r\n this.productDetail.pricing.find(\r\n (p) => (p.productsSizesID ?? 0) === 0,\r\n ) ?? ({} as ProductPricingModel);\r\n\r\n const currentProductPricing =\r\n this.productDetail.pricing.find(\r\n (p) => p.productsSizesID === this.props.item.productsSizeId,\r\n ) ?? this.defaultProductPricing;\r\n\r\n const item = this.props.item;\r\n\r\n const productPricing = {\r\n productPicPath: item.productPicPath,\r\n productName: item.productName,\r\n material: item.material,\r\n size: item.size,\r\n metalWeight: item.weight ?? 0,\r\n productPricingStandardWeight: item.productPricingStandardWeight ?? 0,\r\n jewelerTime:\r\n item.overridePriceDetails?.jewelerTime ??\r\n currentProductPricing.jewelerTime ??\r\n 0,\r\n setterTime:\r\n item.overridePriceDetails?.setterTime ??\r\n currentProductPricing.setterTime ??\r\n 0,\r\n chainPrice:\r\n item.overridePriceDetails?.chainPrice ??\r\n currentProductPricing.chainPrice ??\r\n 0,\r\n stonePrice:\r\n item.overridePriceDetails?.stonePrice ??\r\n currentProductPricing.stonePrice ??\r\n 0,\r\n findingsPrice:\r\n item.overridePriceDetails?.findingsPrice ??\r\n currentProductPricing.findingsPrice ??\r\n 0,\r\n estimatedPrice: 0,\r\n rhodiumPlating: {\r\n ...(item.overridePriceDetails?.rhodiumPlating ??\r\n this.rhodiumPlating),\r\n },\r\n defaultPricing: {\r\n ...(item.overridePriceDetails?.defaultPricing ??\r\n this.defaultProductPricing),\r\n },\r\n };\r\n\r\n this.productPricing = [\r\n {\r\n ...productPricing,\r\n estimatedPrice: this.onCalculateEstimatedPricing(productPricing),\r\n },\r\n ];\r\n },\r\n );\r\n }\r\n\r\n onReset() {\r\n const currentProductPricing =\r\n this.productDetail.pricing.find(\r\n (p) => p.productsSizesID === this.props.item.productsSizeId,\r\n ) ??\r\n this.productDetail.pricing.find((p) => (p.productsSizesID ?? 0) === 0);\r\n\r\n const item = this.props.item;\r\n\r\n const productPricing = {\r\n productPicPath: item.productPicPath,\r\n productName: item.productName,\r\n material: item.material,\r\n size: item.size,\r\n metalWeight: item.weight ?? 0,\r\n productPricingStandardWeight: item.productPricingStandardWeight ?? 0,\r\n jewelerTime: currentProductPricing.jewelerTime ?? 0,\r\n setterTime: currentProductPricing.setterTime ?? 0,\r\n chainPrice: currentProductPricing.chainPrice ?? 0,\r\n stonePrice: currentProductPricing.stonePrice ?? 0,\r\n findingsPrice: currentProductPricing.findingsPrice ?? 0,\r\n estimatedPrice: 0,\r\n rhodiumPlating: { ...this.rhodiumPlating },\r\n defaultPricing: { ...this.defaultProductPricing },\r\n };\r\n\r\n this.productPricing = [\r\n {\r\n ...productPricing,\r\n estimatedPrice: this.onCalculateEstimatedPricing(productPricing),\r\n },\r\n ];\r\n }\r\n\r\n onCalculatePricing(row: ProductPricing) {\r\n row.estimatedPrice = this.onCalculateEstimatedPricing(row);\r\n }\r\n\r\n onCalculateEstimatedPricing(row: ProductPricing) {\r\n if (!this.props.item.materialCodeId && !row.defaultPricing.metalSupplied)\r\n return 0;\r\n const materialCalculation = row.defaultPricing.metalSupplied\r\n ? null\r\n : this.materialCalculations.find(\r\n (c) => c.materialCodeID === this.props.item.materialCodeId,\r\n );\r\n if (materialCalculation == null && !row.defaultPricing.metalSupplied)\r\n return 0;\r\n\r\n const laborTime = row.jewelerTime ?? 0;\r\n const settingTime = row.setterTime ?? 0;\r\n const metalWeight = row.defaultPricing.metalSupplied\r\n ? 0\r\n : row.productPricingStandardWeight || row.metalWeight || 0;\r\n const metalGramCost = row.defaultPricing.metalSupplied\r\n ? 0\r\n : this.getPricePerGram(materialCalculation) ?? 0;\r\n const castingCost = row.defaultPricing.metalSupplied\r\n ? 0\r\n : this.getTotalCastingFee({\r\n ...materialCalculation,\r\n totalGrams: metalWeight,\r\n }) ?? 0;\r\n const stoneCost = row.stonePrice ?? 0;\r\n const otherCost = (row.chainPrice ?? 0) + (row.findingsPrice ?? 0);\r\n const laborTimeCost = this.customerPriceDefault.stdLaborPerMinCost ?? 0;\r\n const settingTimeCost =\r\n this.customerPriceDefault.settingLaborPerMinCost ?? 0;\r\n const overheadPercentage = this.customerPriceDefault.ohPercent ?? 0;\r\n const profitPercentage = this.customerPriceDefault.profitPercent ?? 0;\r\n\r\n const equation = this.equationParser.parse(TOTAL_PRICING_FORMULA);\r\n const total = equation.evaluate({\r\n metalWeight,\r\n castingCost,\r\n metalGramCost,\r\n laborTime,\r\n laborTimeCost,\r\n settingTime,\r\n settingTimeCost,\r\n stoneCost,\r\n otherCost,\r\n overheadPercentage,\r\n profitPercentage,\r\n });\r\n const rhodiumPlatingValue = row.rhodiumPlating.checked\r\n ? row.rhodiumPlating.rhodiumPlatingCost ?? 0\r\n : 0;\r\n return Number.isNaN(total)\r\n ? 0\r\n : Number.parseFloat(\r\n (total + rhodiumPlatingValue).toFixed(2),\r\n );\r\n }\r\n\r\n getTotalCastingFee(data: MaterialCodeCalculation) {\r\n const list = Array.from({ length: data.totalGrams }, (_, i) => i + 1);\r\n return (\r\n list.reduce(\r\n (total, value) => total + this.getPriceForCurrentGram(data, value),\r\n 0,\r\n ) / data.totalGrams\r\n );\r\n }\r\n\r\n getPriceForCurrentGram(data: MaterialCodeCalculation, currentGram: number) {\r\n if (currentGram <= data.bottomCutOff) return data.castingFee;\r\n if (currentGram > data.topCutOff) return 0;\r\n return (\r\n data.castingFee *\r\n (1 -\r\n (currentGram - data.bottomCutOff) /\r\n (data.topCutOff - data.bottomCutOff))\r\n );\r\n }\r\n\r\n getPricePerGram(data: MaterialCodeCalculation) {\r\n if (\r\n data == null ||\r\n !data.baseMetal1 ||\r\n data.baseMetal1 === BASE_METAL.notApplicable\r\n )\r\n return 0;\r\n let metalMarketValue1 = 0;\r\n let premium1 = 0;\r\n\r\n let metalMarketValue2 = 0;\r\n let premium2 = 0;\r\n\r\n switch (data.baseMetal1) {\r\n case BASE_METAL.gold:\r\n metalMarketValue1 = this.props.selectedMetalMarket.ldpmGold;\r\n premium1 = this.metalMarketPremiums.gold;\r\n break;\r\n case BASE_METAL.fairminedGold:\r\n metalMarketValue1 = this.props.selectedMetalMarket.ldpmGold;\r\n premium1 = this.metalMarketPremiums.fairminedGold;\r\n break;\r\n case BASE_METAL.platinum:\r\n metalMarketValue1 = this.props.selectedMetalMarket.ldpmPlatinum;\r\n premium1 = this.metalMarketPremiums.platinum;\r\n break;\r\n case BASE_METAL.silver:\r\n metalMarketValue1 = this.props.selectedMetalMarket.ldpmSilver;\r\n premium1 = this.metalMarketPremiums.silver;\r\n break;\r\n case BASE_METAL.palladium:\r\n metalMarketValue1 = this.props.selectedMetalMarket.ldpmPalladium;\r\n premium1 = this.metalMarketPremiums.palladium;\r\n break;\r\n }\r\n\r\n switch (data.baseMetal2) {\r\n case BASE_METAL.gold:\r\n metalMarketValue2 = this.props.selectedMetalMarket.ldpmGold;\r\n premium2 = this.metalMarketPremiums.gold;\r\n break;\r\n case BASE_METAL.fairminedGold:\r\n metalMarketValue2 = this.props.selectedMetalMarket.ldpmGold;\r\n premium2 = this.metalMarketPremiums.fairminedGold;\r\n break;\r\n case BASE_METAL.platinum:\r\n metalMarketValue2 = this.props.selectedMetalMarket.ldpmPlatinum;\r\n premium2 = this.metalMarketPremiums.platinum;\r\n break;\r\n case BASE_METAL.silver:\r\n metalMarketValue2 = this.props.selectedMetalMarket.ldpmSilver;\r\n premium2 = this.metalMarketPremiums.silver;\r\n break;\r\n case BASE_METAL.palladium:\r\n metalMarketValue2 = this.props.selectedMetalMarket.ldpmPalladium;\r\n premium2 = this.metalMarketPremiums.palladium;\r\n break;\r\n }\r\n const preciousPercentage1 = data.preciousPercentage1 ?? 0;\r\n const preciousPercentage2 = data.preciousPercentage2 ?? 0;\r\n\r\n const alloyCost = data.alloyCost ?? 0;\r\n const lossFactor = data.lossFactor ?? 0;\r\n\r\n const metal1 = (metalMarketValue1 + premium1) * preciousPercentage1;\r\n const metal2 = (metalMarketValue2 + premium2) * preciousPercentage2;\r\n return ((metal1 + metal2) / 31.1035 + alloyCost) * lossFactor;\r\n }\r\n\r\n onReplacePrice() {\r\n const [pricing] = this.productPricing ?? [];\r\n this.dialogRef.close(pricing);\r\n }\r\n}\r\n","

    Product Pricing

    \r\n\r\n
    \r\n
    \r\n \r\n \r\n Pic\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Product Name\r\n \r\n \r\n {{ element.productName }}\r\n \r\n \r\n \r\n Metal\r\n {{ element.material }}\r\n \r\n \r\n Size\r\n {{ element.size }}\r\n \r\n \r\n Metal Weight\r\n \r\n {{ element.metalWeight }}\r\n \r\n \r\n \r\n Standard Weight\r\n \r\n {{ element.productPricingStandardWeight }}\r\n \r\n \r\n \r\n Total Addons\r\n \r\n {{ element.totalAddOns | currency }}\r\n \r\n \r\n \r\n Rhodium Plating\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Jeweler Time\r\n \r\n \r\n \r\n \r\n \r\n Setter Time\r\n \r\n \r\n \r\n \r\n \r\n Chain Price\r\n \r\n \r\n \r\n \r\n \r\n Stone Price\r\n \r\n \r\n \r\n \r\n \r\n Findings Price\r\n \r\n \r\n \r\n \r\n \r\n Metal Supplied\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n Estimated Price\r\n \r\n {{ element.estimatedPrice ?? 0 | 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 No Available Data\r\n \r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Replace Price\r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { InvoiceService } from 'src/app/services/invoice.service';\r\nimport { RelatedShipment } from './../../models/related-shipment';\r\n\r\n@Component({\r\n selector: 'related-shipment-dialog',\r\n templateUrl: './related-shipment-dialog.component.html',\r\n styleUrls: ['./related-shipment-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class RelatedShipmentDialogComponent implements OnInit {\r\n displayedColumns: string[] = [\r\n 'shipmentsID',\r\n 'shippedDate',\r\n 'qty',\r\n 'trackingNumber',\r\n ];\r\n relatedShipments: RelatedShipment[] = [];\r\n\r\n constructor(\r\n private invoiceService: InvoiceService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { invoiceId: number },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.invoiceService\r\n .getRelatedShipments(this.props.invoiceId)\r\n .subscribe((relatedShipments) => {\r\n this.relatedShipments = relatedShipments;\r\n });\r\n }\r\n}\r\n","

    Linked Shipments

    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n Shipment #\r\n \r\n \r\n \r\n {{ element.shipmentsID }}\r\n \r\n \r\n \r\n \r\n \r\n Shipped Date\r\n \r\n \r\n {{ element.shippedDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n \r\n {{ element.qty }}\r\n \r\n \r\n \r\n \r\n Tracking #\r\n \r\n \r\n {{ element.trackingNumber }}\r\n \r\n \r\n \r\n \r\n \r\n No Linked Shipments\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n Close\r\n \r\n
    \r\n\r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA\r\n} from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { Invoice, InvoiceDetail } from './../models/invoice';\r\n\r\n@Component({\r\n selector: 'invoicing-print-dialog',\r\n templateUrl: './invoicing-print-dialog.component.html',\r\n styleUrls: ['./invoicing-print-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class InvoicingPrintDialogComponent implements OnInit {\r\n totalPriceExt: number;\r\n hasEnamel: boolean;\r\n hasCipo: boolean;\r\n hasSize: boolean;\r\n isShortPage: boolean;\r\n invoicePages: Array;\r\n otherPagesItems: InvoiceDetail[];\r\n\r\n displayedColumns = [\r\n 'productName',\r\n 'poNumber',\r\n 'cipo',\r\n 'uom',\r\n 'material',\r\n 'size',\r\n 'weight',\r\n 'stoneType',\r\n 'enamelName',\r\n 'qty',\r\n 'price',\r\n 'priceExtension',\r\n ];\r\n\r\n constructor(\r\n private router: Router,\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { detail: Invoice },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.totalPriceExt =\r\n this.props.detail?.invoicesDetails?.reduce(\r\n (total, i) => total + i.qty * i.price,\r\n this.props.detail.shippingCost || 0,\r\n ) ?? 0;\r\n this.hasEnamel = this.props.detail?.invoicesDetails?.some(\r\n (i) => i.enamelName,\r\n );\r\n this.hasCipo = this.props.detail?.invoicesDetails?.some((i) => i.cipo);\r\n this.hasSize = this.props.detail?.invoicesDetails?.some(\r\n (i) => i.size?.trim() !== '-',\r\n );\r\n const hasWeight = this.props.detail?.invoicesDetails?.some(\r\n (i) => i.weight > 0,\r\n );\r\n const hasType = this.props.detail?.invoicesDetails?.some(\r\n (i) => i.stoneType,\r\n );\r\n if (!this.hasCipo) {\r\n this.displayedColumns = this.displayedColumns.filter((c) => c !== 'cipo');\r\n }\r\n if (!this.hasEnamel) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'enamelColor',\r\n );\r\n }\r\n if (!this.hasSize) {\r\n this.displayedColumns = this.displayedColumns.filter((c) => c !== 'size');\r\n }\r\n if (!hasWeight) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'weight',\r\n );\r\n }\r\n if (!hasType) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'stoneType',\r\n );\r\n }\r\n this.setUpPagination();\r\n }\r\n\r\n setUpPagination() {\r\n const mainPageLimit =\r\n this.props.detail.invoicesDetails.length > 12 ? 12 : 10;\r\n const otherPagesLimit = 20;\r\n this.isShortPage = mainPageLimit === 10;\r\n let currentPageIndex = 0;\r\n let currentPageLimit = mainPageLimit;\r\n this.invoicePages = this.props.detail.invoicesDetails.reduce(\r\n (pages, invoice) => {\r\n if ((pages[currentPageIndex]?.length ?? 0) < currentPageLimit) {\r\n pages[currentPageIndex] = [\r\n ...(pages[currentPageIndex] ?? []),\r\n invoice,\r\n ];\r\n } else {\r\n currentPageIndex++;\r\n currentPageLimit = otherPagesLimit;\r\n pages[currentPageIndex] = [\r\n ...(pages[currentPageIndex] ?? []),\r\n invoice,\r\n ];\r\n }\r\n return pages;\r\n },\r\n [],\r\n );\r\n }\r\n}\r\n","\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    Riva Precision Manufacturing
    \r\n
    140 58th ST. Unit 8B
    \r\n
    BROOKLYN, NY 11220
    \r\n
    (718) 361-3100
    \r\n
    Accounting@rivaprecision.com
    \r\n
    \r\n
    \r\n
    BILL TO
    \r\n
    {{ props.detail.customer.companyName }}
    \r\n
    \r\n {{ props.detail.billingAddress.address1 }}\r\n
    \r\n
    \r\n {{ props.detail.billingAddress.address2 }}\r\n
    \r\n \r\n {{ props.detail.billingAddress.city }},\r\n {{ props.detail.billingAddress.region }}\r\n \r\n {{\r\n props.detail.billingAddress.postalCode\r\n }}\r\n
    \r\n
    \r\n {{ props.detail.billingAddress.country }}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n London PM Fix\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Date\r\n {{\r\n props.detail.metalMarket?.marketDate\r\n | date : 'MM/dd/yyyy'\r\n }}\r\n
    Silver\r\n {{\r\n props.detail.metalMarket?.ldpmSilver ?? 0 | currency\r\n }}\r\n
    Gold\r\n {{ props.detail.metalMarket?.ldpmGold ?? 0 | currency }}\r\n
    Platinum\r\n {{\r\n props.detail.metalMarket?.ldpmPlatinum ?? 0 | currency\r\n }}\r\n
    Palladium\r\n {{\r\n props.detail.metalMarket?.ldpmPalladium ?? 0\r\n | 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 INVOICE\r\n {{ props.detail.invoicesID | number : '6.0-0' | noComma }}\r\n
    \r\n
    \r\n DATE {{ props.detail.invoicedDate | date : 'MM/dd/yyyy' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    P.O. NUMBER
    \r\n
    \r\n {{ props.detail.poNumber.join(', ') }}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Name\r\n {{ element.productName }}\r\n PO Number\r\n {{ element.poNumber }}\r\n CIPO\r\n {{ element.cipo }}\r\n UOM\r\n {{ element.uom }}\r\n Metal\r\n {{ element.material }}\r\n Size\r\n {{ element.size }}\r\n Weight\r\n {{ element.weight || '' }}g\r\n Stone\r\n {{ element.stoneType }}\r\n Stone Color\r\n {{ element.stoneColor }}\r\n Stone Size\r\n {{ element.stoneSize }}\r\n Enamel Color\r\n
    \r\n
    \r\n
    {{ element.enamelName }}
    \r\n \r\n
    QTY\r\n {{ element.qty }}\r\n Price\r\n {{ element.price | currency }}\r\n Price EXT\r\n {{ element.priceExtension | currency }}\r\n
    \r\n No Available Data\r\n
    \r\n \r\n {{ props.detail.externalComment }}\r\n \r\n \r\n
    \r\n \r\n
    Shipping Cost
    \r\n
    \r\n {{ props.detail.shippingCost | currency }}\r\n
    \r\n
    \r\n
    \r\n
    TOTAL DUE
    \r\n
    {{ totalPriceExt | currency }}
    \r\n
    \r\n \r\n \r\n \r\n {{ pageNumber + 1 }} / {{ invoicePages.length }}\r\n Our Mission is to honor God through our Service, Process, and\r\n Product Excellence.\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { INVOICING_SHIPPING_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/invoicing-shipping-permission';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport {\r\n InvoiceService,\r\n invoiceMapper,\r\n} from 'src/app/services/invoice.service';\r\nimport { ConfirmationService } from './../../riva-confirmation/riva-confirmation.service';\r\nimport { Invoice } from './models/invoice';\r\n\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'invoicing',\r\n templateUrl: './invoicing.component.html',\r\n styleUrls: ['./invoicing.component.scss'],\r\n})\r\nexport class InvoicingComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n invoices = new MatTableDataSource([]);\r\n selectedCustomer = 0;\r\n customers: Customers[];\r\n filteredCustomers: Customers[];\r\n customerFilterCtrl = new FormControl();\r\n featureKey = INVOICING_SHIPPING_FEATURE_KEY;\r\n searchQueryChange: Subject = new Subject();\r\n\r\n displayedColumns: string[] = [\r\n 'id',\r\n 'invoicedDate',\r\n 'customer',\r\n 'qty',\r\n 'totalDue',\r\n 'invoicePaid',\r\n ];\r\n searchQuery = '';\r\n pagination = {\r\n totalCount: 0,\r\n };\r\n invoiceParams = {\r\n SortBy: 'invoicesID',\r\n SortDirection: 'desc',\r\n PageNumber: 1,\r\n PageSize: 25,\r\n SearchQuery: '',\r\n CustomerId: 0,\r\n };\r\n @ViewChild('paginator') paginator;\r\n\r\n filters: Filters = {\r\n dateRangeFrom: DateTime.local().toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n };\r\n isExportingFile = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private router: Router,\r\n private invoiceService: InvoiceService,\r\n private customerService: CustomerService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getInvoices(false);\r\n this.customerService.getList().subscribe((customers) => {\r\n this.customers = orderBy(customers, 'companyName');\r\n this.filteredCustomers = [...this.customers];\r\n this.customerFilterCtrl.valueChanges.subscribe(() => {\r\n this.filterCustomers();\r\n });\r\n });\r\n this.searchQueryChange\r\n .pipe(debounceTime(1000), distinctUntilChanged())\r\n .subscribe((searchQuery) => {\r\n this.invoiceParams.SearchQuery = searchQuery;\r\n this.getInvoices();\r\n });\r\n }\r\n\r\n getInvoices(resetPage = true) {\r\n if (resetPage) {\r\n this.paginator._pageIndex = 0;\r\n this.invoiceParams.PageNumber = 1;\r\n }\r\n this.invoiceService\r\n .getPagedInvoices(this.invoiceParams)\r\n .subscribe(({ body, headers }) => {\r\n const paginationData = headers.get('X-Pagination');\r\n this.pagination =\r\n paginationData != null\r\n ? JSON.parse(paginationData)\r\n : { totalCount: 0 };\r\n this.invoices.data = body.map(invoiceMapper);\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.sort.sortChange.subscribe((sort) => {\r\n this.invoiceParams.SortBy = sort.active;\r\n this.invoiceParams.SortDirection = sort.direction;\r\n this.getInvoices();\r\n });\r\n this.invoices.sort = this.sort;\r\n this.invoices.filterPredicate = (data: Invoice, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.invoicesID?.toString().includes(search?.toLowerCase()) ||\r\n data.invoicedDate\r\n ?.toLocaleLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.customer?.companyName\r\n ?.toLocaleLowerCase()\r\n .includes(search?.toLowerCase());\r\n return this.selectedCustomer > 0\r\n ? data.custIDNo === this.selectedCustomer && searchFilter\r\n : searchFilter;\r\n };\r\n }\r\n\r\n goToInvoice(invoiceId = 0) {\r\n this.router.navigate([`invoicing-and-shipping/invoicing/${invoiceId}`]);\r\n }\r\n\r\n onSearch() {\r\n this.searchQueryChange.next(this.searchQuery);\r\n }\r\n\r\n filterCustomers() {\r\n this.filteredCustomers = orderBy(\r\n this.customers.filter((customer) =>\r\n customer.companyName\r\n ?.toLocaleLowerCase()\r\n .includes(this.customerFilterCtrl.value?.trim()),\r\n ),\r\n 'companyName',\r\n );\r\n }\r\n\r\n onPaidInvoices(invoice: Invoice) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Paid invoice?',\r\n content: 'Has this invoice already been paid?',\r\n confirmLabel: 'Yes',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n const data = {\r\n invoicesID: invoice.invoicesID,\r\n metalMarketID: invoice.metalMarket?.metalMarketID ?? 0,\r\n invoicePaid: DateTime.local(),\r\n shippingCost: invoice.shippingCost,\r\n internalComment: invoice.internalComment,\r\n externalComment: invoice.externalComment,\r\n };\r\n this.invoiceService.updateInvoices(data).subscribe(() => {\r\n this.getInvoices();\r\n });\r\n });\r\n }\r\n onPageChanged(event: PageEvent) {\r\n this.invoiceParams.PageNumber = event.pageIndex + 1;\r\n this.getInvoices(false);\r\n }\r\n onDateRangeChange({ start, end }) {\r\n this.filters.dateRangeFrom = start;\r\n this.filters.dateRangeTo = end;\r\n }\r\n onDownloadExcelFile() {\r\n this.isExportingFile = true;\r\n this.invoiceService\r\n .getInvoicesExcel({\r\n from: this.filters.dateRangeFrom,\r\n to: this.filters.dateRangeTo,\r\n })\r\n .subscribe((response) => {\r\n const blob = new Blob([response], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = `Invoices (${this.filters.dateRangeFrom\r\n .split('-')\r\n .join('')} - ${this.filters.dateRangeTo.split('-').join('')}).xlsx`;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n this.isExportingFile = false;\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n \r\n \r\n All \r\n \r\n {{ customer.companyName }}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Export to Excel\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n New Invoice\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Invoice #\r\n \r\n \r\n \r\n {{ element.invoicesID }}\r\n \r\n \r\n \r\n \r\n \r\n Invoiced Date\r\n \r\n \r\n {{ element.invoicedDate }}\r\n \r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n {{ element.customer.companyName }}\r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n \r\n {{ element.qtyTotal }}\r\n \r\n \r\n \r\n Total Billed\r\n \r\n {{ element.totalDue | currency }}\r\n \r\n \r\n \r\n \r\n Paid Date\r\n \r\n \r\n {{\r\n element.invoicePaid | date : 'MM/dd/yyyy'\r\n }}\r\n \r\n Paid\r\n \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n","import { ProductPricing, RhodiumPlating } from 'src/app/components/product-pricing/product-pricing';\r\nimport { RivaGems } from 'src/app/components/riva-gems/riva-gems.model';\r\nimport { InvoiceProductWeight } from './invoicing-lookup-item';\r\n\r\nexport interface Invoice {\r\n invoicesID: number;\r\n invoicedDate: string;\r\n custIDNo: number;\r\n qtyTotal: number;\r\n poNumber: string[];\r\n customer: {\r\n id: number;\r\n companyName: string;\r\n lockInvoiceGoldPrice?: boolean;\r\n };\r\n invoicesDetails: InvoiceDetail[];\r\n metalMarket: Partial;\r\n internalComment?: string;\r\n externalComment?: string;\r\n invoicePaid?: string;\r\n shippingCost?: number;\r\n billingAddress?: BillingAddress | null;\r\n billingAddressId?: number;\r\n link: string;\r\n poComments?: string;\r\n}\r\n\r\nexport interface BillingAddress {\r\n address1: string;\r\n address2: string;\r\n addressType: boolean;\r\n city: string;\r\n country: string;\r\n custIdno: number;\r\n customersAddressesId: number;\r\n phone: string;\r\n postalCode: string;\r\n region: string;\r\n}\r\n\r\nexport interface InvoiceCharge {\r\n tempUniqueKey?: number;\r\n invoicesDetailsChargesID: number;\r\n invoicesID: number;\r\n invoicesDetailsID: number;\r\n chargeDescription: string;\r\n qty: number;\r\n chargeQty?: number;\r\n chargePrice?: number;\r\n price: number;\r\n priceTotal: number;\r\n}\r\n\r\nexport enum InvoiceItemType {\r\n Product,\r\n ChainRaw,\r\n ChainFinished,\r\n Findings,\r\n OtherComponents,\r\n}\r\n\r\nexport interface GeneratePriceDetail {\r\n metalWeight: number;\r\n productPricingStandardWeight: number;\r\n castingCost: number;\r\n metalGramCost: number;\r\n jewelerTime: number;\r\n laborTimeCost: number;\r\n setterTime: number;\r\n settingTimeCost: number;\r\n stonePrice: number;\r\n chainPrice: number;\r\n findingsPrice: number;\r\n overheadPercentage: number;\r\n profitPercentage: number;\r\n rhodiumPlating: RhodiumPlating;\r\n defaultPricing: ProductPricing;\r\n}\r\nexport interface InvoiceDetail {\r\n key?: number;\r\n invoicesDetailsID: number;\r\n orderDetailsAltID?: number;\r\n ordersDetailsAltID?: number;\r\n invoicesID: number;\r\n qty: number;\r\n maxQty?: number;\r\n ordersDetailsID: number;\r\n productName: string;\r\n material: string;\r\n size: string;\r\n cipo: string;\r\n productPicPath: string;\r\n pricePerInch?: number;\r\n price: number;\r\n priceExtension: number;\r\n enamelColor: string;\r\n enamelName: string;\r\n uom: string;\r\n customerId?: number;\r\n productWeights: InvoiceProductWeight[];\r\n weight?: number;\r\n materialsCodeId?: number;\r\n productsSizeId?: number;\r\n stoneDetail?: string;\r\n stone: RivaGems;\r\n stoneType?: string;\r\n stoneColor?: string;\r\n stoneSize?: string;\r\n avgWeightGrams?: number;\r\n poInternal?: string;\r\n poExternal?: string;\r\n poComments?: string;\r\n detailsComments?: string;\r\n overrideStoneSize: string;\r\n overrideStoneSizeID: number;\r\n chain?: string;\r\n chainRawLength?: string;\r\n invoicesDetailsCharges: InvoiceCharge[];\r\n isCharges?: boolean;\r\n invoicesDetailsChargesID?: number;\r\n itemType?: InvoiceItemType;\r\n isUnfinishedChain?: boolean;\r\n tempKey?: number;\r\n rollingWeightAverage?: number;\r\n percentDifference?: number;\r\n percentDifferenceDisplay?: string;\r\n unitWeightGrams?: number;\r\n hasWeight?: boolean;\r\n hasSecondaryWeight?: boolean;\r\n unitWeightG_Secondary?: number;\r\n productsId?: number;\r\n materialCodeId?: number;\r\n wghtgrmsSecondary?: number;\r\n productPricingStandardWeight?: number;\r\n generatedPriceDetails?: Partial | null;\r\n overridePriceDetails?: Partial | null;\r\n pricingAddOns?: Array<{\r\n name: string;\r\n ordersDetailsId: number;\r\n price: number;\r\n }>;\r\n totalAddOns?: number;\r\n invoiceItemType?: InvoiceItemType;\r\n}\r\n\r\nexport interface MetalMarket {\r\n metalMarketID: number;\r\n marketDate: string | Date;\r\n enteredDate: string;\r\n ldpmSilver: number;\r\n ldpmGold: number;\r\n ldpmPlatinum: number;\r\n ldpmPalladium: number;\r\n}\r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { alphabet } from 'src/app/utilities/alphabet-characters';\r\nimport { ShipmentLookupItem } from '../../models/shipment-lookup-item';\r\n\r\n@Component({\r\n selector: 'shipping-detail-dialog',\r\n templateUrl: './shipping-detail-dialog.component.html',\r\n styleUrls: ['./shipping-detail-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ShippingDetailDialogComponent implements OnInit {\r\n displayedColumns: string[] = [\r\n 'selection',\r\n 'index',\r\n 'productPicPath',\r\n 'productName',\r\n 'material',\r\n 'size',\r\n 'qty',\r\n 'cipo',\r\n ];\r\n shipmentItems: ShipmentLookupItem[] = [];\r\n isSelectedAll = true;\r\n isSomeSelected = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { items: ShipmentLookupItem[] },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.shipmentItems = this.props.items.map((item, index) => ({\r\n ...item,\r\n maxQty: item.qty,\r\n index: alphabet[index] ?? `A${alphabet[index - 25]}`,\r\n }));\r\n this.selectAll(true);\r\n }\r\n\r\n onSelect() {\r\n const selected = this.shipmentItems.filter((s) => s.selected);\r\n this.isSelectedAll = selected.length === this.shipmentItems.length;\r\n this.isSomeSelected = selected.length > 0 && !this.isSelectedAll;\r\n }\r\n\r\n selectAll(checked) {\r\n this.shipmentItems = this.shipmentItems.map((s) => ({\r\n ...s,\r\n selected: s.isClosed ? checked : false,\r\n }));\r\n this.onSelect();\r\n }\r\n\r\n onAddItem() {\r\n this.dialogRef.close(this.shipmentItems.filter((s) => s.selected));\r\n }\r\n}\r\n","

    Select Work Order 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 Pic\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Index\r\n {{ element.index }}\r\n \r\n \r\n Product Name\r\n {{ element.productName }}\r\n \r\n \r\n Metal\r\n \r\n {{ element.material }}\r\n \r\n \r\n \r\n Size\r\n {{ element.size }}\r\n \r\n \r\n Qty\r\n \r\n
    \r\n \r\n {{ element.maxQty }}\r\n
    \r\n \r\n
    \r\n \r\n CIPO\r\n {{ element.cipo }}\r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Add\r\n \r\n \r\n\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { CustomerAddressDialogComponent } from 'src/app/components/customer-page/customer-address-dialog/customer-address-dialog.component';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport { WorkOrderType } from 'src/app/components/work-order-view/work-order-type';\r\nimport { INVOICING_SHIPPING_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/invoicing-shipping-permission';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { CustomerAddress } from 'src/app/models/customer';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { ShipmentService } from 'src/app/services/shipments.service';\r\nimport { WorkOrdersReleaseComponent } from '../../../work-order-view/work-orders-release.component';\r\nimport { InvoiceDetail } from '../../invoicing/models/invoice';\r\nimport { Shipment, ShipmentDetail } from '../models/shipment';\r\nimport { ShipmentLookupItem } from '../models/shipment-lookup-item';\r\nimport { ShippingDetailDialogComponent } from './shipping-detail-dialog/shipping-detail-dialog.component';\r\nimport { ShippingRelatedInvoiceDialogComponent } from './shipping-related-invoice-dialog/shipping-related-invoice-dialog.component';\r\n\r\n@Component({\r\n selector: 'shipping-detail',\r\n templateUrl: './shipping-detail.component.html',\r\n styleUrls: ['./shipping-detail.component.scss'],\r\n})\r\nexport class ShippingDetailComponent implements OnInit, AfterViewInit {\r\n @ViewChild('confirmationDialog')\r\n public readonly confirmationDialog!: SwalComponent;\r\n @ViewChild(MatSort) sort: MatSort;\r\n displayedColumns: string[] = [\r\n 'productPicPath',\r\n 'productName',\r\n 'material',\r\n 'size',\r\n 'qty',\r\n 'cipo',\r\n 'action',\r\n ];\r\n confirmation: {\r\n icon: string;\r\n title: string;\r\n description: string;\r\n timer?: number;\r\n } = {\r\n icon: 'question',\r\n title: '',\r\n description: '',\r\n };\r\n shipmentDetail: Shipment = {\r\n shipDate: '',\r\n customer: {},\r\n shipmentsDetails: [],\r\n } as Shipment;\r\n shipmentDetails = new MatTableDataSource([]);\r\n shippingAddresses: CustomerAddress[] = [];\r\n\r\n generatedInvoiceDetails: Array> = [];\r\n featureKey = INVOICING_SHIPPING_FEATURE_KEY;\r\n workOrderType: WorkOrderType;\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private dialog: MatDialog,\r\n private shipmentService: ShipmentService,\r\n private customerService: CustomerService,\r\n private userPermissionService: UserPermissionService,\r\n private _confirmationService: ConfirmationService,\r\n ) {\r\n this.userPermissionService.checkPagePermission(\r\n PAGE_NAME.invoicingAndShipping,\r\n );\r\n this.route.params.subscribe((params: Params) => {\r\n this.shipmentDetail.shipmentsID = +params.shippingId ?? 0;\r\n if (this.shipmentDetail.shipmentsID === 0) {\r\n const generatedShipment = sessionStorage.getItem(\r\n 'invoicing-generated-shipment',\r\n );\r\n const customerDetail = sessionStorage.getItem(\r\n 'invoicing-generated-customer',\r\n );\r\n if (generatedShipment) {\r\n const data = JSON.parse(generatedShipment);\r\n this.shipmentDetails.data = data.map((item) => ({\r\n ...item,\r\n shipmentsDetailsAltID: item.orderDetailsAltID,\r\n }));\r\n\r\n sessionStorage.removeItem('invoicing-generated-shipment');\r\n }\r\n\r\n if (customerDetail) {\r\n const detail = JSON.parse(customerDetail);\r\n this.getCustomer(detail.customerId, detail.addressId);\r\n sessionStorage.removeItem('invoicing-generated-customer');\r\n }\r\n return;\r\n }\r\n\r\n this.shipmentService\r\n .getShipmentById(this.shipmentDetail.shipmentsID)\r\n .subscribe((shipment) => {\r\n this.shipmentDetail =\r\n shipment ??\r\n ({\r\n shipmentsID: 0,\r\n customer: {},\r\n shipmentsDetails: [],\r\n } as Shipment);\r\n this.shipmentDetails.data = [...this.shipmentDetail.shipmentsDetails];\r\n this.getCustomer(this.shipmentDetail.custIDNo);\r\n });\r\n\r\n this.shipmentService\r\n .generateInvoice(this.shipmentDetail.shipmentsID)\r\n .subscribe((data) => {\r\n this.generatedInvoiceDetails = data;\r\n });\r\n });\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit() {\r\n this.shipmentDetails.sort = this.sort;\r\n }\r\n\r\n goToInvoicingAndShipping() {\r\n this.router.navigate(['invoicing-and-shipping/shipping']);\r\n }\r\n\r\n onScanWorkOrder() {\r\n const dialogRef = this.dialog.open(WorkOrdersReleaseComponent, {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n data: {\r\n workOrders: [],\r\n action: 'shipped',\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe(({ code, workOrderType }) => {\r\n this.workOrderType = workOrderType;\r\n if (code) {\r\n this.shipmentService\r\n .getLookUpItems(code, workOrderType)\r\n .subscribe((items) => {\r\n const customerId =\r\n this.shipmentDetail.custIDNo ??\r\n this.shipmentDetails.data?.[0]?.customerId ??\r\n 0;\r\n const hasOtherCustomer =\r\n customerId && items.some((i) => i.customerId !== customerId);\r\n if (hasOtherCustomer) {\r\n this.confirmation = {\r\n title: 'Invalid Customer',\r\n description: `Work order number ${code} is coming from a different customer.`,\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.confirmationDialog.fire();\r\n }, 100);\r\n return;\r\n }\r\n\r\n const mappedItems = items.reduce((accum, item) => {\r\n const invoicedItem = this.shipmentDetails.data.find(\r\n (i) => i.ordersDetailsID === item.ordersDetailsID,\r\n );\r\n item.isClosed = item.totalClosedQty > 0;\r\n if (invoicedItem == null) return [...accum, item];\r\n item.qty = item.qty - invoicedItem.qty;\r\n if (item.qty > 0) return [...accum, item];\r\n return accum;\r\n }, []);\r\n\r\n if (mappedItems.length === 0) {\r\n this.confirmation = {\r\n title: 'Work Order Items',\r\n description: `Work order number ${code} is already shipped.`,\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.confirmationDialog.fire();\r\n }, 100);\r\n return;\r\n }\r\n\r\n this.openWorkOrders(mappedItems);\r\n });\r\n }\r\n });\r\n }\r\n\r\n openWorkOrders(items: ShipmentLookupItem[]) {\r\n const dialogRef = this.dialog.open(ShippingDetailDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '800px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n items,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((selectedItems) => {\r\n if (!selectedItems) return;\r\n const [item] = selectedItems;\r\n this.getCustomer(item.customerId);\r\n this.shipmentDetails.data = this.shipmentDetails.data.map((invoice) => {\r\n const itemQty =\r\n selectedItems.find(\r\n (s) => s.ordersDetailsID === invoice.ordersDetailsID,\r\n )?.qty ?? 0;\r\n return {\r\n ...invoice,\r\n qty: itemQty + invoice.qty,\r\n };\r\n });\r\n this.shipmentDetails.data = selectedItems.reduce(\r\n (items, s) => {\r\n const isExist = items.some(\r\n (i) => i.ordersDetailsID === s.ordersDetailsID,\r\n );\r\n if (isExist) return items;\r\n return [\r\n ...items,\r\n {\r\n ...s,\r\n shipmentsDetailsAltID:\r\n this.workOrderType !== WorkOrderType.Product\r\n ? s.ordersDetailsID\r\n : 0,\r\n },\r\n ];\r\n },\r\n [...this.shipmentDetails.data],\r\n );\r\n });\r\n }\r\n\r\n getCustomer(customerId, defaultCustomersAddressesId = null) {\r\n this.customerService.getCustomer(customerId).subscribe((data) => {\r\n this.shipmentDetail.custIDNo = data.custIdno;\r\n this.shipmentDetail.customer = {\r\n id: data.custIdno,\r\n companyName: data.companyName,\r\n };\r\n this.shippingAddresses = (data.addresses ?? []).filter(\r\n (a) => a.addressType === 0 || a.addressType === 2,\r\n );\r\n const [firstAddress] = this.shippingAddresses;\r\n if (this.shipmentDetail.shipmentsID) return;\r\n this.shipmentDetail.shippingAddressID =\r\n defaultCustomersAddressesId ??\r\n data.defaultProdShipAddress ??\r\n firstAddress?.customersAddressesId ??\r\n 0;\r\n });\r\n }\r\n\r\n onSubmitShipment() {\r\n const data = this.shipmentDetails.data.reduce((shipments, s) => {\r\n if (s.shipmentsID) return shipments;\r\n return [\r\n ...shipments,\r\n {\r\n orderDetailsId: s.shipmentsDetailsAltID ? 0 : s.ordersDetailsID,\r\n orderDetailsAltId: s.shipmentsDetailsAltID\r\n ? s.shipmentsDetailsAltID ?? s.ordersDetailsID\r\n : 0,\r\n qty: s.qty,\r\n invoicesDetailsChargesId: s.invoicesDetailsChargesId ?? 0,\r\n },\r\n ];\r\n }, []);\r\n\r\n const items = {\r\n customerId: this.shipmentDetail.custIDNo,\r\n shipmentsId: this.shipmentDetail.shipmentsID,\r\n tracking: this.shipmentDetail.tracking,\r\n comment: this.shipmentDetail.comment,\r\n shippingAddressID: this.shipmentDetail.shippingAddressID,\r\n lineItems: data,\r\n };\r\n\r\n this.shipmentService.setShipments(items).subscribe((data) => {\r\n this.router.navigate([`invoicing-and-shipping/shipping/${data}`]);\r\n });\r\n }\r\n\r\n get shipmentSubmitValid() {\r\n return (\r\n !this.shipmentDetail.shipmentsID &&\r\n this.shipmentDetails.data.some((s) => !s.shipmentsDetailsID)\r\n );\r\n }\r\n\r\n onRemoveShipment(shipment: ShipmentDetail) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Remove order?',\r\n content: 'Are you sure you want to remove this item?',\r\n confirmLabel: 'Yes',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.shipmentDetails.data = this.shipmentDetails.data.filter(\r\n (i) => i.ordersDetailsID !== shipment.ordersDetailsID,\r\n );\r\n });\r\n }\r\n\r\n redirectToInvoicing() {\r\n sessionStorage.setItem(\r\n 'shipping-generated-invoice',\r\n JSON.stringify(this.generatedInvoiceDetails),\r\n );\r\n sessionStorage.setItem(\r\n 'shipping-generated-customer',\r\n JSON.stringify({\r\n customerId: this.shipmentDetail.custIDNo,\r\n addressId: this.shipmentDetail.shippingAddressID,\r\n }),\r\n );\r\n this.router.navigate(['invoicing-and-shipping/invoicing/0']);\r\n }\r\n\r\n onOpenRelatedInvoices() {\r\n this.dialog.open(ShippingRelatedInvoiceDialogComponent, {\r\n disableClose: true,\r\n minWidth: '800px',\r\n autoFocus: false,\r\n data: {\r\n shipmentId: this.shipmentDetail.shipmentsID,\r\n },\r\n });\r\n }\r\n\r\n onAddNewAddress() {\r\n const dialogRef = this.dialog.open(CustomerAddressDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '700px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n customerId: this.shipmentDetail.custIDNo,\r\n addressType: 0,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe(({ customersAddressesId }) => {\r\n customersAddressesId &&\r\n this.getCustomer(this.shipmentDetail.custIDNo, customersAddressesId);\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Shipping Detail\r\n
    \r\n \r\n Linked Invoices\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Shipment No\r\n \r\n \r\n \r\n Shipped Date\r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n \r\n Shipping Address\r\n \r\n \r\n {{ shipping.fullAddress }}\r\n \r\n \r\n Add New Address\r\n \r\n \r\n \r\n \r\n Tracking #\r\n \r\n \r\n \r\n Comments\r\n \r\n \r\n
    \r\n \r\n \r\n Scan Work Order\r\n \r\n
    \r\n \r\n Submit Shipment\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Generate Invoice\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Pic\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Product Name\r\n \r\n {{ element.productName }}\r\n \r\n \r\n \r\n Metal\r\n \r\n \r\n {{ element.material }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n {{ element.size }}\r\n \r\n \r\n \r\n Qty\r\n \r\n {{ element.qty }}\r\n \r\n \r\n \r\n CIPO\r\n \r\n {{ element.cipo }}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ShipmentService } from 'src/app/services/shipments.service';\r\nimport { ShipmentRelatedInvoice } from '../../models/shipment-related-invoice';\r\n\r\n@Component({\r\n selector: 'shipping-related-invoice-dialog',\r\n templateUrl: './shipping-related-invoice-dialog.component.html',\r\n styleUrls: ['./shipping-related-invoice-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ShippingRelatedInvoiceDialogComponent implements OnInit {\r\n displayedColumns: string[] = ['invoicesID', 'invoicedDate', 'invoicePaid'];\r\n relatedInvoices: ShipmentRelatedInvoice[] = [];\r\n\r\n constructor(\r\n private shipmentService: ShipmentService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { shipmentId: number },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.shipmentService\r\n .getRelatedInvoices(this.props.shipmentId)\r\n .subscribe((relatedShipments) => {\r\n this.relatedInvoices = relatedShipments;\r\n });\r\n }\r\n}\r\n","

    Linked Invoices

    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n Invoice #\r\n \r\n \r\n \r\n {{ element.invoicesID }}\r\n \r\n \r\n \r\n \r\n \r\n Invoiced Date\r\n \r\n \r\n {{ element.invoicedDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Paid Date\r\n \r\n \r\n {{ element.invoicePaid | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Linked Invoices\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n Close\r\n \r\n
    \r\n\r\n","import { Component, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { INVOICING_SHIPPING_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/invoicing-shipping-permission';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { ShipmentService } from 'src/app/services/shipments.service';\r\nimport { Shipment } from './models/shipment';\r\n\r\n@Component({\r\n selector: 'shipping',\r\n templateUrl: './shipping.component.html',\r\n styleUrls: ['./shipping.component.scss'],\r\n})\r\nexport class ShippingComponent {\r\n displayedColumns: string[] = [\r\n 'id',\r\n 'qty',\r\n 'customer',\r\n 'shipDate',\r\n 'tracking',\r\n ];\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n shipments = new MatTableDataSource([]);\r\n searchQuery = '';\r\n selectedCustomer = 0;\r\n customers: Customers[];\r\n filteredCustomers: Customers[];\r\n customerFilterCtrl = new FormControl();\r\n featureKey = INVOICING_SHIPPING_FEATURE_KEY;\r\n\r\n pagination = {\r\n totalCount: 0,\r\n };\r\n shipmentParams = {\r\n SortBy: 'invoicesID',\r\n SortDirection: 'desc',\r\n PageNumber: 1,\r\n PageSize: 25,\r\n SearchQuery: '',\r\n CustomerId: 0,\r\n };\r\n searchQueryChange: Subject = new Subject();\r\n @ViewChild('paginator') paginator;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private router: Router,\r\n private shipmentService: ShipmentService,\r\n private customerService: CustomerService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getShipments(false);\r\n this.customerService.getList().subscribe((customers) => {\r\n this.customers = orderBy(customers, 'companyName');\r\n this.filteredCustomers = [...this.customers];\r\n this.customerFilterCtrl.valueChanges.subscribe(() => {\r\n this.filterCustomers();\r\n });\r\n });\r\n this.searchQueryChange\r\n .pipe(debounceTime(1000), distinctUntilChanged())\r\n .subscribe((searchQuery) => {\r\n this.shipmentParams.SearchQuery = searchQuery;\r\n this.getShipments();\r\n });\r\n }\r\n\r\n getShipments(resetPage = true) {\r\n if (resetPage) {\r\n this.paginator._pageIndex = 0;\r\n this.shipmentParams.PageNumber = 1;\r\n }\r\n this.shipmentService\r\n .getPagedShipments(this.shipmentParams)\r\n .subscribe(({ body, headers }) => {\r\n const paginationData = headers.get('X-Pagination');\r\n this.pagination =\r\n paginationData != null\r\n ? JSON.parse(paginationData)\r\n : { totalCount: 0 };\r\n this.shipments.data = body.map((i) => ({\r\n ...i,\r\n link: `/invoicing-and-shipping/shipping/${i.shipmentsID}`,\r\n shipDate: i.shipDate\r\n ? DateTime.fromJSDate(new Date(i.shipDate)).toFormat(\r\n 'MM/dd/yyyy hh:mm a',\r\n )\r\n : '',\r\n }));\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.sort.sortChange.subscribe((sort) => {\r\n this.shipmentParams.SortBy = sort.active;\r\n this.shipmentParams.SortDirection = sort.direction;\r\n this.getShipments();\r\n });\r\n this.shipments.sort = this.sort;\r\n this.shipments.filterPredicate = (data: Shipment, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.shipmentsID?.toString().includes(search?.toLowerCase()) ||\r\n data.shipDate?.toLocaleLowerCase().includes(search?.toLowerCase()) ||\r\n data.customer?.companyName\r\n ?.toLocaleLowerCase()\r\n .includes(search?.toLowerCase());\r\n return this.selectedCustomer > 0\r\n ? data.custIDNo === this.selectedCustomer && searchFilter\r\n : searchFilter;\r\n };\r\n }\r\n\r\n filterCustomers() {\r\n this.filteredCustomers = orderBy(\r\n this.customers.filter((customer) =>\r\n customer.companyName\r\n ?.toLocaleLowerCase()\r\n .includes(this.customerFilterCtrl.value?.trim()),\r\n ),\r\n 'companyName',\r\n );\r\n }\r\n\r\n onSearch() {\r\n this.searchQueryChange.next(this.searchQuery);\r\n }\r\n\r\n goToShipping(shipmentsID = 0) {\r\n this.router.navigate([`invoicing-and-shipping/shipping/${shipmentsID}`]);\r\n }\r\n\r\n onPageChanged(event: PageEvent) {\r\n this.shipmentParams.PageNumber = event.pageIndex + 1;\r\n this.getShipments(false);\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n \r\n \r\n All \r\n \r\n {{ customer.companyName }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n New Shipment\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Shipment #\r\n \r\n \r\n \r\n {{ element.shipmentsID }}\r\n \r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n {{ element.qtyTotal }}\r\n \r\n \r\n \r\n Shipped Date\r\n \r\n {{ element.shipDate }}\r\n \r\n \r\n Tracking #\r\n {{ element.tracking }}\r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n {{ element.customer.companyName }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport jwt_decode from 'jwt-decode';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { AuthenticationService } from 'src/app/core/authentication/authentication.service';\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { DEFAULT_ROUTE_PAGE } from 'src/app/custom/riva-side-nav/menu';\r\nimport { Login } from 'src/app/models/login';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\n@Component({\r\n selector: 'riva-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss'],\r\n})\r\nexport class LoginComponent extends GenericComponent implements OnInit {\r\n public login = new Login();\r\n public error = { UserName: false, Password: false };\r\n public returnUrl: string;\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n public authenticationService: AuthenticationService,\r\n public tokenStorageService: TokenStorageService,\r\n public userService: UserService,\r\n public userPermissionService: UserPermissionService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n ) {\r\n super(loadService, alertService);\r\n if (tokenStorageService.currentUser?.usersID) {\r\n this.router.navigate(['/main/ordersview']);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadService.load(false);\r\n this.loadService.loadContent(false);\r\n this.returnUrl =\r\n this.route.snapshot.queryParams['returnUrl'] || '/main/ordersview';\r\n }\r\n\r\n loginUser() {\r\n if (\r\n !this.checkStringIfEmpty(this.login.userName) &&\r\n !this.checkStringIfEmpty(this.login.password)\r\n ) {\r\n this.loadService.load(true);\r\n this.error.UserName = false;\r\n this.error.Password = false;\r\n let defaultPage = DEFAULT_ROUTE_PAGE;\r\n\r\n this.authenticationService\r\n .login(this.login)\r\n .pipe(\r\n switchMap((data: { accessToken: string; refreshToken: string }) => {\r\n this.tokenStorageService.saveToken(data.accessToken);\r\n this.tokenStorageService.saveRefreshToken(data.refreshToken);\r\n const user: any = jwt_decode(data.accessToken);\r\n return this.userService.getUser(user.id);\r\n }),\r\n switchMap((user) => {\r\n defaultPage = user.defaultUrl ?? DEFAULT_ROUTE_PAGE;\r\n this.tokenStorageService.saveUser(user);\r\n return this.userPermissionService.getCurrentUserPermissions(\r\n user.usersID,\r\n );\r\n }),\r\n )\r\n .subscribe(\r\n () => {\r\n this.authenticationService.loggedIn.next(true);\r\n this.loadService.load(false);\r\n this.loadService.reloadNavigation();\r\n this.router.navigate([\r\n this.route.snapshot.queryParams['returnUrl'] || defaultPage,\r\n ]);\r\n },\r\n (error) => {\r\n this.alertService.error(error.error);\r\n this.loadService.load(false);\r\n },\r\n );\r\n } else {\r\n this.error.UserName = this.checkStringIfEmpty(this.login.userName);\r\n this.error.Password = this.checkStringIfEmpty(this.login.password);\r\n this.alertService.error(\r\n 'All fields are required, please check for errors.',\r\n );\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    LOGIN

    \r\n
    \r\n \r\n \r\n \r\n UserName is required\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","import { DatePipe } from '@angular/common';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { GenericComponent, Guid } from '../generic/generic.component';\r\n\r\nimport {\r\n ManufacturedMaterials,\r\n ManufacturedMaterialsInfo,\r\n} from 'src/app/models/manufactured-materials';\r\nimport { ManufacturedMaterialsService } from 'src/app/services/manufactured-materials.service';\r\n\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { SuppliersService } from 'src/app/services/suppliers.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { Historylogs } from '../../models/historylogs.model';\r\n\r\n@Component({\r\n selector: 'app-manufactured-materials',\r\n templateUrl: './manufactured-materials.component.html',\r\n styleUrls: ['./manufactured-materials.component.scss'],\r\n})\r\nexport class ManufacturedMaterialsComponent\r\n extends GenericComponent\r\n implements OnInit\r\n{\r\n tableCollapsed = false;\r\n editMode = false;\r\n\r\n uom: UnitOfMeasure[];\r\n materialCodes: MaterialCode[];\r\n suppliers: Suppliers[];\r\n\r\n manufacturedMats: ManufacturedMaterials[];\r\n allManufacturedMats: ManufacturedMaterials[];\r\n manufacturedMat = new ManufacturedMaterials();\r\n\r\n // Material and List Variables\r\n manufacturedMatsInfo: ManufacturedMaterialsInfo[];\r\n selectedManufacturedMatsInfo = new ManufacturedMaterialsInfo();\r\n selectedMaterialCode: number = -1;\r\n selectedSize = '';\r\n MatList: number[];\r\n SizeList: string[];\r\n highlightSize: boolean = false;\r\n highlightMats: boolean = false;\r\n\r\n newManufacturedMatsInfo = new ManufacturedMaterialsInfo();\r\n modalMaterialCode = 0;\r\n modalSize = 0;\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private uomService: UnitOfMeasureService,\r\n private manufacturedMatsService: ManufacturedMaterialsService,\r\n private materialCodeService: MaterialCodeService,\r\n private supplierService: SuppliersService,\r\n private tokenStorageService: TokenStorageService,\r\n private userPermissionService: UserPermissionService,\r\n private _date: DatePipe,\r\n private modalService: NgbModal,\r\n ) {\r\n super(loadService, alertService);\r\n this.loadService.loadContent(true);\r\n this.load();\r\n this.userPermissionService.checkPagePermission(\r\n PAGE_NAME.manufacturedMaterial,\r\n );\r\n }\r\n\r\n tableActive = false;\r\n selectedUOM = 1;\r\n newFlag = false;\r\n lastUpdated = new Historylogs();\r\n\r\n ngOnInit(): void {\r\n this.loadService.loadContent(false);\r\n }\r\n\r\n load() {\r\n forkJoin([\r\n this.uomService.getList(),\r\n this.manufacturedMatsService.getList(),\r\n this.materialCodeService.getList(),\r\n this.supplierService.getList(),\r\n ])\r\n .pipe(\r\n map(\r\n ([\r\n unitOfMeasurements,\r\n manufacturedMats,\r\n materialCodes,\r\n suppliers,\r\n ]) => {\r\n this.uom = unitOfMeasurements.responseObject;\r\n this.manufacturedMats = manufacturedMats;\r\n this.allManufacturedMats = manufacturedMats;\r\n this.materialCodes = materialCodes.responseObject;\r\n this.suppliers = suppliers;\r\n\r\n return {\r\n unitOfMeasurements,\r\n manufacturedMats,\r\n materialCodes,\r\n suppliers,\r\n };\r\n },\r\n ),\r\n )\r\n .subscribe(\r\n (response) => {\r\n if (this.allManufacturedMats.length > 0) {\r\n this.manufacturedMat = this.allManufacturedMats[0];\r\n\r\n if (this.manufacturedMat.manufacturedMaterialsInfo.length > 0) {\r\n this.manufacturedMatsInfo =\r\n this.manufacturedMat.manufacturedMaterialsInfo;\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n this.getHistoryLog(this.manufacturedMat.manufacturedMaterialsId);\r\n }\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n get totalFindings() {\r\n if (this.manufacturedMats !== undefined) {\r\n return this.manufacturedMats.length;\r\n }\r\n return 0;\r\n }\r\n\r\n searchString = '';\r\n\r\n searchTimeout() {\r\n this.manufacturedMats = this.allManufacturedMats.filter(\r\n (p) =>\r\n p.name.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.sku.toLowerCase().includes(this.searchString.toLowerCase()),\r\n );\r\n }\r\n\r\n sortColumn = [\r\n { column: 'manufacturedMaterialsId', sort: '' },\r\n { column: 'name', sort: '' },\r\n { column: 'sku', sort: '' },\r\n { column: 'suppliersId', sort: '' },\r\n ];\r\n\r\n onSort(column: string) {\r\n if (\r\n this.checkStringIfEmpty(\r\n this.sortColumn.find((s) => s.column === column).sort,\r\n ) ||\r\n this.sortColumn.find((s) => s.column === column).sort !== 'asc'\r\n ) {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'asc';\r\n this.manufacturedMats.sort((a, b) => {\r\n if (a[column] > b[column]) {\r\n return 1;\r\n }\r\n if (a[column] < b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n } else {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'desc';\r\n this.manufacturedMats.sort((a, b) => {\r\n if (a[column] < b[column]) {\r\n return 1;\r\n }\r\n if (a[column] > b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n\r\n sortClass(column) {\r\n if (this.sortColumn.find((s) => s.column === column).sort === 'asc') {\r\n return 'fa-arrow-up';\r\n } else if (\r\n this.sortColumn.find((s) => s.column === column).sort === 'desc'\r\n ) {\r\n return 'fa-arrow-down';\r\n }\r\n return '';\r\n }\r\n\r\n applyColorBand(manufacturedMat: ManufacturedMaterials) {\r\n let index = this.allManufacturedMats.indexOf(manufacturedMat);\r\n if (index % 2 == 0 || index == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getManufacturedMat(manufacturedMat: ManufacturedMaterials) {\r\n this.manufacturedMat = manufacturedMat;\r\n\r\n this.manufacturedMatsInfo = [];\r\n\r\n if (this.manufacturedMat.manufacturedMaterialsInfo.length > 0) {\r\n this.manufacturedMatsInfo =\r\n this.manufacturedMat.manufacturedMaterialsInfo;\r\n }\r\n\r\n this.getMaterialList();\r\n\r\n this.getHistoryLog(manufacturedMat.manufacturedMaterialsId);\r\n }\r\n\r\n toggleEdit() {\r\n this.editMode = !this.editMode;\r\n this.newFlag = false;\r\n this.getMaterialList();\r\n }\r\n\r\n toggleCancel() {\r\n this.editMode = !this.editMode;\r\n\r\n if (this.newFlag == false) {\r\n return;\r\n }\r\n\r\n this.getMaterialList();\r\n\r\n this.manufacturedMatsService\r\n .delete(this.manufacturedMat.manufacturedMaterialsId, '')\r\n .subscribe();\r\n }\r\n\r\n save() {\r\n this.manufacturedMat.manufacturedMaterialsInfo = [];\r\n this.manufacturedMat.manufacturedMaterialsInfo = this.manufacturedMatsInfo;\r\n\r\n if (this.editMode) {\r\n if (this.fileId !== '') {\r\n this.manufacturedMatsService\r\n .moveTemp(this.manufacturedMat.manufacturedMaterialsId, this.fileId)\r\n .subscribe((upload) => {\r\n this.manufacturedMat.picPath = upload.responseObject;\r\n this.manufacturedMatsService\r\n .post(this.manufacturedMat, '')\r\n .subscribe(\r\n (res) => {\r\n this.manufacturedMat = res;\r\n\r\n // Need to recall, freaking array doesn't work\r\n this.manufacturedMatsService.getList().subscribe((res) => {\r\n this.manufacturedMats = res;\r\n this.allManufacturedMats = res;\r\n });\r\n\r\n this.alertService.success('product details updated.');\r\n this.newMode = false;\r\n this.editMode = false;\r\n },\r\n (err) => {\r\n this.newMode = false;\r\n this.editMode = false;\r\n },\r\n );\r\n });\r\n } else {\r\n this.manufacturedMatsService.post(this.manufacturedMat, '').subscribe(\r\n (res) => {\r\n this.manufacturedMat = res;\r\n\r\n // Need to recall, freaking array doesn't work\r\n this.manufacturedMatsService.getList().subscribe((res) => {\r\n this.manufacturedMats = res;\r\n this.allManufacturedMats = res;\r\n });\r\n\r\n this.alertService.success('product details updated.');\r\n this.newMode = false;\r\n this.editMode = false;\r\n },\r\n (err) => {\r\n this.newMode = false;\r\n this.editMode = false;\r\n },\r\n );\r\n }\r\n } else if (this.newMode) {\r\n this.manufacturedMatsService.post(this.manufacturedMat, '').subscribe(\r\n (res) => {\r\n this.manufacturedMat = res;\r\n this.manufacturedMatsService.getList().subscribe((res) => {\r\n this.manufacturedMats = res;\r\n this.allManufacturedMats = res;\r\n });\r\n\r\n if (this.fileId !== '') {\r\n this.manufacturedMatsService\r\n .moveTemp(res.metalGrainsId, this.fileId)\r\n .subscribe((upload) => {\r\n this.manufacturedMat.picPath = upload.responseObject;\r\n this.manufacturedMatsService\r\n .post(this.manufacturedMat, '')\r\n .subscribe((result2) => {\r\n this.load();\r\n this.newMode = false;\r\n });\r\n });\r\n }\r\n\r\n this.alertService.success('product details updated.');\r\n this.newMode = false;\r\n this.editMode = false;\r\n },\r\n (err) => {\r\n this.newMode = false;\r\n this.editMode = false;\r\n },\r\n );\r\n }\r\n }\r\n\r\n newMode: boolean = false;\r\n\r\n newProduct() {\r\n this.newMode = true;\r\n\r\n this.newFlag = true;\r\n\r\n this.manufacturedMat = new ManufacturedMaterials();\r\n this.manufacturedMat.name = 'NEW_ITEM';\r\n this.manufacturedMat.sku = 'NEW_ITEM';\r\n this.manufacturedMat.createdBy = '';\r\n this.manufacturedMat.createdDate = new Date();\r\n\r\n this.manufacturedMatsInfo = [];\r\n\r\n this.manufacturedMat.createdBy =\r\n this.tokenStorageService.currentUser?.userName ?? '';\r\n this.manufacturedMatsService\r\n .post(this.manufacturedMat, '')\r\n .subscribe((res) => {\r\n this.manufacturedMat = res;\r\n });\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n @ViewChild('uploadImage') imageUploader: ElementRef;\r\n fileId: string = '';\r\n\r\n uploadTemp(files) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n this.loadService.loadContent(true);\r\n const formData = new FormData();\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append('file[]', files[i]);\r\n }\r\n this.fileId = Guid.newGuid();\r\n formData.append('id', this.fileId);\r\n\r\n this.manufacturedMatsService.uploadTempPhoto(formData).subscribe(\r\n (response) => {\r\n if (response.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * response.loaded) / response.total) +\r\n '%',\r\n );\r\n } else if (response.type === HttpEventType.Response) {\r\n this.manufacturedMat.picPath = response.body.responseObject[0];\r\n this.imageUploader.nativeElement.value = null;\r\n this.loadService.loadContent(false);\r\n }\r\n },\r\n (error) => {\r\n this.imageUploader.nativeElement.value = null;\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n getHistoryLog(id: number) {\r\n this.manufacturedMatsService.lastupdate(id).subscribe((res) => {\r\n this.lastUpdated = res;\r\n\r\n if (this.lastUpdated != null) {\r\n this.lastUpdated = res;\r\n } else {\r\n this.lastUpdated = new Historylogs();\r\n }\r\n });\r\n }\r\n\r\n formatDate(iDate: Date) {\r\n return this._date.transform(iDate, 'MM.dd.yyyy HH:mm');\r\n }\r\n\r\n // Material and sizes -- codes ***************************************** -- START\r\n getMaterialDesc(matId: number): string {\r\n let materialCode = new MaterialCode();\r\n let desc = '';\r\n\r\n materialCode = this.materialCodes.filter(\r\n (x) => x.materialCodeId == matId,\r\n )[0];\r\n\r\n if (materialCode != undefined) {\r\n desc = materialCode.description;\r\n }\r\n\r\n return desc;\r\n }\r\n\r\n getSelectedManufacturedMatsInfo() {\r\n this.selectedManufacturedMatsInfo = new ManufacturedMaterialsInfo();\r\n\r\n if (this.selectedMaterialCode != 0 && this.selectedSize != '') {\r\n this.selectedManufacturedMatsInfo = this.manufacturedMatsInfo.filter(\r\n (x) =>\r\n x.materialCodeId == this.selectedMaterialCode &&\r\n x.size == this.selectedSize,\r\n )[0];\r\n\r\n if (this.selectedManufacturedMatsInfo == undefined) {\r\n this.selectedManufacturedMatsInfo = new ManufacturedMaterialsInfo();\r\n }\r\n }\r\n }\r\n\r\n getMaterialList() {\r\n if (this.manufacturedMatsInfo.length > 0) {\r\n this.MatList = this.manufacturedMatsInfo\r\n .map((x) => parseInt(x.materialCodeId.toString()))\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.SizeList = this.manufacturedMatsInfo\r\n .map((x) => x.size)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n if (this.MatList.length > 0 && this.SizeList.length > 0) {\r\n this.selectedSize = this.manufacturedMatsInfo[0].size;\r\n this.selectedMaterialCode = this.manufacturedMatsInfo[0].materialCodeId;\r\n\r\n this.highlightMaterials(this.selectedSize);\r\n this.highlightSizes(this.selectedMaterialCode);\r\n\r\n this.getSelectedManufacturedMatsInfo();\r\n }\r\n } else {\r\n this.selectedSize = '';\r\n this.selectedMaterialCode = 0;\r\n this.selectedManufacturedMatsInfo = new ManufacturedMaterialsInfo();\r\n this.MatList = [];\r\n this.SizeList = [];\r\n }\r\n }\r\n\r\n highlightMaterials(size: string) {\r\n if (this.selectedMaterialCode !== 0) {\r\n // var materials = this.lstMatCodeSize.filter(mat => mat.matID == this.productDetails.matID);\r\n var materials = this.manufacturedMatsInfo.filter(\r\n (info) => info.materialCodeId == this.selectedMaterialCode,\r\n );\r\n\r\n if (materials !== undefined) {\r\n var filtered = materials.find(\r\n (mat) => mat.size.toString() == size.toString(),\r\n );\r\n\r\n if (filtered !== undefined) {\r\n this.highlightMats = true;\r\n\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n highlightSizes(materialCodeId: number) {\r\n if (this.manufacturedMatsInfo.length > 0 && this.selectedSize != '') {\r\n var sizes = this.manufacturedMatsInfo.find(\r\n (x) => x.size === this.selectedSize,\r\n );\r\n\r\n if (sizes !== undefined) {\r\n this.highlightSize = true;\r\n\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // Modal\r\n createMatSizeOpen(content) {\r\n this.modalOpen(content);\r\n }\r\n\r\n closeResult = '';\r\n\r\n modalOpen(content) {\r\n this.modalService\r\n .open(content, { ariaLabelledBy: 'modal-basic-title' })\r\n .result.then(\r\n (result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n\r\n // Add New Info\r\n this.AddNewFindingsInfo();\r\n },\r\n (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n },\r\n );\r\n }\r\n\r\n AddNewFindingsInfo() {\r\n this.newManufacturedMatsInfo = new ManufacturedMaterialsInfo();\r\n this.newManufacturedMatsInfo.manufacturedMaterialsInfoId = 0;\r\n this.newManufacturedMatsInfo.manufacturedMaterialsId =\r\n this.manufacturedMat.manufacturedMaterialsId;\r\n this.newManufacturedMatsInfo.size = this.modalSize.toString();\r\n this.newManufacturedMatsInfo.materialCodeId = this.modalMaterialCode;\r\n\r\n this.newManufacturedMatsInfo.stockQty = 0;\r\n this.newManufacturedMatsInfo.weight = 0;\r\n\r\n if (\r\n this.manufacturedMatsInfo != undefined &&\r\n this.manufacturedMatsInfo.length > 0\r\n ) {\r\n let index = this.manufacturedMatsInfo.findIndex(\r\n (d) =>\r\n d.materialCodeId.toString() == this.modalMaterialCode.toString() &&\r\n d.size == this.modalSize.toString(),\r\n );\r\n\r\n if (index == -1) {\r\n this.manufacturedMatsInfo.push(this.newManufacturedMatsInfo);\r\n } else {\r\n this.alertService.error(\r\n 'Existing Material and size combination exist!',\r\n );\r\n }\r\n } else {\r\n this.manufacturedMatsInfo = [];\r\n this.manufacturedMatsInfo.push(this.newManufacturedMatsInfo);\r\n }\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n getSupplierName(supplierId: number) {\r\n return this.suppliers.filter((x) => x.suppliersId == supplierId)[0]\r\n .companyName;\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n LAST UPDATE BY : {{ lastUpdated.username }} / DATE :\r\n {{ formatDate(lastUpdated.date) }}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n Items: {{ totalFindings }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n ID\r\n \r\n NAME\r\n \r\n SKU\r\n \r\n \r\n SUPPLIER\r\n
    {{ item.manufacturedMaterialsId }}{{ item.name }}{{ item.sku }}\r\n {{ getSupplierName(item.suppliersId) }}\r\n
    {{ item.manufacturedMaterialsId }}{{ item.name }}{{ item.sku }}\r\n {{ getSupplierName(item.suppliersId) }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ITEM NAME / SKU\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n NAME\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n SKU\r\n
    \r\n
    \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 / UNIT OF MEASURE\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ sups.supplierId }}\r\n \r\n \r\n\r\n
    \r\n
    \r\n SUPPLIER CODE\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {{ unit.uom }}\r\n \r\n \r\n
    \r\n
    \r\n UOM\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    COMMENTS
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n 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 *{{ getMaterialDesc(item) }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n \r\n {{ item }}\r\n
    \r\n
    \r\n\r\n \r\n \r\n Add Materials\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \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\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 + New\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n Create Material and Sizes\r\n
    \r\n \r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n {{ mats.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 Save\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { MetalGrain } from 'src/app/models/metal-grain';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { MetalGrainService } from 'src/app/services/metal-grain.service';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { GenericComponent, Guid } from '../generic/generic.component';\r\n\r\n@Component({\r\n selector: 'app-metal-grain',\r\n templateUrl: './metal-grain.component.html',\r\n styleUrls: ['./metal-grain.component.scss'],\r\n})\r\nexport class MetalGrainComponent extends GenericComponent {\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private metalGrainService: MetalGrainService,\r\n private supplierService: SupplierService,\r\n private materialCodeService: MaterialCodeService,\r\n private uomService: UnitOfMeasureService,\r\n private userPermissionService: UserPermissionService,\r\n ) {\r\n super(loadService, alertService);\r\n this.load();\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.metalGrain);\r\n }\r\n\r\n metalGrains: MetalGrain[] = [];\r\n materialCodes: MaterialCode[] = [];\r\n suppliers: Suppliers[] = [];\r\n unitOfMeasures: UnitOfMeasure[] = [];\r\n\r\n getMaterial(materialCodeId: number) {\r\n let x = this.materialCodes.find((x) => x.materialCodeId == materialCodeId);\r\n if (x !== undefined) {\r\n return x.code;\r\n }\r\n return '';\r\n }\r\n\r\n supplierName(supplierId: number) {\r\n if (this.suppliers.length != 0) {\r\n let data = this.suppliers.find((x) => x.suppliersId == supplierId);\r\n if (data != undefined) {\r\n let supplierName = '(' + data.supplierId + ') ' + data.companyName;\r\n return supplierName;\r\n }\r\n }\r\n return '-ERROR-';\r\n }\r\n\r\n getUom(uomId: number) {\r\n let x = this.unitOfMeasures.find((x) => x.unitsOfMeasureId == uomId);\r\n if (x !== undefined) {\r\n return x.uom;\r\n }\r\n return '';\r\n }\r\n\r\n load() {\r\n forkJoin([\r\n this.metalGrainService.getList(),\r\n this.materialCodeService.getList(),\r\n this.supplierService.getList(),\r\n this.uomService.getList(),\r\n ])\r\n .pipe(\r\n map(([metalGrainList, materialCodesList, supplierList, uomList]) => {\r\n let metalGrainsResult = metalGrainList;\r\n let materialCodesResult = materialCodesList;\r\n let suppliersResult = supplierList;\r\n let uomResult = uomList;\r\n return {\r\n metalGrainsResult,\r\n materialCodesResult,\r\n suppliersResult,\r\n uomResult,\r\n };\r\n }),\r\n )\r\n .subscribe(\r\n (data) => {\r\n this.metalGrains = data.metalGrainsResult;\r\n this.filteredMetalGrains = this.metalGrains;\r\n if (this.filteredMetalGrains.length != 0) {\r\n this.selectItem(this.filteredMetalGrains[0]);\r\n }\r\n this.materialCodes = data.materialCodesResult.responseObject;\r\n this.suppliers = data.suppliersResult;\r\n this.unitOfMeasures = data.uomResult.responseObject;\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n },\r\n );\r\n }\r\n\r\n searchString = '';\r\n filteredMetalGrains: MetalGrain[] = [];\r\n\r\n searchTimeout() {\r\n this.filteredMetalGrains = this.metalGrains.filter(\r\n (x) =>\r\n x.name.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n x.sku.toLowerCase().includes(this.searchString.toLowerCase()),\r\n );\r\n }\r\n\r\n metalGrain: MetalGrain = new MetalGrain();\r\n\r\n selectItem(metalGrain: MetalGrain) {\r\n if (!this.editMode && !this.newMode) {\r\n this.metalGrain.metalGrainsId = metalGrain.metalGrainsId;\r\n this.metalGrain.name = metalGrain.name;\r\n this.metalGrain.sku = metalGrain.sku;\r\n this.metalGrain.suppliersId = metalGrain.suppliersId;\r\n this.metalGrain.supplierSku = metalGrain.supplierSku;\r\n this.metalGrain.commentBox = metalGrain.commentBox;\r\n this.metalGrain.picPath = metalGrain.picPath;\r\n this.metalGrain.materialCode = metalGrain.materialCode;\r\n this.metalGrain.uom = metalGrain.uom;\r\n this.metalGrain.qtyinStock = metalGrain.qtyinStock;\r\n this.metalGrain.qtyinScrap = metalGrain.qtyinScrap;\r\n }\r\n }\r\n\r\n editMode: boolean = false;\r\n\r\n toggleEdit(edit: boolean) {\r\n this.editMode = edit;\r\n }\r\n\r\n save() {\r\n if (this.editMode) {\r\n if (this.fileId !== '') {\r\n this.metalGrainService\r\n .moveTemp(this.metalGrain.metalGrainsId, this.fileId)\r\n .subscribe((upload) => {\r\n this.metalGrain.picPath = upload.responseObject;\r\n this.metalGrainService\r\n .post(this.metalGrain, '')\r\n .subscribe((result) => {\r\n this.load();\r\n this.editMode = false;\r\n });\r\n });\r\n } else {\r\n this.metalGrainService.post(this.metalGrain, '').subscribe((result) => {\r\n this.load();\r\n this.editMode = false;\r\n });\r\n }\r\n } else if (this.newMode) {\r\n this.metalGrainService.post(this.metalGrain, '').subscribe((result1) => {\r\n this.metalGrain = result1;\r\n this.load();\r\n this.newMode = false;\r\n\r\n if (this.fileId !== '') {\r\n this.metalGrainService\r\n .moveTemp(result1.metalGrainsId, this.fileId)\r\n .subscribe((upload) => {\r\n this.metalGrain.picPath = upload.responseObject;\r\n this.metalGrainService\r\n .post(this.metalGrain, '')\r\n .subscribe((result2) => {});\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n cancelChanges() {\r\n this.metalGrain = new MetalGrain();\r\n this.metalGrains = [];\r\n this.filteredMetalGrains = [];\r\n this.editMode = false;\r\n this.newMode = false;\r\n this.load();\r\n }\r\n\r\n newMode: boolean = false;\r\n\r\n new() {\r\n this.metalGrain = new MetalGrain();\r\n this.newMode = true;\r\n }\r\n\r\n @ViewChild('uploadImage') imageUploader: ElementRef;\r\n fileId: string = '';\r\n\r\n uploadTemp(files) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n this.loadService.loadContent(true);\r\n const formData = new FormData();\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append('file[]', files[i]);\r\n }\r\n this.fileId = Guid.newGuid();\r\n formData.append('id', this.fileId);\r\n\r\n this.metalGrainService.uploadTempPhoto(formData).subscribe(\r\n (response) => {\r\n if (response.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * response.loaded) / response.total) +\r\n '%',\r\n );\r\n } else if (response.type === HttpEventType.Response) {\r\n this.metalGrain.picPath = response.body.responseObject[0];\r\n this.imageUploader.nativeElement.value = null;\r\n this.loadService.loadContent(false);\r\n }\r\n },\r\n (error) => {\r\n this.imageUploader.nativeElement.value = null;\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n applyColorBand(metalGrain: MetalGrain) {\r\n let index = this.metalGrains.indexOf(metalGrain);\r\n if (index % 2 == 0 || index == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Items: {{ filteredMetalGrains.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
    IDNameSKUSupplierSupplier SKUMaterial CodeUnit of MeasureQTY in StockQTY in Scrap
    {{ item.metalGrainsId }}{{ item.name }}{{ item.sku }}{{ supplierName(item.suppliersId) }}{{ item.supplierSku }}{{ getMaterial(item.materialCode) }}{{ getUom(item.uom) }}{{ item.qtyinStock }}{{ item.qtyinScrap }}
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n New \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n UPLOAD\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n ({{ supplier.supplierId }}) {{ supplier.companyName }}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n {{ material.code }}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n {{ unit.uom }}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n \r\n Edit\r\n \r\n
    \r\n
    \r\n \r\n Cancel\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { MaterialCalculation } from 'src/app/models/material-code';\r\nimport { MetalMarket, MetalMarketPremiums } from 'src/app/models/metal-market';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { MetalMarketService } from 'src/app/services/metal-market.service';\r\n\r\nexport const BASE_METAL = {\r\n gold: 1,\r\n fairminedGold: 2,\r\n platinum: 3,\r\n notApplicable: 4,\r\n silver: 5,\r\n palladium: 6,\r\n};\r\n\r\n@Component({\r\n selector: 'app-metal-overhead-equations',\r\n templateUrl: './metal-overhead-equations.component.html',\r\n styleUrls: ['./metal-overhead-equations.component.scss'],\r\n})\r\nexport class MetalOverheadEquationsComponent implements OnInit {\r\n constructor(\r\n private metalMarketService: MetalMarketService,\r\n private materialCodeService: MaterialCodeService,\r\n ) {}\r\n\r\n displayedColumns = [\r\n 'description',\r\n 'baseMetal1',\r\n 'preciousPercentage1',\r\n 'baseMetal2',\r\n 'preciousPercentage2',\r\n 'alloyCost',\r\n 'lossFactor',\r\n 'otherLossFactor',\r\n 'castingFee',\r\n 'bottomCutOff',\r\n 'topCutOff',\r\n 'totalGrams',\r\n 'totalCastingFee',\r\n 'pricePerGram',\r\n 'totalItemCost',\r\n ];\r\n metalMarketPremiums: MetalMarketPremiums = {} as MetalMarketPremiums;\r\n metalMarket: MetalMarket = {} as MetalMarket;\r\n materialCalculations: MaterialCalculation[] = [];\r\n baseMetal = BASE_METAL;\r\n isSaving = false;\r\n isLoading = false;\r\n lossFactor: 'product' | 'other' = 'product';\r\n\r\n ngOnInit(): void {\r\n this.getMetalMarketPremiums();\r\n }\r\n\r\n getMetalMarketPremiums() {\r\n this.isLoading = true;\r\n forkJoin([\r\n this.metalMarketService.getLatestMetalMarket(),\r\n this.metalMarketService.getMetalMarketPremiums(),\r\n ]).subscribe(([metalMarket, [premiums]]) => {\r\n this.metalMarketPremiums = premiums;\r\n this.metalMarket = metalMarket;\r\n this.isLoading = false;\r\n this.getMaterialCodeCalculations();\r\n });\r\n }\r\n\r\n getMaterialCodeCalculations() {\r\n forkJoin([\r\n this.materialCodeService.getList(),\r\n this.materialCodeService.getMaterialCodeCalculations(),\r\n ]).subscribe(\r\n ([{ responseObject: materialCodes }, materialCodeCalculations]) => {\r\n this.materialCalculations = materialCodes.reduce((accum, m) => {\r\n if (m.multiMetal) return accum;\r\n const calculation = materialCodeCalculations.find(\r\n (c) => c.materialCodeID === m.materialCodeId,\r\n );\r\n return [\r\n ...accum,\r\n {\r\n ...m,\r\n ...(calculation ?? {}),\r\n },\r\n ];\r\n }, []);\r\n },\r\n );\r\n }\r\n\r\n setMetalMarketPremiums() {\r\n this.isSaving = true;\r\n this.metalMarketService\r\n .setMetalMarketPremiums(this.metalMarketPremiums)\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n });\r\n }\r\n\r\n getPricePerGram(data: MaterialCalculation) {\r\n if (!data.baseMetal1 || data.baseMetal1 === BASE_METAL.notApplicable)\r\n return 0;\r\n let metalMarketValue1 = 0;\r\n let premium1 = 0;\r\n\r\n let metalMarketValue2 = 0;\r\n let premium2 = 0;\r\n\r\n switch (data.baseMetal1) {\r\n case BASE_METAL.gold:\r\n metalMarketValue1 = this.metalMarket.ldpmGold;\r\n premium1 = this.metalMarketPremiums.gold;\r\n break;\r\n case BASE_METAL.fairminedGold:\r\n metalMarketValue1 = this.metalMarket.ldpmGold;\r\n premium1 = this.metalMarketPremiums.fairminedGold;\r\n break;\r\n case BASE_METAL.platinum:\r\n metalMarketValue1 = this.metalMarket.ldpmPlatinum;\r\n premium1 = this.metalMarketPremiums.platinum;\r\n break;\r\n case BASE_METAL.silver:\r\n metalMarketValue1 = this.metalMarket.ldpmSilver;\r\n premium1 = this.metalMarketPremiums.silver;\r\n break;\r\n case BASE_METAL.palladium:\r\n metalMarketValue1 = this.metalMarket.ldpmPalladium;\r\n premium1 = this.metalMarketPremiums.palladium;\r\n break;\r\n }\r\n\r\n switch (data.baseMetal2) {\r\n case BASE_METAL.gold:\r\n metalMarketValue2 = this.metalMarket.ldpmGold;\r\n premium2 = this.metalMarketPremiums.gold;\r\n break;\r\n case BASE_METAL.fairminedGold:\r\n metalMarketValue2 = this.metalMarket.ldpmGold;\r\n premium2 = this.metalMarketPremiums.fairminedGold;\r\n break;\r\n case BASE_METAL.platinum:\r\n metalMarketValue2 = this.metalMarket.ldpmPlatinum;\r\n premium2 = this.metalMarketPremiums.platinum;\r\n break;\r\n case BASE_METAL.silver:\r\n metalMarketValue2 = this.metalMarket.ldpmSilver;\r\n premium2 = this.metalMarketPremiums.silver;\r\n break;\r\n case BASE_METAL.palladium:\r\n metalMarketValue2 = this.metalMarket.ldpmPalladium;\r\n premium2 = this.metalMarketPremiums.palladium;\r\n break;\r\n }\r\n const preciousPercentage1 = data.preciousPercentage1 ?? 0;\r\n const preciousPercentage2 = data.preciousPercentage2 ?? 0;\r\n\r\n const alloyCost = data.alloyCost ?? 0;\r\n const lossFactor =\r\n (this.lossFactor === 'product'\r\n ? data.lossFactor\r\n : data.otherLossFactor) ?? 0;\r\n\r\n const metal1 = (metalMarketValue1 + premium1) * preciousPercentage1;\r\n const metal2 = (metalMarketValue2 + premium2) * preciousPercentage2;\r\n return ((metal1 + metal2) / 31.1035 + alloyCost) * lossFactor;\r\n }\r\n\r\n onSaveCalculations() {\r\n const request = this.materialCalculations.reduce((accum, calculation) => {\r\n const hasValue =\r\n (calculation.baseMetal1 ?? '') !== '' &&\r\n (calculation.preciousPercentage1 ?? '') !== '' &&\r\n (calculation.alloyCost ?? '') !== '' &&\r\n (calculation.lossFactor ?? '') !== '' &&\r\n (calculation.otherLossFactor ?? '') !== '';\r\n\r\n if (hasValue) {\r\n return [\r\n ...accum,\r\n this.materialCodeService.setMaterialCodeCalculation({\r\n materialCodesCalculationsID:\r\n calculation.materialCodesCalculationsID ?? 0,\r\n materialCodeID: calculation.materialCodeId,\r\n baseMetal1: calculation.baseMetal1,\r\n preciousPercentage1: calculation.preciousPercentage1,\r\n baseMetal2: calculation.baseMetal2,\r\n preciousPercentage2: calculation.preciousPercentage2,\r\n alloyCost: calculation.alloyCost,\r\n lossFactor: calculation.lossFactor,\r\n otherLossFactor: calculation.otherLossFactor,\r\n castingFee: calculation.castingFee,\r\n bottomCutOff: calculation.bottomCutOff,\r\n topCutOff: calculation.topCutOff,\r\n }),\r\n ];\r\n } else if (calculation.materialCodesCalculationsID > 0) {\r\n return [\r\n ...accum,\r\n this.materialCodeService.deleteMaterialCodeCalculation(\r\n calculation.materialCodesCalculationsID,\r\n ),\r\n ];\r\n }\r\n return accum;\r\n }, []);\r\n this.isSaving = true;\r\n forkJoin(request).subscribe(() => {\r\n this.isSaving = false;\r\n this.getMaterialCodeCalculations();\r\n });\r\n }\r\n\r\n onComputeTotal(data: MaterialCalculation) {\r\n const list = Array.from({ length: data.totalGrams }, (_, i) => i + 1);\r\n data.totalCastingFee =\r\n this.lossFactor === 'product'\r\n ? list.reduce(\r\n (total, value) => total + this.getPriceForCurrentGram(data, value),\r\n 0,\r\n )\r\n : 0;\r\n data.totalItemCost =\r\n this.getPricePerGram(data) * data.totalGrams + data.totalCastingFee;\r\n }\r\n\r\n getPriceForCurrentGram(data: MaterialCalculation, currentGram: number) {\r\n if (currentGram <= data.bottomCutOff) return data.castingFee;\r\n if (currentGram > data.topCutOff) return 0;\r\n return (\r\n data.castingFee *\r\n (1 -\r\n (currentGram - data.bottomCutOff) /\r\n (data.topCutOff - data.bottomCutOff))\r\n );\r\n }\r\n onChangeLossFactor(value) {\r\n this.lossFactor = value;\r\n this.materialCalculations.forEach((data) => this.onComputeTotal(data));\r\n }\r\n}\r\n","
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Save Premiums\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Product Loss Factor\r\n \r\n \r\n Other Loss Factor\r\n \r\n \r\n
    \r\n \r\n \r\n Metal\r\n \r\n {{ element.description }}\r\n \r\n \r\n \r\n Base Metal\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Fineness\r\n \r\n \r\n \r\n \r\n \r\n Secondary Base Metal\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Secondary Fineness\r\n \r\n \r\n \r\n \r\n \r\n Alloy Cost\r\n \r\n \r\n \r\n \r\n \r\n Product Loss Factor\r\n \r\n \r\n \r\n \r\n \r\n Other Loss Factor\r\n \r\n \r\n \r\n \r\n \r\n Casting Fee\r\n \r\n \r\n \r\n \r\n \r\n Bottom Cutoff\r\n \r\n \r\n \r\n \r\n \r\n Top Cutoff\r\n \r\n \r\n \r\n \r\n \r\n \r\n Price Per Gram\r\n \r\n \r\n {{ getPricePerGram(element) | currency }}\r\n \r\n \r\n \r\n Total Grams\r\n \r\n \r\n \r\n \r\n \r\n \r\n Total Casting Fee\r\n \r\n \r\n {{ element.totalCastingFee ?? 0 | currency }}\r\n \r\n \r\n \r\n \r\n Total Cost\r\n \r\n \r\n {{ element.totalItemCost ?? 0 | currency }}\r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n\r\n
    \r\n \r\n Save All Calculations\r\n \r\n
    \r\n
    \r\n
    \r\n","import { DatePipe } from '@angular/common';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nimport { Nonprecious } from 'src/app/models/nonprecious.model';\r\nimport { NonPreciousService } from 'src/app/services/non-precious.service';\r\n\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { SuppliersService } from 'src/app/services/suppliers.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { Historylogs } from '../../models/historylogs.model';\r\n\r\n@Component({\r\n selector: 'app-non-precious',\r\n templateUrl: './non-precious.component.html',\r\n styleUrls: ['./non-precious.component.scss'],\r\n})\r\nexport class NonPreciousComponent extends GenericComponent implements OnInit {\r\n tableCollapsed = false;\r\n editMode = false;\r\n\r\n uom: UnitOfMeasure[];\r\n materialCodes: MaterialCode[];\r\n suppliers: Suppliers[];\r\n\r\n nonPreciousList: Nonprecious[];\r\n allNonPrecious: Nonprecious[];\r\n nonPrecious = new Nonprecious();\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private uomService: UnitOfMeasureService,\r\n private tokenStorageService: TokenStorageService,\r\n private materialCodeService: MaterialCodeService,\r\n private supplierService: SuppliersService,\r\n private _date: DatePipe,\r\n private nonPreciousService: NonPreciousService,\r\n private userPermissionService: UserPermissionService,\r\n ) {\r\n super(loadService, alertService);\r\n this.loadService.loadContent(true);\r\n this.load();\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.nonPrecious);\r\n }\r\n\r\n tableActive = false;\r\n selectedUOM = 1;\r\n newFlag = false;\r\n lastUpdated = new Historylogs();\r\n\r\n @ViewChild('uploadImage') imageUploader: ElementRef;\r\n\r\n ngOnInit(): void {\r\n this.loadService.loadContent(false);\r\n }\r\n\r\n load() {\r\n forkJoin([\r\n this.uomService.getList(),\r\n this.nonPreciousService.getList(),\r\n this.materialCodeService.getList(),\r\n this.supplierService.getList(),\r\n ])\r\n .pipe(\r\n map(\r\n ([unitOfMeasurements, nonpreciouslist, materialCodes, suppliers]) => {\r\n this.uom = unitOfMeasurements.responseObject;\r\n this.nonPreciousList = nonpreciouslist;\r\n this.allNonPrecious = nonpreciouslist;\r\n this.materialCodes = materialCodes.responseObject;\r\n this.suppliers = suppliers;\r\n\r\n return {\r\n unitOfMeasurements,\r\n nonpreciouslist,\r\n materialCodes,\r\n suppliers,\r\n };\r\n },\r\n ),\r\n )\r\n .subscribe(\r\n (response) => {\r\n if (this.allNonPrecious.length > 0) {\r\n this.nonPrecious = this.allNonPrecious[0];\r\n\r\n this.getHistoryLog(this.nonPrecious.nonPreciousId);\r\n }\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n getHistoryLog(id: number) {\r\n this.nonPreciousService.lastupdate(id).subscribe((res) => {\r\n this.lastUpdated = res;\r\n\r\n if (this.lastUpdated != null) {\r\n this.lastUpdated = res;\r\n } else {\r\n this.lastUpdated = new Historylogs();\r\n }\r\n });\r\n }\r\n\r\n searchTimeout() {\r\n this.nonPreciousList = this.allNonPrecious.filter(\r\n (p) =>\r\n p.name.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.sku.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.supplierSku.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.stockQty\r\n .toString()\r\n .toLowerCase()\r\n .includes(this.searchString.toLowerCase()) ||\r\n p.supplierPrice\r\n .toString()\r\n .toLowerCase()\r\n .includes(this.searchString.toLowerCase()) ||\r\n p.nonPreciousId\r\n .toString()\r\n .toLowerCase()\r\n .includes(this.searchString.toLowerCase()),\r\n );\r\n }\r\n\r\n sortColumn = [\r\n { column: 'nonPreciousId', sort: '' },\r\n { column: 'name', sort: '' },\r\n { column: 'sku', sort: '' },\r\n { column: 'supplierSku', sort: '' },\r\n { column: 'stockQty', sort: '' },\r\n { column: 'supplierPrice', sort: '' },\r\n ];\r\n\r\n get totalNonPrecious() {\r\n if (this.nonPreciousList !== undefined) {\r\n return this.nonPreciousList.length;\r\n }\r\n return 0;\r\n }\r\n\r\n applyColorBand(nonPrecious: Nonprecious) {\r\n let index = this.allNonPrecious.indexOf(nonPrecious);\r\n if (index % 2 == 0 || index == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n uploadProductImage(files) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append('nonPreciousId', this.nonPrecious.nonPreciousId.toString());\r\n formData.append('sku', this.nonPrecious.sku);\r\n\r\n // FUNCTION UNDER-CONTRUCTION\r\n this.nonPreciousService.uploadImage(formData).subscribe(\r\n (event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * event.loaded) / event.total) +\r\n '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.nonPrecious.picPath = event.body.responseObject[0];\r\n }\r\n },\r\n (err) => {\r\n err;\r\n },\r\n );\r\n }\r\n\r\n formatDate(iDate: Date) {\r\n return this._date.transform(iDate, 'MM.dd.yyyy HH:mm');\r\n }\r\n\r\n newProduct() {\r\n this.editMode = !this.editMode;\r\n this.newFlag = true;\r\n this.nonPrecious = new Nonprecious();\r\n this.nonPrecious.name = 'NEW_ITEM';\r\n this.nonPrecious.sku = 'NEW_ITEM';\r\n this.nonPrecious.createdBy = '';\r\n this.nonPrecious.createdDate = new Date();\r\n\r\n this.nonPrecious.createdBy =\r\n this.tokenStorageService.currentUser?.userName ?? '';\r\n\r\n this.nonPreciousService.addupdate(this.nonPrecious).subscribe((res) => {\r\n this.nonPrecious = res;\r\n });\r\n }\r\n\r\n save() {\r\n this.editMode = !this.editMode;\r\n\r\n this.nonPreciousService.addupdate(this.nonPrecious).subscribe((res) => {\r\n this.nonPrecious = res;\r\n\r\n // Need to recall, freaking array doesn't work\r\n this.nonPreciousService.getList().subscribe((res) => {\r\n this.nonPreciousList = res;\r\n this.allNonPrecious = res;\r\n });\r\n\r\n this.alertService.success('Item details updated.');\r\n });\r\n }\r\n\r\n toggleEdit() {\r\n this.editMode = !this.editMode;\r\n this.newFlag = false;\r\n }\r\n\r\n toggleCancel() {\r\n this.editMode = !this.editMode;\r\n\r\n if (this.newFlag == false) {\r\n return;\r\n }\r\n\r\n // TODO : UNDER CONSTRUCTION\r\n\r\n this.nonPreciousService.delete(this.nonPrecious.nonPreciousId).subscribe();\r\n }\r\n\r\n getNonPrecious(nonPrecious: Nonprecious) {\r\n this.nonPrecious = nonPrecious;\r\n\r\n this.getHistoryLog(nonPrecious.nonPreciousId);\r\n }\r\n\r\n sortClass(column) {\r\n if (this.sortColumn.find((s) => s.column === column).sort === 'asc') {\r\n return 'fa-arrow-up';\r\n } else if (\r\n this.sortColumn.find((s) => s.column === column).sort === 'desc'\r\n ) {\r\n return 'fa-arrow-down';\r\n }\r\n return '';\r\n }\r\n\r\n onSort(column: string) {\r\n if (\r\n this.checkStringIfEmpty(\r\n this.sortColumn.find((s) => s.column === column).sort,\r\n ) ||\r\n this.sortColumn.find((s) => s.column === column).sort !== 'asc'\r\n ) {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'asc';\r\n this.nonPreciousList.sort((a, b) => {\r\n if (a[column] > b[column]) {\r\n return 1;\r\n }\r\n if (a[column] < b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n } else {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'desc';\r\n this.nonPreciousList.sort((a, b) => {\r\n if (a[column] < b[column]) {\r\n return 1;\r\n }\r\n if (a[column] > b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n LAST UPDATE BY : {{ lastUpdated.username }} / DATE :\r\n {{ formatDate(lastUpdated.date) }}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n\r\n
    \r\n Items: {{ totalNonPrecious }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ID\r\n \r\n NAME\r\n \r\n SKU\r\n \r\n \r\n SUPPLIER SKU\r\n \r\n STOCK QTY\r\n \r\n \r\n SUPPLIER PRICE\r\n
    {{ item.nonPreciousId }}{{ item.name }}{{ item.sku }}{{ item.supplierSku }}{{ item.stockQty }}{{ item.supplierPrice }}
    {{ item.nonPreciousId }}{{ item.name }}{{ item.sku }}{{ item.supplierSku }}{{ item.stockQty }}{{ item.supplierPrice }}
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ITEM NAME / SKU / UOM / STOCK QUANTITY\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n NAME\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n SKU\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {{ unit.uom }}\r\n \r\n \r\n
    \r\n
    \r\n UOM\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n STOCK QTY\r\n
    \r\n
    \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 NAME / SKU / PRICE\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ sups.supplierId }}\r\n \r\n \r\n\r\n
    \r\n
    \r\n SUPPLIER CODE\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n SUPPLIER SKU\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n SUPPLIER 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
    \r\n
    COMMENTS
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n 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
    \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 + New\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport groupBy from 'lodash/groupBy';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { OpenOrder } from 'src/app/models/orders.model';\r\nimport { OrderService } from 'src/app/services/order.service';\r\nimport { WorkOrderPrintDialogComponent } from '../work-order-view/work-order-print/work-order-print-dialog.component';\r\ninterface Filters {\r\n ReceivedFrom: string;\r\n ReceivedTo: string;\r\n DueDateFrom: string;\r\n DueDateTo: string;\r\n CustomerId: number;\r\n ShowOverdueOnly: boolean;\r\n DueCutOff: 'all' | 'today' | 'tomorrow-earlier' | 'next-week-earlier';\r\n OrderType: number[];\r\n}\r\ninterface OpenOrderModel {\r\n productsId?: number;\r\n ordersId?: number;\r\n productName?: string;\r\n type?: string;\r\n picturePath?: string;\r\n ordersLink?: string;\r\n totalBackOrder: number;\r\n items: OpenOrder[];\r\n}\r\n@Component({\r\n selector: 'open-order-report',\r\n templateUrl: './open-order-report.component.html',\r\n styleUrls: ['./open-order-report.component.scss'],\r\n})\r\nexport class OpenOrderReportComponent implements OnInit {\r\n customerList: Array<{ customerId: number; customerName: string }>;\r\n filter: Filters = {\r\n CustomerId: 0,\r\n ReceivedFrom: DateTime.local().minus({ months: 9 }).toFormat('yyyy-MM-dd'),\r\n ReceivedTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n DueDateFrom: null,\r\n DueDateTo: null,\r\n ShowOverdueOnly: false,\r\n DueCutOff: 'all',\r\n OrderType: [-1],\r\n } as Filters;\r\n sortBy: string = 'customername';\r\n sortDirection: string = 'asc';\r\n openOrders: OpenOrderModel[] = [];\r\n totalBackOrder = 0;\r\n orders: OpenOrder[] = [];\r\n isLoading = true;\r\n rawData: OpenOrder[] = [];\r\n orderTypeControl = new FormControl([-1]);\r\n orderTypePreviousValues: number[] = [-1];\r\n isExportingFile = false;\r\n groupType: 'product' | 'order' = 'product';\r\n private debouncer = new Subject();\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private orderService: OrderService,\r\n private userPermissionService: UserPermissionService,\r\n ) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.openOrderReport);\r\n\r\n this.debouncer.pipe(debounceTime(1000)).subscribe(() => {\r\n this.filter.OrderType = this.orderTypeControl.value;\r\n this.getOpenOrders();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getOpenOrders(true);\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filter.ReceivedFrom = start;\r\n this.filter.ReceivedTo = end;\r\n this.getOpenOrders();\r\n }\r\n\r\n getOpenOrders(isInitial = false) {\r\n this.isLoading = true;\r\n this.orderService\r\n .getOpenOrder({\r\n CustomerId: this.filter.CustomerId,\r\n FromDate: this.filter.ReceivedFrom,\r\n ToDate: this.filter.ReceivedTo,\r\n OrderBy: this.sortBy,\r\n SortDirection: this.sortDirection,\r\n ShowOverdueOnly: this.filter.ShowOverdueOnly,\r\n OrderType: this.filter.OrderType,\r\n })\r\n .subscribe(({ data, customers }) => {\r\n if (isInitial) {\r\n this.customerList = orderBy(customers, 'companyName');\r\n }\r\n this.isLoading = false;\r\n this.rawData = [...data];\r\n this.onChangeDueCutOff();\r\n });\r\n }\r\n\r\n onSortChange() {\r\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\r\n this.getOpenOrders();\r\n }\r\n\r\n onGroupByProduct(orders: OpenOrder[]) {\r\n return orders.reduce((accum, order) => {\r\n const productIndex = accum.findIndex(\r\n (i) => i.productsId === order.productsId && i.type === order.type,\r\n );\r\n\r\n if (productIndex >= 0) {\r\n const productDetail = accum[productIndex];\r\n order.link = `/main/orders/${order.ordersId}`;\r\n order.materialPrintColor1Hex = `#${order.materialPrintColor1}`;\r\n productDetail.items.push(order);\r\n productDetail.totalBackOrder =\r\n productDetail.totalBackOrder + (order.backOrder ?? 0);\r\n accum[productIndex] = productDetail;\r\n } else {\r\n const productDetail = {} as OpenOrderModel;\r\n order.link = `/main/orders/${order.ordersId}`;\r\n order.materialPrintColor1Hex = `#${order.materialPrintColor1}`;\r\n productDetail.productName = order.productName;\r\n productDetail.picturePath = order.picturePath;\r\n productDetail.items = [order];\r\n productDetail.totalBackOrder = order.backOrder ?? 0;\r\n productDetail.productsId = order.productsId;\r\n productDetail.type = order.type;\r\n accum.push(productDetail);\r\n }\r\n return accum;\r\n }, []);\r\n }\r\n\r\n onGroupByOrders(orders: OpenOrder[]): OpenOrderModel[] {\r\n const grouped: Record = groupBy(orders, 'ordersId');\r\n return Object.keys(grouped).map((key) => {\r\n const items = grouped[+key];\r\n return {\r\n ordersId: +key,\r\n totalBackOrder: items.reduce((total, o) => total + o.backOrder, 0),\r\n ordersLink: `/main/orders/${key}`,\r\n items: items.map((i) => ({\r\n ...i,\r\n link: `/main/orders/${i.ordersId}`,\r\n materialPrintColor1Hex: `#${i.materialPrintColor1}`,\r\n })),\r\n };\r\n });\r\n }\r\n\r\n onParseOpenOrders(orders: OpenOrder[]) {\r\n this.onGroupByOrders(orders);\r\n this.openOrders =\r\n this.groupType === 'product'\r\n ? this.onGroupByProduct(orders)\r\n : this.onGroupByOrders(orders);\r\n this.totalBackOrder = this.openOrders.reduce(\r\n (total, o) => total + o.totalBackOrder,\r\n 0,\r\n );\r\n }\r\n\r\n onChangeDueDate({ start, end }) {\r\n this.filter.DueDateFrom = start;\r\n this.filter.DueDateTo = end;\r\n this.onChangeDueCutOff();\r\n }\r\n\r\n onSelectionChange() {\r\n const currentValue = this.orderTypeControl.value;\r\n let values = currentValue;\r\n const currentSelection = currentValue.find(\r\n (v) => !this.orderTypePreviousValues.includes(v),\r\n );\r\n\r\n if (currentSelection === -1 || currentValue?.length === 0) {\r\n values = [-1];\r\n } else if (currentValue?.length > 1) {\r\n values = currentValue.filter((o) => o !== -1);\r\n }\r\n this.orderTypeControl.setValue(values);\r\n this.orderTypePreviousValues = values;\r\n this.debouncer.next();\r\n }\r\n\r\n onChangeDueCutOff() {\r\n const dateFilter = DateTime.fromISO(this.filter.DueDateTo);\r\n const data =\r\n this.filter.DueDateTo == null\r\n ? [...this.rawData]\r\n : this.rawData.filter((d) => {\r\n const dueDate = DateTime.fromISO(d.dueDate.split('T')?.[0]);\r\n return dueDate <= dateFilter;\r\n });\r\n this.onParseOpenOrders([...data]);\r\n }\r\n\r\n onPrintWorkOrder(order: OpenOrder) {\r\n if (order.workOrdersId <= 0) return;\r\n this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder: {\r\n printedDate: order.printedDate,\r\n releasedDate: order.releasedDate,\r\n dateClosed: order.dateClosed,\r\n workOrdersId: order.workOrdersId,\r\n },\r\n },\r\n });\r\n }\r\n\r\n onPrint() {\r\n window.print();\r\n }\r\n\r\n onDownloadExcelFile() {\r\n this.isExportingFile = true;\r\n this.orderService\r\n .exportOpenOrderToExcel({\r\n CustomerId: this.filter.CustomerId,\r\n FromDate: this.filter.ReceivedFrom,\r\n ToDate: this.filter.ReceivedTo,\r\n OrderBy: this.sortBy,\r\n SortDirection: this.sortDirection,\r\n ShowOverdueOnly: this.filter.ShowOverdueOnly,\r\n OrderType: this.filter.OrderType,\r\n })\r\n .subscribe((response) => {\r\n const blob = new Blob([response], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n const customerName = this.customerList.find(\r\n (c) => c.customerId === this.filter.CustomerId,\r\n )?.customerName;\r\n a.download = `open_order_${customerName ?? ''}.xlsx`;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n this.isExportingFile = false;\r\n });\r\n }\r\n onChangeGroupType(type: 'product' | 'order') {\r\n this.groupType = type;\r\n this.onChangeDueCutOff();\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Filter by customer\r\n \r\n ALL\r\n \r\n {{ customer.customerName }}\r\n \r\n \r\n \r\n \r\n Filter by order type\r\n \r\n All\r\n Standard\r\n Internal\r\n Online\r\n Repair\r\n \r\n \r\n \r\n \r\n \r\n \r\n Sort by\r\n \r\n Customer\r\n Due Date\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Show Late Order Only\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n

    Loading Orders...

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n No Data Available\r\n
    \r\n
    0\">\r\n
    \r\n
    Total Back Order
    \r\n
    {{ totalBackOrder | number : '1.0-0' }}
    \r\n
    \r\n 0\"\r\n (click)=\"onDownloadExcelFile()\"\r\n [disabled]=\"isExportingFile\"\r\n >\r\n Export to Excel\r\n \r\n
    \r\n
    \r\n \r\n \r\n Product Group\r\n \r\n \r\n Order Group\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Name:
    \r\n
    {{ item.productName }}
    \r\n
    \r\n
    \r\n
    Order #:
    \r\n \r\n
    \r\n
    \r\n
    Total On BO:
    \r\n
    {{ item.totalBackOrder }}
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Name\r\n Work Order #PO #Back Order #CustomerDue DateMetalSizeStone Type
    {{ order.productName }}\r\n {{ order.workOrdersId }}\r\n \r\n \r\n {{ order.poExternal || order.poInternal }}\r\n \r\n {{ order.backOrder }}\r\n {{ order.customerName }}\r\n \r\n {{ order.dueDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {{ order.materialCode }}\r\n \r\n \r\n \r\n \r\n \r\n {{ order.materialCode }}\r\n \r\n
    {{ order.size }}{{ order.stoneType }}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport groupBy from 'lodash/groupBy';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { forkJoin, of } from 'rxjs';\r\nimport { delay } from 'rxjs/operators';\r\nimport { fadeAnimation } from 'src/app/animations/fade-animation';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { STONE_OPEN_ORDER_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/stone-open-order-report-permission';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { StoneOpenOrder } from 'src/app/models/orders.model';\r\nimport { OrderService } from 'src/app/services/order.service';\r\nimport { WorkOrderService } from 'src/app/services/work-order.service';\r\nimport { StoneService } from '../riva-gems/stone.service';\r\nimport { WorkOrderPrintDialogComponent } from '../work-order-view/work-order-print/work-order-print-dialog.component';\r\nimport { WorkOrdersReleaseComponent } from '../work-order-view/work-orders-release.component';\r\nimport { StoneItem } from './stone-receiving-dialog/stone-item';\r\nimport { StoneReceivingDialogComponent } from './stone-receiving-dialog/stone-receiving-dialog.component';\r\nimport { StoneReleaseHistoryDialogComponent } from './stone-release-history-dialog/stone-release-history-dialog.component';\r\n\r\ninterface Filters {\r\n CustomerId: number;\r\n StoneReleased: number;\r\n}\r\ninterface StoneOpenOrderModel {\r\n productsId: number;\r\n productName: string;\r\n type: string;\r\n picturePath: string;\r\n totalBackOrder: number;\r\n items: StoneOpenOrder[];\r\n}\r\n\r\n@Component({\r\n selector: 'open-order-stone-report',\r\n templateUrl: './open-order-stone-report.component.html',\r\n styleUrls: ['./open-order-stone-report.component.scss'],\r\n animations: [fadeAnimation],\r\n})\r\nexport class OpenOrderStoneReportComponent implements OnInit {\r\n @ViewChild('errorWorkOrder')\r\n public readonly errorWorkOrder!: SwalComponent;\r\n\r\n @ViewChild('successRelease')\r\n public readonly successRelease!: SwalComponent;\r\n\r\n error: { title: string; description: string } = {\r\n title: '',\r\n description: '',\r\n };\r\n customerList: Array<{ customerId: number; customerName: string }>;\r\n filter: Filters = {\r\n CustomerId: 0,\r\n StoneReleased: 2,\r\n } as Filters;\r\n sortBy: string = 'customername';\r\n sortDirection: string = 'asc';\r\n openOrders: StoneOpenOrderModel[] = [];\r\n rawOrders: StoneOpenOrder[] = [];\r\n orders: StoneOpenOrder[] = [];\r\n isLoading = true;\r\n searchQuery = '';\r\n isScanning = false;\r\n hasError = false;\r\n featureKey = STONE_OPEN_ORDER_FEATURE_KEY;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private orderService: OrderService,\r\n private workOrderService: WorkOrderService,\r\n private stoneService: StoneService,\r\n private userPermissionService: UserPermissionService\r\n ) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.stoneOpenOrderReport);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getOpenOrders(true);\r\n }\r\n\r\n getOpenOrders(isInitial = false) {\r\n this.orderService\r\n .getStoneOpenOrder({\r\n CustomerId: this.filter.CustomerId,\r\n Status: this.filter.StoneReleased,\r\n OrderBy: this.sortBy,\r\n SortDirection: this.sortDirection,\r\n Take: 0,\r\n })\r\n .subscribe(({ data, customers }) => {\r\n if (isInitial) {\r\n this.customerList = orderBy(customers, 'companyName');\r\n }\r\n this.isLoading = false;\r\n this.rawOrders = [...data];\r\n this.onFilter();\r\n });\r\n }\r\n\r\n onFilter() {\r\n const filteredData =\r\n this.searchQuery !== ''\r\n ? this.rawOrders.filter((o) =>\r\n o.workOrdersId.toString().includes(this.searchQuery),\r\n )\r\n : [...this.rawOrders];\r\n this.onParseOpenOrders(filteredData);\r\n }\r\n\r\n onSortChange() {\r\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\r\n this.getOpenOrders();\r\n }\r\n\r\n onParseOpenOrders(orders: StoneOpenOrder[]) {\r\n this.openOrders = orders.reduce((accum, order) => {\r\n const productIndex = accum.findIndex(\r\n (i) => i.productsId === order.productsId && i.type === order.type,\r\n );\r\n\r\n if (productIndex >= 0) {\r\n const productDetail = accum[productIndex];\r\n order.link = `/main/orders/${order.ordersId}`;\r\n order.materialPrintColor1Hex = `#${order.materialPrintColor1}`;\r\n productDetail.items.push(order);\r\n productDetail.totalBackOrder =\r\n productDetail.totalBackOrder + (order.backOrder ?? 0);\r\n accum[productIndex] = productDetail;\r\n } else {\r\n const productDetail = {} as StoneOpenOrderModel;\r\n order.link = `/main/orders/${order.ordersId}`;\r\n order.materialPrintColor1Hex = `#${order.materialPrintColor1}`;\r\n productDetail.productName = order.productName;\r\n productDetail.picturePath = order.picturePath;\r\n productDetail.items = [order];\r\n productDetail.totalBackOrder = order.backOrder ?? 0;\r\n productDetail.productsId = order.productsId;\r\n productDetail.type = order.type;\r\n accum.push(productDetail);\r\n }\r\n return accum;\r\n }, []);\r\n\r\n this.openOrders = this.openOrders.map((o) => ({\r\n ...o,\r\n items: Object.values(groupBy(o.items, 'workOrdersId')),\r\n }));\r\n }\r\n\r\n onPrintWorkOrder(order: StoneOpenOrder) {\r\n if (order.workOrdersId <= 0) return;\r\n this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder: {\r\n printedDate: order.printedDate,\r\n releasedDate: order.releasedDate,\r\n dateClosed: order.dateClosed,\r\n workOrdersId: order.workOrdersId,\r\n },\r\n },\r\n });\r\n }\r\n onOpenHistoryDialog() {\r\n this.dialog.open(StoneReleaseHistoryDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1300px',\r\n width: '100%',\r\n autoFocus: false,\r\n });\r\n }\r\n\r\n onPrint() {\r\n window.print();\r\n }\r\n\r\n onScanWorkOrder() {\r\n const minimumScanningTime$ = of(true).pipe(delay(1500));\r\n const dialogRef = this.dialog.open(WorkOrdersReleaseComponent, {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n data: {\r\n workOrders: [],\r\n action: 'get-work-order-id',\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((workOrderId) => {\r\n if (workOrderId) {\r\n this.isScanning = true;\r\n this.workOrderService.validateStoneRelease(workOrderId).subscribe(\r\n ({ status }) => {\r\n if (status === 1) {\r\n setTimeout(() => {\r\n this.isScanning = false;\r\n this.showErrorOnRelease();\r\n }, 1000);\r\n } else {\r\n forkJoin([\r\n this.workOrderService.getWorkOrderStones(workOrderId),\r\n minimumScanningTime$,\r\n ]).subscribe(\r\n ([data]) => {\r\n this.isScanning = false;\r\n if (data.length === 0) {\r\n this.showErrorOnRelease();\r\n } else {\r\n this.openStoneSummary(data, workOrderId);\r\n }\r\n },\r\n () => {\r\n this.showErrorOnRelease();\r\n },\r\n );\r\n }\r\n },\r\n () => {\r\n this.hasError = true;\r\n setTimeout(() => {\r\n document.getElementById('error-close-button').focus();\r\n }, 100);\r\n },\r\n );\r\n }\r\n });\r\n }\r\n\r\n onCloseErrorMessage() {\r\n this.isScanning = false;\r\n this.hasError = false;\r\n }\r\n\r\n showErrorOnRelease() {\r\n this.error.title = 'Stone Released';\r\n this.error.description =\r\n 'The stones for this work order has already been released.';\r\n setTimeout(() => {\r\n this.errorWorkOrder.fire();\r\n }, 100);\r\n }\r\n\r\n openStoneSummary(data: StoneItem[], workOrderId) {\r\n const dialogResponse = this.dialog.open(StoneReceivingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1200px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n items: data,\r\n workOrderId,\r\n },\r\n });\r\n\r\n dialogResponse.afterClosed().subscribe((updatedData) => {\r\n if (updatedData != null && Array.isArray(updatedData)) {\r\n const customerId = this.rawOrders.find(\r\n (o) => o.workOrdersId === +workOrderId,\r\n )?.customerId;\r\n this.workOrderService\r\n .releaseStoneByWorkOrderId({\r\n workOrderId,\r\n details: updatedData.map((u) => ({\r\n workOrdersDetailsID: u.workOrdersDetailsId,\r\n stonesId: u.stonesID,\r\n qty: u.totalStoneQty > 0 ? -u.totalStoneQty : 0,\r\n customerProvided: u.customerProvided ? customerId : 0,\r\n })),\r\n })\r\n .subscribe(\r\n () => {\r\n setTimeout(() => {\r\n this.successRelease.fire();\r\n }, 100);\r\n this.getOpenOrders();\r\n },\r\n () => {\r\n this.showErrorOnRelease();\r\n },\r\n );\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Search by WKO Number\r\n \r\n \r\n \r\n Filter by customer\r\n \r\n ALL\r\n \r\n {{ customer.customerName }}\r\n \r\n \r\n \r\n \r\n Filter by stones released\r\n \r\n ALL\r\n Stone Released\r\n Stone Unreleased\r\n \r\n \r\n \r\n Sort by\r\n \r\n Customer\r\n Due Date\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Release\r\n \r\n \r\n \r\n Release History\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n

    Loading Orders...

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n No Data Available\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Name:
    \r\n
    {{ item.productName }}
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \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
    Work Order #TypeCutClarityColorSizeLab GrownTraceableCustomer ProvidedTotal QtyReleased Date
    \r\n {{ order.workOrdersId }}\r\n \r\n {{ order.stoneType }}\r\n {{ order.stoneCut }}{{ order.stoneClarity }}{{ order.stoneColor }}{{ order.stoneSize }}{{ order.labGrown ? 'Yes' : 'No' }}{{ order.traceable ? 'Yes' : 'No' }}{{ order.customerProvided ? 'Yes' : 'No' }}{{ order.totalStoneQty }}{{ order.stonereleasedate | date : 'MM/dd/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
    Scanning
    \r\n
    \r\n
    Oops! Something Went Wrong
    \r\n

    \r\n We’re sorry, but we’re experiencing an issue. Please verify that\r\n the work order number is correct.\r\n

    \r\n \r\n Close\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { StoneItem } from './stone-item';\r\n\r\n@Component({\r\n selector: 'stone-receiving-dialog',\r\n templateUrl: './stone-receiving-dialog.component.html',\r\n styleUrls: ['./stone-receiving-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class StoneReceivingDialogComponent implements OnInit {\r\n displayedColumns: string[] = [\r\n 'picturePath',\r\n 'stoneType',\r\n 'stoneCut',\r\n 'stoneClarity',\r\n 'stoneColor',\r\n 'stoneSize',\r\n 'labGrown',\r\n 'traceable',\r\n 'stoneQty',\r\n 'carat',\r\n 'customerProvided',\r\n ];\r\n items: StoneItem[] = [];\r\n isSelectedAll = true;\r\n isSomeSelected = false;\r\n isReceiving = false;\r\n requiredWeight = true;\r\n focusItemIndex = 0;\r\n customersList: Customers[];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { items: StoneItem[]; workOrderId: number },\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n onReleaseStones() {\r\n this.dialogRef.close(this.props.items ?? []);\r\n }\r\n onCaratChange(item: StoneItem) {\r\n item.totalStoneQty = !item.carat\r\n ? item.maxQty\r\n : Math.round(item.carat / (item.caratsPerUnit ?? 0));\r\n }\r\n\r\n onQuantityChange(item: StoneItem) {\r\n item.carat = !item.totalStoneQty\r\n ? item.maxCarat\r\n : parseFloat((item.totalStoneQty * item.caratsPerUnit).toFixed(4));\r\n }\r\n\r\n get isFormValid() {\r\n return this.props.items.some((i) => i.totalStoneQty >= 0);\r\n }\r\n}\r\n","

    Stones for Work Order {{ props.workOrderId }}

    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    Picture\r\n \r\n \r\n \r\n Type{{ element.stoneType }}Cut{{ element.stoneCut }}Clarity{{ element.stoneClarity }}Color{{ element.stoneColor }}Size{{ element.stoneSize }}Lab Grown\r\n {{ element.labGrown ? 'Yes' : 'No' }}\r\n Traceable\r\n {{ element.traceable ? 'Yes' : 'No' }}\r\n Qty\r\n \r\n Carat\r\n \r\n \r\n Customer Provided\r\n \r\n
    No Available Data
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Release\r\n \r\n \r\n\r\n","import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport groupBy from 'lodash/groupBy';\r\nimport { DateTime } from 'luxon';\r\nimport { StoneOpenOrder } from 'src/app/models/orders.model';\r\nimport { OrderService } from 'src/app/services/order.service';\r\nimport { StoneReleaseService } from 'src/app/services/stone-release.service';\r\n\r\nexport interface GroupBy {\r\n releasedDate: string;\r\n isGroupBy: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'stone-release-history-dialog',\r\n templateUrl: './stone-release-history-dialog.component.html',\r\n styleUrls: ['./stone-release-history-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class StoneReleaseHistoryDialogComponent implements OnInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns: string[] = [\r\n 'productName',\r\n 'stoneType',\r\n 'stoneCut',\r\n 'stoneClarity',\r\n 'stoneColor',\r\n 'stoneSize',\r\n 'labGrown',\r\n 'traceable',\r\n 'qtyMoved',\r\n 'customerProvided',\r\n 'stonereleasedate',\r\n ];\r\n\r\n history = new MatTableDataSource([]);\r\n historyRaw: StoneOpenOrder[] = [];\r\n historyFiltered: StoneOpenOrder[] = [];\r\n searchQuery = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private orderService: OrderService,\r\n private stoneReleaseService: StoneReleaseService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.stoneReleaseService.getStoneReleaseHistory().subscribe(({ data }) => {\r\n this.historyRaw = data;\r\n this.processReleaseHistory(data);\r\n });\r\n }\r\n\r\n onFilter() {\r\n const data = this.historyRaw.filter((v) =>\r\n v.workOrdersId?.toString().includes(this.searchQuery.toLowerCase()),\r\n );\r\n this.processReleaseHistory(data);\r\n }\r\n\r\n processReleaseHistory(data) {\r\n const releaseDateGroup = data.reduce((accum, d) => {\r\n const releasedDate = DateTime.fromISO(d.stonereleasedate).toFormat(\r\n 'yyyy-MM-dd',\r\n );\r\n const isExist = accum.some((x) => x.workOrdersId === d.workOrdersId);\r\n if (isExist) return accum;\r\n return [\r\n ...accum,\r\n {\r\n releasedDate,\r\n workOrdersId: d.workOrdersId,\r\n },\r\n ];\r\n }, []);\r\n const group = groupBy(data, 'workOrdersId');\r\n this.history.data = releaseDateGroup.reduce((historyData, g) => {\r\n return [\r\n ...historyData,\r\n { label: g.workOrdersId, isGroupBy: true },\r\n ...group[g.workOrdersId],\r\n ];\r\n }, []);\r\n }\r\n\r\n // ngAfterViewInit(): void {\r\n // this.history.filterPredicate = (data: User, filterValue: string) => {\r\n // const { search } = JSON.parse(filterValue) ?? {};\r\n // const searchFilter =\r\n // data.fullName\r\n // ?.toString()\r\n // .toLowerCase()\r\n // .includes(search?.toLowerCase()) ||\r\n // data.userName?.toLowerCase().includes(search?.toLowerCase());\r\n // return searchFilter;\r\n // };\r\n // }\r\n\r\n isGroup(index, item): boolean {\r\n return item.isGroupBy;\r\n }\r\n}\r\n","\r\n Stones Release 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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{{ element.productName }}Type{{ element.stoneType }}Cut{{ element.stoneCut }}Clarity{{ element.stoneClarity }}Color{{ element.stoneColor }}Size{{ element.stoneSize }}Lab Grown\r\n {{ element.labGrown ? 'Yes' : 'No' }}\r\n Traceable\r\n {{ element.traceable ? 'Yes' : 'No' }}\r\n Qty\r\n {{ element.qtyMoved }}\r\n Customer\r\n {{ element.customerName }}\r\n Customer Provided\r\n {{ element.customerProvided ? 'Yes' : 'No' }}\r\n Released Date\r\n {{ element.stonereleasedate | date : 'MM/dd/yyyy' }}\r\n \r\n Work Order:\r\n {{ groupBy.label }}\r\n
    No Available Data
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n Close\r\n \r\n \r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomerAddOns } from 'src/app/models/customer';\r\nimport { OrdersDetails } from 'src/app/models/orders.model';\r\n\r\n@Component({\r\n selector: 'customer-add-ons',\r\n templateUrl: './customer-add-ons.component.html',\r\n styleUrls: ['./customer-add-ons.component.scss'],\r\n})\r\nexport class CustomerAddOnsComponent {\r\n @Input() customerAddOns: CustomerAddOns[] = [];\r\n @Input() orderDetails: OrdersDetails = new OrdersDetails();\r\n @Input() disabled: boolean = false;\r\n\r\n onCheckItem(id) {\r\n if (this.orderDetails.addOns == null) {\r\n this.orderDetails.addOns = {\r\n [id]: {\r\n orderDetailsCustomPriceAddOnsID: 0,\r\n checked: true,\r\n },\r\n };\r\n } else {\r\n this.orderDetails.addOns[id] = {\r\n orderDetailsCustomPriceAddOnsID:\r\n this.orderDetails.addOns[id]?.orderDetailsCustomPriceAddOnsID ?? 0,\r\n checked: !this.orderDetails.addOns[id]?.checked,\r\n };\r\n }\r\n }\r\n}\r\n","
    \r\n

    Add-ons

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {{ item.name }} ({{ item.price | currency }})\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n","import {\r\n Component,\r\n Inject,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { SkuService } from 'src/app/services/sku.service';\r\n\r\n@Component({\r\n selector: 'add-product-by-customer-sku-dialog',\r\n templateUrl: './add-product-by-customer-sku-dialog.component.html',\r\n styleUrls: ['./add-product-by-customer-sku-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AddProductByCustomerSkuDialogComponent implements OnInit {\r\n @ViewChild('searchConfirmation')\r\n public readonly searchConfirmation!: SwalComponent;\r\n customerSku = '';\r\n isSearching = false;\r\n\r\n confirmation: {\r\n icon: string;\r\n title: string;\r\n description: string;\r\n timer?: number;\r\n } = {\r\n icon: 'question',\r\n title: '',\r\n description: '',\r\n };\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: { customerId: number },\r\n public dialogRef: MatDialogRef,\r\n private skuService: SkuService,\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onFindProductByCustomerSku() {\r\n if (!this.customerSku) return;\r\n this.isSearching = true;\r\n this.skuService\r\n .searchSku(this.customerSku, this.data.customerId)\r\n .subscribe((data) => {\r\n if (data.length === 0) {\r\n this.confirmation = {\r\n title: 'Not Found',\r\n description: 'Customer SKU not found.',\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.searchConfirmation.fire();\r\n }, 100);\r\n } else {\r\n this.dialogRef.close(data[0]);\r\n }\r\n this.isSearching = false;\r\n });\r\n }\r\n}\r\n","

    Add Product by Customer SKU

    \r\n\r\n
    \r\n \r\n Customer SKU\r\n \r\n \r\n
    \r\n
    \r\n\r\n\r\n \r\n \r\n Close\r\n \r\n \r\n Find Product\r\n \r\n \r\n\r\n\r\n\r\n\r\n","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LoadService } from './../../..//custom/load-overlay/load-overlay.service';\r\nimport {\r\n GenericComponent,\r\n Guid,\r\n} from './../../../components/generic/generic.component';\r\nimport { AlertService } from './../../../custom/_alert';\r\n\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { OrderdetailsService } from './../orderdetails.service';\r\n\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport orderBy from 'lodash/orderBy';\r\nimport uniqBy from 'lodash/uniqBy';\r\nimport { DateTime } from 'luxon';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport { ORDER_DETAILS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/order-details-permission';\r\nimport { WORK_ORDER_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/work-order-permission';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { CustomerAddOns, Customers } from 'src/app/models/customer';\r\nimport { ProductFindings } from 'src/app/models/findings.model';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport {\r\n OrderDetailsType,\r\n Orders,\r\n OrdersDetails,\r\n} from 'src/app/models/orders.model';\r\nimport {\r\n Product,\r\n ProductEnamel,\r\n ProductVariation,\r\n ProductsInfo,\r\n ProductsRouting,\r\n WorkOrderEnamel,\r\n} from 'src/app/models/product';\r\nimport { ProductSku } from 'src/app/models/sku';\r\nimport { SubItem } from 'src/app/models/sub-item.model';\r\nimport {\r\n WorkOrderDetailsForPrint,\r\n WorkOrderPrintReport,\r\n} from 'src/app/models/work-order';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { InvoiceService } from 'src/app/services/invoice.service';\r\nimport { OrderService } from 'src/app/services/order.service';\r\nimport { getSizeLabel } from 'src/app/services/other-components.service';\r\nimport {\r\n ProductBomService,\r\n sizeMapper,\r\n} from 'src/app/services/product-bom.service';\r\nimport { ProductsRoutingService } from 'src/app/services/products-routing.service';\r\nimport { SubItemService } from 'src/app/services/sub-item.service';\r\nimport { WorkOrderService } from 'src/app/services/work-order.service';\r\nimport { OrderDetailAlt } from '../../riva-chain/riva-chain-finish/models';\r\nimport { ChainRaw } from '../../riva-chain/riva-chain/models';\r\nimport { FINDINGS_TYPE } from '../../riva-findings/constants';\r\nimport {\r\n ProductStone,\r\n StoneSizeOrderDetails,\r\n} from '../../riva-gems/riva-gems.model';\r\nimport { WorkOrderPrintDialogComponent } from '../../work-order-view/work-order-print/work-order-print-dialog.component';\r\nimport { SharedService } from './../../../services/shared.service';\r\nimport { AddProductByCustomerSkuDialogComponent } from './add-product-by-customer-sku-dialog/add-product-by-customer-sku-dialog.component';\r\n\r\nexport const getOrderDetailsSizeDisplayText = ({\r\n dimension1,\r\n dimension2,\r\n dimension3,\r\n}: StoneSizeOrderDetails) => {\r\n const dimensions = [];\r\n if (dimension1) dimensions.push(`${dimension1}mm`);\r\n if (dimension2) dimensions.push(`${dimension2}mm`);\r\n if (dimension3) dimensions.push(`${dimension3}mm`);\r\n return dimensions.join(' x ');\r\n};\r\n\r\nconst getOrderDetailAltProductName = (detail: OrderDetailAlt) => {\r\n if ((detail.otherComponents?.otherComponentsID ?? 0) > 0) {\r\n return detail.otherComponents.longName;\r\n } else if (detail.findings?.findingsId > 0) {\r\n const findingsType = detail.findingsTypes.findingsName\r\n ? `${detail.findingsTypes.findingsName} | `\r\n : '';\r\n return `${findingsType}${\r\n detail.findings.name || sizeMapper(detail.findingsSizes)\r\n }`;\r\n } else if (detail.chain_FinishedID > 0) {\r\n return `Finished${\r\n detail.chainFinished.name ? ' | ' + detail.chainFinished.name : ''\r\n }${\r\n detail.chainFinished?.chainRaw?.sku\r\n ? ' | ' + detail.chainFinished?.chainRaw?.sku?.trim()\r\n : ''\r\n }`;\r\n } else {\r\n return `Unfinished${\r\n detail.chainRaw?.chainStyle?.styleName\r\n ? ' | ' + detail.chainRaw?.chainStyle?.styleName\r\n : ''\r\n }${detail.chainRaw.sku ? ' | ' + detail.chainRaw.sku?.trim() : ''}`;\r\n }\r\n};\r\n\r\nconst getOrderDetailAltSize = (detail: OrderDetailAlt) => {\r\n if ((detail.otherComponentsSizes?.otherComponentsSizesID ?? 0) > 0) {\r\n return getSizeLabel(detail.otherComponentsSizes);\r\n } else if (detail.findings?.findingsId > 0) {\r\n return sizeMapper(detail.findingsSizes);\r\n } else if (detail.chain_FinishedID > 0) {\r\n return detail.chainFinishedSizes.size;\r\n } else {\r\n return detail.chainRawLength ? `${detail.chainRawLength}\"` : '';\r\n }\r\n};\r\n\r\nconst getOrderDetailProductId = (detail: OrderDetailAlt) => {\r\n if ((detail.otherComponents?.otherComponentsID ?? 0) > 0) {\r\n return detail.otherComponents.otherComponentsID;\r\n } else if (detail.findings?.findingsId > 0) {\r\n return detail.findings.findingsId;\r\n } else if (detail.chain_FinishedID > 0) {\r\n return detail.chain_FinishedID;\r\n } else {\r\n return detail.chain_RawID;\r\n }\r\n};\r\n\r\nconst getOrderDetailProductSizeId = (detail: OrderDetailAlt) => {\r\n if ((detail.otherComponentsSizes?.otherComponentsSizesID ?? 0) > 0) {\r\n return detail.otherComponentsSizes.otherComponentsSizesID;\r\n } else if (detail.findings?.findingsId > 0) {\r\n return detail.findingsSizes.findingSizesID;\r\n } else if (detail.chain_FinishedID > 0) {\r\n return detail.chain_FinishedSizesID;\r\n } else {\r\n return detail.chain_RawSizesID;\r\n }\r\n};\r\nconst findingsTabSlugByIndex = {\r\n 0: 'jumprings',\r\n 1: 'posts',\r\n 2: 'flyers',\r\n 3: 'springs',\r\n 4: 'spring-rings',\r\n 5: 'lobster-claws',\r\n 6: 'tags',\r\n};\r\nconst getFindingsSlug = (typeId) => {\r\n switch (typeId) {\r\n case FINDINGS_TYPE.JUMPRINGS:\r\n return 'jumprings';\r\n case FINDINGS_TYPE.POST:\r\n return 'posts';\r\n case FINDINGS_TYPE.FLYER:\r\n return 'flyers';\r\n case FINDINGS_TYPE.SPRING:\r\n return 'springs';\r\n case FINDINGS_TYPE.SPRING_RING:\r\n return 'spring-rings';\r\n case FINDINGS_TYPE.LOBSTER_CLAW:\r\n return 'lobster-claws';\r\n case FINDINGS_TYPE.TAGS:\r\n return 'tags';\r\n default:\r\n return 'jumprings';\r\n }\r\n};\r\n\r\n@Component({\r\n selector: 'orderdetails-list',\r\n templateUrl: './list.component.html',\r\n styleUrls: [\r\n './list.component.scss',\r\n '../../work-order-view/work-order-view.component.scss',\r\n ],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'),\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class ListComponent\r\n extends GenericComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n @ViewChild(MatTable) table: MatTable;\r\n @ViewChild('newOrderDetailsTable') newTable: MatTable;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @Input() _ordersId: number;\r\n @Input() _customerId: number;\r\n @Input() dueDate: Date;\r\n @Input() ordersType: number;\r\n @Input() productList: Product[] = [];\r\n @Input() customersList: Customers[] = [];\r\n @Input() materialCodes: MaterialCode[] = [];\r\n @Output() onLoad = new EventEmitter<{\r\n hasItems: boolean;\r\n hasUnInvoiced: boolean;\r\n }>();\r\n @Output() setLoading = new EventEmitter();\r\n\r\n workOrderFeatureKey = WORK_ORDER_FEATURE_KEY;\r\n orderDetailsFeatureKey = ORDER_DETAILS_FEATURE_KEY;\r\n products: Product[] = [];\r\n // productLookups: Product[] = [];\r\n orderDetails: OrdersDetails[] = [];\r\n allProductsInfo: ProductsInfo[] = [];\r\n order: Orders = {} as Orders;\r\n modalActive: boolean = false;\r\n isAddNewOrderDetail = false;\r\n isAddNewChainOrderDetail = false;\r\n isAddNewOtherComponentOrderDetail = false;\r\n orderDetail: OrdersDetails;\r\n karatItems = [...Array(6).keys()];\r\n enamelVariations: ProductVariation[] = [];\r\n workOrderForPrint: WorkOrderDetailsForPrint = {} as WorkOrderDetailsForPrint;\r\n enamels: WorkOrderEnamel[] = [];\r\n productFindings: ProductFindings[] = [];\r\n selectedWorkOrder: {\r\n dueDate: string;\r\n printedDate: string;\r\n releasedDate: string;\r\n receivedDate: string;\r\n };\r\n\r\n dataSource: OrdersDetails[];\r\n orderDetailsData = new MatTableDataSource([]);\r\n columnProductInfo = ['productName', 'materialCode', 'size'];\r\n columnOthers = [\r\n 'qtyordered',\r\n 'backOrdered',\r\n 'qtyshipped',\r\n 'qtyinvoiced',\r\n 'shipDate',\r\n 'entryDate',\r\n 'dueDate',\r\n 'comment',\r\n 'printAction',\r\n ];\r\n columnsToDisplay = [...this.columnProductInfo, ...this.columnOthers];\r\n\r\n expandedElement: OrdersDetails | null;\r\n selectedDetailId: number;\r\n subItems: SubItem[] = [];\r\n productRoutings: ProductsRouting[] = [];\r\n productEnamels: ProductEnamel[] = [];\r\n isPrintedReport = false;\r\n workOrderDueDate: Date | null;\r\n productStonesConstants: ProductStone[] = [];\r\n productStonesVariations: ProductStone[] = [];\r\n chainOrderDetail: Partial = {} as OrdersDetails;\r\n isAddNewFindingsOrderDetail = false;\r\n findingsOrderDetail: Partial = {} as OrdersDetails;\r\n otherComponentOrderDetail: Partial = {} as OrdersDetails;\r\n isOrderOnline = false;\r\n customerAddOns: CustomerAddOns[] = [];\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n public sharedService: SharedService,\r\n public dialog: MatDialog,\r\n private router: Router,\r\n private enamelService: EnamelService,\r\n private productBomService: ProductBomService,\r\n private workOrderService: WorkOrderService,\r\n private orderService: OrderService,\r\n private orderdetailsService: OrderdetailsService,\r\n private productService: ProductService,\r\n private subItemService: SubItemService,\r\n private productsRoutingService: ProductsRoutingService,\r\n // private materialCodeService: MaterialCodeService,\r\n private userPermissionService: UserPermissionService,\r\n private chainService: ChainService,\r\n private modalService: NgbModal,\r\n private invoiceService: InvoiceService,\r\n private customerService: CustomerService,\r\n private _confirmationService: ConfirmationService,\r\n ) {\r\n super(loadService, alertService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getCustomerAddOns();\r\n this.load(this._customerId, this._ordersId);\r\n this.isOrderOnline = this.ordersType === 2;\r\n this.loadService.reloadOrderDetails = () => {\r\n this.load(this._customerId, this._ordersId);\r\n };\r\n this.sharedService.byPassWorkOrder = () => {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Bypass All Order Items?',\r\n content: 'Click continue to bypass all order item',\r\n confirmLabel: 'Continue',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n const data = this.orderDetails.reduce((items, o) => {\r\n if (!o.workOrder?.workOrderId && !o.bypassWKOs) {\r\n return [\r\n ...items,\r\n {\r\n id: o.ordersDetailsId,\r\n byPass: true,\r\n type: o.orderDetailsType ?? 0,\r\n },\r\n ];\r\n }\r\n return items;\r\n }, []);\r\n\r\n this.invoiceService.byPassWorkOrder(data).subscribe(() => {\r\n this.load(this._customerId, this._ordersId);\r\n });\r\n });\r\n };\r\n }\r\n\r\n getCustomerAddOns() {\r\n this.customerService\r\n .getCustomerAddOnsByCustomerId(this._customerId)\r\n .subscribe((result) => {\r\n this.customerAddOns = result;\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.orderDetailsData.sort = this.sort;\r\n }\r\n\r\n onOpenDetail(detail: OrdersDetails) {\r\n detail.isOpened = true;\r\n this.selectedDetailId =\r\n this.selectedDetailId === detail.ordersDetailsId\r\n ? null\r\n : detail.ordersDetailsId;\r\n }\r\n\r\n checkValidColumns() {\r\n const hasEnamel = this.orderDetails.some(\r\n (detail) => detail.orderDetailsEnamel?.enamelID,\r\n );\r\n const hasStone = this.orderDetails.some(\r\n (detail) => detail.stone?.ordersDetailsStoneId,\r\n );\r\n const hasCiPo = this.orderDetails.some((detail) => detail.cipo?.length);\r\n const hasCustomizedItem = this.orderDetails.some(\r\n (detail) => detail.customized,\r\n );\r\n const columnInfo = [...this.columnProductInfo];\r\n hasEnamel && columnInfo.push('enamel');\r\n hasStone && columnInfo.push('stoneText');\r\n hasCiPo && columnInfo.push('cipo');\r\n hasCustomizedItem && columnInfo.push('customized');\r\n this.columnsToDisplay = [...columnInfo, ...this.columnOthers];\r\n if (this.ordersType === 1 || this.ordersType === 3) {\r\n const cols = ['backOrdered', 'qtyshipped', 'qtyinvoiced'];\r\n this.columnsToDisplay = this.columnsToDisplay.filter(\r\n (c) => !cols.includes(c),\r\n );\r\n }\r\n }\r\n\r\n getChainRawSize(detail: ChainRaw) {\r\n const rawSize = [];\r\n if (detail.linkDim1) rawSize.push(`${detail.linkDim1}mm`);\r\n if (detail.linkDim2) rawSize.push(`${detail.linkDim2}mm`);\r\n if (detail.wireSize) rawSize.push(`${detail.wireSize}mm`);\r\n return rawSize.join(' x ');\r\n }\r\n\r\n load(customerId, ordersId) {\r\n this.setLoading.emit(true);\r\n forkJoin([\r\n this.orderdetailsService.getByOrderId(ordersId),\r\n this.chainService.getChainOrderDetail(ordersId),\r\n ])\r\n .pipe(\r\n map(([orderdetailsList, chainOrderDetails]) => {\r\n this.products = this.productList.filter(\r\n (p) => p.customerCode == customerId || p.customerCode == 5,\r\n );\r\n const chainOrders = chainOrderDetails.map((c) => ({\r\n ordersDetailsId: c.orderDetailsAltID,\r\n ordersId: c.ordersID,\r\n productsId: getOrderDetailProductId(c),\r\n chainType: c.chain_FinishedID > 0,\r\n productsInfoId: 0,\r\n qtyordered: c.qtyOrdered,\r\n qtyshipped: c.qtyshipped,\r\n qtyinvoiced: c.qtyinvoiced,\r\n backOrdered: c.backOrdered,\r\n entryDate: c.entryDate,\r\n dueDate: c.dueDate,\r\n custAdrsId: 0,\r\n comment: c.comment,\r\n materialCodeID: c.materialCodeID,\r\n productSizesID: getOrderDetailProductSizeId(c),\r\n size: getOrderDetailAltSize(c),\r\n materialCode: c.material?.code,\r\n cipo: c.cipo,\r\n customized: c.customized,\r\n productName: getOrderDetailAltProductName(c),\r\n workOrder: c.workOrder,\r\n chainRawLength: c.chain_FinishedID > 0 ? 0 : c.chainRawLength,\r\n shipDate: c.shipDate,\r\n bypassWKOs: c.bypassWKOs,\r\n isFindings: (c.findings?.findingsId ?? 0) > 0,\r\n isOtherComponent: (c.otherComponents?.otherComponentsID ?? 0) > 0,\r\n findingsID: c.findings?.findingsId ?? 0,\r\n findingsSizesID: c.findingsSizes?.findingsSizesID ?? 0,\r\n findingsTypesID: c.findingsTypes?.findingsTypesID ?? 0,\r\n orderDetailsType: OrderDetailsType.OrderDetailsAlt,\r\n }));\r\n\r\n this.orderDetails = [...orderdetailsList, ...chainOrders];\r\n const hasUnInvoiced = this.orderDetails.some(\r\n (o) => o.qtyordered > o.qtyinvoiced,\r\n );\r\n this.onLoad.emit({\r\n hasItems: this.orderDetails.length > 0,\r\n hasUnInvoiced,\r\n });\r\n this.setLoading.emit(false);\r\n\r\n this.checkValidColumns();\r\n this.sharedService.showGenerateWorkOrderAndByPass =\r\n this.orderDetails.some(\r\n (o) => !o.workOrder?.workOrderId && !o.bypassWKOs,\r\n );\r\n this.orderDetailsData.data = this.orderDetails.map((o) => {\r\n const materialCode = this.materialCodes.find(\r\n (m) => m.materialCodeId === o.materialCodeID,\r\n );\r\n return {\r\n ...o,\r\n materialColor: `#${materialCode?.printColor1}`,\r\n primaryMaterialColor: materialCode.multiMetal\r\n ? `#${materialCode.multiMetalPrimaryMaterial?.printColor1}`\r\n : null,\r\n secondaryMaterialColor: materialCode.multiMetal\r\n ? `#${materialCode.multiMetalSecondaryMaterial?.printColor1}`\r\n : null,\r\n workOrder: {\r\n ...o.workOrder,\r\n dueDate: o.workOrder?.dueDate ?? o.dueDate.toString(),\r\n },\r\n };\r\n });\r\n return { orderdetailsList };\r\n }),\r\n )\r\n .subscribe();\r\n }\r\n\r\n workOrderPrintReport: WorkOrderPrintReport = new WorkOrderPrintReport();\r\n\r\n selectPrintReport(reportItem) {\r\n this.workOrderPrintReport = reportItem;\r\n this.workOrderPrintReport.guid = Guid.newGuid();\r\n this.orderService\r\n .getByOrderDetailsId(reportItem.workOrderDetailsId)\r\n .subscribe((result) => {\r\n this.order = result;\r\n });\r\n }\r\n\r\n onSetPrintedDate() {\r\n if (!this.workOrderForPrint.workOrder.workOrdersId) return;\r\n this.workOrderService\r\n .setWorkOrderPrint(this.workOrderForPrint.workOrder.workOrdersId)\r\n .subscribe(() => {\r\n this.orderdetailsService\r\n .getByOrderId(this._ordersId)\r\n .subscribe((data) => {\r\n this.orderDetails = data;\r\n this.orderDetailsData.data = data;\r\n });\r\n });\r\n }\r\n onSetNotPrinted() {\r\n if (!this.workOrderForPrint.workOrder.workOrdersId) return;\r\n this.workOrderService\r\n .setWorkOrderNotPrint(this.workOrderForPrint.workOrder.workOrdersId)\r\n .subscribe(() => {\r\n this.isPrintedReport = false;\r\n this.selectedWorkOrder.printedDate = '';\r\n this.orderdetailsService\r\n .getByOrderId(this._ordersId)\r\n .subscribe((data) => {\r\n this.orderDetails = data;\r\n this.orderDetailsData.data = this.orderDetails;\r\n });\r\n });\r\n }\r\n\r\n routingList(routing: string) {\r\n let list = [];\r\n if (!this.checkStringIfEmpty(routing)) {\r\n list = JSON.parse(routing);\r\n }\r\n return list;\r\n }\r\n\r\n bomList(bom: string) {\r\n let list = [];\r\n if (!this.checkStringIfEmpty(bom)) {\r\n list = JSON.parse(bom);\r\n }\r\n return list;\r\n }\r\n\r\n modalOpen(content) {\r\n this.modalActive = true;\r\n this.modalService.open(content, { ariaLabelledBy: 'modal-basic-title' });\r\n }\r\n\r\n getProductName(id) {\r\n let productname = '';\r\n let product = this.productList.filter((x) => x.productsId == id)[0];\r\n if (product != undefined) {\r\n productname = product.productName;\r\n }\r\n\r\n return productname;\r\n }\r\n\r\n getProductInfoDescByID(productsInfoId) {\r\n let materialsize = '';\r\n let productInfo = this.allProductsInfo.filter(\r\n (x) => x.productsInfoId == productsInfoId,\r\n )[0];\r\n if (productInfo != undefined) {\r\n materialsize = this.getProductInfoDesc(\r\n productInfo.materialCodeId,\r\n productInfo.size,\r\n );\r\n }\r\n\r\n return materialsize;\r\n }\r\n\r\n getProductInfoDesc(materialCodeId: number, size: string) {\r\n let returnStr = '';\r\n\r\n if (materialCodeId == undefined) {\r\n return returnStr;\r\n }\r\n\r\n let materialCode = this.materialCodes.filter(\r\n (x) => x.materialCodeId == materialCodeId,\r\n )[0];\r\n\r\n returnStr = materialCode.code + ' | SZ-' + size;\r\n\r\n return returnStr;\r\n }\r\n\r\n newExpandedElement: OrdersDetails | null;\r\n newOrderDetails: OrdersDetails[] = [];\r\n\r\n newOrderDetail() {\r\n let newOrderDetail = new OrdersDetails();\r\n newOrderDetail.ordersId = this.orderDetails[0].ordersId;\r\n newOrderDetail.custAdrsId = this.orderDetails[0].custAdrsId;\r\n // newOrderDetail.productsId = this.orderDetails[0].productsId;\r\n this.newOrderDetails.push(newOrderDetail);\r\n this.newTable.renderRows();\r\n }\r\n\r\n onPrint($event, details) {\r\n $event.stopPropagation();\r\n this.workOrderService\r\n .getWorkOrderPrintDetail(details.workOrdersID)\r\n .subscribe((data: { workOrderPrintReports: WorkOrderPrintReport[] }) => {\r\n const [reportItem] = data.workOrderPrintReports;\r\n this.selectPrintReport(reportItem);\r\n });\r\n }\r\n return(value) {\r\n return value;\r\n }\r\n\r\n getWKOValue(value) {\r\n let x = '0000000';\r\n let x_split = x.split('');\r\n let value_split = (value + '').split('');\r\n let x_length = x_split.length;\r\n let value_length = value_split.length;\r\n let starting_index = x_length - value_length;\r\n let index = 0;\r\n for (starting_index; starting_index < x_length; starting_index++) {\r\n if (index < value_length) {\r\n x_split[starting_index] = value_split[index];\r\n index++;\r\n }\r\n }\r\n\r\n return x_split.join('');\r\n }\r\n\r\n onAddNewOrderDetail() {\r\n this.orderDetail = new OrdersDetails();\r\n const [orderItem] = this.orderDetails;\r\n this.orderDetail.ordersId = orderItem?.ordersId ?? this._ordersId;\r\n this.orderDetail.custAdrsId = orderItem?.custAdrsId ?? 0;\r\n this.orderDetail.dueDate = this.dueDate ?? new Date();\r\n this.setNewOrderDetailFlag();\r\n }\r\n\r\n onAddNewChainOrderDetail() {\r\n this.chainOrderDetail = new OrdersDetails();\r\n const [orderItem] = this.orderDetails;\r\n this.chainOrderDetail.ordersId = orderItem?.ordersId ?? this._ordersId;\r\n this.chainOrderDetail.custAdrsId = orderItem?.custAdrsId ?? 0;\r\n this.chainOrderDetail.dueDate = this.dueDate ?? new Date();\r\n this.setNewChainOrderDetailFlag();\r\n }\r\n onAddNewFindingsOrderDetail() {\r\n this.findingsOrderDetail = new OrdersDetails();\r\n const [orderItem] = this.orderDetails;\r\n this.findingsOrderDetail.ordersId = orderItem?.ordersId ?? this._ordersId;\r\n this.findingsOrderDetail.custAdrsId = orderItem?.custAdrsId ?? 0;\r\n this.findingsOrderDetail.dueDate = this.dueDate ?? new Date();\r\n this.setNewFindingsOrderDetailFlag();\r\n }\r\n\r\n onAddNewOtherComponentOrderDetail() {\r\n this.otherComponentOrderDetail = new OrdersDetails();\r\n const [orderItem] = this.orderDetails;\r\n this.otherComponentOrderDetail.ordersId =\r\n orderItem?.ordersId ?? this._ordersId;\r\n this.otherComponentOrderDetail.custAdrsId = orderItem?.custAdrsId ?? 0;\r\n this.otherComponentOrderDetail.dueDate = this.dueDate ?? new Date();\r\n this.setNewOtherComponentOrderDetailFlag();\r\n }\r\n\r\n onCancelOrderDetail() {\r\n this.orderDetail = new OrdersDetails();\r\n this.setNewOrderDetailFlag();\r\n }\r\n onCancelChainOrderDetail() {\r\n this.chainOrderDetail = new OrdersDetails();\r\n this.setNewChainOrderDetailFlag();\r\n }\r\n\r\n onOrderDetailSuccess() {\r\n this.selectedDetailId = null;\r\n this.setNewOrderDetailFlag();\r\n this.loadService.reloadOrderDetails();\r\n }\r\n\r\n onOrderDetailUpdateSuccess() {\r\n this.selectedDetailId = null;\r\n }\r\n\r\n onChainOrderDetailSuccess() {\r\n this.selectedDetailId = null;\r\n this.setNewChainOrderDetailFlag();\r\n this.loadService.reloadOrderDetails();\r\n }\r\n\r\n onChainOrderDetailUpdateSuccess() {\r\n this.selectedDetailId = null;\r\n this.loadService.reloadOrderDetails();\r\n }\r\n\r\n onFindingsOrderDetailSuccess() {\r\n this.selectedDetailId = null;\r\n this.setNewFindingsOrderDetailFlag();\r\n this.loadService.reloadOrderDetails();\r\n }\r\n onFindingsOrderDetailUpdateSuccess() {\r\n this.selectedDetailId = null;\r\n this.loadService.reloadOrderDetails();\r\n }\r\n onCancelFindingsOrderDetail() {\r\n this.findingsOrderDetail = new OrdersDetails();\r\n this.setNewFindingsOrderDetailFlag();\r\n }\r\n onOtherComponentOrderDetailSuccess() {\r\n this.selectedDetailId = null;\r\n this.setNewOtherComponentOrderDetailFlag();\r\n this.loadService.reloadOrderDetails();\r\n }\r\n onOtherComponentOrderDetailUpdateSuccess() {\r\n this.selectedDetailId = null;\r\n this.loadService.reloadOrderDetails();\r\n }\r\n onCancelOtherComponentOrderDetail() {\r\n this.otherComponentOrderDetail = new OrdersDetails();\r\n this.setNewOtherComponentOrderDetailFlag();\r\n }\r\n\r\n setNewOrderDetailFlag() {\r\n this.isAddNewOrderDetail = !this.isAddNewOrderDetail;\r\n }\r\n setNewChainOrderDetailFlag() {\r\n this.isAddNewChainOrderDetail = !this.isAddNewChainOrderDetail;\r\n }\r\n setNewFindingsOrderDetailFlag() {\r\n this.isAddNewFindingsOrderDetail = !this.isAddNewFindingsOrderDetail;\r\n }\r\n setNewOtherComponentOrderDetailFlag() {\r\n this.isAddNewOtherComponentOrderDetail =\r\n !this.isAddNewOtherComponentOrderDetail;\r\n }\r\n\r\n onPrintSelectedWorkOrder($event, workOrder, content) {\r\n $event.stopPropagation();\r\n const { workOrderId, printedDate } = workOrder;\r\n this.selectedWorkOrder = {\r\n dueDate: workOrder.dueDate\r\n ? DateTime.fromJSDate(new Date(workOrder.dueDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n printedDate: workOrder.printedDate\r\n ? DateTime.fromJSDate(new Date(workOrder.printedDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n releasedDate: workOrder.releasedDate\r\n ? DateTime.fromJSDate(new Date(workOrder.releasedDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n receivedDate: workOrder.closedDate\r\n ? DateTime.fromJSDate(new Date(workOrder.closedDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n };\r\n this.isPrintedReport = !!printedDate;\r\n this.modalOpen(content);\r\n this.workOrderService\r\n .getWorkOrderForPrint(workOrderId)\r\n .subscribe((data) => {\r\n this.workOrderForPrint = data;\r\n this.getSubItems(data.product.productId);\r\n\r\n if (this.workOrderForPrint.workOrderDetails.length > 1) {\r\n const workOrdersForDueDate =\r\n this.workOrderForPrint.workOrderDetails.map((w) => ({\r\n ...w,\r\n dueDate: DateTime.fromJSDate(\r\n new Date(w.orderDetails.dueDate),\r\n ).toJSDate(),\r\n }));\r\n const [workOrderItem] = orderBy(workOrdersForDueDate, ['dueDate']);\r\n this.workOrderDueDate = workOrderItem.dueDate;\r\n } else {\r\n const [workOrderItem] = this.workOrderForPrint.workOrderDetails;\r\n this.workOrderDueDate = workOrderItem?.orderDetails.dueDate\r\n ? new Date(workOrderItem?.orderDetails.dueDate)\r\n : null;\r\n }\r\n\r\n this.productStonesVariations =\r\n this.workOrderForPrint.workOrderDetails.reduce(\r\n (variations, detail) => {\r\n if (!detail.orderDetails.stone.ordersDetailsStonesID)\r\n return variations;\r\n const stone = {\r\n ...detail.orderDetails.stone,\r\n size: getOrderDetailsSizeDisplayText(\r\n detail.orderDetails.stone.size as StoneSizeOrderDetails,\r\n ),\r\n };\r\n return [...variations, stone];\r\n },\r\n [],\r\n );\r\n\r\n this.getProductRouting(data.product.productId);\r\n this.getProductEnamels(data.product.productId);\r\n this.getProductFindings(data.product.productId);\r\n this.getProductPictures(data.product.productId);\r\n this.getProductStones(data.product.productId);\r\n });\r\n }\r\n\r\n getProductStones(productId) {\r\n this.productBomService\r\n .getProductStones(productId)\r\n .subscribe((productStones) => {\r\n this.productStonesConstants = productStones.filter((s) => !s.variation);\r\n });\r\n }\r\n\r\n getSubItems(productId) {\r\n this.subItemService.getSubItems(productId).subscribe((data) => {\r\n const availableSize = this.workOrderForPrint.workOrderDetails.map(\r\n (detail) => detail.orderDetails.size,\r\n );\r\n this.subItems = data?.map((item) => ({\r\n ...item,\r\n subItemsInfo: item.subItemsInfo\r\n ?.filter((s) => availableSize.includes(s.size))\r\n ?.map((subItemInfo) => ({\r\n ...subItemInfo,\r\n mfgMethodDetails:\r\n subItemInfo?.mfgMethod === 3 ? '' : subItemInfo?.mfgMethodDetails,\r\n stlPath:\r\n subItemInfo?.mfgMethod === 3\r\n ? encodeURI(subItemInfo?.mfgMethodDetails)\r\n : '',\r\n })),\r\n }));\r\n });\r\n }\r\n getProductFindings(productId) {\r\n this.productBomService.getProductFindings(productId).subscribe((data) => {\r\n this.productFindings = data;\r\n });\r\n }\r\n getEnamelVariations(productId) {\r\n this.productService.getProductVariations(productId).subscribe((data) => {\r\n this.enamelVariations = data.filter((variation) =>\r\n this.workOrderForPrint.workOrderDetails.some(\r\n (workOrder) =>\r\n workOrder.orderDetails?.enamel?.enamelSku === variation.enamelSKU,\r\n ),\r\n );\r\n });\r\n }\r\n\r\n getProductEnamels(productId) {\r\n forkJoin([\r\n this.enamelService.getList(),\r\n this.productBomService.getProductEnamel(productId),\r\n ])\r\n .pipe(\r\n map(([enamels, enamelList]) => {\r\n const enamelVariations = enamelList\r\n .filter((e) => e.variation)\r\n .map((v) => {\r\n const enamel =\r\n enamels.find((e) => e.enamelId === v.enamelID) ?? {};\r\n return { ...enamel, ...v };\r\n });\r\n const productEnamels = enamelList\r\n .filter((e) => !e.variation)\r\n .map((p) => {\r\n const enamel =\r\n enamels.find((e) => e.enamelId === p.enamelID) ?? {};\r\n return { ...enamel, ...p };\r\n });\r\n return { productEnamels, enamelVariations };\r\n }),\r\n )\r\n .subscribe(({ productEnamels, enamelVariations }) => {\r\n this.productEnamels = productEnamels.filter((enamel) =>\r\n this.workOrderForPrint.workOrderDetails.some(\r\n (workOrder) =>\r\n workOrder.orderDetails?.enamel?.enamelSku === enamel.enamelSku,\r\n ),\r\n );\r\n\r\n const variations = enamelVariations.filter((enamel) =>\r\n this.workOrderForPrint.workOrderDetails.some(\r\n (workOrder) =>\r\n workOrder.orderDetails?.enamel?.enamelSku === enamel.enamelSku,\r\n ),\r\n );\r\n\r\n this.enamels = uniqBy(\r\n [...productEnamels, ...variations].map(\r\n ({ enamelName, colorHex, enamelSKU, enamelSku }) => ({\r\n enamelName,\r\n colorHex,\r\n enamelSKU: enamelSKU ?? enamelSku,\r\n }),\r\n ),\r\n 'enamelSKU',\r\n );\r\n });\r\n }\r\n\r\n getProductPictures(productId) {\r\n this.productService\r\n .getProductImageList(productId)\r\n .subscribe((data = []) => {\r\n this.workOrderForPrint.product.picture = data[0]?.fileName;\r\n });\r\n }\r\n\r\n getProductRouting(productId) {\r\n this.productsRoutingService\r\n .getProductRoutings(productId)\r\n .subscribe((data) => {\r\n this.productRoutings = data;\r\n });\r\n }\r\n\r\n getFontSize(text = '') {\r\n let fontSize = 45;\r\n if (!text) return `${fontSize}px`;\r\n switch (true) {\r\n case text.length <= 25:\r\n fontSize = 45;\r\n break;\r\n case text.length <= 45:\r\n const size = text.length - 25;\r\n fontSize = 45 - size;\r\n break;\r\n case text.length <= 65:\r\n fontSize = Math.abs((text.length - 45) * 0.35 - 25);\r\n break;\r\n default:\r\n fontSize = 14;\r\n break;\r\n }\r\n return `${fontSize}px`;\r\n }\r\n\r\n hasAccess(key) {\r\n return this.userPermissionService.hasAccess(key);\r\n }\r\n\r\n onDeleteDetail($event, detail: OrdersDetails) {\r\n $event.stopPropagation();\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Order Detail',\r\n content: 'Are you sure you want to delete this order detail?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.orderdetailsService\r\n .deleteOrder(detail.ordersDetailsId, detail.orderDetailsType)\r\n .subscribe();\r\n this.orderDetails = this.orderDetails.filter(\r\n (o) => o.ordersDetailsId !== detail.ordersDetailsId,\r\n );\r\n this.orderDetailsData.data = this.orderDetails;\r\n });\r\n }\r\n onByPassOrder($event, detail: OrdersDetails) {\r\n $event.stopPropagation();\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Bypass this order?',\r\n content: 'Click continue to bypass this order',\r\n confirmLabel: 'Continue',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.invoiceService\r\n .byPassWorkOrder([\r\n {\r\n id: detail.ordersDetailsId,\r\n byPass: true,\r\n type: detail.orderDetailsType ?? 0,\r\n },\r\n ])\r\n .subscribe(() => {\r\n detail.bypassWKOs = true;\r\n const allOrderClosed = this.orderDetails.every(\r\n (o) =>\r\n o.workOrder?.workOrderId ||\r\n o.bypassWKOs ||\r\n o.ordersDetailsId === detail.ordersDetailsId,\r\n );\r\n if (allOrderClosed) {\r\n this.sharedService.showGenerateWorkOrderAndByPass = false;\r\n }\r\n });\r\n });\r\n }\r\n onUndoByPassOrder($event, detail: OrdersDetails) {\r\n $event.stopPropagation();\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Remove the bypass for this order?',\r\n content: 'Click continue to remove the bypass for this order',\r\n confirmLabel: 'Continue',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n\r\n this.orderdetailsService\r\n .bypassWorkOrder({\r\n type: detail.orderDetailsType ?? 0,\r\n id: detail.ordersDetailsId,\r\n byPass: false,\r\n })\r\n .subscribe(() => {\r\n detail.bypassWKOs = false;\r\n this.sharedService.showGenerateWorkOrderAndByPass = true;\r\n });\r\n });\r\n }\r\n\r\n onPrintWorkOrder($event, workOrder) {\r\n $event.stopPropagation();\r\n\r\n const ref = this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder: { ...workOrder, dateClosed: workOrder.closedDate },\r\n },\r\n });\r\n ref.afterClosed().subscribe((isReload) => {\r\n if (isReload) {\r\n this.load(this._customerId, this._ordersId);\r\n }\r\n })\r\n }\r\n\r\n onRedirectToProduct($event, product: OrdersDetails) {\r\n $event.stopPropagation();\r\n if (product.chainType == null && !product.isFindings) {\r\n localStorage.setItem(\r\n 'selected-product-id',\r\n product.productsId?.toString(),\r\n );\r\n this.router.navigate(['/main/products']);\r\n } else if (product.chainType != null && !product.isFindings) {\r\n if (product.chainType) {\r\n localStorage.setItem(\r\n 'selected-chain-finished-id',\r\n product.productsId?.toString(),\r\n );\r\n } else {\r\n localStorage.setItem(\r\n 'selected-chain-raw-id',\r\n product.productsId?.toString(),\r\n );\r\n }\r\n const type = product.chainType ? 'chain-finished' : 'chain-raw';\r\n this.router.navigate([`/items/chain/${type}`]);\r\n } else if (product.isFindings) {\r\n const type = getFindingsSlug(product.findingsTypesID);\r\n localStorage.setItem(\r\n `selected-findings-id-${type}`,\r\n product.productsId?.toString(),\r\n );\r\n this.router.navigate([`/items/findings/${type}`]);\r\n }\r\n }\r\n\r\n onAddProductByCustomerSku() {\r\n const dialogRef = this.dialog.open(AddProductByCustomerSkuDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n customerId: this._customerId,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((data: ProductSku) => {\r\n if (!data) return;\r\n\r\n this.orderDetail = new OrdersDetails();\r\n const [orderItem] = this.orderDetails;\r\n this.orderDetail.ordersId = orderItem?.ordersId ?? this._ordersId;\r\n this.orderDetail.custAdrsId = orderItem?.custAdrsId ?? 0;\r\n this.orderDetail.dueDate = this.dueDate ?? new Date();\r\n this.orderDetail.productsId = data.productsID;\r\n this.orderDetail.materialCodeID = data.productsMaterialsID;\r\n this.orderDetail.productSizesID = data.productsSizesID;\r\n this.orderDetail.enamelId = data.productsBOMEnamelID;\r\n this.orderDetail.stoneId = data.productsBOMStonesID;\r\n this.orderDetail.rawChainId = data.productsBOMChainRawID;\r\n this.orderDetail.finishChainId = data.productsBOMChainFinishedID;\r\n this.orderDetail.isInitialData = true;\r\n\r\n this.setNewOrderDetailFlag();\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n PRODUCT NAME\r\n \r\n \r\n \r\n {{ element.productName }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n MATERIAL AND SIZE\r\n \r\n \r\n {{ element.materialCode }} | SZ-{{ element.size }}\r\n \r\n \r\n\r\n \r\n \r\n METAL\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {{ element.materialCode }}\r\n \r\n \r\n \r\n {{ element.materialCode }}\r\n \r\n \r\n
    \r\n\r\n \r\n \r\n SIZE\r\n \r\n \r\n {{ element.size }}\r\n \r\n \r\n \r\n \r\n LENGTH\r\n \r\n \r\n {{ element.chainRawLength }}\r\n \r\n \r\n\r\n \r\n \r\n ENAMEL\r\n \r\n \r\n
    \r\n
    \r\n {{ element.enamel }}\r\n \r\n \r\n
    \r\n \r\n \r\n STONE\r\n \r\n \r\n {{ element.stoneText }}\r\n \r\n \r\n\r\n \r\n \r\n CI-PO\r\n \r\n \r\n {{ element.cipo }}\r\n \r\n \r\n\r\n \r\n CUSTOMIZED\r\n \r\n \r\n {{ element.customized ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n ORDERED\r\n \r\n {{ element.qtyordered }}\r\n \r\n\r\n \r\n \r\n BACK-ORDERED\r\n \r\n \r\n {{ element.backOrdered }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n SHIPPED\r\n \r\n {{ element.qtyshipped }}\r\n \r\n\r\n \r\n \r\n \r\n INVOICED\r\n \r\n {{ element.qtyinvoiced }}\r\n \r\n\r\n \r\n \r\n \r\n ENTRY DATE\r\n \r\n \r\n {{ element.entryDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n DUE DATE\r\n \r\n \r\n {{ element.dueDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n COMMENT\r\n \r\n {{ element.comment }}\r\n \r\n\r\n \r\n \r\n SHIPPED DATE\r\n \r\n \r\n {{ element.shipDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n\r\n \r\n WKO#\r\n \r\n
    \r\n \r\n Print\r\n \r\n \r\n {{ element.workOrder.workOrderId }}\r\n \r\n \r\n Undo Bypass\r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n Bypass WKO\r\n \r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n\r\n
    \r\n \r\n
    \r\n
    \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 PRODUCT\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n ADD CHAIN\r\n \r\n \r\n ADD FINDINGS\r\n \r\n \r\n ADD OTHER COMPONENT\r\n \r\n\r\n\r\n\r\n \r\n Customer SKUS\r\n \r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { CustomerAddOns, Customers } from 'src/app/models/customer';\r\nimport { Enamel } from 'src/app/models/enamel';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { OrderDetailsEnamel, OrdersDetails } from 'src/app/models/orders.model';\r\nimport { Product, ProductDetail, ProductEnamel } from 'src/app/models/product';\r\nimport { ProductSku } from 'src/app/models/sku';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { OrderdetailsService } from 'src/app/services/orderdetails.service';\r\nimport { PricingAddOnsService } from 'src/app/services/pricing-addons.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { SkuService } from 'src/app/services/sku.service';\r\nimport { GenericComponent } from '../../generic/generic.component';\r\nimport { ProductOrderChain } from '../../riva-chain/riva-chain-product/model';\r\nimport { ProductStone } from '../../riva-gems/riva-gems.model';\r\nimport { SharedService } from './../../../services/shared.service';\r\n@Component({\r\n selector: 'app-new-orderdetails-item',\r\n templateUrl: './new-orderdetails-item.component.html',\r\n styleUrls: ['./new-orderdetails-item.component.scss'],\r\n})\r\nexport class NewOrderdetailsItemComponent\r\n extends GenericComponent\r\n implements OnInit, OnChanges\r\n{\r\n @Input() orderDetails: OrdersDetails = new OrdersDetails();\r\n @Input() customerAddOns: CustomerAddOns[] = [];\r\n @Input() customerId: number;\r\n @Input() productList: Product[] = [];\r\n @Input() customersList: Customers[] = [];\r\n @Input() materialCodes: MaterialCode[] = [];\r\n @Output() onCancel = new EventEmitter();\r\n @Output() onSuccess = new EventEmitter();\r\n productVariations: ProductEnamel[] = [];\r\n productDetail: ProductDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n\r\n noChain = {\r\n chainProductsID: -1,\r\n chainType: false,\r\n name: 'No Chain',\r\n size: '',\r\n };\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private sharedService: SharedService,\r\n private orderDetailsService: OrderdetailsService,\r\n private productService: ProductService,\r\n private productBomService: ProductBomService,\r\n private materialCodeService: MaterialCodeService,\r\n private enamelService: EnamelService,\r\n private customerService: CustomerService,\r\n private skuService: SkuService,\r\n private pricingAddOnsService: PricingAddOnsService,\r\n ) {\r\n super(loadService, alertService);\r\n }\r\n\r\n products: Product[] = [];\r\n productMaterialCodes: MaterialCode[] = [];\r\n materialSizes: string[] = [];\r\n enamelDetail: OrderDetailsEnamel = {} as OrderDetailsEnamel;\r\n enamels: Enamel[] = [];\r\n\r\n product: Product = new Product();\r\n materialCode: MaterialCode = new MaterialCode();\r\n materialSize: string = '';\r\n\r\n productControl = new FormControl();\r\n materialCodeControl = new FormControl();\r\n materialSizeControl = new FormControl();\r\n\r\n filteredProducts: Observable;\r\n filteredMaterialCodes: Observable;\r\n filteredMaterialSizes: Observable;\r\n\r\n productStoneVariationControl = new FormControl();\r\n productStoneVariations: ProductStone[] = [];\r\n productStoneVariation: ProductStone = {} as ProductStone;\r\n filteredProductStoneVariation: Observable;\r\n\r\n productChains: ProductOrderChain[] = [];\r\n productChain: ProductOrderChain = {} as ProductOrderChain;\r\n productChainControl = new FormControl();\r\n filteredProductChains: Observable;\r\n productSkus: ProductSku[] = [];\r\n selectedProductSku: ProductSku = {} as ProductSku;\r\n\r\n displayFn(item: Product): string {\r\n return item && item.productName ? item.productName : '';\r\n }\r\n\r\n displayMatCode(item: MaterialCode): string {\r\n return item && item.code ? item.code : '';\r\n }\r\n\r\n displayMatSize(item: string): string {\r\n return item ? item : '';\r\n }\r\n\r\n private _filterProduct(name: string): Product[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.products.filter(\r\n (option) =>\r\n option.productName.toLowerCase().includes(filterValue) ||\r\n option.productDesc.toLowerCase().includes(filterValue) ||\r\n option.sku.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['productName'];\r\n return this.products.filter(\r\n (option) =>\r\n option.productName\r\n .toLowerCase()\r\n .includes(filterValue.toLowerCase()) ||\r\n option.productDesc\r\n .toLowerCase()\r\n .includes(filterValue.toLowerCase()) ||\r\n option.sku.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.products;\r\n }\r\n\r\n private _filterMatCode(name: string): MaterialCode[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.productMaterialCodes.filter((item) =>\r\n item?.code?.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['code'];\r\n return this.productMaterialCodes.filter((item) =>\r\n item?.code?.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.productMaterialCodes;\r\n }\r\n\r\n private _filterMatSize(name: string): string[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.materialSizes.filter((item) =>\r\n item.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name;\r\n return this.materialSizes.filter((item) =>\r\n item.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.materialSizes;\r\n }\r\n\r\n ngOnInit(): void {\r\n forkJoin([\r\n //this.productService.getList(),\r\n // this.materialCodeService.getList(),\r\n this.enamelService.getList(),\r\n // this.customerService.getList(),\r\n ])\r\n .pipe(\r\n map(([enamels]) => {\r\n const rivaId =\r\n this.customersList.find(\r\n (customer) => customer.customerId.toLowerCase() === 'riva',\r\n )?.custIdno ?? 0;\r\n\r\n const sortedProducts = orderBy(\r\n this.productList.map((p) => ({\r\n ...p,\r\n sortOrder: p.customerCode === rivaId ? 1 : 0,\r\n isRivaProduct: p.customerCode === rivaId,\r\n })),\r\n ['sortOrder'],\r\n );\r\n\r\n if (this.customerId === rivaId) {\r\n this.products = sortedProducts;\r\n } else {\r\n this.products = sortedProducts.filter(\r\n (p) =>\r\n p.customerCode == this.customerId || p.customerCode == rivaId,\r\n );\r\n }\r\n this.enamels = enamels;\r\n }),\r\n )\r\n .subscribe((response) => {\r\n this.initiateFilters();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.orderDetails.productsId) {\r\n this.product = this.productList.find(\r\n (p) => p.productsId === this.orderDetails.productsId,\r\n );\r\n this.enamelDetail.enamelID = this.orderDetails.enamelId;\r\n }\r\n }\r\n\r\n disableMaterialCodes: boolean = true;\r\n disableMaterialSizes: boolean = true;\r\n\r\n initiateFilters() {\r\n this.filteredProducts = this.productControl.valueChanges.pipe(\r\n startWith(this.product.productName),\r\n map((value) => this._filterProduct(value)),\r\n );\r\n this.productControl.valueChanges.subscribe((value) => {\r\n if (!value) {\r\n this.materialCode = new MaterialCode();\r\n this.materialSize = '';\r\n this.filteredMaterialCodes = new Observable();\r\n return;\r\n }\r\n this.filteredMaterialCodes = this.materialCodeControl.valueChanges.pipe(\r\n startWith(this.materialCode.code),\r\n map((value) => this._filterMatCode(value)),\r\n );\r\n });\r\n this.materialCodeControl.valueChanges.subscribe((value) => {\r\n this.materialSizes = [];\r\n this.materialSize = '';\r\n let productInfos = this.product?.productsInfo?.filter(\r\n (x) => x.materialCodeId == value?.materialCodeId,\r\n );\r\n productInfos?.forEach((x) => {\r\n this.materialSizes.push(x.size);\r\n });\r\n this.filteredMaterialSizes = this.materialSizeControl.valueChanges.pipe(\r\n startWith(this.materialSize),\r\n map((value) => this._filterMatSize(value)),\r\n );\r\n });\r\n }\r\n\r\n matCodeDisable: boolean = true;\r\n matSizeDisable: boolean = true;\r\n\r\n productChange(event) {\r\n let matCodesHolder = this.materialCodes;\r\n this.productMaterialCodes = [];\r\n this.orderDetails.productsId = this.product.productsId;\r\n this.product.productsInfo.forEach((x) => {\r\n let item = matCodesHolder.find(\r\n (y) => y.materialCodeId == x.materialCodeId,\r\n );\r\n item && this.productMaterialCodes.push(item);\r\n });\r\n this.matCodeDisable = false;\r\n }\r\n\r\n matCodeChange(event) {\r\n this.matSizeDisable = false;\r\n }\r\n\r\n matSizeChange(event) {\r\n this.orderDetails.productsInfoId = this.product.productsInfo.find(\r\n (x) =>\r\n x.materialCodeId == this.materialCode.materialCodeId &&\r\n x.size == this.materialSize,\r\n ).productsInfoId;\r\n this.disableSaveButton = false;\r\n }\r\n\r\n disableSaveButton: boolean = true;\r\n\r\n save() {\r\n this.loadService.loadContent(true);\r\n const { productsInfo, ordersDetailsId, ...data } = this.orderDetails;\r\n const dueDate = data.dueDate\r\n ? DateTime.fromJSDate(new Date(data.dueDate)).toFormat('yyyy-MM-dd')\r\n : null;\r\n const entryDate = data.entryDate\r\n ? DateTime.fromJSDate(new Date(data.entryDate)).toFormat('yyyy-MM-dd')\r\n : null;\r\n\r\n this.orderDetailsService\r\n .addupdate({ ...data, dueDate, entryDate })\r\n .subscribe((result) => {\r\n this.sharedService.showGenerateWorkOrderAndByPass = true;\r\n const allRequest = result.reduce((requests, id) => {\r\n if (this.enamelDetail?.enamelID) {\r\n requests.push(\r\n this.orderDetailsService.setOrderDetailEnamel({\r\n ...this.enamelDetail,\r\n orderDetailsID: id,\r\n }),\r\n );\r\n }\r\n\r\n if (this.productStoneVariation?.productsBOMStonesID) {\r\n requests.push(\r\n this.orderDetailsService.setOrderDetailsStone({\r\n ordersDetailsID: id,\r\n productsBOMStonesID:\r\n this.productStoneVariation.productsBOMStonesID,\r\n }),\r\n );\r\n }\r\n\r\n if ((this.productChain?.chainProductsID ?? 0) > 0) {\r\n requests.push(\r\n this.orderDetailsService.setOrderDetailsChain({\r\n ordersDetailsChainID: 0,\r\n ordersDetailsID: id,\r\n chainType: this.productChain.chainType,\r\n chainProductsID: this.productChain.chainProductsID,\r\n }),\r\n );\r\n }\r\n\r\n if (\r\n !this.selectedProductSku.productsCustSKUsID &&\r\n this.selectedProductSku.customerSKU\r\n ) {\r\n const payload = {\r\n productsCustSKUsID: 0,\r\n productsID: this.product.productsId,\r\n productsMaterialsID: this.orderDetails.materialCodeID ?? 0,\r\n productsSizesID: this.orderDetails.productSizesID ?? 0,\r\n productsBOMEnamelID: this.enamelDetail?.enamelID ?? 0,\r\n productsBOMStonesID:\r\n this.productStoneVariation?.productsBOMStonesID ?? 0,\r\n productsBOMChainFinishedID: this.productChain?.chainType\r\n ? this.productChain.chainProductsID\r\n : 0,\r\n productsBOMChainRawID: this.productChain?.chainType\r\n ? 0\r\n : this.productChain?.chainProductsID,\r\n customerSKU: this.selectedProductSku.customerSKU,\r\n };\r\n requests.push(this.skuService.setProductSku(payload));\r\n }\r\n\r\n const customerAddOnID = Object.keys(data.addOns ?? {}).reduce(\r\n (addOns, key) => {\r\n const addOn = data.addOns[key] ?? {};\r\n const isSelected = addOn.checked;\r\n if (!isSelected) return addOns;\r\n return [\r\n ...addOns,\r\n {\r\n addOnId: +key,\r\n orderDetailsCustomPriceAddOnsID: 0,\r\n ordersDetailsID: id,\r\n },\r\n ];\r\n },\r\n [],\r\n );\r\n if (customerAddOnID.length > 0) {\r\n customerAddOnID.forEach((addOn) => {\r\n requests.push(\r\n this.pricingAddOnsService.setPricingAddOns({\r\n orderDetailsCustomPriceAddOnsID: 0,\r\n ordersDetailsID: id,\r\n ordersDetailsAltID: 0,\r\n customerAddOnID: [addOn.addOnId],\r\n }),\r\n );\r\n });\r\n }\r\n\r\n return requests;\r\n }, []);\r\n\r\n if (allRequest.length === 0) {\r\n this.loadService.loadContent(false);\r\n this.onSuccess.emit();\r\n return;\r\n }\r\n forkJoin(allRequest).subscribe(() => {\r\n this.loadService.loadContent(false);\r\n this.onSuccess.emit();\r\n });\r\n });\r\n }\r\n\r\n onCancelEvent() {\r\n this.onCancel.emit();\r\n }\r\n\r\n getProductVariation(productId, hasEnamel = false) {\r\n this.productVariations = [];\r\n if (!productId) return;\r\n this.productBomService.getProductEnamel(productId).subscribe((data) => {\r\n this.productVariations = data.reduce((variations, item) => {\r\n if (!item.variation) return variations;\r\n const enamel =\r\n this.enamels.find((e) => e.enamelId === item.enamelID) ?? {};\r\n return [...variations, { ...item, ...enamel }];\r\n }, []);\r\n if (hasEnamel) return;\r\n if (data.length === 1) {\r\n this.enamelDetail.enamelID = data[0].enamelID;\r\n }\r\n });\r\n }\r\n onProductChange() {\r\n const isInitialData = this.orderDetails.isInitialData;\r\n if (!isInitialData) {\r\n this.orderDetails.materialCodeID = 0;\r\n this.orderDetails.productSizesID = 0;\r\n this.enamelDetail = {} as OrderDetailsEnamel;\r\n }\r\n\r\n this.getProductVariation(this.product.productsId);\r\n this.getProductDetail(isInitialData);\r\n this.getProductPictures(this.product.productsId);\r\n this.getProductStone(this.product.productsId, isInitialData);\r\n this.getProductChain(this.product.productsId, isInitialData);\r\n this.getProductSku(this.product.productsId, isInitialData);\r\n\r\n this.orderDetails.isInitialData = false;\r\n }\r\n\r\n getProductSku(productId, isInitialData) {\r\n this.productSkus = [];\r\n if (!productId) return;\r\n this.skuService.getProductSku(productId).subscribe((data) => {\r\n this.productSkus = data;\r\n this.onCheckProductSku();\r\n });\r\n }\r\n getProductPictures(productId) {\r\n this.productService\r\n .getProductImageList(productId)\r\n .subscribe((data = []) => {\r\n this.product.picPath = data[0]?.fileName;\r\n });\r\n }\r\n\r\n getProductDetail(retainValue = false) {\r\n this.productDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n if (this.product.productsId) {\r\n this.productService\r\n .getProductDetail(this.product.productsId)\r\n .subscribe((data) => {\r\n this.productDetail = data;\r\n if (retainValue) return;\r\n if (data.materials.length === 1) {\r\n this.orderDetails.productsMaterialsID =\r\n data.materials[0].productsMaterialsID;\r\n this.orderDetails.materialCodeID =\r\n data.materials[0].materialsCodeID;\r\n }\r\n if (data.productSizes.length === 1) {\r\n this.orderDetails.productSizesID =\r\n data.productSizes[0].productsSizesID;\r\n }\r\n });\r\n }\r\n }\r\n\r\n get isFormValid() {\r\n const isEnamelValid =\r\n !this.productVariations?.length || this.enamelDetail.enamelID != null;\r\n return (\r\n this.orderDetails.productsId &&\r\n this.orderDetails.qtyordered &&\r\n this.orderDetails.dueDate &&\r\n this.orderDetails.materialCodeID &&\r\n this.orderDetails.productSizesID &&\r\n isEnamelValid\r\n );\r\n }\r\n\r\n get selectedMaterial() {\r\n return (\r\n this.productDetail.materials.find(\r\n (m) => m.materialsCodeID === this.orderDetails.materialCodeID,\r\n ) ?? {\r\n material: {\r\n printColor1: '',\r\n description: '',\r\n code: '',\r\n multiMetalPrimaryMaterial: null,\r\n multiMetalSecondaryMaterial: null,\r\n },\r\n }\r\n );\r\n }\r\n\r\n onChangeMaterial() {\r\n this.orderDetails.materialCodeID = this.productDetail.materials.find(\r\n (m) => m.productsMaterialsID === this.orderDetails.productsMaterialsID,\r\n )?.material?.materialCodeId;\r\n }\r\n\r\n getProductStone(productId, hasStone = false) {\r\n if (!productId) return;\r\n this.productBomService.getProductStones(productId).subscribe((data) => {\r\n this.productStoneVariations = data.filter((stone) => stone.variation);\r\n\r\n this.filteredProductStoneVariation =\r\n this.productStoneVariationControl.valueChanges.pipe(\r\n startWith(this.productStoneVariation?.stone),\r\n map((value) => this._filterProductStoneVariation(value)),\r\n );\r\n\r\n if (hasStone) {\r\n this.productStoneVariation = this.productStoneVariations.find(\r\n (p) => p.productsBOMStonesID === this.orderDetails.stoneId,\r\n );\r\n }\r\n });\r\n }\r\n\r\n displayProductStone(item: ProductStone): string {\r\n const labels = [];\r\n if (item?.stone?.stoneType?.name) labels.push(item.stone.stoneType.name);\r\n if (item?.stone?.stoneColor?.colorName)\r\n labels.push(item.stone.stoneColor.colorName);\r\n if (item?.stone?.stoneSize?.displayText)\r\n labels.push(item.overrideStoneSize || item.stone.stoneSize.displayText);\r\n return labels.join(' | ');\r\n }\r\n\r\n private _filterProductStoneVariation(name: string): ProductStone[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name?.toLowerCase();\r\n return this.productStoneVariations.filter(\r\n (option) =>\r\n option.stone?.stoneType?.name?.toLowerCase().includes(filterValue) ||\r\n option.stone?.stoneColor?.colorName\r\n ?.toLowerCase()\r\n .includes(filterValue) ||\r\n option.stone?.stoneSize?.displayText\r\n ?.toLowerCase()\r\n .includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['productName'];\r\n return this.productStoneVariations.filter(\r\n (option) =>\r\n option.stone?.stoneType?.name\r\n .toLowerCase()\r\n .includes(filterValue?.toLowerCase()) ||\r\n option.stone?.stoneColor?.colorName\r\n .toLowerCase()\r\n .includes(filterValue?.toLowerCase()) ||\r\n option.stone?.stoneSize?.displayText\r\n .toLowerCase()\r\n .includes(filterValue?.toLowerCase()),\r\n );\r\n }\r\n return this.productStoneVariations;\r\n }\r\n\r\n getProductChain(productId, hasChain = false) {\r\n forkJoin([\r\n this.productBomService.getProductChainRaw(productId),\r\n this.productBomService.getProductChainFinished(productId),\r\n ]).subscribe(([raw, finished]) => {\r\n const rawMapped = raw.map((r) => ({\r\n chainProductsID: r.productsBOMChainRawID,\r\n chainType: false,\r\n name: r.chainRaw?.chainStyle?.styleName,\r\n size: r.lengthInches.toString(),\r\n }));\r\n const finishedMapped = finished.map((f) => ({\r\n chainProductsID: f.productsBOMChainFinishedID,\r\n chainType: true,\r\n name: f.name,\r\n size: f.chainFinishedSizes.size,\r\n }));\r\n this.productChains = [...finishedMapped, ...rawMapped];\r\n\r\n this.filteredProductChains = this.productChainControl.valueChanges.pipe(\r\n startWith(this.productChain.name),\r\n map((value) => this._filterProductChain(value)),\r\n );\r\n if (hasChain) {\r\n this.productChain = this.productChains.find((c) =>\r\n this.orderDetails.finishChainId > 0\r\n ? c.chainProductsID === this.orderDetails.finishChainId\r\n : c.chainProductsID === this.orderDetails.rawChainId,\r\n );\r\n return;\r\n }\r\n if (this.productChains.length === 1) {\r\n this.productChain = this.productChains[0];\r\n }\r\n });\r\n }\r\n private _filterProductChain(name: string): ProductOrderChain[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name?.toLowerCase();\r\n return this.productChains.filter(\r\n (option) =>\r\n option.name?.toLowerCase().includes(filterValue) ||\r\n option.size?.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['name'];\r\n return this.productChains.filter(\r\n (option) =>\r\n option.name?.toLowerCase().includes(filterValue) ||\r\n option.size?.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.productChains;\r\n }\r\n displayProductChain(item: ProductOrderChain): string {\r\n const labels = [];\r\n if (item?.chainType)\r\n labels.push(item.chainType ? 'Finished' : 'Unfinished');\r\n if (item?.name) labels.push(item.name);\r\n if (item?.size) labels.push(item.size);\r\n return labels.join(' | ');\r\n }\r\n\r\n onCheckProductSku() {\r\n this.selectedProductSku =\r\n this.productSkus.find(\r\n (sku) =>\r\n sku.productsMaterialsID === (this.orderDetails.materialCodeID ?? 0) &&\r\n sku.productsSizesID === (this.orderDetails.productSizesID ?? 0) &&\r\n sku.productsBOMEnamelID === (this.enamelDetail?.enamelID ?? 0) &&\r\n sku.productsBOMStonesID ===\r\n (this.productStoneVariation?.productsBOMStonesID ?? 0) &&\r\n ((this.productChain?.chainType &&\r\n sku.productsBOMChainFinishedID ===\r\n ((this.productChain?.chainProductsID ?? 0) > 0\r\n ? this.productChain?.chainProductsID\r\n : 0)) ||\r\n (!this.productChain?.chainType &&\r\n sku.productsBOMChainRawID ===\r\n ((this.productChain?.chainProductsID ?? 0) > 0\r\n ? this.productChain?.chainProductsID\r\n : 0))),\r\n ) ?? ({} as ProductSku);\r\n }\r\n\r\n get disableCustomerSku() {\r\n const isFormFilled =\r\n this.orderDetails.materialCodeID > 0 &&\r\n this.orderDetails.productSizesID > 0 &&\r\n (this.productVariations.length === 0 || !!this.enamelDetail?.enamelID) &&\r\n (this.productStoneVariations.length === 0 ||\r\n !!this.productStoneVariation?.productsBOMStonesID) &&\r\n (this.productChains.length === 0 ||\r\n (this.productChain?.chainProductsID ?? 0) > 0);\r\n return (\r\n !this.product.productsId ||\r\n this.selectedProductSku.productsCustSKUsID ||\r\n !isFormFilled\r\n );\r\n }\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\r\n \r\n \r\n \r\n
    \r\n
    CUST
    \r\n
    Product Name
    \r\n
    Master SKU
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    CUST
    \r\n
    Product Name
    \r\n
    Master SKU
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ product.customerCodeNavigation?.customerId }}\r\n
    \r\n
    \r\n

    \r\n {{ product.productName }}\r\n

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

    {{ product.sku }}

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

    {{ product.productDesc }}

    \r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{\r\n selectedMaterial.material?.multiMetalPrimaryMaterial.code\r\n }}\r\n /\r\n {{\r\n selectedMaterial.material?.multiMetalSecondaryMaterial.code\r\n }}\r\n
    \r\n \r\n
    \r\n {{ selectedMaterial.material.description }}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {{ mats.material?.multiMetalPrimaryMaterial.code }} /\r\n {{ mats.material?.multiMetalSecondaryMaterial.code }}\r\n \r\n \r\n \r\n {{ mats.material.description }}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Size\r\n \r\n \r\n {{ size.size }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n CI-PO\r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY ORDERED\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n ENTRY DATE\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n DUE DATE\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n COMMENT\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Enamel Variation\r\n \r\n NO-ENAMEL\r\n \r\n
    \r\n
    \r\n [{{ item.pantoneColor }}]\r\n \r\n {{ item.enamelName }}\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Stone Variation\r\n \r\n \r\n \r\n
    \r\n
    Type
    \r\n
    Color
    \r\n
    Clarity
    \r\n
    Size
    \r\n
    Lab Grown
    \r\n
    Traceable
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Type
    \r\n
    Color
    \r\n
    Clarity
    \r\n
    Size
    \r\n
    Lab Grown
    \r\n
    Traceable
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ variation.stone?.stoneType?.name }}\r\n
    \r\n
    \r\n {{ variation.stone?.stoneColor?.colorName ?? '-' }}\r\n
    \r\n
    \r\n {{ variation.stone?.stoneClarity?.name ?? '-' }}\r\n
    \r\n
    \r\n {{\r\n variation.overrideStoneSize ||\r\n (variation.stone?.stoneSize?.displayText ?? '-')\r\n }}\r\n
    \r\n
    \r\n {{ variation.stone?.labGrown ? 'Yes' : 'No' }}\r\n
    \r\n
    \r\n {{ variation.stone?.traceable ? 'Yes' : 'No' }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Chain\r\n \r\n \r\n \r\n
    \r\n
    Type
    \r\n
    Name
    \r\n
    Size/Length
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Type
    \r\n
    Name
    \r\n
    Size/Length
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    No Chain
    \r\n
     
    \r\n
     
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ chain.chainType ? 'Finished' : 'Unfinished' }}\r\n
    \r\n
    \r\n {{ chain.name }}\r\n
    \r\n
    \r\n {{ chain.size }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n
    \r\n 0\"\r\n style=\"grid-column: 1 / span 2; padding: 0 8px\"\r\n >\r\n \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n Custom\r\n \r\n Customer SKU\r\n \r\n \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n \r\n
    \r\n \r\n \r\n\r\n","import { HttpEventType } from '@angular/common/http';\r\nimport {\r\n Component,\r\n ElementRef,\r\n Inject,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { DateTime } from 'luxon';\r\nimport { forkJoin } from 'rxjs';\r\nimport { Product } from 'src/app/models/product';\r\nimport { OrderService } from 'src/app/services/order.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { SharedService } from 'src/app/services/shared.service';\r\nimport { OrderdetailsService } from '../orderdetails.service';\r\nimport { OrderImport } from './order-import';\r\n\r\n@Component({\r\n selector: 'order-upload-dialog',\r\n templateUrl: './order-upload-dialog.component.html',\r\n styleUrls: ['./order-upload-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class OrderUploadDialogComponent implements OnInit {\r\n displayedColumns: string[] = [\r\n 'selection',\r\n 'productShortName',\r\n 'karatMetal',\r\n 'size',\r\n 'cipo',\r\n 'qtyOrdered',\r\n 'dueDate',\r\n 'comments',\r\n ];\r\n orderImports: OrderImport[] = [];\r\n orderImportsFailed: OrderImport[] = [];\r\n hasFailedImports = false;\r\n isUploading = false;\r\n isSubmitting = false;\r\n uploadStatus: 'None' | 'Error' | 'Success' = 'None';\r\n importFailedAccordionLabel = 'Failed Imports';\r\n importSuccessAccordionLabel = 'Successful Imports';\r\n products: Product[];\r\n\r\n @ViewChild('uploadOrderFile') fileUploader: ElementRef;\r\n\r\n constructor(\r\n private orderService: OrderService,\r\n private sharedService: SharedService,\r\n private orderDetailsService: OrderdetailsService,\r\n private productService: ProductService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: {\r\n ordersId: number;\r\n customerId: number;\r\n },\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n uploadOrders(files) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n this.isUploading = true;\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n this.orderService\r\n .uploadOrders(formData, {\r\n customerId: this.props.customerId,\r\n })\r\n .subscribe(\r\n (event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * event.loaded) / event.total) +\r\n '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n const orderImports = event.body as OrderImport[];\r\n this.processOrderImports(orderImports);\r\n\r\n this.fileUploader.nativeElement.value = null;\r\n\r\n if (\r\n orderImports.length &&\r\n orderImports.some((o) => o.productId === 0)\r\n ) {\r\n this.getProductByCustomer();\r\n } else {\r\n this.isUploading = false;\r\n this.uploadStatus = 'Success';\r\n }\r\n }\r\n },\r\n () => {\r\n this.uploadStatus = 'Error';\r\n this.fileUploader.nativeElement.value = null;\r\n },\r\n );\r\n }\r\n\r\n processOrderImports(imports: OrderImport[]) {\r\n this.orderImports = imports\r\n .filter(\r\n (i) =>\r\n (i.productId ?? 0) > 0 &&\r\n (i.materialCodeId ?? 0) > 0 &&\r\n (i.productSizeId ?? 0) > 0 &&\r\n (i.qtyOrdered ?? 0) > 0,\r\n )\r\n .map((s) => ({\r\n ...s,\r\n selected: true,\r\n }));\r\n this.orderImportsFailed = imports\r\n .filter(\r\n (i) =>\r\n (i.productId ?? 0) === 0 ||\r\n (i.materialCodeId ?? 0) === 0 ||\r\n (i.productSizeId ?? 0) === 0 ||\r\n (i.qtyOrdered ?? 0) === 0,\r\n )\r\n .map((f) => ({\r\n ...f,\r\n selected: true,\r\n hasMaterial: f.materialCodeId > 0,\r\n hasSize: f.productSizeId > 0,\r\n hasProduct: f.productId > 0,\r\n hasCIPO: (f.cipo ?? '') !== '',\r\n hasQty: f.qtyOrdered > 0,\r\n hasComments: f.comments != '',\r\n hasDueDate: (f.dueDate ?? '') !== '',\r\n }));\r\n this.hasFailedImports = this.orderImportsFailed.length > 0;\r\n this.importFailedAccordionLabel = `Failed Imports (${\r\n this.orderImportsFailed.length ?? 0\r\n })`;\r\n this.importSuccessAccordionLabel = `Successful Imports (${\r\n this.orderImports.length ?? 0\r\n })`;\r\n }\r\n\r\n get isFormValid() {\r\n const imports = [...this.orderImports, ...this.orderImportsFailed].filter(\r\n (i) => i.selected,\r\n );\r\n return (\r\n imports.length > 0 &&\r\n !imports.some(\r\n (o) =>\r\n (o.productId ?? 0) === 0 ||\r\n (o.materialCodeId ?? 0) === 0 ||\r\n (o.productSizeId ?? 0) === 0 ||\r\n (o.qtyOrdered ?? 0) === 0,\r\n )\r\n );\r\n }\r\n\r\n onSubmit() {\r\n const imports = [...this.orderImports, ...this.orderImportsFailed].filter(\r\n (i) => i.selected,\r\n );\r\n const requests = imports.map((i) => {\r\n const order = {\r\n ordersDetailsId: 0,\r\n ordersId: this.props.ordersId,\r\n productsId: i.productId,\r\n materialCodeID: i.materialCodeId,\r\n productSizesID: i.productSizeId,\r\n qtyordered: i.qtyOrdered,\r\n dueDate: i.dueDate\r\n ? DateTime.fromJSDate(new Date(i.dueDate)).toFormat('yyyy-MM-dd')\r\n : null,\r\n custAdrsId: 0,\r\n comment: i.comments ?? '',\r\n cipo: i.cipo,\r\n customized: false,\r\n };\r\n return this.orderDetailsService.addupdate(order);\r\n });\r\n this.isSubmitting = true;\r\n forkJoin(requests).subscribe(() => {\r\n this.sharedService.showGenerateWorkOrderAndByPass = true;\r\n this.isSubmitting = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n\r\n getProductByCustomer() {\r\n this.productService\r\n .getSearchList({\r\n searchString: '',\r\n customerCode: this.props.customerId,\r\n jewelryType: 0,\r\n productTypeID: 1,\r\n })\r\n .subscribe((response) => {\r\n this.products = JSON.parse(response);\r\n this.isUploading = false;\r\n this.uploadStatus = 'Success';\r\n });\r\n }\r\n\r\n getProductMaterialsAndSizes(row: OrderImport) {\r\n if (row.productId > 0) {\r\n this.productService.getProductDetail(row.productId).subscribe((data) => {\r\n row.materials =\r\n data?.materials.map((m) => ({\r\n materialCodeId: m.materialsCodeID,\r\n code: m.material.code,\r\n description: m.material.description,\r\n })) ?? [];\r\n row.productSizes =\r\n data?.productSizes.map((s) => ({\r\n productsSizesId: s.productsSizesID,\r\n size: s.size,\r\n })) ?? [];\r\n });\r\n }\r\n }\r\n}\r\n","\r\n
    \r\n \r\n \r\n \r\n Upload File\r\n \r\n
    \r\n \r\n
    \r\n \r\n Re-Upload 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 Product\r\n {{\r\n element.productShortName\r\n }}\r\n \r\n \r\n \r\n Material\r\n {{\r\n element.karatMetal\r\n }}\r\n \r\n \r\n \r\n Size\r\n \r\n {{ element.size }}\r\n \r\n \r\n \r\n \r\n CIPO\r\n {{ element.cipo }}\r\n \r\n Due Date\r\n \r\n {{ element.dueDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Qty\r\n {{ element.qtyOrdered }}\r\n \r\n Comments\r\n {{ element.comments }}\r\n \r\n \r\n \r\n
    No Failed Import
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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\r\n {{ element.productShortName }}\r\n Material\r\n {{ element.karatMetal }}\r\n Size\r\n {{ element.size }}\r\n CIPO\r\n {{ element.cipo }}\r\n Due Date\r\n {{ element.dueDate | date : 'MM/dd/yyyy' }}\r\n Qty\r\n {{ element.qtyOrdered }}\r\n Comments\r\n {{ element.comments }}\r\n
    \r\n No Successful Imports\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Uploading\r\n
    \r\n
    \r\n
    Oops! Something Went Wrong
    \r\n

    \r\n We’re sorry, but we’re experiencing an issue.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n Cancel\r\n \r\n \r\n Submit\r\n \r\n
    \r\n \r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\nimport { LoadService } from './../../..//custom/load-overlay/load-overlay.service';\r\nimport { GenericComponent } from './../../../components/generic/generic.component';\r\nimport { AlertService } from './../../../custom/_alert';\r\n\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { OrderdetailsService } from './../orderdetails.service';\r\n\r\nimport { DateTime } from 'luxon';\r\nimport { ORDER_DETAILS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/order-details-permission';\r\nimport { CustomerAddOns, Customers } from 'src/app/models/customer';\r\nimport { Enamel } from 'src/app/models/enamel';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { OrderDetailsEnamel, OrdersDetails } from 'src/app/models/orders.model';\r\nimport { Product, ProductDetail, ProductEnamel } from 'src/app/models/product';\r\nimport { ProductSku } from 'src/app/models/sku';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { PricingAddOnsService } from 'src/app/services/pricing-addons.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { SkuService } from 'src/app/services/sku.service';\r\nimport { ProductOrderChain } from '../../riva-chain/riva-chain-product/model';\r\nimport { ProductStone } from '../../riva-gems/riva-gems.model';\r\n\r\n@Component({\r\n selector: 'app-orderdetails-item',\r\n templateUrl: './orderdetails-item.component.html',\r\n styleUrls: ['./orderdetails-item.component.scss'],\r\n})\r\nexport class OrderdetailsItemComponent\r\n extends GenericComponent\r\n implements OnInit\r\n{\r\n @Input() orderDetails: OrdersDetails = new OrdersDetails();\r\n @Input() customerId: number;\r\n @Input() isEditable: boolean = true;\r\n @Input() productList: Product[] = [];\r\n @Input() customersList: Customers[] = [];\r\n @Input() materialCodes: MaterialCode[] = [];\r\n @Input() isOrderOnline: boolean = false;\r\n @Input() customerAddOns: CustomerAddOns[] = [];\r\n @Output() onSuccessSave = new EventEmitter();\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private orderDetailsService: OrderdetailsService,\r\n private productService: ProductService,\r\n private productBomService: ProductBomService,\r\n private enamelService: EnamelService,\r\n private customerService: CustomerService,\r\n private skuService: SkuService,\r\n private pricingAddOnsService: PricingAddOnsService,\r\n ) {\r\n super(loadService, alertService);\r\n }\r\n\r\n products: Product[] = [];\r\n materialSizes: string[] = [];\r\n\r\n product: Product = new Product();\r\n materialCode: MaterialCode = new MaterialCode();\r\n materialSize: string = '';\r\n\r\n orderDetailsFeatureKey = ORDER_DETAILS_FEATURE_KEY;\r\n\r\n productControl = new FormControl();\r\n materialCodeControl = new FormControl();\r\n materialSizeControl = new FormControl();\r\n productVariations: ProductEnamel[] = [];\r\n productStoneVariationControl = new FormControl();\r\n productStoneVariations: ProductStone[] = [];\r\n productStoneVariation: ProductStone = {} as ProductStone;\r\n enamelDetail: OrderDetailsEnamel = {} as OrderDetailsEnamel;\r\n productDetail: ProductDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n enamels: Enamel[] = [];\r\n noChain = {\r\n chainProductsID: -1,\r\n chainType: false,\r\n name: 'No Chain',\r\n size: '',\r\n };\r\n\r\n productChains: ProductOrderChain[] = [];\r\n productChain: ProductOrderChain = {} as ProductOrderChain;\r\n productChainControl = new FormControl();\r\n filteredProductChains: Observable;\r\n productSkus: ProductSku[] = [];\r\n selectedProductSku: ProductSku = {} as ProductSku;\r\n\r\n ngOnInit(): void {\r\n this.enamelService\r\n .getList()\r\n .pipe(\r\n map((enamels) => {\r\n this.enamels = enamels;\r\n\r\n const rivaId =\r\n this.customersList.find(\r\n (customer) => customer.customerId.toLowerCase() === 'riva',\r\n )?.custIdno ?? 0;\r\n\r\n const sortedProducts = orderBy(\r\n this.productList.map((p) => ({\r\n ...p,\r\n sortOrder: p.customerCode === rivaId ? 1 : 0,\r\n isRivaProduct: p.customerCode === rivaId,\r\n })),\r\n ['sortOrder'],\r\n );\r\n\r\n if (this.customerId === rivaId) {\r\n this.products = sortedProducts;\r\n } else {\r\n this.products = sortedProducts.filter(\r\n (p) =>\r\n p.customerCode == this.customerId || p.customerCode == rivaId,\r\n );\r\n }\r\n }),\r\n )\r\n .subscribe(() => {\r\n this.enamelDetail =\r\n this.orderDetails.orderDetailsEnamel ?? ({} as OrderDetailsEnamel);\r\n if (this.orderDetails.ordersDetailsId !== 0) {\r\n this.product = this.products.find(\r\n (x) => x.productsId == this.orderDetails.productsId,\r\n );\r\n this.getProductVariation(this.orderDetails.productsId);\r\n this.getProductDetail(this.orderDetails.productsId);\r\n this.getProductPictures(this.orderDetails.productsId);\r\n this.getProductStone(this.orderDetails.productsId);\r\n this.getProductChain(this.orderDetails.productsId);\r\n this.getProductSku(this.orderDetails.productsId);\r\n }\r\n this.initiateFilters();\r\n });\r\n\r\n if (this.orderDetails.ordersDetailsId > 0) {\r\n this.pricingAddOnsService\r\n .getPricingAddOns({ orderDetailsId: this.orderDetails.ordersDetailsId })\r\n .subscribe((data) => {\r\n this.orderDetails.addOns = data.reduce((accum, d) => {\r\n return {\r\n ...accum,\r\n [d.customerAddOnID]: {\r\n orderDetailsCustomPriceAddOnsID:\r\n d.orderDetailsCustomPriceAddOnsID,\r\n checked: true,\r\n },\r\n };\r\n }, {});\r\n });\r\n }\r\n }\r\n\r\n getProductVariation(productId) {\r\n this.productBomService.getProductEnamel(productId).subscribe((data) => {\r\n this.productVariations = data.reduce((variations, item) => {\r\n if (!item.variation) return variations;\r\n const enamel =\r\n this.enamels.find((e) => e.enamelId === item.enamelID) ?? {};\r\n return [...variations, { ...item, ...enamel }];\r\n }, []);\r\n if (data.length === 1) {\r\n this.enamelDetail.enamelID = data[0].enamelID;\r\n }\r\n });\r\n }\r\n\r\n getProductStone(productId) {\r\n this.productBomService.getProductStones(productId).subscribe((data) => {\r\n this.productStoneVariations = data.filter((stone) => stone.variation);\r\n this.productStoneVariation = this.productStoneVariations.find(\r\n (x) => x.stonesID === this.orderDetails.stone.stoneId,\r\n );\r\n this.filteredProductStoneVariation =\r\n this.productStoneVariationControl.valueChanges.pipe(\r\n startWith(this.productStoneVariation?.stone),\r\n map((value) => this._filterProductStoneVariation(value)),\r\n );\r\n });\r\n }\r\n\r\n getProductPictures(productId) {\r\n this.productService\r\n .getProductImageList(productId)\r\n .subscribe((data = []) => {\r\n this.product.picPath = data[0]?.fileName;\r\n });\r\n }\r\n\r\n displayFn(item: Product): string {\r\n return item && item.productName ? item.productName : '';\r\n }\r\n\r\n displayProductStone(item: ProductStone): string {\r\n const labels = [];\r\n if (item?.stone?.stoneType?.name) labels.push(item.stone.stoneType.name);\r\n if (item?.stone?.stoneColor?.colorName)\r\n labels.push(item.stone.stoneColor.colorName);\r\n if (item?.stone?.stoneSize?.displayText)\r\n labels.push(item.overrideStoneSize || item.stone.stoneSize.displayText);\r\n return labels.join(' | ');\r\n }\r\n\r\n displayMatCode(item: MaterialCode): string {\r\n return item && item.code ? item.code : '';\r\n }\r\n\r\n displayMatSize(item: string): string {\r\n return item ? item : '';\r\n }\r\n\r\n private _filterProduct(name: string): Product[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.products.filter(\r\n (option) =>\r\n option.productName.toLowerCase().includes(filterValue) ||\r\n option.productDesc.toLowerCase().includes(filterValue) ||\r\n option.sku.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['productName'];\r\n return this.products.filter(\r\n (option) =>\r\n option.productName\r\n .toLowerCase()\r\n .includes(filterValue.toLowerCase()) ||\r\n option.productDesc\r\n .toLowerCase()\r\n .includes(filterValue.toLowerCase()) ||\r\n option.sku.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.products;\r\n }\r\n\r\n private _filterProductStoneVariation(name: string): ProductStone[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name?.split('|')?.[0]?.trim()?.toLowerCase();\r\n return this.productStoneVariations.filter(\r\n (option) =>\r\n option.stone?.stoneType?.name?.toLowerCase().includes(filterValue) ||\r\n option.stone?.stoneColor?.colorName\r\n ?.toLowerCase()\r\n .includes(filterValue) ||\r\n option.stone?.stoneSize?.displayText\r\n ?.toLowerCase()\r\n .includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name?.['stoneType']?.['name'];\r\n return this.productStoneVariations.filter(\r\n (option) =>\r\n option.stone?.stoneType?.name\r\n ?.toLowerCase()\r\n .includes(filterValue?.toLowerCase()) ||\r\n option.stone?.stoneColor?.colorName\r\n ?.toLowerCase()\r\n .includes(filterValue?.toLowerCase()) ||\r\n option.stone?.stoneSize?.displayText\r\n ?.toLowerCase()\r\n .includes(filterValue?.toLowerCase()),\r\n );\r\n }\r\n return this.productStoneVariations;\r\n }\r\n\r\n private _filterMatCode(): MaterialCode[] {\r\n let pInfo = [];\r\n let result = this.materialCodes.filter((item) =>\r\n pInfo.includes(item.materialCodeId),\r\n );\r\n return result;\r\n }\r\n\r\n private _filterMatSize(): string[] {\r\n let pInfo = [];\r\n let result = this.materialSizes.filter((item) => pInfo.includes(item));\r\n return result;\r\n }\r\n\r\n disableMaterialCodes: boolean = true;\r\n disableMaterialSizes: boolean = true;\r\n\r\n filteredProducts: Observable;\r\n filteredProductStoneVariation: Observable;\r\n\r\n filteredMaterialCodes: MaterialCode[] = [];\r\n filteredMaterialSizes: string[];\r\n\r\n initiateFilters() {\r\n this.filteredProducts = this.productControl.valueChanges.pipe(\r\n startWith(this.product.productName),\r\n map((value) => this._filterProduct(value)),\r\n );\r\n\r\n this.filteredMaterialSizes = this._filterMatSize();\r\n this.filteredMaterialCodes = this._filterMatCode();\r\n }\r\n\r\n save() {\r\n this.loadService.loadContent(true);\r\n const dueDate = this.orderDetails.dueDate\r\n ? DateTime.fromJSDate(new Date(this.orderDetails.dueDate)).toFormat(\r\n 'yyyy-MM-dd',\r\n )\r\n : null;\r\n const entryDate = this.orderDetails.entryDate\r\n ? DateTime.fromJSDate(new Date(this.orderDetails.entryDate)).toFormat(\r\n 'yyyy-MM-dd',\r\n )\r\n : null;\r\n\r\n this.orderDetailsService\r\n .addupdate({ ...this.orderDetails, dueDate, entryDate })\r\n .subscribe((result) => {\r\n const allRequest = result.reduce((requests, id) => {\r\n if (this.enamelDetail?.enamelID != null) {\r\n requests.push(\r\n this.orderDetailsService.setOrderDetailEnamel({\r\n ...this.enamelDetail,\r\n orderDetailsID: id,\r\n }),\r\n );\r\n }\r\n\r\n if (this.productStoneVariation?.productsBOMStonesID) {\r\n requests.push(\r\n this.orderDetailsService.setOrderDetailsStone({\r\n ordersDetailsID: id,\r\n productsBOMStonesID:\r\n this.productStoneVariation.productsBOMStonesID,\r\n }),\r\n );\r\n }\r\n\r\n if (this.productChain?.chainProductsID) {\r\n if (this.productChain?.chainProductsID === -1) {\r\n requests.push(\r\n this.orderDetailsService.deleteOrderDetailsChain(id),\r\n );\r\n } else {\r\n requests.push(\r\n this.orderDetailsService.setOrderDetailsChain({\r\n ordersDetailsChainID:\r\n this.productChain.ordersDetailsChainID ?? 0,\r\n ordersDetailsID: id,\r\n chainType: this.productChain.chainType,\r\n chainProductsID: this.productChain.chainProductsID,\r\n }),\r\n );\r\n }\r\n }\r\n\r\n if (\r\n !this.selectedProductSku.productsCustSKUsID &&\r\n this.selectedProductSku.customerSKU\r\n ) {\r\n const payload = {\r\n productsCustSKUsID: 0,\r\n productsID: this.product.productsId,\r\n productsMaterialsID: this.orderDetails.materialCodeID ?? 0,\r\n productsSizesID: this.orderDetails.productSizesID ?? 0,\r\n productsBOMEnamelID: this.enamelDetail?.enamelID ?? 0,\r\n productsBOMStonesID:\r\n this.productStoneVariation?.productsBOMStonesID ?? 0,\r\n productsBOMChainFinishedID: this.productChain?.chainType\r\n ? this.productChain?.chainProductsID\r\n : 0,\r\n productsBOMChainRawID: this.productChain?.chainType\r\n ? 0\r\n : this.productChain?.chainProductsID,\r\n customerSKU: this.selectedProductSku.customerSKU,\r\n };\r\n requests.push(this.skuService.setProductSku(payload));\r\n }\r\n\r\n const customerAddOns = this.orderDetails.addOns ?? {};\r\n const customerAddOnID = Object.keys(customerAddOns).reduce(\r\n (addOns, key) => {\r\n const addOn = customerAddOns[key] ?? {};\r\n const shouldAdd =\r\n addOn.checked && !addOn.orderDetailsCustomPriceAddOnsID;\r\n const shouldDelete =\r\n !addOn.checked && addOn.orderDetailsCustomPriceAddOnsID > 0;\r\n if (!shouldAdd && !shouldDelete) return addOns;\r\n return [\r\n ...addOns,\r\n {\r\n addOnId: +key,\r\n orderDetailsCustomPriceAddOnsID:\r\n addOn.orderDetailsCustomPriceAddOnsID ?? 0,\r\n ordersDetailsID: id,\r\n isDelete: shouldDelete,\r\n },\r\n ];\r\n },\r\n [],\r\n );\r\n if (customerAddOnID.length > 0) {\r\n customerAddOnID.forEach((addOn) => {\r\n if (addOn.isDelete) {\r\n requests.push(\r\n this.pricingAddOnsService.deletePricingAddOns(\r\n addOn.orderDetailsCustomPriceAddOnsID,\r\n ),\r\n );\r\n } else {\r\n requests.push(\r\n this.pricingAddOnsService.setPricingAddOns({\r\n orderDetailsCustomPriceAddOnsID:\r\n addOn.orderDetailsCustomPriceAddOnsID,\r\n ordersDetailsID: id,\r\n ordersDetailsAltID: 0,\r\n customerAddOnID: [addOn.addOnId],\r\n }),\r\n );\r\n }\r\n });\r\n }\r\n\r\n return requests;\r\n }, []);\r\n\r\n if (allRequest.length === 0) {\r\n this.loadService.loadContent(false);\r\n this.loadService.reloadOrderDetails();\r\n this.onSuccessSave.emit();\r\n return;\r\n }\r\n forkJoin(allRequest).subscribe(() => {\r\n this.loadService.loadContent(false);\r\n this.loadService.reloadOrderDetails();\r\n this.onSuccessSave.emit();\r\n });\r\n });\r\n }\r\n onProductChange(product: Product) {\r\n this.orderDetails.productsId = product?.productsId ?? 0;\r\n this.getProductVariation(product.productsId);\r\n this.getProductStone(product.productsId);\r\n this.getProductDetail(product.productsId);\r\n this.getProductPictures(product.productsId);\r\n this.getProductChain(product.productsId);\r\n this.getProductSku(product.productsId);\r\n }\r\n\r\n getProductSku(productId) {\r\n this.productSkus = [];\r\n this.skuService.getProductSku(productId).subscribe((data) => {\r\n this.productSkus = data;\r\n this.onCheckProductSku();\r\n });\r\n }\r\n\r\n onCheckProductSku() {\r\n this.selectedProductSku =\r\n this.productSkus.find(\r\n (sku) =>\r\n sku.productsMaterialsID === (this.orderDetails.materialCodeID ?? 0) &&\r\n sku.productsSizesID === (this.orderDetails.productSizesID ?? 0) &&\r\n sku.productsBOMEnamelID === (this.enamelDetail?.enamelID ?? 0) &&\r\n sku.productsBOMStonesID ===\r\n (this.productStoneVariation?.productsBOMStonesID ?? 0) &&\r\n ((this.productChain?.chainType &&\r\n sku.productsBOMChainFinishedID ===\r\n ((this.productChain?.chainProductsID ?? 0) > 0\r\n ? this.productChain?.chainProductsID\r\n : 0)) ||\r\n (!this.productChain?.chainType &&\r\n sku.productsBOMChainRawID ===\r\n ((this.productChain?.chainProductsID ?? 0) > 0\r\n ? this.productChain?.chainProductsID\r\n : 0))),\r\n ) ?? ({} as ProductSku);\r\n }\r\n\r\n getProductDetail(productId: number) {\r\n this.productDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n if (productId) {\r\n this.productService\r\n .getProductDetail(this.product.productsId)\r\n .subscribe((data) => {\r\n this.productDetail = data;\r\n this.orderDetails.productsMaterialsID =\r\n this.orderDetails.productsMaterialsID ??\r\n this.productDetail.materials.find(\r\n (m) => m.materialsCodeID === this.orderDetails.materialCodeID,\r\n )?.productsMaterialsID;\r\n if (data.materials.length === 1) {\r\n this.orderDetails.materialCodeID =\r\n data.materials[0].materialsCodeID;\r\n }\r\n if (data.productSizes.length === 1) {\r\n this.orderDetails.productSizesID =\r\n data.productSizes[0].productsSizesID;\r\n }\r\n });\r\n }\r\n }\r\n\r\n get isFormValid() {\r\n const isEnamelValid =\r\n !this.productVariations?.length || this.enamelDetail.enamelID != null;\r\n return (\r\n this.orderDetails.productsId &&\r\n this.orderDetails.qtyordered &&\r\n this.orderDetails.dueDate &&\r\n this.orderDetails.materialCodeID &&\r\n this.orderDetails.productSizesID &&\r\n isEnamelValid\r\n );\r\n }\r\n\r\n get selectedMaterial() {\r\n return (\r\n this.productDetail.materials.find(\r\n (m) => m.materialsCodeID === this.orderDetails.materialCodeID,\r\n ) ?? {\r\n material: {\r\n printColor1: '',\r\n description: '',\r\n code: '',\r\n multiMetalPrimaryMaterial: null,\r\n multiMetalSecondaryMaterial: null,\r\n },\r\n }\r\n );\r\n }\r\n\r\n onChangeMaterial() {\r\n this.orderDetails.materialCodeID = this.productDetail.materials.find(\r\n (m) => m.productsMaterialsID === this.orderDetails.productsMaterialsID,\r\n )?.material?.materialCodeId;\r\n }\r\n\r\n getProductChain(productId) {\r\n forkJoin([\r\n this.productBomService.getProductChainRaw(productId),\r\n this.productBomService.getProductChainFinished(productId),\r\n ]).subscribe(([raw, finished]) => {\r\n const rawMapped = raw.map((r) => ({\r\n chainProductsID: r.productsBOMChainRawID,\r\n chainType: false,\r\n name: r.chainRaw?.chainStyle?.styleName,\r\n size: r.lengthInches.toString(),\r\n }));\r\n const finishedMapped = finished.map((f) => ({\r\n chainProductsID: f.productsBOMChainFinishedID,\r\n chainType: true,\r\n name: f.name,\r\n size: f.chainFinishedSizes.size,\r\n }));\r\n this.productChains = [...finishedMapped, ...rawMapped];\r\n\r\n if (this.productChains.length > 0) {\r\n this.orderDetailsService\r\n .getOrderDetailsChain(this.orderDetails.ordersDetailsId)\r\n .subscribe((data) => {\r\n this.productChain = this.productChains.find(\r\n (p) => p.chainProductsID === data?.chainProductsID,\r\n );\r\n this.productChain.ordersDetailsChainID = data?.ordersDetailsChainID;\r\n });\r\n }\r\n\r\n this.filteredProductChains = this.productChainControl.valueChanges.pipe(\r\n startWith(this.productChain.name),\r\n map((value) => this._filterProductChain(value)),\r\n );\r\n });\r\n }\r\n private _filterProductChain(name: string): ProductOrderChain[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name?.toLowerCase();\r\n return this.productChains.filter(\r\n (option) =>\r\n option.name?.toLowerCase().includes(filterValue) ||\r\n option.size?.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['name'];\r\n return this.productChains.filter(\r\n (option) =>\r\n option.name?.toLowerCase().includes(filterValue) ||\r\n option.size?.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.productChains;\r\n }\r\n displayProductChain(item: ProductOrderChain): string {\r\n const labels = [];\r\n if (item?.chainType)\r\n labels.push(item.chainType ? 'Finished' : 'Unfinished');\r\n if (item?.name) labels.push(item.name);\r\n if (item?.size) labels.push(item.size);\r\n return labels.join(' | ');\r\n }\r\n\r\n onClear() {\r\n this.product = new Product();\r\n this.orderDetails = {\r\n ...this.orderDetails,\r\n productsId: 0,\r\n materialCodeID: 0,\r\n productSizesID: 0,\r\n qtyordered: 1,\r\n comment: '',\r\n cipo: '',\r\n customized: false,\r\n };\r\n this.productDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n this.productVariations = [];\r\n this.productStoneVariations = [];\r\n this.productChains = [];\r\n this.productChain = {} as ProductOrderChain;\r\n this.productStoneVariation = {} as ProductStone;\r\n this.enamelDetail = {} as OrderDetailsEnamel;\r\n this.orderDetailsService\r\n .clearOrderDetails(this.orderDetails.ordersDetailsId)\r\n .subscribe();\r\n }\r\n\r\n get disableCustomerSku() {\r\n const isFormFilled =\r\n this.orderDetails.materialCodeID > 0 &&\r\n this.orderDetails.productSizesID > 0 &&\r\n (this.productVariations.length === 0 || !!this.enamelDetail?.enamelID) &&\r\n (this.productStoneVariations.length === 0 ||\r\n !!this.productStoneVariation?.productsBOMStonesID) &&\r\n (this.productChains.length === 0 ||\r\n (this.productChain?.chainProductsID ?? 0) > 0);\r\n return (\r\n !this.product.productsId ||\r\n this.selectedProductSku.productsCustSKUsID ||\r\n !isFormFilled\r\n );\r\n }\r\n}\r\n","
    \r\n \r\n \r\n CUSTOM\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Product\r\n \r\n \r\n \r\n
    \r\n
    CUST
    \r\n
    Product Name
    \r\n
    Master SKU
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    CUST
    \r\n
    Product Name
    \r\n
    Master SKU
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ product.customerCodeNavigation?.customerId }}\r\n
    \r\n
    \r\n

    {{ product.productName }}

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

    {{ product.sku }}

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

    {{ product.productDesc }}

    \r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{\r\n selectedMaterial.material?.multiMetalPrimaryMaterial.code\r\n }}\r\n /\r\n {{\r\n selectedMaterial.material?.multiMetalSecondaryMaterial.code\r\n }}\r\n
    \r\n \r\n \r\n {{ selectedMaterial.material.description }}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {{ mats.material?.multiMetalPrimaryMaterial.code }} /\r\n {{ mats.material?.multiMetalSecondaryMaterial.code }}\r\n \r\n \r\n \r\n {{ mats.material.description }}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Size\r\n \r\n \r\n {{ size.size }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n CI-PO\r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY ORDERED\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n ENTRY DATE\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n DUE DATE\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n COMMENT\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Enamel Variation\r\n \r\n NO-ENAMEL\r\n \r\n
    \r\n
    \r\n [{{ item.pantoneColor }}]\r\n {{ item.enamelName }}\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Stone Variation\r\n \r\n \r\n \r\n
    \r\n
    Type
    \r\n
    Color
    \r\n
    Clarity
    \r\n
    Size
    \r\n
    Lab Grown
    \r\n
    Traceable
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Type
    \r\n
    Color
    \r\n
    Clarity
    \r\n
    Size
    \r\n
    Lab Grown
    \r\n
    Traceable
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ variation.stone?.stoneType?.name }}\r\n
    \r\n
    \r\n {{ variation.stone?.stoneColor?.colorName ?? '-' }}\r\n
    \r\n
    \r\n {{ variation.stone?.stoneClarity?.name ?? '-' }}\r\n
    \r\n
    \r\n {{\r\n variation.overrideStoneSize ||\r\n (variation.stone?.stoneSize?.displayText ?? '-')\r\n }}\r\n
    \r\n
    \r\n {{ variation.stone?.labGrown ? 'Yes' : 'No' }}\r\n
    \r\n
    \r\n {{ variation.stone?.traceable ? 'Yes' : 'No' }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Chain\r\n \r\n \r\n \r\n
    \r\n
    Type
    \r\n
    Name
    \r\n
    Size/Length
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Type
    \r\n
    Name
    \r\n
    Size/Length
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    No Chain
    \r\n
     
    \r\n
     
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ chain.chainType ? 'Finished' : 'Unfinished' }}\r\n
    \r\n
    \r\n {{ chain.name }}\r\n
    \r\n
    \r\n {{ chain.size }}\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n 0\"\r\n style=\"grid-column: 1 / span 2; padding: 0 8px\"\r\n >\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n Custom\r\n \r\n Customer SKU\r\n \r\n \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n \r\n Clear\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\n\r\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ListComponent } from './list/list.component';\r\n\r\nimport { SharedModule } from 'src/app/shared modules/shared.module';\r\nimport { AppMaterialModule } from './../../shared modules/app-material/app-material.module';\r\nimport { CustomerAddOnsComponent } from './customer-add-ons/customer-add-ons.component';\r\nimport { NewOrderdetailsItemComponent } from './new-orderdetails-item/new-orderdetails-item.component';\r\nimport { OrderdetailsItemComponent } from './orderdetails-item/orderdetails-item.component';\r\nimport { RivaChainOrderComponent } from './riva-chain-order/riva-chain-order.component';\r\nimport { RivaFindingOrderAddItemComponent } from './riva-findings-order/riva-findings-order-add-item/riva-findings-order-add-item.component';\r\nimport { RivaFindingOrderAddComponent } from './riva-findings-order/riva-findings-order-add/riva-findings-order-add.component';\r\nimport { RivaOtherComponentOrderComponent } from './riva-other-component-order/riva-other-component-order.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ListComponent,\r\n OrderdetailsItemComponent,\r\n NewOrderdetailsItemComponent,\r\n RivaChainOrderComponent,\r\n RivaFindingOrderAddComponent,\r\n RivaFindingOrderAddItemComponent,\r\n RivaOtherComponentOrderComponent,\r\n CustomerAddOnsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n AppMaterialModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule,\r\n NzTabsModule,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n exports: [ListComponent],\r\n})\r\nexport class OrderdetailsModule {}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { OrderDetailsEnamel } from 'src/app/models/orders.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ProductOrderChainModel } from '../riva-chain/riva-chain-product/model';\r\nimport { GenericService } from './../../services/generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OrderdetailsService extends GenericService {\r\n baseUrl = environment.apiUrl + 'orderdetails';\r\n chainUrl = `${environment.apiUrl}order-details/chain`;\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n addupdate(orderDetails: any): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', orderDetails, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deleteOrder(orderDetailsId: number, type = 0): Observable {\r\n return this.http.delete(this.baseUrl + '/' + orderDetailsId, {\r\n headers: this.headers,\r\n params: {\r\n type,\r\n },\r\n });\r\n }\r\n\r\n clearOrderDetails(orderDetailsId: number) {\r\n return this.http.delete(this.baseUrl + '/clear/' + orderDetailsId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getByOrderId(orderid: number): Observable {\r\n return this.http\r\n .get(this.baseUrl + '/getbyOrderid/' + orderid, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((data: Array) =>\r\n orderBy(\r\n data.map(({ enamel, ...orderDetail }) => ({\r\n ...orderDetail,\r\n orderDetailsEnamel: {\r\n enamelID: enamel.enamelId,\r\n colorHex: enamel.colorHex,\r\n enamelName: enamel.enamelName,\r\n ordersDetailsEnamelID: enamel.ordersDetailsEnamelID,\r\n },\r\n enamel: enamel.enamelName\r\n ? `${\r\n enamel.pantoneColor ? '[' + enamel.pantoneColor + '] ' : ''\r\n }${enamel.enamelName}`\r\n : '',\r\n stoneText: `${orderDetail.stone?.type ?? ''}${\r\n orderDetail.stone?.color ? ` | ${orderDetail.stone?.color}` : ''\r\n }`,\r\n })),\r\n ['ordersDetailsId'],\r\n ),\r\n ),\r\n );\r\n }\r\n\r\n setOrderDetailEnamel(orderDetailEnamel: Partial) {\r\n return this.http.post(\r\n `${environment.apiUrl}order-details-enamel`,\r\n orderDetailEnamel,\r\n { headers: this.headers },\r\n );\r\n }\r\n\r\n setOrderDetailsStone(stone: any): Observable {\r\n return this.http.post(this.baseUrl + '/stones', stone, {\r\n headers: this.headers,\r\n });\r\n }\r\n setOrderDetailsChain(chain: any): Observable {\r\n return this.http.post(this.chainUrl, chain, {\r\n headers: this.headers,\r\n });\r\n }\r\n getOrderDetailsChain(\r\n orderDetailsId: number,\r\n ): Observable {\r\n return this.http.get(\r\n `${this.chainUrl}/${orderDetailsId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n deleteOrderDetailsChain(orderDetailsId: number) {\r\n return this.http.delete(`${this.chainUrl}/${orderDetailsId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n bypassWorkOrder(workOrder): Observable {\r\n return this.http.put(`${this.baseUrl}/bypass-work-order`, workOrder, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DateTime } from 'luxon';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport { ORDER_DETAILS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/order-details-permission';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { OrdersDetails } from 'src/app/models/orders.model';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport {\r\n OrderChain,\r\n OrderChainSize,\r\n OrderChainStock,\r\n OrderDetailAlt,\r\n} from '../../riva-chain/riva-chain-finish/models';\r\n\r\n@Component({\r\n selector: 'riva-chain-order',\r\n templateUrl: './riva-chain-order.component.html',\r\n styleUrls: ['./riva-chain-order.component.scss'],\r\n})\r\nexport class RivaChainOrderComponent implements OnInit {\r\n @Input() orderDetail: Partial;\r\n @Input() isEditable: boolean;\r\n @Input() isOrderOnline: boolean = false;\r\n @Output() onCancel = new EventEmitter();\r\n @Output() onSuccess = new EventEmitter();\r\n\r\n chains: OrderChain[] = [];\r\n selectedChain: OrderChain = {} as OrderChain;\r\n chainControl = new FormControl();\r\n filteredChains: Observable;\r\n chainSizes: OrderChainSize[] = [];\r\n selectedChainSize: OrderChainSize = {} as OrderChainSize;\r\n chainStocks: OrderChainStock[] = [];\r\n orderDetailsFeatureKey = ORDER_DETAILS_FEATURE_KEY;\r\n isSaving = false;\r\n showSizeError = false;\r\n\r\n constructor(\r\n private chainService: ChainService,\r\n private productBomService: ProductBomService,\r\n private loadService: LoadService,\r\n private toastrService: ToastrService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getChains();\r\n }\r\n\r\n getChains() {\r\n forkJoin([\r\n this.chainService.getChainRaws(),\r\n this.chainService.getChainFinished(),\r\n ]).subscribe(([raw, finished]) => {\r\n const rawMapped = raw.map((r) => ({\r\n chainId: r.chainRawID,\r\n chainType: false,\r\n name: r.styleName,\r\n sku: r.sku,\r\n picPath: r.picPath,\r\n description: r.description,\r\n }));\r\n const finishedMapped = finished.map((f) => ({\r\n chainId: f.chainFinishedID,\r\n chainType: true,\r\n name: f.name,\r\n sku: f.chainRaw?.sku,\r\n picPath: f.picPath,\r\n description: f.description,\r\n }));\r\n this.chains = [...finishedMapped, ...rawMapped];\r\n\r\n this.filteredChains = this.chainControl.valueChanges.pipe(\r\n startWith(this.selectedChain.name),\r\n map((value) => this._filterProductChain(value)),\r\n );\r\n\r\n if (this.orderDetail?.productsId) {\r\n this.selectedChain =\r\n this.chains.find(\r\n (c) =>\r\n c.chainId === this.orderDetail.productsId &&\r\n c.chainType === this.orderDetail.chainType,\r\n ) ?? ({} as OrderChain);\r\n if (this.selectedChain.chainId) {\r\n this.getChainSizes();\r\n this.getChainMaterials();\r\n }\r\n }\r\n });\r\n }\r\n private _filterProductChain(name: string): OrderChain[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name?.toLowerCase();\r\n return this.chains.filter(\r\n (option) =>\r\n option.name?.toLowerCase().includes(filterValue) ||\r\n option.sku?.toLowerCase().includes(filterValue) ||\r\n option.description?.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['name'];\r\n return this.chains.filter(\r\n (option) =>\r\n option.name?.toLowerCase().includes(filterValue?.toLowerCase()) ||\r\n option.sku?.toLowerCase().includes(filterValue?.toLowerCase()) ||\r\n option.description\r\n ?.toLowerCase()\r\n .includes(filterValue?.toLowerCase()),\r\n );\r\n }\r\n return this.chains;\r\n }\r\n displayChain(item: OrderChain): string {\r\n if (!item?.chainId) return '';\r\n const labels = [];\r\n labels.push(item?.chainType ? 'Finished' : 'Unfinished');\r\n if (item?.name) labels.push(item.name);\r\n if (item?.sku) labels.push(item.sku);\r\n return labels.join(' | ');\r\n }\r\n\r\n getChainSizes() {\r\n if (this.selectedChain.chainId > 0 && this.selectedChain.chainType) {\r\n this.chainService\r\n .getChainFinishedSizes(this.selectedChain.chainId)\r\n .pipe(\r\n map((sizes) =>\r\n sizes.map((size) => ({\r\n chainSizeId: size.chainFinishedSizesID,\r\n size: size.size,\r\n })),\r\n ),\r\n )\r\n .subscribe((data = []) => {\r\n this.chainSizes = data;\r\n if (!this.orderDetail?.productSizesID && data.length === 1) {\r\n this.orderDetail.productSizesID = data[0].chainSizeId;\r\n this.getChainMaterials();\r\n }\r\n });\r\n }\r\n }\r\n\r\n getChainMaterials() {\r\n const chainId =\r\n this.orderDetail.productsId > 0\r\n ? this.orderDetail.productsId\r\n : this.selectedChain.chainId;\r\n if (chainId && this.selectedChain.chainType) {\r\n this.chainService\r\n .getChainFinishedMaterials(chainId)\r\n .pipe(\r\n map((mats) =>\r\n mats.map((mat) => ({\r\n chainFinishedStockID: mat.chainFinishedMaterialsID,\r\n materialCodesID: mat.materialsCodeID,\r\n material: mat.material,\r\n })),\r\n ),\r\n )\r\n .subscribe((data = []) => {\r\n this.chainStocks = data;\r\n if (!this.orderDetail.materialCodeID && data.length === 1) {\r\n this.orderDetail.materialCodeID = data[0].materialCodesID;\r\n }\r\n });\r\n } else if (chainId) {\r\n this.chainService\r\n .getChainRawStock(chainId)\r\n .pipe(\r\n map((stock) =>\r\n stock.map((stock) => ({\r\n chainFinishedStockID: stock.chainRawStockID,\r\n materialCodesID: stock.materialCodesID,\r\n material: stock.material,\r\n })),\r\n ),\r\n )\r\n .subscribe((data = []) => {\r\n this.chainStocks = data;\r\n if (!this.orderDetail.materialCodeID && data.length === 1) {\r\n this.orderDetail.materialCodeID = data[0].materialCodesID;\r\n }\r\n });\r\n }\r\n }\r\n\r\n onSelectChain(chain: OrderChain) {\r\n this.orderDetail.productSizesID = 0;\r\n this.chainSizes = [];\r\n\r\n this.orderDetail.materialCodeID = 0;\r\n this.chainStocks = [];\r\n this.getChainSizes();\r\n this.getChainMaterials();\r\n }\r\n\r\n onSaveOrderDetail() {\r\n const order: OrderDetailAlt = {\r\n orderDetailsAltID: this.orderDetail.ordersDetailsId ?? 0,\r\n ordersID: this.orderDetail.ordersId,\r\n chain_FinishedID: this.selectedChain.chainType\r\n ? this.selectedChain.chainId\r\n : 0,\r\n chain_FinishedSizesID: this.selectedChain.chainType\r\n ? this.orderDetail.productSizesID\r\n : 0,\r\n chain_RawID: this.selectedChain.chainType\r\n ? 0\r\n : this.selectedChain.chainId,\r\n chain_RawSizesID: this.selectedChain.chainType\r\n ? 0\r\n : this.orderDetail.productSizesID,\r\n materialCodeID: this.orderDetail.materialCodeID,\r\n qtyOrdered: this.orderDetail.qtyordered,\r\n dueDate: this.orderDetail.dueDate\r\n ? DateTime.fromJSDate(new Date(this.orderDetail.dueDate)).toFormat(\r\n 'yyyy-MM-dd',\r\n )\r\n : null,\r\n comment: this.orderDetail.comment,\r\n cipo: this.orderDetail.cipo,\r\n customized: this.orderDetail.customized,\r\n chainRawLength: this.selectedChain.chainType\r\n ? 0\r\n : this.orderDetail.chainRawLength,\r\n };\r\n this.chainService.setChainOrderDetail(order).subscribe(() => {\r\n this.onSuccess.emit();\r\n });\r\n }\r\n\r\n onCancelEvent() {\r\n this.onCancel.emit();\r\n }\r\n\r\n get selectedMaterial() {\r\n return (\r\n this.chainStocks.find(\r\n (m) => m.materialCodesID === this.orderDetail.materialCodeID,\r\n )?.material ?? { printColor1: '', description: '' }\r\n );\r\n }\r\n\r\n get isFormValid() {\r\n return (\r\n this.selectedChain.chainId &&\r\n this.orderDetail.qtyordered &&\r\n this.orderDetail.dueDate &&\r\n this.orderDetail.materialCodeID &&\r\n (!this.selectedChain.chainType || this.orderDetail.productSizesID)\r\n );\r\n }\r\n\r\n onClear() {\r\n this.orderDetail = {\r\n ...this.orderDetail,\r\n productsId: 0,\r\n chainType: false,\r\n materialCodeID: 0,\r\n productSizesID: 0,\r\n chainRawLength: 0,\r\n cipo: '',\r\n qtyordered: 1,\r\n comment: '',\r\n customized: false,\r\n };\r\n this.selectedChain = { name: '' } as OrderChain;\r\n this.chainSizes = [];\r\n this.chainStocks = [];\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Chain\r\n \r\n \r\n \r\n
    \r\n
    Type
    \r\n
    Name
    \r\n
    Sku
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Type
    \r\n
    Name
    \r\n
    Sku
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ chain.chainType ? 'Finished' : 'Unfinished' }}\r\n
    \r\n
    \r\n

    {{ chain.name }}

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

    {{ chain.sku }}

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

    {{ chain.description }}

    \r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Size\r\n \r\n \r\n {{ size.size }}\r\n \r\n \r\n \r\n \r\n Length\r\n \r\n \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n
    \r\n {{ selectedMaterial.description }}\r\n \r\n \r\n
    \r\n {{ mats.material.description }}\r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n CI-PO\r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY ORDERED\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n ENTRY DATE\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n DUE DATE\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n COMMENT\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Custom\r\n
    \r\n
    \r\n \r\n Save\r\n \r\n \r\n Cancel\r\n \r\n 0\">\r\n
    \r\n \r\n Clear\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Finding, FindingsStock } from 'src/app/components/riva-findings/model';\r\nimport { OrdersDetails } from 'src/app/models/orders.model';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\n\r\n@Component({\r\n selector: 'riva-findings-order-add-item',\r\n templateUrl: './riva-findings-order-add-item.component.html',\r\n styleUrls: ['./riva-findings-order-add-item.component.scss'],\r\n})\r\nexport class RivaFindingOrderAddItemComponent implements OnInit, AfterViewInit {\r\n @Input() orderDetail: Partial = {};\r\n @Input() findings: Finding[];\r\n @Input() isEditable: boolean = true;\r\n @Input() isSaving: boolean = false;\r\n @Input() findingType: number;\r\n @Input() isOrderOnline: boolean = false;\r\n @Input() columns: Record; // Key and Label (name: 'Name')\r\n @Output() onCancel = new EventEmitter();\r\n @Output() onSaveOrder = new EventEmitter();\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n\r\n findingsByType = new MatTableDataSource([]);\r\n stocks: FindingsStock[] = [];\r\n displayedColumns = [];\r\n\r\n constructor(private findingsService: FindingsService) {}\r\n\r\n ngOnInit(): void {\r\n this.displayedColumns = Object.keys(this.columns);\r\n }\r\n ngAfterViewInit(): void {\r\n this.findingsByType.sort = this.sort;\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.findingsByType.data =\r\n this.findings?.filter((f) => f.findingsTypesID === this.findingType) ??\r\n [];\r\n if (this.orderDetail.findingsID) {\r\n const finding = this.findingsByType.data.find(\r\n (tag) => tag.findingsId === this.orderDetail.findingsID,\r\n );\r\n if (finding) {\r\n this.onSelectFinding(finding, true);\r\n }\r\n }\r\n }\r\n onSelectFinding(finding: Finding, override = false) {\r\n if ((this.isEditable && !this.isOrderOnline) || override) {\r\n this.orderDetail.findingsID = finding.findingsId;\r\n this.orderDetail.findingsSizesID = finding.findingSizesID;\r\n this.orderDetail.findingsTypesID = finding.findingsTypesID;\r\n this.orderDetail.picPath = finding.picPath;\r\n this.getStockBySizeId();\r\n }\r\n }\r\n\r\n getStockBySizeId() {\r\n if (!this.orderDetail.findingsSizesID) {\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.orderDetail.findingsSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n });\r\n }\r\n get isFormValid() {\r\n return (\r\n this.orderDetail.findingsID &&\r\n this.orderDetail.findingsSizesID &&\r\n this.orderDetail.findingsTypesID &&\r\n this.orderDetail.materialCodeID &&\r\n this.orderDetail.dueDate\r\n );\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{ columns['name'] }}\r\n \r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n \r\n {{ columns['size_1'] }}\r\n \r\n \r\n {{ element.size_1 }}mm\r\n \r\n \r\n \r\n \r\n {{ columns['size_2'] }}\r\n \r\n \r\n {{ element.size_2 }}mm\r\n \r\n \r\n \r\n \r\n {{ columns['size_3'] }}\r\n \r\n \r\n {{ element.size_3 }}mm\r\n \r\n \r\n \r\n \r\n {{ columns['size_4'] }}\r\n \r\n \r\n {{ element.size_4 }}mm\r\n \r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n {{ element.customerName }}\r\n \r\n \r\n \r\n \r\n ID\r\n \r\n \r\n {{ element.jumpringSize }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n \r\n Comment\r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ stock.material.description }}\r\n \r\n \r\n \r\n \r\n CI-PO\r\n \r\n \r\n \r\n Qty\r\n \r\n \r\n
    \r\n
    \r\n \r\n ENTRY DATE\r\n \r\n \r\n \r\n \r\n \r\n DUE DATE\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { OrderDetailAlt } from 'src/app/components/riva-chain/riva-chain-finish/models';\r\nimport { FINDINGS_TYPE } from 'src/app/components/riva-findings/constants';\r\nimport { Finding } from 'src/app/components/riva-findings/model';\r\nimport { OrdersDetails } from 'src/app/models/orders.model';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\n\r\nconst getCurrentIndex = (type: number) => {\r\n switch (type) {\r\n case FINDINGS_TYPE.JUMPRINGS:\r\n return 0;\r\n case FINDINGS_TYPE.POST:\r\n return 1;\r\n case FINDINGS_TYPE.FLYER:\r\n return 2;\r\n case FINDINGS_TYPE.SPRING:\r\n return 3;\r\n case FINDINGS_TYPE.SPRING_RING:\r\n return 4;\r\n case FINDINGS_TYPE.LOBSTER_CLAW:\r\n return 5;\r\n case FINDINGS_TYPE.TAGS:\r\n return 6;\r\n default:\r\n return 0;\r\n }\r\n};\r\n@Component({\r\n selector: 'riva-findings-order-add',\r\n templateUrl: './riva-findings-order-add.component.html',\r\n styleUrls: ['./riva-findings-order-add.component.scss'],\r\n})\r\nexport class RivaFindingOrderAddComponent implements OnInit {\r\n @Input() orderDetail: Partial;\r\n @Input() isEditable: boolean = true;\r\n @Input() isOrderOnline: boolean = false;\r\n @Output() onCancel = new EventEmitter();\r\n @Output() onSuccess = new EventEmitter();\r\n\r\n findings: Finding[];\r\n selectedTabIndex = 0;\r\n isSaving = false;\r\n findingsType = FINDINGS_TYPE;\r\n jumpringColumns = {\r\n size_1: 'Wire Diameter',\r\n jumpringSize: 'ID',\r\n };\r\n postColumns = {\r\n size_1: 'Length',\r\n size_2: 'Thickness',\r\n };\r\n flyerColumns = {\r\n size_1: 'Size',\r\n };\r\n springColumns = {\r\n size_1: 'Spring height',\r\n size_2: 'Wire Thickness',\r\n size_3: 'Spring Angle',\r\n size_4: 'Hole Inside Diameter',\r\n };\r\n springRingColumns = {\r\n name: 'Name',\r\n size_1: 'Size',\r\n };\r\n lobsterClawColumns = {\r\n name: 'Name',\r\n size_1: 'Size',\r\n };\r\n tagColumns = {\r\n name: 'Name',\r\n customerName: 'Customer',\r\n size_1: 'Lengths',\r\n size_2: 'Width',\r\n size_3: 'Thickness',\r\n };\r\n constructor(\r\n private findingsService: FindingsService,\r\n private chainService: ChainService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.findingsService.getFindingList().subscribe((data) => {\r\n this.findings = data ?? [];\r\n });\r\n this.selectedTabIndex = getCurrentIndex(this.orderDetail.findingsTypesID);\r\n }\r\n\r\n onSaveOrder() {\r\n const order: OrderDetailAlt = {\r\n orderDetailsAltID: this.orderDetail.ordersDetailsId ?? 0,\r\n ordersID: this.orderDetail.ordersId,\r\n chain_FinishedID: 0,\r\n chain_FinishedSizesID: 0,\r\n chain_RawID: 0,\r\n chain_RawSizesID: 0,\r\n materialCodeID: this.orderDetail.materialCodeID,\r\n qtyOrdered: this.orderDetail.qtyordered,\r\n dueDate: this.orderDetail.dueDate\r\n ? DateTime.fromJSDate(new Date(this.orderDetail.dueDate)).toFormat(\r\n 'yyyy-MM-dd',\r\n )\r\n : null,\r\n comment: this.orderDetail.comment,\r\n cipo: this.orderDetail.cipo,\r\n customized: this.orderDetail.customized,\r\n chainRawLength: 0,\r\n findingsID: this.orderDetail.findingsID,\r\n findingsSizesID: this.orderDetail.findingsSizesID,\r\n findingsTypesID: this.orderDetail.findingsTypesID,\r\n };\r\n this.isSaving = true;\r\n this.chainService.setChainOrderDetail(order).subscribe(() => {\r\n this.isSaving = true;\r\n this.onSuccess.emit();\r\n });\r\n }\r\n\r\n getColumns(typeId) {\r\n switch (typeId) {\r\n case FINDINGS_TYPE.JUMPRINGS:\r\n return this.jumpringColumns;\r\n case FINDINGS_TYPE.POST:\r\n return this.postColumns;\r\n case FINDINGS_TYPE.FLYER:\r\n return this.flyerColumns;\r\n case FINDINGS_TYPE.SPRING:\r\n return this.springColumns;\r\n case FINDINGS_TYPE.SPRING_RING:\r\n return this.springRingColumns;\r\n case FINDINGS_TYPE.LOBSTER_CLAW:\r\n return this.lobsterClawColumns;\r\n case FINDINGS_TYPE.TAGS:\r\n return this.tagColumns;\r\n default:\r\n return this.jumpringColumns;\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n 0 &&\r\n orderDetail.findingsTypesID !== findingsType.JUMPRINGS\r\n \"\r\n >\r\n \r\n \r\n 0 &&\r\n orderDetail.findingsTypesID !== findingsType.POST\r\n \"\r\n >\r\n \r\n \r\n 0 &&\r\n orderDetail.findingsTypesID !== findingsType.FLYER\r\n \"\r\n >\r\n \r\n \r\n 0 &&\r\n orderDetail.findingsTypesID !== findingsType.SPRING\r\n \"\r\n >\r\n \r\n \r\n 0 &&\r\n orderDetail.findingsTypesID !== findingsType.SPRING_RING\r\n \"\r\n >\r\n \r\n \r\n 0 &&\r\n orderDetail.findingsTypesID !== findingsType.LOBSTER_CLAW\r\n \"\r\n >\r\n \r\n \r\n 0 &&\r\n orderDetail.findingsTypesID !== findingsType.TAGS\r\n \"\r\n >\r\n \r\n \r\n \r\n
    \r\n
    0\">\r\n \r\n
    \r\n
    \r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DateTime } from 'luxon';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ORDER_DETAILS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/order-details-permission';\r\nimport { OrdersDetails } from 'src/app/models/orders.model';\r\nimport { OtherComponentsService } from 'src/app/services/other-components.service';\r\nimport {\r\n OtherComponent,\r\n OtherComponentMaterial,\r\n OtherComponentSize,\r\n OtherComponentType,\r\n} from '../../other-components/model';\r\nimport { OrderDetailAlt } from '../../riva-chain/riva-chain-finish/models';\r\n\r\n@Component({\r\n selector: 'riva-other-component-order',\r\n templateUrl: './riva-other-component-order.component.html',\r\n styleUrls: ['./riva-other-component-order.component.scss'],\r\n})\r\nexport class RivaOtherComponentOrderComponent implements OnInit {\r\n @Input() orderDetail: Partial;\r\n @Input() isEditable: boolean;\r\n @Input() isOrderOnline: boolean = false;\r\n @Output() onCancel = new EventEmitter();\r\n @Output() onSuccess = new EventEmitter();\r\n\r\n otherComponents: OtherComponent[] = [];\r\n selectedOtherComponent: OtherComponent = {} as OtherComponent;\r\n otherComponentMaterials: OtherComponentMaterial[] = [];\r\n selectedOtherComponentMaterial: OtherComponentMaterial =\r\n {} as OtherComponentMaterial;\r\n otherComponentTypes: OtherComponentType[] = [];\r\n otherComponentSizes: OtherComponentSize[] = [];\r\n selectedOtherComponentSize: OtherComponentSize = {} as OtherComponentSize;\r\n otherComponentControl = new FormControl();\r\n filteredOtherComponents: Observable;\r\n orderDetailsFeatureKey = ORDER_DETAILS_FEATURE_KEY;\r\n isSaving = false;\r\n\r\n constructor(private otherComponentsService: OtherComponentsService) {}\r\n\r\n ngOnInit(): void {\r\n this.getOtherComponents();\r\n }\r\n\r\n getOtherComponents() {\r\n this.otherComponentsService.getOtherComponents().subscribe((data = []) => {\r\n this.otherComponents = data;\r\n this.filteredOtherComponents =\r\n this.otherComponentControl.valueChanges.pipe(\r\n startWith(this.selectedOtherComponent.longName),\r\n map((value) => this._filterOtherComponent(value)),\r\n );\r\n\r\n if (this.orderDetail?.productsId) {\r\n this.selectedOtherComponent =\r\n this.otherComponents.find(\r\n (i) => i.otherComponentsID === this.orderDetail.productsId,\r\n ) ?? ({} as OtherComponent);\r\n if (this.selectedOtherComponent?.otherComponentsID) {\r\n this.getOtherComponentMaterials(\r\n this.selectedOtherComponent?.otherComponentsID,\r\n );\r\n this.getOtherComponentSizes(\r\n this.selectedOtherComponent?.otherComponentsID,\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n getOtherComponentMaterials(otherComponentsID = 0) {\r\n this.otherComponentMaterials = [];\r\n if (otherComponentsID === 0) return;\r\n this.otherComponentsService\r\n .getOtherComponentsMaterials(otherComponentsID)\r\n .subscribe((data) => {\r\n this.otherComponentMaterials = data;\r\n });\r\n }\r\n\r\n getOtherComponentSizes(otherComponentsID = 0) {\r\n this.otherComponentSizes = [];\r\n if (otherComponentsID === 0) return;\r\n this.otherComponentsService\r\n .getOtherComponentsSizes(otherComponentsID)\r\n .subscribe((data) => {\r\n this.otherComponentSizes = data;\r\n });\r\n }\r\n\r\n private _filterOtherComponent(name: string): OtherComponent[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name?.toLowerCase();\r\n return this.otherComponents.filter(\r\n (option) =>\r\n option.typeDisplay?.toLowerCase().includes(filterValue) ||\r\n option.longName?.toLowerCase().includes(filterValue) ||\r\n option.shortName?.toLowerCase().includes(filterValue) ||\r\n option.description?.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['longName'];\r\n return this.otherComponents.filter(\r\n (option) =>\r\n option.typeDisplay?.toLowerCase().includes(filterValue) ||\r\n option.longName?.toLowerCase().includes(filterValue) ||\r\n option.shortName?.toLowerCase().includes(filterValue) ||\r\n option.description?.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.otherComponents;\r\n }\r\n\r\n displayOtherComponentName(item: OtherComponent): string {\r\n if (!item?.otherComponentsID) return '';\r\n const labels = [];\r\n labels.push(item.typeDisplay);\r\n if (item?.longName) labels.push(item.longName);\r\n if (item?.shortName) labels.push(item.shortName);\r\n return labels.join(' | ');\r\n }\r\n\r\n onSelectOtherComponent(item: OtherComponent) {\r\n this.orderDetail.productSizesID = 0;\r\n this.otherComponentSizes = [];\r\n\r\n this.orderDetail.materialCodeID = 0;\r\n this.otherComponentMaterials = [];\r\n this.getOtherComponentMaterials(item.otherComponentsID);\r\n this.getOtherComponentSizes(item.otherComponentsID);\r\n }\r\n\r\n onSaveOrderDetail() {\r\n const order: OrderDetailAlt = {\r\n orderDetailsAltID: this.orderDetail.ordersDetailsId ?? 0,\r\n ordersID: this.orderDetail.ordersId,\r\n chain_FinishedID: 0,\r\n chain_FinishedSizesID: 0,\r\n chain_RawID: 0,\r\n chain_RawSizesID: 0,\r\n materialCodeID: this.orderDetail.materialCodeID,\r\n qtyOrdered: this.orderDetail.qtyordered,\r\n dueDate: this.orderDetail.dueDate\r\n ? DateTime.fromJSDate(new Date(this.orderDetail.dueDate)).toFormat(\r\n 'yyyy-MM-dd',\r\n )\r\n : null,\r\n comment: this.orderDetail.comment,\r\n cipo: this.orderDetail.cipo,\r\n customized: this.orderDetail.customized,\r\n chainRawLength: 0,\r\n otherComponentsID: this.selectedOtherComponent.otherComponentsID,\r\n otherComponentsSizesID: this.orderDetail.productSizesID,\r\n };\r\n this.otherComponentsService.setOrderDetail(order).subscribe(() => {\r\n this.onSuccess.emit();\r\n });\r\n }\r\n\r\n onCancelEvent() {\r\n this.onCancel.emit();\r\n }\r\n\r\n get selectedMaterial() {\r\n return (\r\n this.otherComponentMaterials.find(\r\n (m) => m.materialsCodeID === this.orderDetail.materialCodeID,\r\n )?.materialCode ?? { printColor1: '', description: '' }\r\n );\r\n }\r\n\r\n get isFormValid() {\r\n return (\r\n this.selectedOtherComponent.otherComponentsID &&\r\n this.orderDetail.qtyordered &&\r\n this.orderDetail.dueDate &&\r\n this.orderDetail.materialCodeID &&\r\n this.orderDetail.productSizesID\r\n );\r\n }\r\n\r\n onClear() {\r\n this.orderDetail = {\r\n ...this.orderDetail,\r\n productsId: 0,\r\n chainType: false,\r\n materialCodeID: 0,\r\n productSizesID: 0,\r\n chainRawLength: 0,\r\n cipo: '',\r\n qtyordered: 1,\r\n comment: '',\r\n customized: false,\r\n };\r\n this.selectedOtherComponent = { longName: '' } as OtherComponent;\r\n this.otherComponentMaterials = [];\r\n this.otherComponentSizes = [];\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Other Component\r\n \r\n \r\n \r\n
    \r\n
    Type
    \r\n
    Long Name
    \r\n
    Short Name
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Type
    \r\n
    Long Name
    \r\n
    Short Name
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ item.typeDisplay }}\r\n
    \r\n
    \r\n

    {{ item.longName }}

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

    {{ item.shortName }}

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

    {{ item.description }}

    \r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Size\r\n \r\n \r\n {{ size.label }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n
    \r\n {{ selectedMaterial.description }}\r\n \r\n \r\n
    \r\n {{ mats.materialCode.description }}\r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n CI-PO\r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY ORDERED\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n ENTRY DATE\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n DUE DATE\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n COMMENT\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Custom\r\n
    \r\n
    \r\n \r\n Save\r\n \r\n \r\n Cancel\r\n \r\n 0\">\r\n
    \r\n \r\n Clear\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { Customer } from 'src/app/models/enum/customer.enum';\r\nimport { OrderImportResponse } from 'src/app/models/rgw-order-import.response';\r\nimport { OrderService } from 'src/app/services/order.service';\r\nimport { LoadService } from '../../custom/load-overlay/load-overlay.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nexport const CustomerMapping = [\r\n { value: Customer.HOF, type: 'HOF' },\r\n { value: Customer.HOFFullfilment, type: 'HOF Fulfillment' },\r\n { value: Customer.Ringware, type: 'Ringware' },\r\n { value: Customer.Mizuki, type: 'Mizuki' },\r\n { value: Customer.BaubleBar, type: 'BaubleBar' },\r\n];\r\n\r\n@Component({\r\n templateUrl: './orderimporting.component.html',\r\n styleUrls: ['./orderimporting.component.scss'],\r\n})\r\nexport class OrderImportingComponent\r\n extends GenericComponent\r\n implements OnInit\r\n{\r\n orderImportResponse: OrderImportResponse = new OrderImportResponse();\r\n customers: { value: Customer; type: string }[];\r\n selectedCustomer: number = 0;\r\n invalidOrderItemsCount: number = 0;\r\n succeededOrderItemsCount: number = 0;\r\n orderExists: boolean = false;\r\n\r\n dateTimeFilter = new Date();\r\n hofDueDate: Date;\r\n\r\n @ViewChild('excelUploader') excelUploaderFiles: ElementRef;\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private orderService: OrderService,\r\n ) {\r\n super(loadService, alertService);\r\n this.loadService.load(false);\r\n this.loadService.loadContent(false);\r\n this.customers = CustomerMapping;\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n public uploadFile(files) {\r\n this.loadService.loadContent(true);\r\n this.orderImport(files);\r\n }\r\n\r\n public orderImport = (files) => {\r\n if (files.length === 0) return;\r\n\r\n let fileToUpload = files[0];\r\n const formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n\r\n switch (this.selectedCustomer) {\r\n case 1: {\r\n this.orderService.upload(formData, null, 'hof').subscribe(\r\n (event) => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * event.loaded) / event.total) +\r\n '%',\r\n );\r\n else if (event.type === HttpEventType.Response) {\r\n this.orderImportResponse = event.body;\r\n this.invalidOrderItemsCount =\r\n this.orderImportResponse.invalidOrders.length;\r\n this.succeededOrderItemsCount =\r\n this.orderImportResponse.succeedOrders;\r\n this.orderExists = this.orderImportResponse.orderExists;\r\n if (this.invalidOrderItemsCount > 0)\r\n this.alertService.error('There are invalid orders.');\r\n if (this.orderExists)\r\n this.alertService.error('Order already exist.');\r\n if (this.invalidOrderItemsCount === 0 && !this.orderExists)\r\n this.alertService.success('Import success.');\r\n this.excelUploaderFiles.nativeElement.value = null;\r\n this.loadService.loadContent(false);\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error.error);\r\n this.excelUploaderFiles.nativeElement.value = null;\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n break;\r\n }\r\n case 2: {\r\n this.orderService\r\n .upload(formData, this.hofDueDate, 'hoffulfill')\r\n .subscribe(\r\n (event) => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * event.loaded) / event.total) +\r\n '%',\r\n );\r\n else if (event.type === HttpEventType.Response) {\r\n this.orderImportResponse = event.body;\r\n this.invalidOrderItemsCount =\r\n this.orderImportResponse.invalidOrders.length;\r\n this.succeededOrderItemsCount =\r\n this.orderImportResponse.succeedOrders;\r\n this.orderExists = this.orderImportResponse.orderExists;\r\n if (this.invalidOrderItemsCount > 0)\r\n this.alertService.error('There are invalid orders.');\r\n if (this.orderExists)\r\n this.alertService.error('Order already exist.');\r\n if (this.invalidOrderItemsCount === 0 && !this.orderExists)\r\n this.alertService.success('Import success.');\r\n this.excelUploaderFiles.nativeElement.value = null;\r\n this.loadService.loadContent(false);\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error.error);\r\n this.excelUploaderFiles.nativeElement.value = null;\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n break;\r\n }\r\n case 3: {\r\n this.orderService.upload(formData, null, 'rgw').subscribe(\r\n (event) => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * event.loaded) / event.total) +\r\n '%',\r\n );\r\n else if (event.type === HttpEventType.Response) {\r\n this.orderImportResponse = event.body;\r\n this.invalidOrderItemsCount =\r\n this.orderImportResponse.invalidOrders.length;\r\n this.succeededOrderItemsCount =\r\n this.orderImportResponse.succeedOrders;\r\n this.orderExists = this.orderImportResponse.orderExists;\r\n if (this.invalidOrderItemsCount > 0)\r\n this.alertService.error('There are invalid order items.');\r\n if (this.orderExists)\r\n this.alertService.error('Order already exist.');\r\n if (this.invalidOrderItemsCount === 0 && !this.orderExists)\r\n this.alertService.success('Import success.');\r\n this.excelUploaderFiles.nativeElement.value = null;\r\n this.loadService.loadContent(false);\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error.error);\r\n this.excelUploaderFiles.nativeElement.value = null;\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n break;\r\n }\r\n case 4: {\r\n this.loadService.loadContent(false);\r\n this.alertService.error('Mizuki order import not implemented');\r\n this.excelUploaderFiles.nativeElement.value = null;\r\n break;\r\n }\r\n case 5: {\r\n this.loadService.loadContent(false);\r\n this.alertService.error('BaubleBar order import not implemented');\r\n this.excelUploaderFiles.nativeElement.value = null;\r\n break;\r\n }\r\n default: {\r\n this.loadService.loadContent(false);\r\n this.alertService.error('Value not in list.');\r\n break;\r\n }\r\n }\r\n };\r\n}\r\n","
    \r\n

    ORDER IMPORT

    \r\n
    \r\n
    \r\n \r\n CUSTOMER\r\n \r\n \r\n {{ customer.type }}\r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Due Date\r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n Upload\r\n \r\n\r\n 0\">\r\n Invalid Order Item(s): {{ invalidOrderItemsCount }}\r\n \r\n 0\">\r\n Valid Order Item(s): \r\n \r\n Order already exists. \r\n
    \r\n\r\n \r\n \r\n \r\n \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 Order NoProduct NoError
    \r\n {{ invalidOrder.orderNumber }}\r\n {{ invalidOrder.orderCode }}{{ invalidOrder.errorMessage }}
    \r\n
    \r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'dialog-orders-confirmation',\r\n templateUrl: './orders-confirmation.component.html',\r\n})\r\nexport class OrdersConfirmationComponent {}\r\n","

    Generate Work Order

    \r\n\r\n

    Click continue to proceed on generating work orders

    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Continue\r\n \r\n
    \r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'dialog-orders-progress',\r\n templateUrl: './orders-progress.component.html',\r\n})\r\nexport class OrdersProgressComponent {}\r\n","

    Generating Work Orders

    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormArray,\r\n FormBuilder,\r\n FormControl,\r\n} from '@angular/forms';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Observable, forkJoin, of } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\n\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { ORDER_DETAILS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/order-details-permission';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { CustomerAddress, Customers } from 'src/app/models/customer';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport {\r\n OrderStatus,\r\n Orders,\r\n OrdersDetails,\r\n} from 'src/app/models/orders.model';\r\nimport { Product, ProductsInfo } from 'src/app/models/product';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { OrderService } from 'src/app/services/order.service';\r\nimport { OrderdetailsService } from 'src/app/services/orderdetails.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { OrderUploadDialogComponent } from '../orderdetails/order-upload-dialog/order-upload-dialog.component';\r\nimport { OrdersConfirmationComponent } from '../orders-dialog/orders-confirmation.component';\r\nimport { OrdersProgressComponent } from '../orders-dialog/orders-progress.component';\r\nimport { ConfirmationService } from '../riva-confirmation/riva-confirmation.service';\r\nimport { SharedService } from './../../services/shared.service';\r\nimport { WorkOrderService } from './../../services/work-order.service';\r\nimport { RelatedInvoicesDialogComponent } from './related-invoices-dialog/related-invoices-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-orders',\r\n templateUrl: './orders.component.html',\r\n styleUrls: ['./orders.component.scss'],\r\n})\r\nexport class OrdersComponent extends GenericComponent implements OnInit {\r\n editMode: boolean = false;\r\n hideOrderDetails: boolean = false;\r\n hidebtns: boolean = true;\r\n customersList: Customers[];\r\n selectedCustomer = new Customers();\r\n selectedCustomerId: number = 1;\r\n productList: Product[] = [];\r\n productPerCustomer: Product[];\r\n productPerCustomer2: Product[];\r\n materialCodes: MaterialCode[];\r\n orderList: Orders[];\r\n ordersAllList: Orders[];\r\n selectedOrder = new Orders();\r\n selectedOrderRaw = new Orders();\r\n orderDetailList: OrdersDetails[];\r\n selectedOrderId: number;\r\n orderStatusList: OrderStatus[];\r\n cancelledOrderIdx: number = 0;\r\n productsInfo: ProductsInfo[];\r\n allProductsInfo: ProductsInfo[];\r\n selectedOrdersDetails: OrdersDetails;\r\n dialogProductId: number;\r\n dialogProductsInfoId: number;\r\n disableFlag: boolean = true;\r\n customerControl = new FormControl();\r\n filteredCustomers: Observable;\r\n billingAddresses: CustomerAddress[] = [];\r\n shippingAddresses: CustomerAddress[] = [];\r\n orderDetailsFeatureKey = ORDER_DETAILS_FEATURE_KEY;\r\n ordersType = 0;\r\n hasItems = false;\r\n hasUnInvoiced = false;\r\n isLoadingRequiredData = false;\r\n isLoadingList = true;\r\n isInternalFromInitialLoad = false;\r\n isRepairFromInitialLoad = false;\r\n hasUploadOrderAccess = false;\r\n isExportingFile = false;\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n public sharedService: SharedService,\r\n public dialog: MatDialog,\r\n private workOrderService: WorkOrderService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private customerService: CustomerService,\r\n private productService: ProductService,\r\n private orderService: OrderService,\r\n private orderDetailService: OrderdetailsService,\r\n private materialCodeService: MaterialCodeService,\r\n private userPermissionService: UserPermissionService,\r\n private modalService: NgbModal,\r\n private fb: FormBuilder,\r\n private _confirmationService: ConfirmationService,\r\n ) {\r\n super(loadService, alertService);\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.orderDetails);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadwithParameter();\r\n }\r\n\r\n loadwithParameter() {\r\n this.route.params.subscribe((params: Params) => {\r\n if (params['ordersId'] !== undefined) {\r\n const ordersId = +params['ordersId'];\r\n if (ordersId === -1) {\r\n this.ordersType = 1;\r\n } else if (ordersId === -2) {\r\n this.ordersType = 3;\r\n } else {\r\n this.ordersType = 0;\r\n }\r\n\r\n this.selectedOrderId = ordersId > 0 ? ordersId : 0;\r\n\r\n this.isInternalFromInitialLoad = ordersId === -1;\r\n this.isRepairFromInitialLoad = ordersId === -2;\r\n this.load(this.selectedOrderId);\r\n }\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n return (\r\n this.selectedCustomer.custIdno &&\r\n (this.isInternalFromInitialLoad ||\r\n this.isRepairFromInitialLoad ||\r\n this.selectedOrder.pointernal) &&\r\n this.selectedOrder.requiredDate &&\r\n this.selectedOrder.receivedDate\r\n );\r\n }\r\n\r\n hasPermission(key) {\r\n return !this.selectedOrderId || this.userPermissionService.hasAccess(key);\r\n }\r\n\r\n formatAddress(address: CustomerAddress) {\r\n const address1 = address.address1 ? `${address.address1} ` : '';\r\n const address2 = address.address2 ? `${address.address2} ` : '';\r\n const city = address.city ? `${address.city}, ` : '';\r\n const region = address.region ? `${address.region} ` : '';\r\n const postalCode = address.postalCode ? `${address.postalCode}, ` : '';\r\n const country = address.country ? `${address.country}` : '';\r\n\r\n return `${address1}${address2}${city}${region}${postalCode}${country}`;\r\n }\r\n\r\n load(orderId) {\r\n this.isLoadingRequiredData = true;\r\n const requests =\r\n orderId === 0\r\n ? [this.customerService.getList(), of([]), of([]), of(new Orders())]\r\n : [\r\n this.customerService.getList(),\r\n this.productService.getList(),\r\n this.materialCodeService.getList(),\r\n this.orderService.getOrderById(this.selectedOrderId),\r\n ];\r\n forkJoin(requests)\r\n .pipe(\r\n map(([customerlist, productList, materialCodes, selectedOrder]) => {\r\n if (orderId == 0) {\r\n this.editMode = true;\r\n } else {\r\n this.selectedOrder = { ...(selectedOrder ?? new Orders()) };\r\n this.selectedOrderRaw = { ...(selectedOrder ?? new Orders()) };\r\n }\r\n\r\n this.customersList = orderBy(\r\n customerlist.map((c) => ({\r\n ...c,\r\n addresses: c.addresses?.map((a) => ({\r\n ...a,\r\n fullAddress: this.formatAddress(a),\r\n })),\r\n })),\r\n 'companyName',\r\n );\r\n this.initializeFilter();\r\n if (this.isInternalFromInitialLoad || this.isRepairFromInitialLoad) {\r\n this.selectedOrder.receivedDate = DateTime.now().toJSDate();\r\n this.selectedOrder.requiredDate = DateTime.now()\r\n .plus({ weeks: 2 })\r\n .toJSDate();\r\n this.selectedOrder.customerId =\r\n this.customersList.find((c) => c.customerId === 'RIVA')\r\n ?.custIdno ?? 0;\r\n }\r\n this.selectedCustomer =\r\n this.customersList.filter(\r\n (x) => x.custIdno == this.selectedOrder.customerId,\r\n )[0] ?? ({} as Customers);\r\n const allowedUploadOrderCustomerIds = ['SIG'];\r\n this.hasUploadOrderAccess = allowedUploadOrderCustomerIds.includes(\r\n this.selectedCustomer.customerId,\r\n );\r\n\r\n this.shippingAddresses =\r\n this.selectedCustomer?.addresses.filter((a) => !a.addressType) ??\r\n [];\r\n this.billingAddresses =\r\n this.selectedCustomer?.addresses.filter((a) => a.addressType) ?? [];\r\n\r\n this.productList = productList;\r\n\r\n this.materialCodes = materialCodes.responseObject;\r\n\r\n this.getOrderDetailList();\r\n this.isLoadingRequiredData = false;\r\n\r\n return {\r\n customerlist: this.customersList,\r\n productList,\r\n materialCodes,\r\n };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n this.refreshOrderDetailList();\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n onLoading(isLoading) {\r\n this.isLoadingList = isLoading;\r\n }\r\n\r\n initializeFilter() {\r\n this.filteredCustomers = this.customerControl.valueChanges.pipe(\r\n startWith(this.selectedCustomer.companyName),\r\n map((value) => this._filterCustomers(value)),\r\n );\r\n }\r\n\r\n onCustomerChange(customer: Customers) {\r\n this.selectedOrder.customerId = customer.custIdno;\r\n this.shippingAddresses =\r\n customer.addresses.filter((a) => !a.addressType) ?? [];\r\n this.billingAddresses =\r\n customer.addresses.filter((a) => a.addressType) ?? [];\r\n }\r\n\r\n private _filterCustomers(name: string | Object): Customers[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n const customers = this.customersList.filter((option) =>\r\n option.companyName.toLowerCase().includes(filterValue),\r\n );\r\n return orderBy(customers, 'companyName');\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['companyName'];\r\n const customers = this.customersList.filter((option) =>\r\n option.companyName.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n return orderBy(customers, 'companyName');\r\n }\r\n return this.customersList;\r\n }\r\n\r\n getOrderDetailList() {\r\n if (this.selectedOrder.ordersDetails.length > 0) {\r\n this.orderDetailList = this.selectedOrder.ordersDetails;\r\n }\r\n }\r\n\r\n editOrder() {\r\n this.cancelledOrderIdx = this.selectedOrder.ordersId;\r\n this.editMode = !this.editMode;\r\n }\r\n\r\n cancelChange() {\r\n this.selectedOrder = { ...this.selectedOrderRaw };\r\n this.editMode = !this.editMode;\r\n }\r\n\r\n saveOrder() {\r\n const requiredDate = this.selectedOrder.requiredDate\r\n ? DateTime.fromJSDate(new Date(this.selectedOrder.requiredDate)).toFormat(\r\n 'yyyy-MM-dd',\r\n )\r\n : null;\r\n const receivedDate = this.selectedOrder.receivedDate\r\n ? DateTime.fromJSDate(new Date(this.selectedOrder.receivedDate)).toFormat(\r\n 'yyyy-MM-dd',\r\n )\r\n : null;\r\n const entryDate = this.selectedOrder.entryDate\r\n ? DateTime.fromJSDate(new Date(this.selectedOrder.entryDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : null;\r\n const totalShippedDate = this.selectedOrder.totalShippedDate\r\n ? DateTime.fromJSDate(\r\n new Date(this.selectedOrder.totalShippedDate),\r\n ).toFormat('MM/dd/yyyy')\r\n : null;\r\n\r\n const data = {\r\n ...this.selectedOrder,\r\n requiredDate,\r\n receivedDate,\r\n entryDate,\r\n totalShippedDate,\r\n ordersType: this.selectedOrder.ordersType ?? this.ordersType,\r\n };\r\n this.orderService.addupdate(data).subscribe(\r\n (res) => {\r\n this.selectedOrder = res;\r\n\r\n this.alertService.success('Order successfully UPDATED.');\r\n\r\n this.gotoOrders(this.selectedOrder.ordersId);\r\n\r\n this.selectedCustomer = this.customersList.filter(\r\n (x) => x.custIdno == this.selectedOrder.customerId,\r\n )[0];\r\n this.refreshOrderDetailList();\r\n },\r\n (err) => {\r\n this.alertService.success('Order failed to UPDATED.');\r\n err;\r\n },\r\n );\r\n\r\n this.editMode = !this.editMode;\r\n }\r\n closeResult = '';\r\n\r\n orderDetails: OrdersDetails[] = [];\r\n notification = null;\r\n orderDetailsForm: FormArray = this.fb.array([]);\r\n\r\n modalOpen(content) {\r\n this.modalService\r\n .open(content, { ariaLabelledBy: 'modal-basic-title' })\r\n .result.then(\r\n (result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n },\r\n (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n },\r\n );\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n closeMatSizeOpen(content) {\r\n this.modalOpen(content);\r\n }\r\n\r\n refreshOrderDetailList() {\r\n this.orderDetailList = [];\r\n this.orderDetailsForm = this.fb.array([]);\r\n\r\n // Added refresh product per customer\r\n this.productPerCustomer = this.productList.filter(\r\n (x) =>\r\n x.customerCode == this.selectedCustomer.custIdno || x.customerCode == 5,\r\n );\r\n\r\n this.productPerCustomer2 = this.productList.filter(\r\n (x) =>\r\n x.customerCode == this.selectedCustomer.custIdno || x.customerCode == 5,\r\n );\r\n\r\n if (this.selectedOrder.ordersId == 0) {\r\n return;\r\n }\r\n\r\n this.orderService\r\n .getOrderById(this.selectedOrder.ordersId)\r\n .subscribe((res) => {\r\n this.selectedOrder = res;\r\n\r\n if (this.selectedOrder.ordersDetails.length > 0) {\r\n this.orderDetailList = this.selectedOrder.ordersDetails;\r\n\r\n (this.orderDetailList as []).forEach((detail: OrdersDetails) => {\r\n this.orderDetailsForm.push(\r\n this.fb.group({\r\n ordersDetailsId: [detail.ordersDetailsId],\r\n ordersId: [detail.ordersId],\r\n productsId: [detail.productsId],\r\n productsInfoId: [detail.productsInfoId],\r\n qtyordered: [detail.qtyordered],\r\n qtyshipped: [detail.qtyshipped],\r\n qtyinvoiced: [detail.qtyinvoiced],\r\n entryDate: [detail.entryDate],\r\n dueDate: [detail.dueDate],\r\n custAdrsId: [detail.custAdrsId],\r\n comment: [detail.comment],\r\n products: [detail.products],\r\n }),\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n newDetails() {\r\n if (this.selectedOrder.ordersId == 0) {\r\n return;\r\n }\r\n\r\n let orderDetail = new OrdersDetails();\r\n\r\n orderDetail.ordersDetailsId = 0;\r\n orderDetail.ordersId = this.selectedOrder.ordersId;\r\n // orderDetail.custAdrsId =\r\n // this.selectedCustomer.customersAddresses[0].customersAddressesId;\r\n orderDetail.products = this.productList.find(\r\n (x) => x.customerCode == this.selectedOrder.customerId,\r\n );\r\n orderDetail.entryDate = new Date();\r\n orderDetail.dueDate = this.selectedOrder.requiredDate;\r\n orderDetail.qtyshipped = 0;\r\n orderDetail.qtyinvoiced = 0;\r\n\r\n this.orderDetailsForm.push(\r\n this.fb.group({\r\n ordersDetailsId: [orderDetail.ordersDetailsId],\r\n ordersId: [orderDetail.ordersId],\r\n productsId: [orderDetail.productsId],\r\n productsInfoId: [orderDetail.productsInfoId],\r\n qtyordered: [orderDetail.qtyordered],\r\n qtyshipped: [orderDetail.qtyshipped],\r\n qtyinvoiced: [orderDetail.qtyinvoiced],\r\n entryDate: [orderDetail.entryDate],\r\n dueDate: [orderDetail.dueDate],\r\n custAdrsId: [orderDetail.custAdrsId],\r\n comment: [orderDetail.comment],\r\n }),\r\n );\r\n }\r\n\r\n get EnableUpdateOrderDetails() {\r\n return this.orderDetailsForm.value.length == 0;\r\n }\r\n\r\n updateDetails(fg: AbstractControl, i) {\r\n this.productsInfo = this.allProductsInfo;\r\n\r\n let orderDetail: OrdersDetails;\r\n\r\n orderDetail = fg.value;\r\n\r\n var checker = this.checkProductsInfo(orderDetail);\r\n if (checker == false) return;\r\n this.orderDetailService.addupdate(fg.value).subscribe((res) => {\r\n if (fg.value.productsRoutingId == 0) this.showNotification('insert');\r\n else this.showNotification('update');\r\n fg.patchValue({ ordersDetailsId: res.ordersDetailsId });\r\n\r\n this.refreshOrderDetailList();\r\n });\r\n }\r\n\r\n showNotification(category) {\r\n switch (category) {\r\n case 'insert':\r\n this.notification = { class: 'text-success', message: 'saved!' };\r\n break;\r\n case 'update':\r\n this.notification = { class: 'text-primary', message: 'updated!' };\r\n break;\r\n case 'delete':\r\n this.notification = { class: 'text-danger', message: 'deleted!' };\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n setTimeout(() => {\r\n this.notification = null;\r\n }, 3000);\r\n }\r\n\r\n deleteDetail(orderDetailsId, i) {\r\n if (orderDetailsId == 0) this.orderDetailsForm.removeAt(i);\r\n else if (confirm('Are you sure to delete this record ?'))\r\n this.orderDetailService.delete(orderDetailsId).subscribe(() => {\r\n this.orderDetailsForm.removeAt(i);\r\n this.showNotification('delete');\r\n });\r\n }\r\n\r\n getProductInfoById(productId: number, fg: AbstractControl) {\r\n this.productsInfo = [];\r\n\r\n if (productId == undefined) {\r\n return;\r\n }\r\n\r\n let selectedProduct = this.productPerCustomer.filter(\r\n (x) => x.productsId == productId,\r\n )[0];\r\n\r\n if (selectedProduct != undefined) {\r\n if (\r\n selectedProduct.productsInfo != undefined &&\r\n selectedProduct.productsInfo.length > 0\r\n ) {\r\n this.productsInfo = selectedProduct.productsInfo;\r\n }\r\n }\r\n }\r\n\r\n getProductInfoByProduct(productId: number) {\r\n this.productsInfo = [];\r\n\r\n if (productId == undefined) {\r\n return;\r\n }\r\n\r\n let selectedProduct = this.productPerCustomer.filter(\r\n (x) => x.productsId == productId,\r\n )[0];\r\n\r\n if (selectedProduct != undefined) {\r\n this.dialogProductId = productId;\r\n if (\r\n selectedProduct.productsInfo != undefined &&\r\n selectedProduct.productsInfo.length > 0\r\n ) {\r\n this.productsInfo = selectedProduct.productsInfo;\r\n this.dialogProductsInfoId =\r\n selectedProduct.productsInfo[0].productsInfoId;\r\n } else {\r\n this.dialogProductsInfoId = 0;\r\n }\r\n }\r\n }\r\n\r\n getProductInfoDescByID(productsInfoId) {\r\n let materialsize = '';\r\n let productInfo = this.allProductsInfo.filter(\r\n (x) => x.productsInfoId == productsInfoId,\r\n )[0];\r\n if (productInfo != undefined) {\r\n materialsize = this.getProductInfoDesc(\r\n productInfo.materialCodeId,\r\n productInfo.size,\r\n );\r\n }\r\n\r\n return materialsize;\r\n }\r\n\r\n getProductInfoDesc(materialCodeId: number, size: string) {\r\n let returnStr = '';\r\n\r\n if (materialCodeId == undefined) {\r\n return returnStr;\r\n }\r\n\r\n let materialCode = this.materialCodes.filter(\r\n (x) => x.materialCodeId == materialCodeId,\r\n )[0];\r\n\r\n returnStr = materialCode.code + ' | SZ-' + size;\r\n\r\n return returnStr;\r\n }\r\n\r\n onUpdateOrderDetails(fg: AbstractControl, i) {\r\n this.updateDetails(fg, i);\r\n }\r\n\r\n checkProductsInfo(orderDetail: OrdersDetails) {\r\n let checker = false;\r\n let endMessage = ' Please select Product first then Material and Sizes';\r\n let product = this.productPerCustomer.filter(\r\n (x) => x.productsId == orderDetail.productsId,\r\n )[0];\r\n\r\n if (orderDetail.ordersDetailsId == 0) {\r\n alert('Please Input Product using the BLUE BUTTON');\r\n return false;\r\n }\r\n\r\n if (product.productsInfo.length > 0) {\r\n var check = product.productsInfo.filter(\r\n (x) => x.productsInfoId == orderDetail.productsInfoId,\r\n )[0];\r\n\r\n if (check == undefined || check == null) {\r\n alert('Product and Material NOT match! ' + endMessage);\r\n return checker;\r\n }\r\n } else {\r\n alert('Product has NO Material and Sizes');\r\n return checker;\r\n }\r\n\r\n checker = true;\r\n return checker;\r\n }\r\n\r\n gotoOrdersView() {\r\n this.router.navigate(['/main/ordersview']);\r\n }\r\n\r\n gotoOrders(ordersId) {\r\n window.location.href = '/main/orders/' + ordersId;\r\n }\r\n\r\n editProductDetails(modalName, orderDetail) {\r\n this.selectedOrdersDetails = orderDetail;\r\n this.dialogProductId = orderDetail.productsId;\r\n this.dialogProductsInfoId = orderDetail.productsInfoId;\r\n\r\n this.modalOpen(modalName);\r\n }\r\n\r\n saveDetailsFromDiaog() {\r\n this.selectedOrdersDetails.productsId = this.dialogProductId;\r\n this.selectedOrdersDetails.productsInfoId = this.dialogProductsInfoId;\r\n this.selectedOrdersDetails.qtyordered =\r\n this.selectedOrdersDetails.qtyordered == null\r\n ? 0\r\n : this.selectedOrdersDetails.qtyordered;\r\n\r\n this.orderDetailService\r\n .addupdate(this.selectedOrdersDetails)\r\n .subscribe((res) => {\r\n this.selectedOrdersDetails = res;\r\n\r\n if (this.selectedOrdersDetails.productsId == 0)\r\n this.showNotification('insert');\r\n else this.showNotification('update');\r\n\r\n this.refreshOrderDetailList();\r\n });\r\n }\r\n\r\n setSelectedDialogProductsInfo(value) {\r\n this.dialogProductsInfoId = value;\r\n }\r\n\r\n getProductName(id) {\r\n let productname = '';\r\n let product = this.productList.filter((x) => x.productsId == id)[0];\r\n if (product != undefined) {\r\n productname = product.productName;\r\n }\r\n\r\n return productname;\r\n }\r\n\r\n generateWorkOrders(): void {\r\n const dialogRef = this.dialog.open(OrdersConfirmationComponent, {\r\n disableClose: true,\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n const dialogProgressRef = this.dialog.open(OrdersProgressComponent, {\r\n disableClose: true,\r\n width: '400px',\r\n });\r\n\r\n this.workOrderService\r\n .generateWorkOrders(this.selectedOrderId)\r\n .subscribe(\r\n (response) => {\r\n this.loadService.reloadOrderDetails();\r\n dialogProgressRef.close();\r\n },\r\n () => {\r\n dialogProgressRef.close();\r\n },\r\n );\r\n }\r\n });\r\n }\r\n onListLoad({ hasItems, hasUnInvoiced }) {\r\n this.hasItems = hasItems;\r\n this.hasUnInvoiced = hasUnInvoiced;\r\n }\r\n\r\n onByPassWorkOrder(bypassWorkOrder = false) {\r\n const content = bypassWorkOrder\r\n ? 'Are you sure you want to invoice all directly and skip work order?'\r\n : 'Are you sure you want to pre-invoice the orders?';\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Jump to invoicing?',\r\n content,\r\n confirmLabel: 'Yes',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n sessionStorage.setItem(\r\n 'orderDetailByPassWorkOrderOrdersId',\r\n this.selectedOrder.ordersId.toString(),\r\n );\r\n sessionStorage.setItem(\r\n 'bypassWorkOrder',\r\n bypassWorkOrder ? 'yes' : 'no',\r\n );\r\n this.router.navigate(['invoicing-and-shipping/invoicing/0']);\r\n });\r\n }\r\n\r\n displayFn(item: Customers): string {\r\n return item && item.companyName ? item.companyName : '';\r\n }\r\n\r\n onOpenRelatedInvoices() {\r\n this.dialog.open(RelatedInvoicesDialogComponent, {\r\n disableClose: true,\r\n minWidth: '800px',\r\n autoFocus: false,\r\n data: {\r\n ordersId: this.selectedOrderId,\r\n },\r\n });\r\n }\r\n onByPassAllWorkOrder() {\r\n this.sharedService.byPassWorkOrder();\r\n }\r\n onOpenUploadDialog() {\r\n const ref = this.dialog.open(OrderUploadDialogComponent, {\r\n disableClose: true,\r\n minWidth: '1500px',\r\n autoFocus: false,\r\n data: {\r\n customerId: this.selectedOrder.customerId,\r\n ordersId: this.selectedOrderId,\r\n },\r\n });\r\n ref.afterClosed().subscribe((reload) => {\r\n if (reload) {\r\n this.loadService.reloadOrderDetails();\r\n }\r\n });\r\n }\r\n\r\n onDeleteOrder() {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Order?',\r\n content: 'Are you sure you want to delete this order?',\r\n confirmLabel: 'Yes, delete it.',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.orderService.deleteOrder(this.selectedOrderId).subscribe(() => {\r\n this.gotoOrdersView();\r\n });\r\n });\r\n }\r\n\r\n onDownloadExcelFile() {\r\n this.isExportingFile = true;\r\n this.orderDetailService\r\n .exportOrderToExcel(this.selectedOrderId)\r\n .subscribe((response) => {\r\n const blob = new Blob([response], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = `order_details_${\r\n this.selectedOrder?.pointernal ?? ''\r\n }.xlsx`;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n this.isExportingFile = false;\r\n });\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Order Details\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Customer\r\n \r\n \r\n \r\n
    \r\n
    ID
    \r\n
    Name
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    ID
    \r\n
    Name
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ customer.customerId }}\r\n
    \r\n
    \r\n {{ customer.companyName }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n PO INTERNAL\r\n \r\n \r\n\r\n \r\n PO EXTERNAL\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n RECEIVED DATE\r\n \r\n \r\n \r\n \r\n\r\n \r\n ENTRY DATE\r\n \r\n \r\n \r\n \r\n\r\n \r\n DUE DATE\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {{ selectedOrder.comment?.length ?? 0 }}/1000\r\n \r\n COMMENTS\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n \r\n Related Invoices\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 \r\n \r\n Cancel\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n Upload Orders\r\n \r\n \r\n Export to Excel\r\n \r\n
    \r\n
    \r\n \r\n Special Procedures\r\n \r\n \r\n Generate Work Orders\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 All Directly and Skip Work Orders\r\n \r\n \r\n Pre-Invoice\r\n \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n Edit - Product, Material and Sizes\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n PRODUCT\r\n \r\n \r\n {{ item.productName }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n MATERIAL AND SIZE\r\n \r\n \r\n {{ getProductInfoDesc(item.materialCodeId, item.size) }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n SAVE\r\n \r\n
    \r\n
    \r\n \r\n CANCEL\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { OrderService } from 'src/app/services/order.service';\r\nimport { Invoice } from '../../invoicing-shipping/invoicing/models/invoice';\r\n\r\n@Component({\r\n selector: 'related-invoices-dialog',\r\n templateUrl: './related-invoices-dialog.component.html',\r\n styleUrls: ['./related-invoices-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class RelatedInvoicesDialogComponent implements OnInit {\r\n displayedColumns: string[] = ['invoicesID', 'invoicedDate', 'invoicePaid'];\r\n relatedInvoices: Invoice[] = [];\r\n\r\n constructor(\r\n private orderService: OrderService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { ordersId: number },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.orderService\r\n .getRelatedInvoices(this.props.ordersId)\r\n .subscribe((invoices) => {\r\n this.relatedInvoices = invoices;\r\n });\r\n }\r\n}\r\n","

    Related Invoices

    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n Invoice #\r\n \r\n \r\n \r\n {{ element.invoicesID }}\r\n \r\n \r\n \r\n \r\n \r\n Invoiced Date\r\n \r\n \r\n {{ element.invoicedDate | date: 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n {{ element.customer.companyName }}\r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n \r\n {{ element.qtyTotal }}\r\n \r\n \r\n \r\n \r\n Total Billed\r\n \r\n \r\n {{ element.totalPrice | currency }}\r\n \r\n \r\n \r\n \r\n Paid Date\r\n \r\n \r\n {{\r\n element.invoicePaid | date: 'MM/dd/yyyy'\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n No Related Invoices\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n Close\r\n \r\n
    \r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\n\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { DateTime } from 'luxon';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { PURCHASE_ORDER_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/purchase-order-permission';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport {\r\n OrderParams,\r\n Orders,\r\n OrdersDetails,\r\n OrderStatus,\r\n RivaOrders,\r\n} from 'src/app/models/orders.model';\r\nimport { Product, ProductsInfo } from 'src/app/models/product';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { OrderService } from 'src/app/services/order.service';\r\n\r\n@Component({\r\n selector: 'app-orderview',\r\n templateUrl: './orderview.component.html',\r\n styleUrls: ['./orderview.component.scss'],\r\n})\r\nexport class OrderviewComponent extends GenericComponent implements OnInit {\r\n editMode: boolean = false;\r\n hideOrderDetails: boolean = true;\r\n\r\n customersList: Customers[];\r\n selectedCustomer = new Customers();\r\n selectedCustomerId: number = 0;\r\n selectedStatus = 'open';\r\n selectedSort = 'dueDate';\r\n sort = 'desc';\r\n searchString = '';\r\n\r\n productList: Product[];\r\n productPerCustomer: Product[];\r\n materialCodes: MaterialCode[];\r\n\r\n orderList: RivaOrders[];\r\n orderListFiltered: RivaOrders[];\r\n paginatedOrderList: RivaOrders[];\r\n ordersAllList: RivaOrders[];\r\n selectedOrder = new Orders();\r\n orderDetailList: OrdersDetails[];\r\n\r\n orderStatusList: OrderStatus[];\r\n cancelledOrderIdx: number = 0;\r\n\r\n productsInfo: ProductsInfo[];\r\n allProductsInfo: ProductsInfo[];\r\n slideConfig = {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n draggable: false,\r\n waitForAnimate: false,\r\n };\r\n purchaseOrderFeatureKey = PURCHASE_ORDER_FEATURE_KEY;\r\n orderParams: OrderParams = {\r\n SearchQuery: '',\r\n CustomerId: 0,\r\n Status: 'open',\r\n ReceivedFrom: DateTime.local().minus({ months: 9 }).toFormat('yyyy-MM-dd'),\r\n ReceivedTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n SortBy: 'receivedDateRaw',\r\n SortDirection: 'desc',\r\n PageNumber: 1,\r\n PageSize: 20,\r\n OrderType: [-1],\r\n ungeneratedWorkOrderOnly: false,\r\n };\r\n pagination = {\r\n totalCount: 0,\r\n };\r\n\r\n orderPresets = [\r\n {\r\n label: 'All Open',\r\n config: {\r\n SearchQuery: '',\r\n CustomerId: 0,\r\n Status: 'open',\r\n ReceivedFrom: DateTime.local()\r\n .minus({ years: 2 })\r\n .toFormat('yyyy-MM-dd'),\r\n ReceivedTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n SortBy: 'receivedDateRaw',\r\n SortDirection: 'desc',\r\n PageNumber: 1,\r\n PageSize: 20,\r\n OrderType: [-1],\r\n ungeneratedWorkOrderOnly: false,\r\n },\r\n },\r\n {\r\n label: 'All Staged',\r\n config: {\r\n SearchQuery: '',\r\n CustomerId: 0,\r\n Status: 'staged',\r\n ReceivedFrom: DateTime.local()\r\n .minus({ years: 2 })\r\n .toFormat('yyyy-MM-dd'),\r\n ReceivedTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n SortBy: 'receivedDateRaw',\r\n SortDirection: 'desc',\r\n PageNumber: 1,\r\n PageSize: 20,\r\n OrderType: [-1],\r\n ungeneratedWorkOrderOnly: false,\r\n },\r\n },\r\n {\r\n label: 'Late on Top',\r\n config: {\r\n SearchQuery: '',\r\n CustomerId: 0,\r\n Status: 'open',\r\n ReceivedFrom: DateTime.local()\r\n .minus({ years: 2 })\r\n .toFormat('yyyy-MM-dd'),\r\n ReceivedTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n SortBy: 'dueDate',\r\n SortDirection: 'asc',\r\n PageNumber: 1,\r\n PageSize: 20,\r\n OrderType: [-1],\r\n ungeneratedWorkOrderOnly: false,\r\n },\r\n },\r\n ];\r\n private debouncer = new Subject();\r\n orderTypeControl = new FormControl([-1]);\r\n orderTypePreviousValues: number[] = [-1];\r\n isLoading = false;\r\n searchQueryChange: Subject = new Subject();\r\n @ViewChild('paginator') paginator;\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private router: Router,\r\n private customerService: CustomerService,\r\n private orderService: OrderService,\r\n private userPermissionService: UserPermissionService,\r\n ) {\r\n super(loadService, alertService);\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.order);\r\n this.searchQueryChange\r\n .pipe(debounceTime(500), distinctUntilChanged())\r\n .subscribe((searchQuery) => {\r\n this.orderParams.SearchQuery = searchQuery;\r\n this.onFilter();\r\n // this.getOrdersWithPagination();\r\n });\r\n this.debouncer.pipe(debounceTime(1000)).subscribe(() => {\r\n this.orderParams.OrderType = this.orderTypeControl.value;\r\n this.onFilter();\r\n // this.getOrdersWithPagination();\r\n });\r\n }\r\n\r\n onSelectionChange() {\r\n const currentValue = this.orderTypeControl.value;\r\n let values = currentValue;\r\n const currentSelection = currentValue.find(\r\n (v) => !this.orderTypePreviousValues.includes(v),\r\n );\r\n\r\n if (currentSelection === -1 || currentValue?.length === 0) {\r\n values = [-1];\r\n } else if (currentValue?.length > -1) {\r\n values = currentValue.filter((o) => o !== -1);\r\n }\r\n this.orderTypeControl.setValue(values);\r\n this.orderTypePreviousValues = values;\r\n this.debouncer.next();\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.orderParams.ReceivedFrom = start;\r\n this.orderParams.ReceivedTo = end;\r\n // this.getOrdersWithPagination();\r\n this.getOrders();\r\n }\r\n\r\n onPageChanged(event: PageEvent) {\r\n this.orderParams.PageNumber = event.pageIndex + 1;\r\n this.paginateOrders(this.orderListFiltered);\r\n // this.getOrdersWithPagination(false);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isLoading = true;\r\n this.load();\r\n }\r\n\r\n load() {\r\n forkJoin([this.customerService.getList()])\r\n .pipe(\r\n map(([customerlist]) => {\r\n this.customersList = orderBy(customerlist, 'companyName');\r\n this.selectedCustomer =\r\n this.customersList.length > 0 ? this.customersList[0] : null;\r\n\r\n // this.getOrdersWithPagination();\r\n this.getOrders();\r\n\r\n return {\r\n customerlist,\r\n };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n getOrdersWithPagination(resetPage = true) {\r\n if (resetPage) {\r\n this.paginator._pageIndex = 0;\r\n this.orderParams.PageNumber = 1;\r\n }\r\n this.isLoading = true;\r\n return this.orderService\r\n .getOrdersWithPagination(this.orderParams)\r\n .subscribe(({ body, headers }) => {\r\n const paginationData = headers.get('X-Pagination');\r\n this.pagination =\r\n paginationData != null\r\n ? JSON.parse(paginationData)\r\n : { totalCount: 0 };\r\n this.orderList = body.map((o) => {\r\n const cipoStr = o.cipo\r\n ?.reduce((items, item) => {\r\n if (!item) return items;\r\n return [...items, item.toLowerCase()];\r\n }, [])\r\n .join();\r\n const start = DateTime.fromISO(o.requiredDate);\r\n const end = DateTime.local();\r\n const diff = start.diff(end, 'days').days;\r\n const isAlmostDue = diff <= 4 && diff > 0;\r\n const isAlreadyDue = diff <= 0;\r\n const link = `/main/orders/${o.ordersId}`;\r\n return {\r\n ...o,\r\n customerName:\r\n this.customersList.find((c) => c.custIdno === o.customerId)\r\n ?.companyName ?? '',\r\n receivedDate: DateTime.fromJSDate(\r\n new Date(o.receivedDate),\r\n ).toFormat('MM/dd/yyyy'),\r\n receivedDateRaw: new Date(o.receivedDate),\r\n requiredDate: DateTime.fromJSDate(\r\n new Date(o.requiredDate),\r\n ).toFormat('MM/dd/yyyy'),\r\n dueDate: new Date(o.requiredDate),\r\n isAlmostDue,\r\n isAlreadyDue,\r\n cipoStr,\r\n link,\r\n hasOpenOrder:\r\n o.orderType !== 2 &&\r\n o.items.some((i) => !i.byPassWKOs) &&\r\n o.status === 'Open' &&\r\n o.items.length > o.totalWorkOrderCreated,\r\n hasUnGeneratedWorkOrder:\r\n o.orderType !== 2 &&\r\n o.items.some(\r\n (i) => !i.byPassWKOs && (i.workOrderId ?? 0) === 0,\r\n ) &&\r\n o.status === 'Open' &&\r\n o.items.length > o.totalWorkOrderCreated,\r\n };\r\n });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n getOrders(resetPage = true) {\r\n if (resetPage) {\r\n this.paginator._pageIndex = 0;\r\n this.orderParams.PageNumber = 1;\r\n }\r\n this.isLoading = true;\r\n return this.orderService\r\n .getOrdersPagedV3(this.orderParams)\r\n .subscribe(({ body }) => {\r\n this.pagination = {\r\n totalCount: body.length,\r\n };\r\n this.orderList = body.map((o) => {\r\n const cipoStr = o.cipo\r\n ?.reduce((items, item) => {\r\n if (!item) return items;\r\n return [...items, item.toLowerCase()];\r\n }, [])\r\n .join();\r\n const start = DateTime.fromISO(o.requiredDate);\r\n const end = DateTime.local();\r\n const diff = start.diff(end, 'days').days;\r\n const isAlmostDue = diff <= 4 && diff > 0;\r\n const isAlreadyDue = diff <= 0;\r\n const link = `/main/orders/${o.ordersId}`;\r\n return {\r\n ...o,\r\n customerName:\r\n this.customersList.find((c) => c.custIdno === o.customerId)\r\n ?.companyName ?? '',\r\n receivedDate: DateTime.fromJSDate(\r\n new Date(o.receivedDate),\r\n ).toFormat('MM/dd/yyyy'),\r\n receivedDateRaw: new Date(o.receivedDate),\r\n requiredDate: DateTime.fromJSDate(\r\n new Date(o.requiredDate),\r\n ).toFormat('MM/dd/yyyy'),\r\n dueDate: new Date(o.requiredDate),\r\n isAlmostDue,\r\n isAlreadyDue,\r\n cipoStr,\r\n link,\r\n hasOpenOrder:\r\n o.orderType !== 2 &&\r\n o.items.some((i) => !i.byPassWkos) &&\r\n o.status === 'Open' &&\r\n o.items.length > o.totalWorkOrderCreated,\r\n hasUnGeneratedWorkOrder:\r\n o.orderType !== 2 &&\r\n o.items.some(\r\n (i) => !i.byPassWkos && (i.workOrderId ?? 0) === 0,\r\n ) &&\r\n o.status === 'Open' &&\r\n o.items.length > o.totalWorkOrderCreated,\r\n };\r\n });\r\n this.onFilter();\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n paginateOrders(orders) {\r\n const startIndex =\r\n (this.orderParams.PageNumber - 1) * this.orderParams.PageSize;\r\n const endIndex = startIndex + this.orderParams.PageSize;\r\n this.paginatedOrderList = orders.slice(startIndex, endIndex);\r\n }\r\n\r\n onSearch(searchQuery: string) {\r\n this.searchQueryChange.next(searchQuery);\r\n }\r\n\r\n onSearchOrder(orders) {\r\n if ((this.orderParams.SearchQuery ?? '') === '') {\r\n return orders;\r\n }\r\n return orders.filter(\r\n (o) =>\r\n o.cipoStr\r\n ?.toLocaleLowerCase()\r\n ?.includes(this.orderParams.SearchQuery.toLocaleLowerCase()) ||\r\n o.poexternal\r\n ?.toLocaleLowerCase()\r\n ?.includes(this.orderParams.SearchQuery.toLocaleLowerCase()) ||\r\n o.pointernal\r\n ?.toLocaleLowerCase()\r\n ?.includes(this.orderParams.SearchQuery.toLocaleLowerCase()),\r\n );\r\n }\r\n\r\n onFilterCustomer(orders: RivaOrders[]) {\r\n if ((this.orderParams.CustomerId ?? 0) === 0) {\r\n return orders;\r\n }\r\n return orders.filter((o) => o.customerId === this.orderParams.CustomerId);\r\n }\r\n\r\n onFilterStatus(orders: RivaOrders[]) {\r\n if (this.orderParams.Status === 'all') {\r\n return orders;\r\n }\r\n return orders.filter(\r\n (o) => o.status?.toLocaleLowerCase() === this.orderParams.Status,\r\n );\r\n }\r\n\r\n onFilterOrderType(orders: RivaOrders[]) {\r\n if (this.orderParams.OrderType.includes(-1)) {\r\n return orders;\r\n }\r\n return orders.filter((o) =>\r\n this.orderParams.OrderType.includes(o.orderType),\r\n );\r\n }\r\n\r\n onFilter() {\r\n this.orderListFiltered = orderBy(\r\n this.orderList,\r\n this.orderParams.SortBy,\r\n this.orderParams.SortDirection,\r\n );\r\n this.paginator._pageIndex = 0;\r\n this.orderParams.PageNumber = 1;\r\n\r\n if (this.orderParams.ungeneratedWorkOrderOnly) {\r\n this.orderListFiltered = this.orderListFiltered.filter(\r\n (o) => o.hasUnGeneratedWorkOrder,\r\n );\r\n }\r\n\r\n this.orderListFiltered = this.onFilterCustomer(this.orderListFiltered);\r\n this.orderListFiltered = this.onFilterStatus(this.orderListFiltered);\r\n this.orderListFiltered = this.onFilterOrderType(this.orderListFiltered);\r\n this.orderListFiltered = this.onSearchOrder(this.orderListFiltered);\r\n\r\n this.paginateOrders(this.orderListFiltered);\r\n this.pagination = {\r\n totalCount: this.orderListFiltered.length,\r\n };\r\n }\r\n\r\n setUngeneratedWorkOrderFilter() {\r\n this.orderParams.ungeneratedWorkOrderOnly =\r\n !this.orderParams.ungeneratedWorkOrderOnly;\r\n this.onFilter();\r\n }\r\n\r\n filterOrderList() {\r\n this.orderList = this.ordersAllList.filter(\r\n (x) =>\r\n (!this.selectedCustomerId || x.customerId == this.selectedCustomerId) &&\r\n (this.selectedStatus === 'all' ||\r\n x.status?.toLowerCase() === this.selectedStatus),\r\n );\r\n this.onSort();\r\n }\r\n\r\n searchCustomer() {\r\n this.selectedCustomer = this.customersList.filter(\r\n (x) => x.custIdno == this.selectedCustomerId,\r\n )[0];\r\n this.filterOrderList();\r\n }\r\n\r\n gotoOrders(ordersId) {\r\n this.router.navigate(['/main/orders/' + ordersId]);\r\n }\r\n\r\n onSortChange() {\r\n this.orderParams.SortDirection =\r\n this.orderParams.SortDirection === 'asc' ? 'desc' : 'asc';\r\n this.onFilter();\r\n // this.getOrdersWithPagination();\r\n }\r\n\r\n onSort() {\r\n this.orderList = orderBy(\r\n this.orderList,\r\n [(order) => order[this.selectedSort]?.toLowerCase()],\r\n this.sort,\r\n );\r\n }\r\n\r\n get filteredOrderList() {\r\n if (!this.searchString) return [...(this.orderList ?? [])];\r\n return this.orderList.filter(\r\n (o) =>\r\n o.pointernal\r\n .toLowerCase()\r\n .includes(this.searchString.trim().toLowerCase()) ||\r\n o.poexternal\r\n .toLowerCase()\r\n .includes(this.searchString.trim().toLowerCase()) ||\r\n o.cipoStr.includes(this.searchString.trim().toLowerCase()),\r\n );\r\n }\r\n\r\n onSetFilter(config: OrderParams) {\r\n this.orderParams = { ...config };\r\n this.getOrders();\r\n // this.getOrdersWithPagination();\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n Search by RIVA PO or Customer PO or CI-PO\r\n \r\n \r\n \r\n Filter by customer\r\n \r\n ALL\r\n \r\n {{ customer.companyName }}\r\n \r\n \r\n \r\n \r\n Filter by status\r\n \r\n All\r\n Open\r\n Staged\r\n Shipped\r\n \r\n \r\n \r\n Filter by order type\r\n \r\n All\r\n Standard\r\n Internal\r\n Online\r\n Repair\r\n \r\n \r\n \r\n \r\n Sort by\r\n \r\n RIVA PO\r\n Customer PO\r\n Received Date\r\n Due Date\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n Ungenerated WKOs only\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Presets\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 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 CUSTOMER\r\n \r\n \r\n \r\n Details\r\n \r\n
    \r\n
    \r\n \r\n RIVA PO\r\n \r\n \r\n \r\n Customer PO\r\n \r\n \r\n \r\n RECEIVED DATE\r\n \r\n \r\n \r\n Due Date\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {{\r\n orderdetail.cipo\r\n }}\r\n \r\n {{\r\n orderdetail.productName\r\n }}\r\n {{ imageIndex + 1 }}/{{ order.items.length }}\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n Internal\r\n Online\r\n Repair\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

    No Data

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

    Loading Orders...

    \r\n
    \r\n
    \r\n \r\n\r\n\r\n \r\n {{ present.label }}\r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\n\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { OtherComponentsService } from 'src/app/services/other-components.service';\r\nimport { OtherComponent, OtherComponentRouting } from '../model';\r\nimport { OtherComponentsRoutingComponent } from './other-components-routing.component';\r\n\r\n@Component({\r\n selector: 'other-components-routing-copy-dialog',\r\n templateUrl: './other-components-routing-copy-dialog.component.html',\r\n styleUrls: ['./other-components-routing-copy-dialog.component.scss'],\r\n})\r\nexport class OtherComponentsRoutingCopyDialogComponent implements OnInit {\r\n @ViewChild(OtherComponentsRoutingComponent)\r\n productRoutingComponent: OtherComponentsRoutingComponent;\r\n\r\n otherComponentsId: number = 0;\r\n routings: OtherComponentRouting[];\r\n otherComponents: OtherComponent[] = [];\r\n otherComponent: OtherComponent = {} as OtherComponent;\r\n filteredOtherComponents: Observable;\r\n\r\n otherComponentControl = new FormControl();\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public loadService: LoadService,\r\n public productService: ProductService,\r\n public otherComponentsService: OtherComponentsService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getOtherComponents();\r\n }\r\n initializeFilter() {\r\n this.filteredOtherComponents = this.otherComponentControl.valueChanges.pipe(\r\n startWith(this.otherComponent.longName),\r\n map((value) => this._filterOtherComponent(value)),\r\n );\r\n }\r\n getOtherComponents() {\r\n this.otherComponentsService.getOtherComponents().subscribe((data) => {\r\n this.otherComponents = data;\r\n this.initializeFilter();\r\n });\r\n }\r\n\r\n private _filterOtherComponent(name: string): OtherComponent[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.otherComponents.filter((option) =>\r\n option.longName.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['longName'];\r\n return this.otherComponents.filter((option) =>\r\n option.longName.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.otherComponents;\r\n }\r\n\r\n displayFn(item: OtherComponent): string {\r\n return item?.longName ?? '';\r\n }\r\n\r\n onRoutingChange($events) {\r\n this.routings = $events;\r\n }\r\n\r\n onConfirm() {\r\n this.dialogRef.close(this.routings);\r\n }\r\n}\r\n","

    Copy From Other Component Routing

    \r\n\r\n\r\n \r\n Search Other Component\r\n \r\n \r\n \r\n
    \r\n
    Long Name
    \r\n
    Short Name
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Long Name
    \r\n
    Short Name
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ item.longName }}\r\n
    \r\n
    {{ item.shortName }}
    \r\n
    \r\n {{ item.description }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Copy Routing\r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { OtherComponentsRoutingComponent } from './other-components-routing.component';\r\n\r\n@Component({\r\n selector: 'other-components-routing-dialog',\r\n templateUrl: './other-components-routing-dialog.component.html',\r\n})\r\nexport class OtherComponentsRoutingDialogComponent implements OnInit {\r\n @ViewChild(OtherComponentsRoutingComponent)\r\n routingComponent: OtherComponentsRoutingComponent;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public loadService: LoadService,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { otherComponentsId: number; editMode: boolean },\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onSave() {\r\n this.routingComponent.onSaveRouting();\r\n }\r\n}\r\n","

    Other Components Routing

    \r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { RoutingCodes } from 'src/app/models/product';\r\nimport { RoutingCodeService } from 'src/app/services/routing-code.service';\r\nimport { ConfirmationService } from '../../riva-confirmation/riva-confirmation.service';\r\nimport { OtherComponentRouting } from '../model';\r\nimport { OtherComponentsService } from './../../../services/other-components.service';\r\nimport { OtherComponentsRoutingCopyDialogComponent } from './other-components-routing-copy-dialog.component';\r\nimport { OtherComponentsRoutingDialogComponent } from './other-components-routing-dialog.component';\r\n\r\n@Component({\r\n selector: 'other-components-routing',\r\n templateUrl: './other-components-routing.component.html',\r\n styleUrls: ['./other-components-routing.component.scss'],\r\n})\r\nexport class OtherComponentsRoutingComponent implements OnChanges {\r\n @Input() otherComponentsId: number;\r\n @Input() readonly?: boolean;\r\n @Output() onRoutingChange = new EventEmitter();\r\n @ViewChild('table') table: MatTable;\r\n routingDisplayColumn: string[] = [\r\n 'draggable',\r\n 'activityCode',\r\n 'department',\r\n 'activityDescription',\r\n 'standardTime',\r\n 'comment',\r\n 'delete',\r\n ];\r\n routings: OtherComponentRouting[] = [];\r\n routingsForDelete: OtherComponentRouting[] = [];\r\n routingCodes: RoutingCodes[] = [];\r\n rawRoutingCodes: RoutingCodes[] = [];\r\n filteredRoutingCodes: Observable;\r\n routingControl = new FormControl();\r\n selectedRouting: RoutingCodes;\r\n isSaving = false;\r\n dragEnabled = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n private routingCodeService: RoutingCodeService,\r\n private otherComponentsService: OtherComponentsService,\r\n private loadService: LoadService,\r\n private confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.loadRoutings();\r\n }\r\n\r\n loadRoutings() {\r\n if (!this.otherComponentsId) {\r\n this.routings = [];\r\n this.routingCodes = [];\r\n this.rawRoutingCodes = [];\r\n this.onRoutingChange.emit(this.routings);\r\n return;\r\n }\r\n forkJoin([\r\n this.routingCodeService.getAll(),\r\n this.otherComponentsService.getOtherComponentsRoutings(\r\n this.otherComponentsId,\r\n ),\r\n ]).subscribe(([routingCodes, chainRoutings]) => {\r\n this.routingCodes = [...routingCodes];\r\n this.rawRoutingCodes = [...routingCodes];\r\n this.routings = chainRoutings;\r\n this.onRoutingChange.emit(this.routings);\r\n this.initiateFilters();\r\n });\r\n }\r\n\r\n onCheckRoutingCode() {\r\n this.routingCodes = this.rawRoutingCodes.filter((routingCode) => {\r\n return !this.routings.some(\r\n (productRouting) =>\r\n productRouting.routingCode?.routingCodesId ===\r\n routingCode.routingCodesId,\r\n );\r\n });\r\n }\r\n\r\n displayFn(item: RoutingCodes): string {\r\n return item?.activityCode ?? '';\r\n }\r\n\r\n onSelectRoutingCode(routingCode: RoutingCodes) {\r\n const routing: OtherComponentRouting = {\r\n otherComponentsRoutingID: 0,\r\n otherComponentsID: this.otherComponentsId,\r\n routingCodesID: routingCode.routingCodesId,\r\n standardTime: 0,\r\n comment: '',\r\n routingCode: routingCode,\r\n tempRoutingId: +new Date(),\r\n routingId: 0,\r\n };\r\n this.routings = [...this.routings, routing];\r\n this.selectedRouting = null;\r\n }\r\n\r\n initiateFilters() {\r\n this.filteredRoutingCodes = this.routingControl.valueChanges.pipe(\r\n startWith(this.selectedRouting?.activityCode),\r\n map((value) => this._filterRoutingCode(value)),\r\n );\r\n }\r\n\r\n private _filterRoutingCode(name: string): RoutingCodes[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.routingCodes.filter(\r\n (option) =>\r\n option.activityCode.toLowerCase().includes(filterValue) ||\r\n option.department.toLowerCase().includes(filterValue) ||\r\n option.activityDesc.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.routingCodes;\r\n }\r\n\r\n dropTable(event: CdkDragDrop) {\r\n const prevIndex = this.routings.findIndex((d) => d === event.item.data);\r\n moveItemInArray(this.routings, prevIndex, event.currentIndex);\r\n }\r\n\r\n onSaveRouting() {\r\n if (!this.routings?.length) {\r\n this.dialogRef.close();\r\n return;\r\n }\r\n const data = this.routings.map(({ routingCode, ...p }, index) => ({\r\n ...p,\r\n routingOrder: index + 1,\r\n }));\r\n this.loadService.isSavingOtherComponentRouting = true;\r\n this.otherComponentsService.setOtherComponentsRoutings(data).subscribe(\r\n () => {\r\n this.loadService.isSavingOtherComponentRouting = false;\r\n this.dialogRef.close();\r\n },\r\n () => {\r\n this.loadService.isSavingOtherComponentRouting = false;\r\n },\r\n );\r\n }\r\n onDeleteRouting(routing: OtherComponentRouting) {\r\n this.confirmationService\r\n .showConfirmation({\r\n content: `Continue to delete ${routing.routingCode.activityCode} from Other Component Routing?`,\r\n title: 'Delete routing?',\r\n confirmLabel: 'Continue',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n if (routing.otherComponentsRoutingID) {\r\n this.routings = this.routings.filter(\r\n (p) =>\r\n p.otherComponentsRoutingID !== routing.otherComponentsRoutingID,\r\n );\r\n this.otherComponentsService\r\n .deleteOtherComponentsRoutings(routing.otherComponentsRoutingID)\r\n .subscribe();\r\n } else {\r\n this.routings = this.routings.filter(\r\n (p) => p.tempRoutingId !== routing.tempRoutingId,\r\n );\r\n }\r\n }\r\n });\r\n }\r\n onCopyRoutingOpen() {\r\n const dialogRef = this.dialog.open(\r\n OtherComponentsRoutingCopyDialogComponent,\r\n {\r\n disableClose: true,\r\n maxWidth: '1000px',\r\n width: '100%',\r\n autoFocus: false,\r\n },\r\n );\r\n dialogRef.afterClosed().subscribe((newRoutings) => {\r\n if (!newRoutings) return;\r\n this.routings = newRoutings.map((r, index) => ({\r\n ...r,\r\n otherComponentsRoutingID: 0,\r\n otherComponentsID: this.otherComponentsId,\r\n tempRoutingId: +new Date() + index,\r\n }));\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Search routing code to add\r\n \r\n \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ routingCode.activityCode }}\r\n
    \r\n
    \r\n {{ routingCode.department }}\r\n
    \r\n
    \r\n {{ routingCode.activityDesc }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not 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 Copy From\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    Standard Time
    \r\n
    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 {{ routing.routingCode?.activityCode }}\r\n
    \r\n
    \r\n {{ routing.routingCode?.department }}\r\n
    \r\n
    \r\n {{ routing.routingCode?.activityDesc }}\r\n
    \r\n \r\n {{ routing.standardTime }}\r\n \r\n
    \r\n \r\n {{ routing.comment }}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    No Data
    \r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { OtherComponentsService } from 'src/app/services/other-components.service';\r\nimport { OtherComponentSize } from '../model';\r\n\r\n@Component({\r\n templateUrl: './other-components-size-dialog.component.html',\r\n styleUrls: ['./other-components-size-dialog.component.scss'],\r\n})\r\nexport class OtherComponentsSizeDialogComponent {\r\n isSaving = false;\r\n otherComponentSize: OtherComponentSize = {} as OtherComponentSize;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: { otherComponentsId: number },\r\n public dialogRef: MatDialogRef,\r\n private otherComponentsService: OtherComponentsService,\r\n ) {}\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n this.otherComponentSize.otherComponentsID = this.data.otherComponentsId;\r\n this.otherComponentsService\r\n .setOtherComponentsSizes(this.otherComponentSize)\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const scene1 =\r\n this.otherComponentSize.dimension_1 > 0 &&\r\n !this.otherComponentSize.dimension_2 &&\r\n !this.otherComponentSize.dimension_3 &&\r\n !this.otherComponentSize.dimension_4 &&\r\n !this.otherComponentSize.dimension_5;\r\n const scene2 =\r\n this.otherComponentSize.dimension_1 > 0 &&\r\n this.otherComponentSize.dimension_2 > 0 &&\r\n !this.otherComponentSize.dimension_3 &&\r\n !this.otherComponentSize.dimension_4 &&\r\n !this.otherComponentSize.dimension_5;\r\n const scene3 =\r\n this.otherComponentSize.dimension_1 > 0 &&\r\n this.otherComponentSize.dimension_2 > 0 &&\r\n this.otherComponentSize.dimension_3 > 0 &&\r\n !this.otherComponentSize.dimension_4 &&\r\n !this.otherComponentSize.dimension_5;\r\n const scene4 =\r\n this.otherComponentSize.dimension_1 > 0 &&\r\n this.otherComponentSize.dimension_2 > 0 &&\r\n this.otherComponentSize.dimension_3 > 0 &&\r\n this.otherComponentSize.dimension_4 > 0 &&\r\n !this.otherComponentSize.dimension_5;\r\n const scene5 =\r\n this.otherComponentSize.dimension_1 > 0 &&\r\n this.otherComponentSize.dimension_2 > 0 &&\r\n this.otherComponentSize.dimension_3 > 0 &&\r\n this.otherComponentSize.dimension_4 > 0 &&\r\n this.otherComponentSize.dimension_5 > 0;\r\n return scene1 || scene2 || scene3 || scene4 || scene5;\r\n }\r\n}\r\n","
    \r\n

    Other Component Size

    \r\n \r\n
    \r\n \r\n Dimension 1\r\n \r\n \r\n \r\n Dimension 2\r\n \r\n \r\n \r\n Dimension 3\r\n \r\n \r\n \r\n Dimension 4\r\n \r\n \r\n \r\n Dimension 5\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { OtherComponentMaterial, OtherComponentSize } from '../model';\r\n\r\ninterface SkuDetail {\r\n materialCodeId: number;\r\n otherComponentSizeId: number;\r\n}\r\n\r\n@Component({\r\n templateUrl: './other-components-sku-generator-dialog.component.html',\r\n styleUrls: ['./other-components-sku-generator-dialog.component.scss'],\r\n})\r\nexport class OtherComponentsSkuGeneratorDialogComponent implements OnInit {\r\n skuDetail: SkuDetail = {} as SkuDetail;\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n otherComponentId: number;\r\n materials: OtherComponentMaterial[];\r\n sizes: OtherComponentSize[];\r\n },\r\n public dialogRef: MatDialogRef,\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n getGeneratedProductSku() {\r\n const otherComponentId = String(this.data.otherComponentId ?? 0).padStart(\r\n 6,\r\n '0',\r\n );\r\n const sizeId = String(this.skuDetail.otherComponentSizeId ?? 0).padStart(\r\n 5,\r\n '0',\r\n );\r\n const materialCodeId = String(this.skuDetail.materialCodeId ?? 0).padStart(\r\n 3,\r\n '0',\r\n );\r\n\r\n return `OTHERCOMP-${otherComponentId}-${sizeId}-${materialCodeId}`;\r\n }\r\n\r\n onCopySku() {\r\n navigator.clipboard.writeText(this.getGeneratedProductSku());\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","
    \r\n

    Generate Other Component SKU

    \r\n \r\n
    \r\n \r\n Size\r\n \r\n -- None --\r\n \r\n {{ size.label }}\r\n \r\n \r\n \r\n \r\n Material\r\n \r\n -- None --\r\n \r\n
    \r\n {{ mats.materialCode.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

    {{ getGeneratedProductSku() }}

    \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n Close\r\n \r\n \r\n\r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { OTHER_COMPONENT_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/other-component-permission';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { OtherComponentsService } from 'src/app/services/other-components.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { ConfirmationService } from '../riva-confirmation/riva-confirmation.service';\r\nimport {\r\n OtherComponent,\r\n OtherComponentMaterial,\r\n OtherComponentSize,\r\n OtherComponentType,\r\n} from './model';\r\nimport { OtherComponentsRoutingDialogComponent } from './other-components-routing/other-components-routing-dialog.component';\r\nimport { OtherComponentsSizeDialogComponent } from './other-components-size-dialog/other-components-size-dialog.component';\r\nimport { OtherComponentsSkuGeneratorDialogComponent } from './other-components-sku-generator-dialog/other-components-sku-generator-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-other-components',\r\n templateUrl: './other-components.component.html',\r\n styleUrls: ['./other-components.component.scss'],\r\n})\r\nexport class OtherComponentsComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns = [\r\n 'longName',\r\n 'shortName',\r\n 'description',\r\n 'uom',\r\n 'typeDisplay',\r\n ];\r\n otherComponents = new MatTableDataSource([]);\r\n selectedOtherComponent: OtherComponent = {} as OtherComponent;\r\n otherComponentMaterials: OtherComponentMaterial[] = [];\r\n otherComponentTypes: OtherComponentType[] = [];\r\n otherComponentSizes: OtherComponentSize[] = [];\r\n unitOfMeasures: UnitOfMeasure[] = [];\r\n filteredMaterialCodes: MaterialCode[] = [];\r\n materialCodes: MaterialCode[] = [];\r\n\r\n editMode = false;\r\n isSaving = false;\r\n isSavingMaterials = false;\r\n isUploadingImage = false;\r\n search = '';\r\n otherComponentsTypeID = 0;\r\n selectedMaterialCode: number = 0;\r\n featureKey = OTHER_COMPONENT_FEATURE_KEY;\r\n\r\n constructor(\r\n private otherComponentsService: OtherComponentsService,\r\n private uomService: UnitOfMeasureService,\r\n private materialCodeService: MaterialCodeService,\r\n private toastrService: ToastrService,\r\n public dialog: MatDialog,\r\n private _confirmationService: ConfirmationService,\r\n private userPermissionService: UserPermissionService\r\n ) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.otherComponents);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.otherComponentsService.getOtherComponentsTypes().subscribe((data) => {\r\n this.otherComponentTypes = data;\r\n });\r\n this.getOtherComponents();\r\n this.uomService.getList().subscribe(({ responseObject }) => {\r\n this.unitOfMeasures = responseObject;\r\n });\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject.filter((m) => !m.multiMetal);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.otherComponents.sort = this.sort;\r\n this.otherComponents.filterPredicate = (\r\n data: OtherComponent,\r\n filterValue: string,\r\n ) => {\r\n const { search = '', otherComponentsTypeID } =\r\n JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.longName?.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.shortName?.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.uom?.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.typeDisplay?.toLowerCase().includes(search?.toLowerCase());\r\n return (\r\n searchFilter &&\r\n (otherComponentsTypeID === 0 ||\r\n data.types.otherComponentsTypeID === otherComponentsTypeID)\r\n );\r\n };\r\n }\r\n\r\n getOtherComponents(otherComponentsID = 0) {\r\n this.otherComponentsService.getOtherComponents().subscribe((data = []) => {\r\n this.otherComponents.data = data;\r\n const selected =\r\n otherComponentsID > 0\r\n ? data.find((o) => o.otherComponentsID === otherComponentsID)\r\n : data[data.length - 1];\r\n this.selectedOtherComponent = {\r\n ...(selected ?? ({} as OtherComponent)),\r\n };\r\n this.getOtherComponentMaterials(\r\n this.selectedOtherComponent.otherComponentsID,\r\n );\r\n this.getOtherComponentSizes(\r\n this.selectedOtherComponent.otherComponentsID,\r\n );\r\n });\r\n }\r\n\r\n getOtherComponentMaterials(otherComponentsID = 0) {\r\n this.otherComponentMaterials = [];\r\n if (otherComponentsID === 0) return;\r\n\r\n this.otherComponentsService\r\n .getOtherComponentsMaterials(otherComponentsID)\r\n .subscribe((data) => {\r\n this.otherComponentMaterials = data;\r\n\r\n this.filteredMaterialCodes = this.materialCodes.filter(\r\n (m) => !data.some((c) => c.materialsCodeID === m.materialCodeId),\r\n );\r\n });\r\n }\r\n\r\n getOtherComponentSizes(otherComponentsID = 0) {\r\n this.otherComponentSizes = [];\r\n if (otherComponentsID === 0) return;\r\n this.otherComponentsService\r\n .getOtherComponentsSizes(otherComponentsID)\r\n .subscribe((data) => {\r\n this.otherComponentSizes = data;\r\n });\r\n }\r\n\r\n onSaveMaterial() {\r\n this.isSavingMaterials = true;\r\n this.otherComponentsService\r\n .setOtherComponentMaterial({\r\n otherComponentsID: this.selectedOtherComponent.otherComponentsID,\r\n materialsCodeID: [this.selectedMaterialCode],\r\n })\r\n .subscribe(() => {\r\n this.selectedMaterialCode = 0;\r\n this.isSavingMaterials = false;\r\n this.getOtherComponentMaterials(\r\n this.selectedOtherComponent.otherComponentsID,\r\n );\r\n });\r\n }\r\n\r\n onFilterChange() {\r\n this.otherComponents.filter = JSON.stringify({\r\n search: this.search,\r\n otherComponentsTypeID: this.otherComponentsTypeID,\r\n });\r\n }\r\n\r\n onRowClick(row: OtherComponent) {\r\n this.selectedOtherComponent = { ...row };\r\n this.getOtherComponentMaterials(\r\n this.selectedOtherComponent.otherComponentsID,\r\n );\r\n this.getOtherComponentSizes(this.selectedOtherComponent.otherComponentsID);\r\n }\r\n\r\n onCreateNew() {\r\n this.editMode = true;\r\n this.selectedOtherComponent = {\r\n otherComponentsID: 0,\r\n longName: '',\r\n shortName: '',\r\n description: '',\r\n unitsOfMeasureID: 0,\r\n picPath: '',\r\n inHouse: false,\r\n otherComponentsTypeID: 0,\r\n };\r\n this.otherComponentMaterials = [];\r\n this.otherComponentSizes = [];\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n this.otherComponentsService\r\n .setOtherComponent({\r\n otherComponentsID: this.selectedOtherComponent.otherComponentsID ?? 0,\r\n longName: this.selectedOtherComponent.longName,\r\n shortName: this.selectedOtherComponent.shortName,\r\n description: this.selectedOtherComponent.description,\r\n unitsOfMeasureID: this.selectedOtherComponent.unitsOfMeasureID,\r\n inHouse: this.selectedOtherComponent.inHouse,\r\n otherComponentsTypeID:\r\n this.selectedOtherComponent.otherComponentsTypeID,\r\n })\r\n .subscribe(() => {\r\n this.editMode = false;\r\n this.isSaving = false;\r\n this.getOtherComponents(this.selectedOtherComponent.otherComponentsID);\r\n });\r\n }\r\n\r\n get formValid() {\r\n return (\r\n this.selectedOtherComponent.longName &&\r\n this.selectedOtherComponent.shortName &&\r\n this.selectedOtherComponent.unitsOfMeasureID &&\r\n this.selectedOtherComponent.otherComponentsTypeID\r\n );\r\n }\r\n\r\n onCancelEdit() {\r\n this.editMode = false;\r\n this.selectedOtherComponent = {\r\n ...(this.otherComponents.data.find(\r\n (o) =>\r\n o.otherComponentsID === this.selectedOtherComponent.otherComponentsID,\r\n ) ??\r\n this.otherComponents.data[this.otherComponents.data.length - 1] ??\r\n ({} as OtherComponent)),\r\n };\r\n this.getOtherComponentMaterials(\r\n this.selectedOtherComponent.otherComponentsID,\r\n );\r\n this.getOtherComponentSizes(this.selectedOtherComponent.otherComponentsID);\r\n }\r\n\r\n onSetEditMode() {\r\n this.editMode = !this.editMode;\r\n }\r\n\r\n uploadOtherComponentImage(files: FileList) {\r\n if (files.length === 0) return;\r\n const formData = new FormData();\r\n\r\n for (let i = 0; i < files.length; i++) {\r\n formData.append('file[]', files[i]);\r\n }\r\n\r\n formData.append(\r\n 'otherComponentId',\r\n this.selectedOtherComponent.otherComponentsID.toString(),\r\n );\r\n\r\n this.isUploadingImage = true;\r\n this.otherComponentsService.uploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n console.log(event);\r\n this.selectedOtherComponent.picPath = event.body;\r\n this.otherComponents.data = this.otherComponents.data.map((c) => ({\r\n ...c,\r\n picPath:\r\n this.selectedOtherComponent.otherComponentsID ===\r\n c.otherComponentsID\r\n ? event.body\r\n : c.picPath,\r\n }));\r\n this.toastrService.success('Successfully uploaded.');\r\n this.isUploadingImage = false;\r\n }\r\n });\r\n }\r\n onRoutingDialogOpen() {\r\n this.dialog.open(OtherComponentsRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n otherComponentsId: this.selectedOtherComponent.otherComponentsID,\r\n editMode: this.editMode,\r\n },\r\n });\r\n }\r\n onSizeDialogOpen() {\r\n const ref = this.dialog.open(OtherComponentsSizeDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n otherComponentsId: this.selectedOtherComponent.otherComponentsID,\r\n },\r\n });\r\n ref.afterClosed().subscribe((reload) => {\r\n reload &&\r\n this.getOtherComponentSizes(\r\n this.selectedOtherComponent.otherComponentsID,\r\n );\r\n });\r\n }\r\n onDeleteMaterial(material: OtherComponentMaterial) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Material',\r\n content: 'Are you sure you want to delete this material?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.otherComponentsService\r\n .deleteOtherComponentMaterial(material.otherComponentsMaterialsID)\r\n .subscribe(() => {\r\n this.getOtherComponentMaterials(\r\n this.selectedOtherComponent.otherComponentsID,\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n onDeleteSize(size: OtherComponentSize) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Size',\r\n content: 'Are you sure you want to delete this size?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.otherComponentsService\r\n .deleteOtherComponentsSize(size.otherComponentsSizesID)\r\n .subscribe(() => {\r\n this.getOtherComponentSizes(\r\n this.selectedOtherComponent.otherComponentsID,\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n onOpenGenerateSkuDialog() {\r\n this.dialog.open(OtherComponentsSkuGeneratorDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '800px',\r\n width: '100%',\r\n data: {\r\n otherComponentId: this.selectedOtherComponent.otherComponentsID,\r\n materials: this.otherComponentMaterials,\r\n sizes: this.otherComponentSizes,\r\n },\r\n autoFocus: false,\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n \r\n Search\r\n \r\n \r\n \r\n Filter by type\r\n \r\n All \r\n \r\n {{ type.type }}\r\n \r\n \r\n \r\n
    \r\n \r\n SKUs\r\n \r\n
    \r\n \r\n + New\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Long Name\r\n \r\n \r\n {{ element.longName }}\r\n \r\n \r\n \r\n \r\n Short Name\r\n \r\n \r\n {{ element.shortName }}\r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n {{ element.description }}\r\n \r\n \r\n \r\n \r\n UOM\r\n \r\n \r\n {{ element.uom }}\r\n \r\n \r\n \r\n \r\n Type\r\n \r\n \r\n {{ element.typeDisplay }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n In-House\r\n
    \r\n \r\n Long name\r\n \r\n \r\n \r\n Short name\r\n \r\n \r\n \r\n UOM\r\n \r\n \r\n {{ unitOfMeasure.uom }}\r\n \r\n \r\n \r\n \r\n Type\r\n \r\n \r\n {{ type.type }}\r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ item.materialCode?.description }}\r\n
    \r\n \r\n
    \r\n
    \r\n 0\"\r\n >\r\n \r\n Material Code\r\n \r\n \r\n {{ mats.description }}\r\n \r\n \r\n \r\n \r\n Add Material\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {{ item.label }}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n 0\"\r\n style=\"margin-top: 15px\"\r\n >\r\n \r\n Add Size\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n Routing\r\n \r\n \r\n \r\n\r\n","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { Component, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { DateTime } from 'luxon';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { CustomerAddOns, Customers } from 'src/app/models/customer';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { ConfirmationService } from '../riva-confirmation/riva-confirmation.service';\r\n\r\ninterface CustomerCustomPricing extends Customers {\r\n isLoading?: boolean;\r\n customPricing?: CustomerAddOns[];\r\n}\r\n\r\n@Component({\r\n selector: 'app-price-custom',\r\n templateUrl: './price-custom.component.html',\r\n styleUrls: ['./price-custom.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'),\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class PriceCustomComponent {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n constructor(\r\n private customerService: CustomerService,\r\n private userPermissionService: UserPermissionService,\r\n private toastrService: ToastrService,\r\n private _confirmationService: ConfirmationService,\r\n ) {\r\n }\r\n\r\n formatterDollar = (value: number): string =>\r\n value ? `$ ${value.toFixed(2)}` : '';\r\n parserDollar = (value: string): string => value.replace('$ ', '');\r\n\r\n customers = new MatTableDataSource([]);\r\n displayedColumns: string[] = [\r\n 'expander',\r\n 'picPath',\r\n 'customerId',\r\n 'companyName',\r\n ];\r\n expandedCustomer: Record = {};\r\n search = '';\r\n\r\n ngOnInit(): void {\r\n this.getCustomers();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.customers.sort = this.sort;\r\n this.customers.filterPredicate = (data: Customers, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.companyName\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.contactName?.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.emailAddress?.toString().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n }\r\n\r\n onFilterChange() {\r\n this.customers.filter = JSON.stringify({ search: this.search });\r\n }\r\n\r\n getCustomers() {\r\n this.customerService.getList().subscribe((result) => {\r\n this.customers.data = result.map((customer) => ({\r\n ...customer,\r\n isLoading: false,\r\n customPricing: [],\r\n }));\r\n });\r\n }\r\n updateExpandedCustomer(row: CustomerCustomPricing) {\r\n this.expandedCustomer[row.custIdno] = !this.expandedCustomer[row.custIdno];\r\n if (this.expandedCustomer[row.custIdno]) {\r\n row.isLoading = true;\r\n this.customerService\r\n .getCustomerAddOnsByCustomerId(row.custIdno)\r\n .subscribe((result) => {\r\n row.customPricing = result;\r\n row.isLoading = false;\r\n });\r\n }\r\n }\r\n onCreateNewCustomPricing(row: CustomerCustomPricing) {\r\n row.customPricing = [\r\n ...row.customPricing,\r\n {\r\n key: DateTime.now().toMillis(),\r\n customerAddOnID: 0,\r\n customerId: row.custIdno,\r\n name: '',\r\n description: '',\r\n price: 0,\r\n },\r\n ];\r\n }\r\n onDeleteCustomPricing(row: CustomerCustomPricing, pricing: CustomerAddOns) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete custom pricing?',\r\n content: `Are you sure you want to delete this custom pricing for ${row.companyName}?`,\r\n confirmLabel: 'Yes, delete it.',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n row.customPricing = row.customPricing.filter((p) =>\r\n (pricing.customerAddOnID ?? 0) === 0\r\n ? p.key !== pricing.key\r\n : p.customerAddOnID !== pricing.customerAddOnID,\r\n );\r\n if ((pricing.customerAddOnID ?? 0) > 0) {\r\n this.customerService\r\n .deleteCustomerAddOns(pricing.customerAddOnID)\r\n .subscribe(\r\n () => {\r\n this.toastrService.success('Successfully deleted');\r\n },\r\n () => {\r\n this.toastrService.error(\r\n 'There is an error when deleting custom pricing',\r\n );\r\n },\r\n );\r\n } else {\r\n this.toastrService.success('Successfully deleted');\r\n }\r\n });\r\n }\r\n onSaveCustomPricing(pricing: CustomerAddOns) {\r\n this.customerService.setCustomerAddOns(pricing).subscribe(\r\n () => {\r\n this.toastrService.success('Successfully saved');\r\n },\r\n () => {\r\n this.toastrService.error(\r\n 'There is an error when saving custom pricing',\r\n );\r\n },\r\n );\r\n }\r\n}\r\n","
    \r\n \r\n

    Pricing Custom

    \r\n
    \r\n \r\n Search by company, contact or email\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Customer ID\r\n \r\n {{ element.customerId }}\r\n \r\n \r\n \r\n Company\r\n \r\n {{ element.companyName }}\r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    Name
    \r\n
    Description
    \r\n
    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
    \r\n
    \r\n \r\n Delete\r\n \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n \r\n \r\n No Custom Pricing\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n\r\n","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { DateTime } from 'luxon';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { forkJoin } from 'rxjs';\r\nimport { CustomerAddOns, Customers } from 'src/app/models/customer';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { PricingEquationService } from 'src/app/services/pricing-equation.service';\r\nimport { CustomerAdditionalCharges } from './customer-additional-charges';\r\n\r\n@Component({\r\n selector: 'app-customer-additional-charges',\r\n templateUrl: './customer-additional-charges.component.html',\r\n styleUrls: ['./customer-additional-charges.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'),\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class CustomerAdditionalChargesComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n constructor(\r\n private customerService: CustomerService,\r\n private pricingEquationService: PricingEquationService,\r\n private toastrService: ToastrService,\r\n ) {}\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns = ['expander', 'companyName', 'emptyCell'];\r\n\r\n customerAdditionalCharges = new MatTableDataSource(\r\n [],\r\n );\r\n customerOptions: Partial[] = [];\r\n customerNormalized: Record = {};\r\n isSaving = false;\r\n expandedCustomer: Record = {};\r\n\r\n formatterPercent = (value: number): string => (value ? `${value} %` : '');\r\n parserPercent = (value: string): string => value.replace(' %', '');\r\n formatterDollar = (value: number): string =>\r\n value ? `$ ${value.toFixed(2)}` : '';\r\n parserDollar = (value: string): string => value.replace('$ ', '');\r\n\r\n ngOnInit(): void {\r\n forkJoin([\r\n this.customerService.getList(),\r\n this.customerService.getCustomerAddOns(),\r\n ]).subscribe(([customers, addons]) => {\r\n this.customerOptions = customers;\r\n this.customerNormalized = customers.reduce(\r\n (prev, curr) => ({\r\n ...prev,\r\n [curr.custIdno]: curr,\r\n }),\r\n {},\r\n );\r\n this.mapCustomerAddOns(addons);\r\n });\r\n }\r\n\r\n mapCustomerAddOns(addOns: CustomerAddOns[]) {\r\n const customerAddOnsGroup = addOns.reduce(\r\n (prev, curr) => ({\r\n ...prev,\r\n [curr.customerId]: [...(prev[curr.customerId] ?? []), curr],\r\n }),\r\n {} as Record,\r\n );\r\n\r\n this.customerAdditionalCharges.data = Object.keys(customerAddOnsGroup).map(\r\n (key, index) => {\r\n return {\r\n custIdno: +key,\r\n companyName: this.customerNormalized[+key].companyName,\r\n customPricing: customerAddOnsGroup[+key],\r\n sortOrder: index,\r\n };\r\n },\r\n );\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.customerAdditionalCharges.sort = this.sort;\r\n }\r\n\r\n onCreateNewDefault() {\r\n this.customerAdditionalCharges.data = [\r\n ...this.customerAdditionalCharges.data,\r\n {\r\n isNew: true,\r\n custIdno: 0,\r\n companyName: '',\r\n customPricing: [],\r\n sortOrder: this.customerAdditionalCharges.data.length + 1,\r\n },\r\n ];\r\n }\r\n\r\n onCreateNewCustomPricing(row: CustomerAdditionalCharges) {\r\n row.customPricing = [\r\n ...row.customPricing,\r\n {\r\n key: DateTime.now().toMillis(),\r\n customerAddOnID: 0,\r\n customerId: row.custIdno,\r\n name: '',\r\n description: '',\r\n price: 0,\r\n },\r\n ];\r\n }\r\n\r\n updateExpandedCustomer(row: CustomerAdditionalCharges) {\r\n this.expandedCustomer[row.custIdno] = !this.expandedCustomer[row.custIdno];\r\n }\r\n\r\n onSaveCustomPricingByCustomer(row: CustomerAdditionalCharges) {\r\n const request = row.customPricing.map((c) =>\r\n this.customerService.setCustomerAddOns(c),\r\n );\r\n row.isSaving = true;\r\n forkJoin(request).subscribe(\r\n () => {\r\n this.customerService\r\n .getCustomerAddOns()\r\n .subscribe((addOns) => {\r\n row.isSaving = false;\r\n this.mapCustomerAddOns(addOns);\r\n });\r\n },\r\n () => {\r\n this.toastrService.error(\r\n 'There is an error when saving custom pricing',\r\n );\r\n },\r\n );\r\n }\r\n\r\n hasInvalidForm(charges: CustomerAddOns[]) {\r\n return charges.some((p) => !p.name || !p.price);\r\n }\r\n}\r\n","
    \r\n \r\n \r\n \r\n \r\n \r\n New Customer Additional Charges\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 Customer\r\n \r\n \r\n \r\n \r\n {{ element.companyName }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    Name
    \r\n
    Description
    \r\n
    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
    \r\n \r\n \r\n No Custom Pricing\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { forkJoin } from 'rxjs';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { PricingEquationService } from 'src/app/services/pricing-equation.service';\r\nimport { CustomerPriceDefault } from './customer-price-default';\r\n\r\n@Component({\r\n selector: 'app-customer-price-defaults',\r\n templateUrl: './customer-price-defaults.component.html',\r\n styleUrls: ['./customer-price-defaults.component.scss'],\r\n})\r\nexport class CustomerPriceDefaultsComponent implements OnInit, AfterViewInit {\r\n constructor(\r\n private customerService: CustomerService,\r\n private pricingEquationService: PricingEquationService,\r\n ) {}\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns = [\r\n 'companyName',\r\n 'stdLaborPerMinCost',\r\n 'settingLaborPerMinCost',\r\n 'ohPercent',\r\n 'profitPercent',\r\n 'emptyCell',\r\n ];\r\n\r\n customers = new MatTableDataSource([]);\r\n customerOptions: Partial[] = [];\r\n defaultForCustomer: CustomerPriceDefault;\r\n isSaving = false;\r\n\r\n formatterPercent = (value: number): string => value ? `${value} %` : '';\r\n parserPercent = (value: string): string => value.replace(' %', '');\r\n formatterDollar = (value: number): string => value ? `$ ${value.toFixed(2)}` : '';\r\n parserDollar = (value: string): string => value.replace('$ ', '');\r\n\r\n ngOnInit(): void {\r\n this.loadDefaults();\r\n }\r\n\r\n loadDefaults() {\r\n forkJoin([\r\n this.customerService.getList(),\r\n this.pricingEquationService.getCustomerDefaults(),\r\n ]).subscribe(([customers, customerDefaults]) => {\r\n this.customerOptions = orderBy(customers, 'companyName').reduce((accum, c) => {\r\n const isExist = customerDefaults.some(\r\n (d) => d.customerID === c.custIdno,\r\n );\r\n if (isExist) return accum;\r\n return [\r\n ...accum,\r\n {\r\n customerID: c.custIdno,\r\n companyName: c.companyName,\r\n },\r\n ];\r\n }, []);\r\n this.defaultForCustomer = customerDefaults.find(\r\n (d) => d.customerID === 0,\r\n );\r\n this.customers.data = orderBy(customerDefaults, [\r\n 'prC_DefaultsID',\r\n ]).reduce((accum, customerDefault, index) => {\r\n if (customerDefault.customerID === 0) {\r\n return [\r\n ...accum,\r\n {\r\n ...customerDefault,\r\n companyName: 'All customers',\r\n sortOrder: index + 1,\r\n },\r\n ];\r\n } else {\r\n const customer =\r\n customers.find((c) => c.custIdno === customerDefault.customerID) ??\r\n {};\r\n return [\r\n ...accum,\r\n {\r\n ...customerDefault,\r\n companyName: customer.companyName ?? '',\r\n sortOrder: index + 1,\r\n },\r\n ];\r\n }\r\n }, []);\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.customers.sort = this.sort;\r\n }\r\n\r\n onCreateNewDefault() {\r\n this.customers.data = [\r\n ...this.customers.data,\r\n {\r\n isNew: true,\r\n customerID: 0,\r\n companyName: '',\r\n prC_DefaultsID: 0,\r\n sortOrder: this.customers.data.length + 1,\r\n },\r\n ];\r\n }\r\n\r\n onSaveDefaults() {\r\n const requests = this.customers.data.reduce((accum, customer) => {\r\n if (customer.isNew && !customer.customerID) return accum;\r\n const hasValue =\r\n (customer.stdLaborPerMinCost || 0) !== 0 ||\r\n (customer.settingLaborPerMinCost || 0) !== 0 ||\r\n (customer.ohPercent || 0) !== 0 ||\r\n (customer.profitPercent || 0) !== 0;\r\n if (customer.prC_DefaultsID > 0 || hasValue) {\r\n if (!hasValue) {\r\n return [\r\n ...accum,\r\n this.pricingEquationService.deleteCustomerDefaults(\r\n customer.prC_DefaultsID,\r\n ),\r\n ];\r\n } else {\r\n return [\r\n ...accum,\r\n this.pricingEquationService.setCustomerDefaults({\r\n ...customer,\r\n stdLaborPerMinCost: customer.stdLaborPerMinCost || null,\r\n settingLaborPerMinCost: customer.settingLaborPerMinCost || null,\r\n ohPercent: customer.ohPercent || null,\r\n profitPercent: customer.profitPercent || null,\r\n }),\r\n ];\r\n }\r\n }\r\n return accum;\r\n }, []);\r\n this.isSaving = true;\r\n forkJoin(requests).subscribe(() => {\r\n this.loadDefaults();\r\n this.isSaving = false;\r\n });\r\n }\r\n}\r\n","
    \r\n \r\n \r\n \r\n \r\n \r\n New Customer Default\r\n \r\n
    \r\n \r\n \r\n Customer\r\n \r\n \r\n \r\n \r\n {{ element.companyName }}\r\n \r\n \r\n \r\n STD Labor Per Min Cost\r\n \r\n \r\n \r\n \r\n \r\n Setting Labor Per Min Cost\r\n \r\n \r\n \r\n \r\n \r\n Overhead Percentage\r\n \r\n \r\n \r\n \r\n \r\n Profit Percentage\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n \r\n Save All Defaults\r\n \r\n
    \r\n
    \r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-price-defaults',\r\n templateUrl: './price-defaults.component.html',\r\n styleUrls: ['./price-defaults.component.scss'],\r\n})\r\nexport class PriceDefaultsComponent {\r\n currentTabValue: 'Defaults' | 'Charges' = 'Defaults';\r\n onSelectTab(value) {\r\n this.currentTabValue = 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","import { Component } from '@angular/core';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport {\r\n GroupItem,\r\n GroupItemRequest,\r\n Product,\r\n ProductsStoreInfo,\r\n} from 'src/app/models/product';\r\nimport { ProductStoreInfoService } from 'src/app/services/product-store-info.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\n@Component({\r\n selector: 'app-product-group-table',\r\n templateUrl: './product-group-table.component.html',\r\n styleUrls: ['./product-group-table.component.scss'],\r\n})\r\nexport class ProductGroupTableComponent extends GenericComponent {\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private productService: ProductService,\r\n private storeInfoService: ProductStoreInfoService,\r\n private modalService: NgbModal,\r\n ) {\r\n super(loadService, alertService);\r\n this.load();\r\n }\r\n\r\n groupParents: Product[] = [];\r\n\r\n load() {\r\n this.storeInfoService.getGroupParents().subscribe(\r\n (response) => {\r\n this.groupParents = response;\r\n if (response.length != 0) {\r\n this.selectParent(this.groupParents[0]);\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error('Error loading group parents');\r\n },\r\n );\r\n this.productService.getNotInGroup().subscribe((result) => {\r\n this.notInGroup = result;\r\n this.allNotInGroup = this.notInGroup;\r\n });\r\n }\r\n\r\n selectedParent: Product = new Product();\r\n groupItems: Product[];\r\n\r\n selectParent(product: Product) {\r\n if (!this.editMode) {\r\n this.selectedParent = product;\r\n this.productService\r\n .getProductGroupItems(\r\n this.selectedParent.productsStoreInfo[0].productsGroupId,\r\n )\r\n .subscribe((response) => {\r\n this.groupItems = response;\r\n });\r\n }\r\n }\r\n\r\n searchString: string;\r\n allNotInGroup: Product[];\r\n\r\n searchTimeout() {\r\n this.notInGroup = this.allNotInGroup.filter((p) =>\r\n p.productName.toLowerCase().includes(this.searchString.toLowerCase()),\r\n );\r\n }\r\n\r\n reorderGroupItems(product: Product, index: number) {\r\n this.editMode = true;\r\n if (\r\n this.groupItems.indexOf(product) > 0 ||\r\n this.groupItems.indexOf(product) < this.groupItems.length - 1\r\n ) {\r\n let itemIndex = this.groupItems.indexOf(product);\r\n let nextIndex = itemIndex + index;\r\n this.groupItems[itemIndex] = this.groupItems[nextIndex];\r\n this.groupItems[nextIndex] = product;\r\n // this.productService.reorderGroupItem(product.productsId, this.selectedParent.productsStoreInfo[0].productsGroupId, nextIndex + 1).subscribe(response => {\r\n // // this.groupItems = response;\r\n // });\r\n }\r\n }\r\n\r\n // Not used\r\n refresh: number;\r\n\r\n createGroup(storeInfo: ProductsStoreInfo) {\r\n this.productService\r\n .createGroup(storeInfo.productsId)\r\n .subscribe((result) => {\r\n this.load();\r\n });\r\n }\r\n\r\n newGroupItems: ProductsStoreInfo[] = [];\r\n groupItemRequest: GroupItemRequest = new GroupItemRequest();\r\n\r\n save() {\r\n this.loadService.loadContent(true);\r\n\r\n if (this.groupItems.length != 0) {\r\n this.groupItems.forEach((item) => {\r\n let groupItem = new GroupItem();\r\n groupItem.productsId = item.productsId;\r\n groupItem.productsGroupId = item.productsStoreInfo[0].productsGroupId;\r\n groupItem.productsGroupLevel = this.groupItems.indexOf(item) + 1;\r\n this.groupItemRequest.groupItems.push(groupItem);\r\n });\r\n\r\n this.productService\r\n .updateGroupItems(this.groupItemRequest)\r\n .subscribe((result) => {\r\n this.groupItems = result;\r\n this.editMode = false;\r\n this.loadService.loadContent(false);\r\n });\r\n } else {\r\n this.productService\r\n .removeAllFromGroup(this.selectedParent.productsId)\r\n .subscribe(\r\n (result) => {\r\n this.load();\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error('Error in saving group.');\r\n },\r\n );\r\n }\r\n }\r\n\r\n addToGroup(storeInfo: ProductsStoreInfo) {\r\n this.editMode = true;\r\n storeInfo.productsGroupId =\r\n this.selectedParent.productsStoreInfo[0].productsGroupId;\r\n this.groupItems.push(\r\n this.notInGroup.find((x) => x.productsId == storeInfo.productsId),\r\n );\r\n this.notInGroup = this.notInGroup.filter(\r\n (x) => x.productsId != storeInfo.productsId,\r\n );\r\n this.allNotInGroup = this.notInGroup.filter(\r\n (x) => x.productsId != storeInfo.productsId,\r\n );\r\n this.newGroupItems.push(storeInfo);\r\n }\r\n\r\n removeGroup(product: Product) {\r\n this.productService.removeFromGroup(product.productsId).subscribe(\r\n (result) => {\r\n this.groupParents = this.groupParents.filter(\r\n (item) => item.productsId != product.productsId,\r\n );\r\n this.notInGroup.push(product);\r\n this.notInGroup.sort((a, b) => {\r\n if (a['productsId'] > b['productsId']) {\r\n return 1;\r\n }\r\n if (a['productsId'] < b['productsId']) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n this.load();\r\n },\r\n (error) => {\r\n this.alertService.error('Unable to delete group.');\r\n },\r\n );\r\n }\r\n\r\n removeFromGroup(product: Product) {\r\n this.groupItems = this.groupItems.filter(\r\n (item) => item.productsId != product.productsId,\r\n );\r\n this.notInGroup.push(product);\r\n this.notInGroup.sort((a, b) => {\r\n if (a['productsId'] > b['productsId']) {\r\n return 1;\r\n }\r\n if (a['productsId'] < b['productsId']) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n editMode: boolean = false;\r\n\r\n toggleEdit(edit: boolean) {\r\n this.editMode = edit;\r\n }\r\n\r\n cancelChanges() {\r\n this.groupParents = [];\r\n this.groupItems = [];\r\n this.editMode = false;\r\n this.load();\r\n }\r\n\r\n closeResult = '';\r\n\r\n notInGroup: Product[];\r\n\r\n open(value) {\r\n this.modalService\r\n .open(value, { ariaLabelledBy: 'modal-basic-title' })\r\n .result.then(\r\n (result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n },\r\n (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n },\r\n );\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n

    \r\n Group\r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    SKUProduct Name
    \r\n \r\n {{ item.sku }}{{ item.productName }}\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 Cancel\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n

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

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    SKUProduct Name
    \r\n 0 && editMode\"\r\n (click)=\"reorderGroupItems(item, -1)\"\r\n class=\"fa fa-arrow-up item-button\"\r\n >\r\n \r\n \r\n \r\n \r\n {{ item.sku }}{{ item.productName }}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    Add Group
    \r\n \r\n ×\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    SKUProduct Name
    \r\n \r\n {{ item.sku }}{{ item.productName }}
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    Add To Group
    \r\n \r\n ×\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    SKUProduct Name
    \r\n \r\n {{ item.sku }}{{ item.productName }}
    \r\n
    \r\n
    \r\n
    \r\n","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Parser } from 'expr-eval';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { forkJoin } from 'rxjs';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { MaterialCalculation } from 'src/app/models/material-code';\r\nimport { MetalMarket, MetalMarketPremiums } from 'src/app/models/metal-market';\r\nimport { ProductsV2 } from 'src/app/models/product';\r\nimport { AnalyticsService } from 'src/app/services/analytics.service';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { MetalMarketService } from 'src/app/services/metal-market.service';\r\nimport { PricingEquationService } from 'src/app/services/pricing-equation.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { InvoiceItemType } from '../invoicing-shipping/invoicing/models/invoice';\r\nimport { BASE_METAL } from '../metal-overhead-equations/metal-overhead-equations.component';\r\nimport { CustomerPriceDefault } from '../price-defaults/customer-price-defaults/customer-price-default';\r\nimport { ConfirmationService } from '../riva-confirmation/riva-confirmation.service';\r\nimport {\r\n ProductPricing,\r\n ProductPricingDetail,\r\n RhodiumPlating,\r\n StandardWeight,\r\n} from './product-pricing';\r\n\r\nexport const TOTAL_PRICING_FORMULA =\r\n '((metalWeight * metalGramCost) + (metalWeight * castingCost)) + stoneCost + otherCost + ((laborTime*laborTimeCost) + (settingTime*settingTimeCost)) + (((laborTime*laborTimeCost) + (settingTime*settingTimeCost))*overheadPercentage) + (profitPercentage * (((laborTime*laborTimeCost) + (settingTime*settingTimeCost)) + ((laborTime*laborTimeCost) + (settingTime*settingTimeCost))*overheadPercentage))';\r\n\r\n@Component({\r\n selector: 'app-product-pricing',\r\n templateUrl: './product-pricing.component.html',\r\n styleUrls: ['./product-pricing.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'),\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class ProductPricingComponent implements OnInit, AfterViewInit {\r\n constructor(\r\n private customerService: CustomerService,\r\n private productService: ProductService,\r\n private pricingEquationService: PricingEquationService,\r\n private metalMarketService: MetalMarketService,\r\n private materialCodeService: MaterialCodeService,\r\n private analyticsService: AnalyticsService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n equationParser = new Parser();\r\n\r\n displayedColumns = [\r\n 'expander',\r\n 'picture',\r\n 'productName',\r\n 'materials',\r\n 'metalWeight',\r\n 'standardWeight',\r\n 'rhodiumPlating',\r\n 'jewelerTime',\r\n 'setterTime',\r\n 'chainPrice',\r\n 'stonePrice',\r\n 'findingsPrice',\r\n 'estimatedPrice',\r\n 'completeOverridePrice',\r\n 'laborOverridePrice',\r\n 'metalSupplied',\r\n ];\r\n\r\n selectedCustomer = 0;\r\n customerFilterCtrl = new FormControl();\r\n customers: Customers[];\r\n filteredCustomers: Customers[];\r\n isSaving = false;\r\n expandedProductPricing: Record = {};\r\n\r\n formatterDollar = (value: number): string =>\r\n value ? `$ ${value.toFixed(2)}` : '';\r\n parserDollar = (value: string): string => value.replace('$ ', '');\r\n\r\n productPricingList = new MatTableDataSource([]);\r\n productLookup: ProductsV2[];\r\n productLookupNormalized: Record;\r\n customerPriceDefaults: CustomerPriceDefault[];\r\n customerPriceDefault: CustomerPriceDefault;\r\n metalMarketPremiums: MetalMarketPremiums = {} as MetalMarketPremiums;\r\n metalMarket: MetalMarket = {} as MetalMarket;\r\n materialCalculations: MaterialCalculation[] = [];\r\n standardWeightByProduct: Record;\r\n\r\n ngOnInit(): void {\r\n forkJoin([\r\n this.customerService.getList(),\r\n this.productService.getProductsV2(),\r\n this.pricingEquationService.getCustomerDefaults(),\r\n this.metalMarketService.getLatestMetalMarket(),\r\n this.metalMarketService.getMetalMarketPremiums(),\r\n this.materialCodeService.getList(),\r\n this.materialCodeService.getMaterialCodeCalculations(),\r\n ]).subscribe(\r\n ([\r\n customers,\r\n products,\r\n customerPriceDefaults,\r\n metalMarket,\r\n [premiums],\r\n { responseObject: materialCodes },\r\n materialCodeCalculations,\r\n ]) => {\r\n this.productLookup = products;\r\n this.productLookupNormalized = products.reduce(\r\n (accum, p) => ({ ...accum, [p.productsId]: p }),\r\n {},\r\n );\r\n this.customers = orderBy(customers, 'companyName');\r\n this.onFilterCustomers();\r\n this.customerPriceDefaults = customerPriceDefaults;\r\n this.metalMarket = metalMarket;\r\n this.metalMarketPremiums = premiums;\r\n\r\n this.materialCalculations = materialCodes.reduce((accum, m) => {\r\n if (m.multiMetal) return accum;\r\n const calculation = materialCodeCalculations.find(\r\n (c) => c.materialCodeID === m.materialCodeId,\r\n );\r\n return [\r\n ...accum,\r\n {\r\n ...m,\r\n ...(calculation ?? {}),\r\n },\r\n ];\r\n }, []);\r\n\r\n this.customerFilterCtrl.valueChanges.subscribe(() => {\r\n this.onFilterCustomers();\r\n });\r\n },\r\n );\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.productPricingList.sort = this.sort;\r\n }\r\n\r\n getMaterialCodeCalculations() {\r\n forkJoin([\r\n this.materialCodeService.getList(),\r\n this.materialCodeService.getMaterialCodeCalculations(),\r\n ]).subscribe(\r\n ([{ responseObject: materialCodes }, materialCodeCalculations]) => {\r\n this.materialCalculations = materialCodes.reduce((accum, m) => {\r\n if (m.multiMetal) return accum;\r\n const calculation = materialCodeCalculations.find(\r\n (c) => c.materialCodeID === m.materialCodeId,\r\n );\r\n return [\r\n ...accum,\r\n {\r\n ...m,\r\n ...(calculation ?? {}),\r\n },\r\n ];\r\n }, []);\r\n },\r\n );\r\n }\r\n\r\n onFilterCustomers() {\r\n if (\r\n this.customerFilterCtrl.value == null ||\r\n this.customerFilterCtrl.value === ''\r\n ) {\r\n this.filteredCustomers = orderBy(this.customers, 'companyName');\r\n } else {\r\n const customers = this.customers.filter(\r\n (customer) =>\r\n customer.customerId\r\n ?.toLocaleLowerCase()\r\n .includes(this.customerFilterCtrl.value?.trim()) ||\r\n customer.companyName\r\n ?.toLocaleLowerCase()\r\n .includes(this.customerFilterCtrl.value?.trim()),\r\n );\r\n this.filteredCustomers = orderBy(customers, 'companyName');\r\n }\r\n }\r\n\r\n onGetProductsByCustomer() {\r\n this.productPricingList.data = [];\r\n const products = this.productLookup.filter(\r\n (p) => p.customerCode === this.selectedCustomer,\r\n );\r\n this.customerPriceDefault =\r\n this.customerPriceDefaults.find(\r\n (c) => c.customerID === this.selectedCustomer,\r\n ) ?? this.customerPriceDefaults.find((c) => c.customerID === 0);\r\n\r\n const request = products.map((p) =>\r\n this.productService.getProductDetailV2(p.productsId),\r\n );\r\n const standardWeightRequest = products.map((p) =>\r\n this.pricingEquationService.getStandardWeightByProductId(p.productsId),\r\n );\r\n const rhodiumPlatingRequest = products.map((p) =>\r\n this.pricingEquationService.getRhodiumPlatingByProductId(p.productsId),\r\n );\r\n forkJoin(rhodiumPlatingRequest).subscribe((rhodiumPlatingsByProduct) => {\r\n forkJoin(standardWeightRequest).subscribe((standardWeights) => {\r\n const flattenedStandardWeights = standardWeights.reduce(\r\n (accum, data) => [...accum, ...data],\r\n [],\r\n );\r\n forkJoin(request).subscribe((products) => {\r\n this.productPricingList.data = products.map((product, index) => {\r\n const rhodiumPlatings = rhodiumPlatingsByProduct[index];\r\n const productSubPricing = product.pricing.filter(\r\n (p) => (p.productsSizesID ?? 0) !== 0,\r\n );\r\n const defaultPricing =\r\n product.pricing.find((p) => (p.productsSizesID ?? 0) === 0) ?? {};\r\n\r\n const standardWeightByProduct = flattenedStandardWeights.filter(\r\n (sw) => sw.productsID === product.productsId,\r\n );\r\n\r\n const pricing = {\r\n ...product,\r\n ...defaultPricing,\r\n productsID: product.productsId,\r\n productName:\r\n this.productLookupNormalized[product.productsId].productName ??\r\n '',\r\n productSubPricing: productSubPricing.map((sub) => ({\r\n ...sub,\r\n currentStandardWeight: {} as StandardWeight,\r\n })),\r\n productSizeOptions: product.productSizes.filter(\r\n (s) => s.size !== '-',\r\n ),\r\n standardWeightByProduct,\r\n currentStandardWeight: {} as StandardWeight,\r\n rhodiumPlatings,\r\n currentRhodiumPlating: {\r\n checked: false,\r\n } as RhodiumPlating,\r\n };\r\n\r\n this.onCalculateEstimatedPricing(pricing);\r\n return pricing;\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n onAddSubPricing(data: ProductPricingDetail) {\r\n const subPricing: ProductPricing = {\r\n key: DateTime.now().toMillis(),\r\n productsPricingID: 0,\r\n productsID: data.productsID,\r\n productsSizesID: 0,\r\n materialsCodeID: data.materialsCodeID,\r\n standardWeight: null,\r\n metalWeight: null,\r\n jewelerTime: null,\r\n setterTime: null,\r\n chainPrice: null,\r\n stonePrice: null,\r\n findingsPrice: null,\r\n estimatedPrice: null,\r\n completeOverridePrice: null,\r\n laborOverridePrice: null,\r\n isPricingPerSize: true,\r\n currentStandardWeight: {} as StandardWeight,\r\n };\r\n data.productSubPricing = [...data.productSubPricing, subPricing];\r\n }\r\n\r\n onChangeProductSize(\r\n row: ProductPricingDetail,\r\n subItem: ProductPricingDetail,\r\n ) {\r\n subItem.metalWeight = row.rollingAverages[subItem.productsSizesID] ?? 0;\r\n this.onCalculateEstimatedPricing(subItem);\r\n }\r\n\r\n onSaveProductPricing() {\r\n const requests = this.productPricingList.data.reduce(\r\n (\r\n accum,\r\n {\r\n materials,\r\n picture,\r\n pricing,\r\n productSizes,\r\n productSubPricing,\r\n currentStandardWeight,\r\n standardWeightByProduct,\r\n ...p\r\n },\r\n ) => {\r\n const defaultRequest = this.pricingEquationService.setProductPricing({\r\n ...p,\r\n productsSizesID: 0,\r\n });\r\n const subRequests = productSubPricing?.map((s) =>\r\n this.pricingEquationService.setProductPricing(s),\r\n );\r\n return [...accum, defaultRequest, ...subRequests];\r\n },\r\n [],\r\n );\r\n const standardWeightRequests = this.productPricingList.data.reduce(\r\n (accum, { standardWeightByProduct }) => {\r\n const standardWeights = standardWeightByProduct.reduce((a, s) => {\r\n if (\r\n (s.productsStandardWeightID ?? 0) > 0 ||\r\n (s.standardWeight ?? 0) > 0\r\n ) {\r\n return [...a, this.pricingEquationService.setStandardWeight(s)];\r\n }\r\n return a;\r\n }, []);\r\n return [...accum, ...standardWeights];\r\n },\r\n [],\r\n );\r\n const rhodiumPlatingRequests = this.productPricingList.data.reduce(\r\n (accum, { rhodiumPlatings }) => {\r\n const rhodiumPlating = rhodiumPlatings.reduce((a, r) => {\r\n if (r.checked && r.rhodiumPlatingCost > 0) {\r\n return [...a, this.pricingEquationService.setRhodiumPlating(r)];\r\n } else if (!r.checked && r.rhodiumPlatingID > 0) {\r\n return [\r\n ...a,\r\n this.pricingEquationService.deleteRhodiumPlating(\r\n r.rhodiumPlatingID,\r\n ),\r\n ];\r\n } else if (\r\n r.checked &&\r\n r.rhodiumPlatingID > 0 &&\r\n (r.rhodiumPlatingCost || 0) <= 0\r\n ) {\r\n return [\r\n ...a,\r\n this.pricingEquationService.deleteRhodiumPlating(\r\n r.rhodiumPlatingID,\r\n ),\r\n ];\r\n }\r\n return a;\r\n }, []);\r\n return [...accum, ...rhodiumPlating];\r\n },\r\n [],\r\n );\r\n this.isSaving = true;\r\n forkJoin([\r\n ...requests,\r\n ...standardWeightRequests,\r\n ...rhodiumPlatingRequests,\r\n ]).subscribe(() => {\r\n this.onGetProductsByCustomer();\r\n this.isSaving = false;\r\n });\r\n }\r\n\r\n updateExpandedPricing(row: ProductPricingDetail) {\r\n if (row.isPricingPerSize) return;\r\n this.expandedProductPricing[row.productsID] =\r\n !this.expandedProductPricing[row.productsID];\r\n }\r\n\r\n onDeletePricing(item: ProductPricingDetail, parent: ProductPricingDetail) {\r\n const currentSizeName = parent.productSizes.find(\r\n (s) => s.productsSizesID === item.productsSizesID,\r\n )?.size;\r\n\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product Pricing',\r\n content: `Are you sure you want to delete pricing of size \"${currentSizeName}\" for ${parent.productName}?`,\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n if ((item.key ?? 0) > 0) {\r\n parent.productSubPricing = parent.productSubPricing.filter(\r\n (s) => s.key !== item.key,\r\n );\r\n } else {\r\n this.pricingEquationService\r\n .deleteProductPricing(item.productsPricingID)\r\n .subscribe(() => {\r\n parent.productSubPricing = parent.productSubPricing.filter(\r\n (s) => s.productsPricingID !== item.productsPricingID,\r\n );\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n onChangeMaterial(row: ProductPricingDetail) {\r\n if (row.productSizes.length > 0) {\r\n const productSizesRequest = row.productSizes.map((s) =>\r\n this.analyticsService.getRollingWeightAverage({\r\n type: InvoiceItemType.Product,\r\n itemId: row.productsID,\r\n sizeId: s.productsSizesID,\r\n materialCodeId: row.materialsCodeID,\r\n }),\r\n );\r\n forkJoin(productSizesRequest).subscribe((data) => {\r\n const sizeWithWeight = data.filter((d) => d > 0);\r\n row.metalWeight =\r\n sizeWithWeight.length === 0\r\n ? 0\r\n : sizeWithWeight.reduce((total, w) => total + w, 0) /\r\n sizeWithWeight.length;\r\n row.rollingAverages = row.productSizes.reduce(\r\n (accum, s, index) => ({\r\n ...accum,\r\n [s.productsSizesID]: data[index],\r\n }),\r\n {},\r\n );\r\n\r\n let currentStandardWeight = row.standardWeightByProduct.find(\r\n (s) =>\r\n s.materialCodeID === row.materialsCodeID &&\r\n (s.productsSizesID ?? 0) === 0,\r\n );\r\n let currentRhodiumPlating = row.rhodiumPlatings.find(\r\n (r) => r.materialCodeID === row.materialsCodeID,\r\n );\r\n\r\n if (currentStandardWeight == null) {\r\n currentStandardWeight = {\r\n productsStandardWeightID: 0,\r\n productsID: row.productsID,\r\n productsSizesID: 0,\r\n materialCodeID: row.materialsCodeID,\r\n standardWeight: 0,\r\n };\r\n row.standardWeightByProduct.push(currentStandardWeight);\r\n }\r\n\r\n if (currentRhodiumPlating == null) {\r\n currentRhodiumPlating = {\r\n rhodiumPlatingID: 0,\r\n productsID: row.productsID,\r\n materialCodeID: row.materialsCodeID,\r\n rhodiumPlatingCost: 15,\r\n checked: false,\r\n };\r\n row.rhodiumPlatings.push(currentRhodiumPlating);\r\n }\r\n\r\n row.currentStandardWeight =\r\n currentStandardWeight ?? ({} as StandardWeight);\r\n row.currentRhodiumPlating =\r\n currentRhodiumPlating ?? ({} as RhodiumPlating);\r\n\r\n row.productSubPricing = row.productSubPricing.map((s) => {\r\n let subCurrentStandardWeight = row.standardWeightByProduct.find(\r\n (sub) =>\r\n sub.materialCodeID === row.materialsCodeID &&\r\n sub.productsSizesID === s.productsSizesID,\r\n );\r\n if (subCurrentStandardWeight == null) {\r\n subCurrentStandardWeight = {\r\n productsStandardWeightID: 0,\r\n productsID: row.productsID,\r\n productsSizesID: s.productsSizesID,\r\n materialCodeID: row.materialsCodeID,\r\n standardWeight: 0,\r\n };\r\n row.standardWeightByProduct.push(subCurrentStandardWeight);\r\n }\r\n\r\n return {\r\n ...s,\r\n materialsCodeID: row.materialsCodeID,\r\n metalWeight: row.rollingAverages[s.productsSizesID] ?? 0,\r\n currentStandardWeight:\r\n subCurrentStandardWeight ?? ({} as StandardWeight),\r\n };\r\n });\r\n this.onCalculateEstimatedPricing(row);\r\n row.productSubPricing.forEach((s) => {\r\n this.onCalculateEstimatedPricing(s);\r\n });\r\n });\r\n }\r\n }\r\n\r\n onCalculateEstimatedPricing(\r\n row: ProductPricingDetail,\r\n parent?: ProductPricingDetail,\r\n ) {\r\n debugger;\r\n const metalSupplied = parent?.metalSupplied || row.metalSupplied;\r\n const currentRhodiumPlating =\r\n parent?.currentRhodiumPlating || row.currentRhodiumPlating;\r\n if (!row.materialsCodeID && !metalSupplied) {\r\n row.estimatedPrice = 0;\r\n return;\r\n }\r\n const materialCalculation = metalSupplied\r\n ? null\r\n : this.materialCalculations.find(\r\n (c) => c.materialCodeID === row.materialsCodeID,\r\n );\r\n if (materialCalculation == null && !metalSupplied) {\r\n row.estimatedPrice = 0;\r\n return;\r\n }\r\n\r\n const metalWeight = metalSupplied\r\n ? 0\r\n : row.currentStandardWeight.standardWeight || row.metalWeight || 0;\r\n const metalGramCost = metalSupplied\r\n ? 0\r\n : this.getPricePerGram(materialCalculation) ?? 0;\r\n const castingCost = metalSupplied\r\n ? 0\r\n : this.getTotalCastingFee({\r\n ...materialCalculation,\r\n totalGrams: metalWeight,\r\n }) ?? 0;\r\n const stoneCost = row.stonePrice ?? 0;\r\n const otherCost = (row.chainPrice ?? 0) + (row.findingsPrice ?? 0);\r\n const laborTime = row.jewelerTime ?? 0;\r\n const laborTimeCost = this.customerPriceDefault.stdLaborPerMinCost ?? 0;\r\n const settingTime = row.setterTime ?? 0;\r\n const settingTimeCost =\r\n this.customerPriceDefault.settingLaborPerMinCost ?? 0;\r\n const overheadPercentage = this.customerPriceDefault.ohPercent ?? 0;\r\n const profitPercentage = this.customerPriceDefault.profitPercent ?? 0;\r\n\r\n const equation = this.equationParser.parse(TOTAL_PRICING_FORMULA);\r\n const resultPrice = equation.evaluate({\r\n metalWeight,\r\n castingCost,\r\n metalGramCost,\r\n laborTime,\r\n laborTimeCost,\r\n settingTime,\r\n settingTimeCost,\r\n stoneCost,\r\n otherCost,\r\n overheadPercentage,\r\n profitPercentage,\r\n });\r\n const estimatedPrice = Number.isNaN(resultPrice) ? 0 : resultPrice;\r\n row.estimatedPrice =\r\n (currentRhodiumPlating?.checked\r\n ? estimatedPrice + (currentRhodiumPlating?.rhodiumPlatingCost ?? 0)\r\n : estimatedPrice) ?? 0;\r\n }\r\n\r\n getTotalCastingFee(data: MaterialCalculation) {\r\n const list = Array.from({ length: data.totalGrams }, (_, i) => i + 1);\r\n return (\r\n list.reduce(\r\n (total, value) => total + this.getPriceForCurrentGram(data, value),\r\n 0,\r\n ) / data.totalGrams\r\n );\r\n }\r\n\r\n getPriceForCurrentGram(data: MaterialCalculation, currentGram: number) {\r\n if (currentGram <= data.bottomCutOff) return data.castingFee;\r\n if (currentGram > data.topCutOff) return 0;\r\n return (\r\n data.castingFee *\r\n (1 -\r\n (currentGram - data.bottomCutOff) /\r\n (data.topCutOff - data.bottomCutOff))\r\n );\r\n }\r\n\r\n getPricePerGram(data: MaterialCalculation) {\r\n if (!data.baseMetal1 || data.baseMetal1 === BASE_METAL.notApplicable)\r\n return 0;\r\n let metalMarketValue1 = 0;\r\n let premium1 = 0;\r\n\r\n let metalMarketValue2 = 0;\r\n let premium2 = 0;\r\n\r\n switch (data.baseMetal1) {\r\n case BASE_METAL.gold:\r\n metalMarketValue1 = this.metalMarket.ldpmGold;\r\n premium1 = this.metalMarketPremiums.gold;\r\n break;\r\n case BASE_METAL.fairminedGold:\r\n metalMarketValue1 = this.metalMarket.ldpmGold;\r\n premium1 = this.metalMarketPremiums.fairminedGold;\r\n break;\r\n case BASE_METAL.platinum:\r\n metalMarketValue1 = this.metalMarket.ldpmPlatinum;\r\n premium1 = this.metalMarketPremiums.platinum;\r\n break;\r\n case BASE_METAL.silver:\r\n metalMarketValue1 = this.metalMarket.ldpmSilver;\r\n premium1 = this.metalMarketPremiums.silver;\r\n break;\r\n case BASE_METAL.palladium:\r\n metalMarketValue1 = this.metalMarket.ldpmPalladium;\r\n premium1 = this.metalMarketPremiums.palladium;\r\n break;\r\n }\r\n\r\n switch (data.baseMetal2) {\r\n case BASE_METAL.gold:\r\n metalMarketValue2 = this.metalMarket.ldpmGold;\r\n premium2 = this.metalMarketPremiums.gold;\r\n break;\r\n case BASE_METAL.fairminedGold:\r\n metalMarketValue2 = this.metalMarket.ldpmGold;\r\n premium2 = this.metalMarketPremiums.fairminedGold;\r\n break;\r\n case BASE_METAL.platinum:\r\n metalMarketValue2 = this.metalMarket.ldpmPlatinum;\r\n premium2 = this.metalMarketPremiums.platinum;\r\n break;\r\n case BASE_METAL.silver:\r\n metalMarketValue2 = this.metalMarket.ldpmSilver;\r\n premium2 = this.metalMarketPremiums.silver;\r\n break;\r\n case BASE_METAL.palladium:\r\n metalMarketValue2 = this.metalMarket.ldpmPalladium;\r\n premium2 = this.metalMarketPremiums.palladium;\r\n break;\r\n }\r\n const preciousPercentage1 = data.preciousPercentage1 ?? 0;\r\n const preciousPercentage2 = data.preciousPercentage2 ?? 0;\r\n\r\n const alloyCost = data.alloyCost ?? 0;\r\n const lossFactor = data.lossFactor ?? 0;\r\n\r\n const metal1 = (metalMarketValue1 + premium1) * preciousPercentage1;\r\n const metal2 = (metalMarketValue2 + premium2) * preciousPercentage2;\r\n return ((metal1 + metal2) / 31.1035 + alloyCost) * lossFactor;\r\n }\r\n onReCalculateProduct(row: ProductPricingDetail) {\r\n this.onCalculateEstimatedPricing(row);\r\n row.productSubPricing.forEach((sub) => {\r\n this.onCalculateEstimatedPricing(sub, row);\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 [{{ customer.customerId }}] {{ customer.companyName }}\r\n \r\n \r\n \r\n \r\n Save Pricing\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pic\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Product Name\r\n \r\n \r\n {{ element.productName }}\r\n \r\n \r\n \r\n Metal\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Metal Weight\r\n \r\n \r\n \r\n \r\n \r\n Standard Weight\r\n \r\n \r\n \r\n \r\n \r\n Rhodium Plating\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Jeweler Time\r\n \r\n \r\n \r\n \r\n \r\n Setter Time\r\n \r\n \r\n \r\n \r\n \r\n Chain Price\r\n \r\n \r\n \r\n \r\n \r\n Stone Price\r\n \r\n \r\n \r\n \r\n \r\n Findings Price\r\n \r\n \r\n \r\n \r\n \r\n Estimated Price\r\n \r\n {{ element.estimatedPrice ?? 0 | currency }}\r\n \r\n \r\n \r\n Complete Override Price\r\n \r\n \r\n \r\n \r\n \r\n Labor Override Price\r\n \r\n \r\n \r\n \r\n \r\n Metal Supplied\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    Product Size
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ item.estimatedPrice ?? 0 | 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 \r\n No Pricing for Sizes\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ProductInvoice } from '../product-invoice/product-invoice';\r\n\r\n@Component({\r\n selector: 'app-product-invoice-details',\r\n templateUrl: './product-invoice-details.component.html',\r\n styleUrls: ['./product-invoice-details.component.scss'],\r\n})\r\nexport class ProductInvoiceDetailsComponent\r\n implements OnChanges, AfterViewInit\r\n{\r\n @Input() productInvoices: ProductInvoice[] = [];\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns = [\r\n 'invoicesId',\r\n 'customerName',\r\n 'metal',\r\n 'invoicedDate',\r\n 'qty',\r\n 'price',\r\n 'priceExtension',\r\n ];\r\n invoices = new MatTableDataSource([]);\r\n totalQty = 0;\r\n\r\n ngAfterViewInit(): void {\r\n this.invoices.sort = this.sort;\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.invoices.data = this.productInvoices ?? [];\r\n this.totalQty = this.invoices.data.reduce(\r\n (total, order) => total + order.qty,\r\n 0,\r\n );\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n

    Total Quantity:

    \r\n

    {{ totalQty }}

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Invoices Id\r\n \r\n \r\n \r\n {{ element.invoicesId }}\r\n \r\n \r\n \r\n \r\n \r\n Customer\r\n \r\n {{ element.customerName }}\r\n \r\n \r\n \r\n Metal\r\n \r\n {{ element.metal }}\r\n \r\n \r\n \r\n Invoiced Date\r\n \r\n \r\n {{ element.invoicedDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n {{ element.qty }}\r\n \r\n \r\n \r\n Price\r\n \r\n {{ element.price | currency }}\r\n \r\n \r\n \r\n Price Extension\r\n \r\n \r\n {{ element.priceExtension | currency }}\r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n","import {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ProductInvoice } from './product-invoice';\r\n\r\n@Component({\r\n selector: 'app-product-invoice',\r\n templateUrl: './product-invoice.component.html',\r\n styleUrls: ['./product-invoice.component.scss'],\r\n})\r\nexport class ProductInvoiceComponent implements OnChanges, AfterViewInit {\r\n @Input() productInvoices: ProductInvoice[] = [];\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns = ['invoicesId', 'customerName', 'invoicedDate', 'qty'];\r\n invoices = new MatTableDataSource([]);\r\n totalQty = 0;\r\n\r\n ngAfterViewInit(): void {\r\n this.invoices.sort = this.sort;\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.invoices.data = this.productInvoices ?? [];\r\n this.totalQty = this.invoices.data.reduce(\r\n (total, order) => total + order.qty,\r\n 0,\r\n );\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n

    Total Quantity:

    \r\n

    {{ totalQty }}

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Invoices Id\r\n \r\n \r\n \r\n {{ element.invoicesId }}\r\n \r\n \r\n \r\n \r\n \r\n Customer\r\n \r\n {{ element.customerName }}\r\n \r\n \r\n \r\n Invoiced Date\r\n \r\n \r\n {{ element.invoicedDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n {{ element.qty }}\r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n","import {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ProductOrder } from '../product-order/product-order';\r\n\r\n@Component({\r\n selector: 'app-product-order-details',\r\n templateUrl: './product-order-details.component.html',\r\n styleUrls: ['./product-order-details.component.scss'],\r\n})\r\nexport class ProductOrderDetailsComponent implements OnChanges, AfterViewInit {\r\n @Input() productOrders: ProductOrder[] = [];\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns = [\r\n 'ordersId',\r\n 'customerName',\r\n 'metal',\r\n 'poInternal',\r\n 'poExternal',\r\n 'receivedDate',\r\n 'ordersType',\r\n 'qtyOrdered',\r\n ];\r\n orders = new MatTableDataSource([]);\r\n totalOrders = 0;\r\n\r\n ngAfterViewInit(): void {\r\n this.orders.sort = this.sort;\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.orders.data = this.productOrders ?? [];\r\n this.totalOrders = this.orders.data.reduce(\r\n (total, order) => total + order.qtyOrdered,\r\n 0,\r\n );\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n

    Total Quantity Ordered:

    \r\n

    {{ totalOrders }}

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Orders Id\r\n \r\n \r\n \r\n {{ element.ordersId }}\r\n \r\n \r\n \r\n \r\n \r\n Customer\r\n \r\n {{ element.customerName }}\r\n \r\n \r\n \r\n Metal\r\n \r\n {{ element.metal }}\r\n \r\n \r\n \r\n RIVA PO\r\n \r\n {{ element.poInternal }}\r\n \r\n \r\n \r\n Customer PO\r\n \r\n {{ element.poExternal }}\r\n \r\n \r\n \r\n Received Date\r\n \r\n \r\n {{ element.receivedDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Order Type\r\n \r\n {{ element.ordersType }}\r\n \r\n \r\n \r\n Ordered\r\n \r\n {{ element.qtyOrdered }}\r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n","import {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ProductOrder } from './product-order';\r\n\r\n@Component({\r\n selector: 'app-product-order',\r\n templateUrl: './product-order.component.html',\r\n styleUrls: ['./product-order.component.scss'],\r\n})\r\nexport class ProductOrderComponent implements OnChanges, AfterViewInit {\r\n @Input() productOrders: ProductOrder[] = [];\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns = [\r\n 'ordersId',\r\n 'customerName',\r\n 'poInternal',\r\n 'poExternal',\r\n 'receivedDate',\r\n 'ordersType',\r\n 'qtyOrdered',\r\n ];\r\n orders = new MatTableDataSource([]);\r\n totalOrders = 0;\r\n\r\n ngAfterViewInit(): void {\r\n this.orders.sort = this.sort;\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.orders.data = this.productOrders ?? [];\r\n this.totalOrders = this.orders.data.reduce(\r\n (total, order) => total + order.qtyOrdered,\r\n 0,\r\n );\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n

    Total Quantity Ordered:

    \r\n

    {{ totalOrders }}

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Orders Id\r\n \r\n \r\n \r\n {{ element.ordersId }}\r\n \r\n \r\n \r\n \r\n \r\n Customer\r\n \r\n {{ element.customerName }}\r\n \r\n \r\n \r\n RIVA PO\r\n \r\n {{ element.poInternal }}\r\n \r\n \r\n \r\n Customer PO\r\n \r\n {{ element.poExternal }}\r\n \r\n \r\n \r\n Received Date\r\n \r\n \r\n {{ element.receivedDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Order Type\r\n \r\n {{ element.ordersType }}\r\n \r\n \r\n \r\n Ordered\r\n \r\n {{ element.qtyOrdered }}\r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DateTime } from 'luxon';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { SearchProductService } from 'src/app/services/search-product';\r\nimport { WorkOrderMovementService } from 'src/app/services/work-order-movement.service';\r\nimport { ProductLookup } from '../reporting/work-order-movement/model';\r\nimport { ProductInvoice } from './product-invoice/product-invoice';\r\nimport { ProductOrder } from './product-order/product-order';\r\n\r\n@Component({\r\n selector: 'app-product-query',\r\n templateUrl: './product-query.component.html',\r\n styleUrls: ['./product-query.component.scss'],\r\n})\r\nexport class ProductQueryComponent implements OnInit {\r\n constructor(\r\n private workOrderMovementService: WorkOrderMovementService,\r\n private searchProductService: SearchProductService,\r\n ) {}\r\n\r\n productLookup: ProductLookup[] = [];\r\n filteredProductLookup: Observable;\r\n selectedProductLookup: ProductLookup = {} as ProductLookup;\r\n productLookupControl = new FormControl();\r\n\r\n productOrders: ProductOrder[] = [];\r\n productOrdersDetails: ProductOrder[] = [];\r\n productInvoices: ProductInvoice[] = [];\r\n productInvoicesDetails: ProductInvoice[] = [];\r\n\r\n filters = {\r\n from: DateTime.local().toFormat('yyyy-MM-dd'),\r\n to: DateTime.local().toFormat('yyyy-MM-dd'),\r\n };\r\n\r\n ngOnInit(): void {\r\n this.workOrderMovementService.getProductLookup().subscribe((products) => {\r\n this.productLookup = products;\r\n this.filteredProductLookup = this.productLookupControl.valueChanges.pipe(\r\n startWith(this.selectedProductLookup.productName),\r\n map((value) => this._filterProduct(value)),\r\n );\r\n });\r\n }\r\n\r\n onSelectProduct(product: string | ProductLookup) {\r\n if (typeof product === 'string' || (product?.productsId ?? 0) === 0) return;\r\n this.searchProductService\r\n .getOrders({\r\n itemId: product.productsId,\r\n itemType: product.itemType,\r\n from: this.filters.from,\r\n to: this.filters.to,\r\n })\r\n .subscribe((data) => {\r\n this.productOrders = data;\r\n });\r\n this.searchProductService\r\n .getOrdersDetails({\r\n itemId: product.productsId,\r\n itemType: product.itemType,\r\n from: this.filters.from,\r\n to: this.filters.to,\r\n })\r\n .subscribe((data) => {\r\n this.productOrdersDetails = data;\r\n });\r\n\r\n this.searchProductService\r\n .getInvoices({\r\n itemId: product.productsId,\r\n itemType: product.itemType,\r\n from: this.filters.from,\r\n to: this.filters.to,\r\n })\r\n .subscribe((data) => {\r\n this.productInvoices = data;\r\n });\r\n\r\n this.searchProductService\r\n .getInvoicesDetails({\r\n itemId: product.productsId,\r\n itemType: product.itemType,\r\n from: this.filters.from,\r\n to: this.filters.to,\r\n })\r\n .subscribe((data) => {\r\n this.productInvoicesDetails = data;\r\n });\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filters.from = start;\r\n this.filters.to = end;\r\n this.onSelectProduct(this.selectedProductLookup);\r\n }\r\n\r\n displayValue(item: ProductLookup) {\r\n return item?.productName ?? '';\r\n }\r\n\r\n private _filterProduct(name: string): ProductLookup[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name?.toLowerCase();\r\n return this.productLookup.filter((option) =>\r\n option.productName?.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['productName'];\r\n return this.productLookup.filter((option) =>\r\n option.productName?.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.productLookup;\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n Search products\r\n \r\n \r\n \r\n {{ option.productName }}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { ProductInventory } from 'src/app/models/inventory-log';\r\nimport { ReportService } from 'src/app/services/report.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\n@Component({\r\n selector: 'app-product-report',\r\n templateUrl: './product-report.component.html',\r\n styleUrls: ['./product-report.component.scss'],\r\n})\r\nexport class ProductReportComponent extends GenericComponent implements OnInit {\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private reportService: ReportService,\r\n ) {\r\n super(loadService, alertService);\r\n this.load();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n productInventory: ProductInventory[] = [];\r\n\r\n load() {}\r\n\r\n generateReport() {\r\n this.loadService.loadContent(true);\r\n this.reportService.generateProductInventory().subscribe(\r\n (result) => {\r\n this.loadService.loadContent(false);\r\n this.productInventory = result;\r\n },\r\n (error) => {\r\n this.loadService.loadContent(false);\r\n this.alertService.error('Error generating report. (' + error + ')');\r\n },\r\n );\r\n }\r\n\r\n loadProductMaterialInfo(id: number) {\r\n let inventory = this.productInventory.find((x) => x.productsId == id);\r\n if (inventory != undefined) {\r\n if (!this.checkStringIfEmpty(inventory.materialInfoJson)) {\r\n let materialInfo = JSON.parse(inventory.materialInfoJson);\r\n return materialInfo;\r\n }\r\n return '';\r\n }\r\n }\r\n}\r\n","
    \r\n 0\"\r\n >\r\n GENERATE REPORT\r\n \r\n \r\n PRINT REPORT\r\n \r\n
    \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Product IDProduct NameSKUProduct TypeCustomer IDCustomer CompanyStatusJewelry TypeMaterials
    {{ item.productsId }}{{ item.productName }}{{ item.sku }}{{ item.productType }}{{ item.customerId }}{{ item.companyName }}{{ item.status }}{{ item.jewelryType }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    CodeDescriptionInfo
    {{ material.Code }}{{ material.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
    SizeWeightWholesaleRetail
    {{ pi.Size }}{{ pi.Weight }}{{ pi.Wholesale }}{{ pi.Retail }}
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { Product, ProductsRouting } from 'src/app/models/product';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { ProductRoutingComponent } from './product-routing.component';\r\n\r\n@Component({\r\n selector: 'product-routing-copy-dialog',\r\n templateUrl: './product-routing-copy-dialog.component.html',\r\n styleUrls: ['./product-routing-copy-dialog.component.scss'],\r\n})\r\nexport class ProductRoutingCopyDialogComponent implements OnInit {\r\n @ViewChild(ProductRoutingComponent)\r\n productRoutingComponent: ProductRoutingComponent;\r\n\r\n productId: number = 0;\r\n filteredProducts: Observable;\r\n productControl = new FormControl();\r\n products: Product[] = [];\r\n product: Product = new Product();\r\n routings: ProductsRouting[];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public loadService: LoadService,\r\n public productService: ProductService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.productService.getList().subscribe((products) => {\r\n this.products = products;\r\n this.filteredProducts = this.productControl.valueChanges.pipe(\r\n startWith(this.product.productName),\r\n map((value) => this._filterProduct(value)),\r\n );\r\n });\r\n }\r\n\r\n private _filterProduct(name: string): Product[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.products.filter((option) =>\r\n option.productName.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['productName'];\r\n return this.products.filter((option) =>\r\n option.productName.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.products;\r\n }\r\n\r\n displayFn(item: Product): string {\r\n return item && item.productName ? item.productName : '';\r\n }\r\n\r\n onRoutingChange($events) {\r\n this.routings = $events;\r\n }\r\n\r\n onConfirm() {\r\n this.dialogRef.close(this.routings);\r\n }\r\n}\r\n","

    Copy From Product Routing

    \r\n\r\n\r\n \r\n Search product\r\n \r\n \r\n \r\n
    \r\n
    CUST
    \r\n
    Product Name
    \r\n
    Master SKU
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    CUST
    \r\n
    Product Name
    \r\n
    Master SKU
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ product.customerCodeNavigation?.customerId }}\r\n
    \r\n
    \r\n {{ product.productName }}\r\n
    \r\n
    {{ product.sku }}
    \r\n
    \r\n {{ product.productDesc }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Copy Routing\r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { ProductRoutingComponent } from './product-routing.component';\r\n\r\n@Component({\r\n selector: 'product-routing-dialog',\r\n templateUrl: './product-routing-dialog.component.html',\r\n})\r\nexport class ProductRoutingDialogComponent implements OnInit {\r\n @ViewChild(ProductRoutingComponent)\r\n productRoutingComponent: ProductRoutingComponent;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public loadService: LoadService,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { productId: number; editMode: boolean },\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onSave() {\r\n this.productRoutingComponent.onSaveProductRouting();\r\n }\r\n}\r\n","

    Product Routing

    \r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { forkJoin, Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { ProductRoutingCodes, ProductsRouting } from 'src/app/models/product';\r\nimport { ProductsRoutingService } from 'src/app/services/products-routing.service';\r\nimport { ConfirmationService } from './../riva-confirmation/riva-confirmation.service';\r\nimport { ProductRoutingCopyDialogComponent } from './product-routing-copy-dialog.component';\r\nimport { ProductRoutingDialogComponent } from './product-routing-dialog.component';\r\n\r\n@Component({\r\n selector: 'product-routing',\r\n templateUrl: './product-routing.component.html',\r\n styleUrls: ['./product-routing.component.scss'],\r\n})\r\nexport class ProductRoutingComponent implements OnChanges {\r\n @Input() productId: number;\r\n @Input() readonly?: boolean;\r\n @Output() onRoutingChange = new EventEmitter();\r\n @ViewChild('table') table: MatTable;\r\n routingDisplayColumn: string[] = [\r\n 'draggable',\r\n 'activityCode',\r\n 'department',\r\n 'activityDescription',\r\n 'standardTime',\r\n 'comment',\r\n 'delete',\r\n ];\r\n productRoutings: ProductsRouting[] = [];\r\n productRoutingsForDelete: ProductsRouting[] = [];\r\n productRoutingCodes: ProductRoutingCodes[] = [];\r\n rawProductRoutingCodes: ProductRoutingCodes[] = [];\r\n filteredProductRoutingCodes: Observable;\r\n productRoutingControl = new FormControl();\r\n selectedProductRouting: ProductRoutingCodes;\r\n isSaving = false;\r\n dragEnabled = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n private productsRoutingService: ProductsRoutingService,\r\n private confirmationService: ConfirmationService,\r\n private loadService: LoadService,\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.loadProductRoutings();\r\n }\r\n\r\n loadProductRoutings() {\r\n if (!this.productId) {\r\n this.productRoutings = [];\r\n this.productRoutingCodes = [];\r\n this.rawProductRoutingCodes = [];\r\n this.onRoutingChange.emit(this.productRoutings);\r\n return;\r\n }\r\n forkJoin([\r\n this.productsRoutingService.getProductRoutings(this.productId),\r\n this.productsRoutingService.getProductRoutingCodes(),\r\n ]).subscribe(([productRoutings, productRoutingCodes]) => {\r\n this.productRoutings = productRoutings;\r\n this.productRoutingCodes = [...productRoutingCodes];\r\n this.rawProductRoutingCodes = [...productRoutingCodes];\r\n this.onRoutingChange.emit(this.productRoutings);\r\n this.initiateFilters();\r\n });\r\n }\r\n\r\n onCheckProductRoutingCode() {\r\n this.productRoutingCodes = this.rawProductRoutingCodes.filter(\r\n (productRoutingCode) => {\r\n return !this.productRoutings.some(\r\n (productRouting) =>\r\n productRouting.routingCode?.routingCodesId ===\r\n productRoutingCode.routingCodesId,\r\n );\r\n },\r\n );\r\n }\r\n\r\n displayFn(item: ProductRoutingCodes): string {\r\n return item?.activityCode ?? '';\r\n }\r\n\r\n onSelectProductRoutingCode(productRoutingCode: ProductRoutingCodes) {\r\n const productRouting = {\r\n productsId: this.productId,\r\n routingCodesId: productRoutingCode.routingCodesId,\r\n productsRoutingId: 0,\r\n standardTime: 0,\r\n actualTimeS: 0,\r\n comment: '',\r\n routingCode: productRoutingCode,\r\n tempRoutingId: +new Date(),\r\n };\r\n this.productRoutings = [...this.productRoutings, productRouting];\r\n\r\n this.selectedProductRouting = null;\r\n }\r\n\r\n initiateFilters() {\r\n this.filteredProductRoutingCodes =\r\n this.productRoutingControl.valueChanges.pipe(\r\n startWith(this.selectedProductRouting?.activityCode),\r\n map((value) => this._filterProductRoutingCode(value)),\r\n );\r\n }\r\n\r\n private _filterProductRoutingCode(name: string): ProductRoutingCodes[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.productRoutingCodes.filter(\r\n (option) =>\r\n option.activityCode.toLowerCase().includes(filterValue) ||\r\n option.department.toLowerCase().includes(filterValue) ||\r\n option.activityDesc.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.productRoutingCodes;\r\n }\r\n\r\n dropTable(event: CdkDragDrop) {\r\n const prevIndex = this.productRoutings.findIndex(\r\n (d) => d === event.item.data,\r\n );\r\n moveItemInArray(this.productRoutings, prevIndex, event.currentIndex);\r\n // this.table.renderRows();\r\n }\r\n\r\n onSaveProductRouting() {\r\n if (!this.productRoutings?.length) {\r\n this.dialogRef.close();\r\n return;\r\n }\r\n const data = this.productRoutings.map(({ routingCode, ...p }, index) => ({\r\n ...p,\r\n routingOrder: index + 1,\r\n }));\r\n this.loadService.isSavingProductRouting = true;\r\n\r\n this.productsRoutingService.setProductRouting(data).subscribe(\r\n () => {\r\n this.loadService.isSavingProductRouting = false;\r\n this.dialogRef.close();\r\n },\r\n () => {\r\n this.loadService.isSavingProductRouting = false;\r\n },\r\n );\r\n }\r\n onDeleteProductRouting(productRouting: ProductsRouting) {\r\n this.confirmationService\r\n .showConfirmation({\r\n content: `Continue to delete ${productRouting.routingCode.activityCode} from Product Routing?`,\r\n title: 'Delete product routing?',\r\n confirmLabel: 'Continue',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n if (productRouting.productsRoutingId) {\r\n this.productRoutings = this.productRoutings.filter(\r\n (p) => p.productsRoutingId !== productRouting.productsRoutingId,\r\n );\r\n this.productsRoutingService\r\n .deleteProductRouting(productRouting.productsRoutingId)\r\n .subscribe();\r\n } else {\r\n this.productRoutings = this.productRoutings.filter(\r\n (p) => p.tempRoutingId !== productRouting.tempRoutingId,\r\n );\r\n }\r\n }\r\n });\r\n }\r\n onCopyRoutingOpen() {\r\n const dialogRef = this.dialog.open(ProductRoutingCopyDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1000px',\r\n width: '100%',\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((newRoutings) => {\r\n if (!newRoutings) return;\r\n this.productRoutings = newRoutings.map((r, index) => ({\r\n ...r,\r\n productsRoutingId: 0,\r\n tempRoutingId: +new Date() + index,\r\n productsId: this.productId,\r\n }));\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n Search product routing code to add\r\n \r\n \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ productRoutingCode.activityCode }}\r\n
    \r\n
    \r\n {{ productRoutingCode.department }}\r\n
    \r\n
    \r\n {{ productRoutingCode.activityDesc }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    Standard Time
    \r\n
    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 {{ routing.routingCode?.activityCode }}\r\n
    \r\n
    \r\n {{ routing.routingCode?.department }}\r\n
    \r\n
    \r\n {{ routing.routingCode?.activityDesc }}\r\n
    \r\n \r\n {{ routing.standardTime }}\r\n \r\n
    \r\n \r\n {{ routing.comment }}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    No Data
    \r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { JewelryType } from 'src/app/models/jewelry-type';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport {\r\n Product,\r\n ProductDetailResponse,\r\n ProductsInfo,\r\n ProductsStoreInfo,\r\n ProductStatus,\r\n} from 'src/app/models/product';\r\nimport { ProductSearch } from 'src/app/models/request/product-search-request';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { JewelryTypeService } from 'src/app/services/jewelry-type.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nexport const ProductTypeMapping = [\r\n { value: 0, text: 'All' },\r\n { value: 1, text: 'Products' },\r\n { value: 2, text: 'Subassembly' },\r\n];\r\n\r\nexport enum KEY_CODE {\r\n UP_ARROW = 38,\r\n DOWN_ARROW = 40,\r\n}\r\n\r\n@Component({\r\n selector: 'app-product-table-v2',\r\n templateUrl: './product-table-v2.component.html',\r\n styleUrls: ['./product-table-v2.component.scss'],\r\n})\r\nexport class ProductTableV2Component\r\n extends GenericComponent\r\n implements OnInit\r\n{\r\n tableCollapsed = false;\r\n editMode = false;\r\n\r\n productTypes: { value: number; text: string }[];\r\n\r\n customers: Customers[];\r\n\r\n getCustomerName(custIdNo: number) {\r\n let customer = this.customers.find((x) => x.custIdno == custIdNo);\r\n if (customer != undefined) {\r\n return customer.customerId;\r\n }\r\n return '-ERROR-';\r\n }\r\n\r\n statuses: ProductStatus[];\r\n jewelryTypes: JewelryType[];\r\n materialCodes: MaterialCode[];\r\n uom: UnitOfMeasure[];\r\n\r\n products: Product[];\r\n product: Product = new Product();\r\n\r\n productDetailList: ProductDetailResponse[];\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private productService: ProductService,\r\n private customerService: CustomerService,\r\n private materialCodeService: MaterialCodeService,\r\n private uomService: UnitOfMeasureService,\r\n private jewelryTypeService: JewelryTypeService,\r\n private bomService: ProductBomService,\r\n ) {\r\n super(loadService, alertService);\r\n this.productTypes = ProductTypeMapping;\r\n this.loadService.loadContent(true);\r\n this.load();\r\n }\r\n\r\n tableActive = false;\r\n // Hotfix for up/down keypress product list navigation\r\n @HostListener('window:keyup', ['$event'])\r\n keyEvent(event: KeyboardEvent) {\r\n if (this.tableActive) {\r\n let currentIndex = this.products.indexOf(this.product);\r\n if (currentIndex < this.products.length - 1 && currentIndex >= 0) {\r\n if (event.keyCode == KEY_CODE.UP_ARROW && currentIndex !== 0) {\r\n currentIndex -= 1;\r\n this.product = this.products[currentIndex];\r\n } else if (\r\n event.keyCode == KEY_CODE.DOWN_ARROW &&\r\n currentIndex < this.products.length\r\n ) {\r\n currentIndex += 1;\r\n this.product = this.products[currentIndex];\r\n }\r\n this.getProductLocal(this.product);\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadService.loadContent(false);\r\n }\r\n\r\n load() {\r\n forkJoin([\r\n this.customerService.getList(),\r\n this.materialCodeService.getList(),\r\n this.productService.getProductStatuses(),\r\n this.uomService.getList(),\r\n this.jewelryTypeService.getList(),\r\n ])\r\n .pipe(\r\n map(\r\n ([\r\n customers,\r\n materialCodes,\r\n productStatuses,\r\n unitOfMeasurements,\r\n jewelryTypes,\r\n ]) => {\r\n this.customers = customers;\r\n this.materialCodes = materialCodes.responseObject;\r\n this.statuses = productStatuses.responseObject;\r\n this.uom = unitOfMeasurements.responseObject;\r\n this.jewelryTypes = jewelryTypes.responseObject;\r\n\r\n return {\r\n customers,\r\n materialCodes,\r\n productStatuses,\r\n unitOfMeasurements,\r\n };\r\n },\r\n ),\r\n )\r\n .subscribe(\r\n (response) => {\r\n this.getProductSearch();\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n get totalProducts() {\r\n if (this.products !== undefined) {\r\n return this.products.length;\r\n }\r\n return 0;\r\n }\r\n\r\n searchString = '';\r\n selectedProductType = 1; // default to products\r\n selectedCustomer = 0;\r\n selectedJewelryType = 0;\r\n\r\n selectedUOM = 1;\r\n selectedCode: number = 5;\r\n selectedMaterialCode: number = 0;\r\n\r\n allProducts: Product[] = [];\r\n\r\n searchTimeout() {\r\n this.products = this.allProducts.filter(\r\n (p) =>\r\n p.sku.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.customerSku.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.productName.toLowerCase().includes(this.searchString.toLowerCase()),\r\n );\r\n }\r\n\r\n searchPanelChange() {\r\n this.alertService.clear();\r\n this.getProductSearch();\r\n }\r\n\r\n indexMax = 0;\r\n index = 0;\r\n\r\n getProductSearch(selectedProduct?: number) {\r\n let searchObject = new ProductSearch();\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n\r\n this.loadService.loadContent(true);\r\n this.product.customerCode = 5;\r\n if (this.selectedCustomer != 0) {\r\n this.product.customerCode = this.customers.find(\r\n (c) => c.custIdno == this.selectedCustomer,\r\n ).custIdno;\r\n }\r\n\r\n searchObject.searchString = this.searchString;\r\n searchObject.customerCode = this.product.customerCode;\r\n searchObject.jewelryType = this.selectedJewelryType;\r\n searchObject.productTypeID = this.selectedProductType;\r\n\r\n this.index = 0;\r\n this.indexMax = 0;\r\n\r\n this.productService.getSearchList(searchObject).subscribe(\r\n (response) => {\r\n this.products = response;\r\n this.allProducts = response;\r\n\r\n this.products.forEach((item) => {\r\n item = this.mapTypeNames(item);\r\n item.inStore = this.inStore(item.productsId);\r\n });\r\n\r\n this.products.sort((a, b) => {\r\n if (a.productsId > b.productsId) {\r\n return 1;\r\n }\r\n\r\n if (a.productsId < b.productsId) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n if (this.products.length !== 0) {\r\n this.indexMax = this.products.length - 1;\r\n\r\n this.product = this.products.find(\r\n (p) => p.productsId === selectedProduct,\r\n );\r\n\r\n if (selectedProduct == undefined) {\r\n this.product = this.products[this.index];\r\n }\r\n this.productOutput.emit(this.product);\r\n this.setProductsStoreInfo();\r\n } else {\r\n this.product = new Product();\r\n this.alertService.error('No records found.');\r\n this.loadService.loadContent(false);\r\n }\r\n\r\n if (this.product.picPath === null) {\r\n this.product.picPath = '../../../assets/images/no-image.png';\r\n }\r\n\r\n if (this.product.productsInfo.length > 0) {\r\n this.productsInfo = [];\r\n this.productsInfo = cloneDeep(this.product.productsInfo);\r\n }\r\n\r\n this.selectedCode = this.customers.find(\r\n (c) => c.custIdno == this.product.customerCode,\r\n ).custIdno;\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.product = new Product();\r\n this.loadService.loadContent(false);\r\n this.alertService.error('Internal error.');\r\n },\r\n );\r\n }\r\n\r\n mapTypeNames(product: Product) {\r\n product.productTypeName = this.productTypes.find(\r\n (pt) => pt.value === product.productsTypeId,\r\n ).text;\r\n product.jewelryTypeName = this.jewelryTypes.find(\r\n (jt) => jt.jewelryTypeId === product.jewelryType,\r\n ).type;\r\n return product;\r\n }\r\n\r\n viewSubassembly(subProductsId: number) {\r\n this.productService.viewSubassembly(subProductsId).subscribe((result) => {\r\n this.products = result.responseObject;\r\n let product = this.products.find((p) => p.productsId === subProductsId);\r\n this.selectedProductType = product.productsTypeId;\r\n this.getProductLocal(product);\r\n });\r\n }\r\n\r\n sortColumn = [\r\n { column: 'productsId', sort: '' },\r\n { column: 'sku', sort: '' },\r\n { column: 'customerSku', sort: '' },\r\n { column: 'productTypeName', sort: '' },\r\n { column: 'productName', sort: '' },\r\n { column: 'customerCode', sort: '' },\r\n { column: 'jewelryTypeName', sort: '' },\r\n { column: 'inStore', sort: '' },\r\n ];\r\n\r\n onSort(column: string) {\r\n if (\r\n this.checkStringIfEmpty(\r\n this.sortColumn.find((s) => s.column === column).sort,\r\n ) ||\r\n this.sortColumn.find((s) => s.column === column).sort !== 'asc'\r\n ) {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'asc';\r\n this.products.sort((a, b) => {\r\n if (a[column] > b[column]) {\r\n return 1;\r\n }\r\n if (a[column] < b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n } else {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'desc';\r\n this.products.sort((a, b) => {\r\n if (a[column] < b[column]) {\r\n return 1;\r\n }\r\n if (a[column] > b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n\r\n sortClass(column) {\r\n if (this.sortColumn.find((s) => s.column === column).sort === 'asc') {\r\n return 'fa-arrow-up';\r\n } else if (\r\n this.sortColumn.find((s) => s.column === column).sort === 'desc'\r\n ) {\r\n return 'fa-arrow-down';\r\n }\r\n return '';\r\n }\r\n\r\n applyColorBand(product: Product) {\r\n let index = this.products.indexOf(product);\r\n if (index % 2 == 0 || index == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n productsStoreInfo = new ProductsStoreInfo();\r\n productsInfo: ProductsInfo[];\r\n @Output() productStoreInfoOutput = new EventEmitter();\r\n @Output() productOutput = new EventEmitter();\r\n @Input() showCollapseButton: boolean = true;\r\n\r\n private _updatedProduct: Product = undefined;\r\n @Input() set updatedProduct(data: Product) {\r\n this._updatedProduct = data;\r\n this.updateProductValue(this._updatedProduct);\r\n }\r\n get updatedProduct(): Product {\r\n return this._updatedProduct;\r\n }\r\n\r\n updateProductValue(product: Product) {\r\n if (product !== undefined) {\r\n let item = this.products.find((p) => p.productsId == product.productsId);\r\n product = this.mapTypeNames(product);\r\n product.inStore = product.productsStoreInfo[0].storeFlag;\r\n this.products[this.products.indexOf(item)] = product;\r\n }\r\n }\r\n\r\n getProductLocal(product: Product) {\r\n this.product = product;\r\n this.productOutput.emit(this.product);\r\n\r\n this.setProductsStoreInfo();\r\n\r\n if (this.product.productsInfo.length > 0) {\r\n this.productsInfo = [];\r\n this.productsInfo = cloneDeep(this.product.productsInfo);\r\n }\r\n\r\n if (this.product.picPath === null) {\r\n this.product.picPath = '../../../assets/images/no-image.png';\r\n }\r\n }\r\n\r\n setProductsStoreInfo() {\r\n this.productsStoreInfo = new ProductsStoreInfo();\r\n\r\n this.productsStoreInfo.productsId = this.product.productsId;\r\n\r\n if (this.product.productsStoreInfo !== undefined) {\r\n if (this.product.productsStoreInfo[0] !== undefined) {\r\n this.productsStoreInfo = this.product.productsStoreInfo[0];\r\n this.productStoreInfoOutput.emit(this.productsStoreInfo);\r\n }\r\n }\r\n }\r\n\r\n inStore(productId: number) {\r\n let storeInfo = this.products.find((p) => p.productsId === productId)\r\n .productsStoreInfo[0];\r\n if (storeInfo != undefined) {\r\n return storeInfo.storeFlag;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n {{ productType.text }}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{ customer.customerId }}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{ jewelryType.type }}\r\n \r\n \r\n
    \r\n\r\n
    \r\n Items: {{ totalProducts }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ID\r\n \r\n SKU\r\n \r\n Cust SKU\r\n \r\n \r\n Product Type\r\n \r\n Name\r\n \r\n Cust\r\n Code\r\n \r\n \r\n Jewelry Type\r\n \r\n In Store\r\n
    {{ item.productsId }}{{ item.sku }}{{ item.customerSku }}{{ item.productTypeName }}{{ item.productName }}{{ getCustomerName(item.customerCode) }}{{ item.jewelryTypeName }}\r\n {{ item.inStore }}\r\n
    {{ item.productsId }}{{ item.sku }}{{ item.customerSku }}{{ item.productTypeName }}{{ item.productName }}{{ getCustomerName(item.customerCode) }}{{ item.jewelryTypeName }}
    {{ product.productsId }}{{ product.sku }}{{ product.customerSku }}{{ product.productTypeName }}{{ product.productName }}{{ product.customerCode }}{{ product.jewelryTypeName }}
    \r\n
    \r\n
    \r\n
    \r\n\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ProductEnamel } from 'src/app/models/product';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\n\r\n@Component({\r\n selector: 'app-enamel-constant',\r\n templateUrl: './enamel-constant.component.html',\r\n styleUrls: ['./enamel-constant.component.scss'],\r\n})\r\nexport class EnamelConstantComponent implements OnInit, OnChanges {\r\n @Input() productId: number;\r\n productEnamels: ProductEnamel[] = [];\r\n\r\n constructor(\r\n private enamelService: EnamelService,\r\n private productService: ProductService,\r\n private productBomService: ProductBomService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.productService.reloadEnamelConstant = () => {\r\n this.getProductVariation();\r\n };\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.productEnamels = [];\r\n if (this.productId) {\r\n this.getProductVariation();\r\n }\r\n }\r\n\r\n getProductVariation() {\r\n forkJoin([\r\n this.enamelService.getList(),\r\n this.productBomService.getProductEnamel(this.productId),\r\n ])\r\n .pipe(\r\n map(([enamels, productEnamelList]) => {\r\n const productEnamels = productEnamelList\r\n .filter((e) => !e.variation)\r\n .map((p) => {\r\n const enamel =\r\n enamels.find((e) => e.enamelId === p.enamelID) ?? {};\r\n const pantoneColor = enamel.pantoneColor ? `[${enamel.pantoneColor}] ` : '';\r\n return {\r\n ...enamel,\r\n ...p,\r\n displayText: `${pantoneColor}${p.enamelName}`,\r\n };\r\n });\r\n\r\n return { enamels, productEnamels };\r\n }),\r\n )\r\n .subscribe(({ productEnamels }) => {\r\n this.productEnamels = productEnamels;\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    Enamel Constants
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n Inject,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Enamel } from 'src/app/models/enamel';\r\nimport { ProductEnamel } from 'src/app/models/product';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { StoneProductComponent } from '../../riva-gems/stone-product/stone-product.component';\r\nimport { ConfirmationService } from './../../riva-confirmation/riva-confirmation.service';\r\n\r\nconst PRODUCT_ENAMEL_INDEX = 0;\r\nconst PRODUCT_STONES_INDEX = 1;\r\n\r\n@Component({\r\n templateUrl: './enamel-variation-dialog.component.html',\r\n styleUrls: ['./enamel-variation-dialog.component.scss'],\r\n})\r\nexport class EnamelVariationDialogComponent implements OnInit, AfterViewInit {\r\n displayedColumns: string[] = [\r\n 'select',\r\n 'color',\r\n 'sku',\r\n 'name',\r\n 'pantoneColor',\r\n 'hardness',\r\n ];\r\n variationDisplayedColumns: string[] = [\r\n 'color',\r\n 'sku',\r\n 'name',\r\n 'pantoneColor',\r\n 'hardness',\r\n 'delete',\r\n ];\r\n search = '';\r\n isSaving = false;\r\n maxVariation = 30;\r\n isVariationLimit = false;\r\n enamelControl = new FormControl();\r\n filteredEnamels: Observable;\r\n selection = new SelectionModel(true, []);\r\n selectedEnamel: Enamel;\r\n enamels = new MatTableDataSource([]);\r\n rawEnamels: Enamel[];\r\n productVariations = new MatTableDataSource([]);\r\n\r\n selectedIndex = PRODUCT_ENAMEL_INDEX;\r\n @ViewChild(StoneProductComponent)\r\n stoneProductComponent: StoneProductComponent;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: { productId: number },\r\n public dialogRef: MatDialogRef,\r\n private enamelService: EnamelService,\r\n private supplierService: SupplierService,\r\n private productBomService: ProductBomService,\r\n private productService: ProductService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.enamels.filterPredicate = (data: Enamel, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.enamelName\r\n .toString()\r\n .toLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.enamelSku.toLowerCase().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n }\r\n\r\n initiateFilters() {\r\n this.filteredEnamels = this.enamelControl.valueChanges.pipe(\r\n startWith(this.selectedEnamel?.enamelName),\r\n map((value) => this._filterEnamels(value)),\r\n );\r\n }\r\n\r\n private _filterEnamels(name: string): Enamel[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.enamels.data.filter(\r\n (option) =>\r\n option.enamelName.toLowerCase().includes(filterValue) ||\r\n option.enamelSku.toLowerCase().includes(filterValue) ||\r\n option.supplierDisplayName.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.enamels.data;\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.enamels.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected()\r\n ? this.selection.clear()\r\n : this.enamels.data.forEach((row) => this.selection.select(row));\r\n }\r\n\r\n onFilterChange() {\r\n this.enamels.filter = JSON.stringify({ search: this.search });\r\n }\r\n\r\n onCheckVariation() {\r\n this.enamels.data = this.rawEnamels.filter((e) => {\r\n return !this.productVariations.data.some(\r\n (p) => p.enamelID === e.enamelId,\r\n );\r\n });\r\n }\r\n\r\n onAddSelectedItem() {\r\n this.productVariations.data = this.selection.selected.reduce(\r\n (accum, { enamelId, enamelSku, ...selected }) => [\r\n ...accum,\r\n {\r\n ...selected,\r\n enamelID: enamelId,\r\n enamelSKU: enamelSku,\r\n productsID: this.data.productId,\r\n },\r\n ],\r\n [...this.productVariations.data],\r\n );\r\n this.selection.clear();\r\n this.onCheckVariation();\r\n }\r\n\r\n displayFn(item: Enamel): string {\r\n return item?.enamelName ?? '';\r\n }\r\n\r\n onSelectEnamel(enamel: Enamel) {\r\n if (this.productVariations.data.length >= this.maxVariation) {\r\n this.isVariationLimit = true;\r\n return;\r\n }\r\n const { enamelId, enamelSku, ...selected } = enamel;\r\n this.productVariations.data = [\r\n ...this.productVariations.data,\r\n {\r\n ...selected,\r\n enamelID: enamelId,\r\n enamelSKU: enamelSku,\r\n productsID: this.data.productId,\r\n },\r\n ];\r\n this.onCheckVariation();\r\n this.selectedEnamel = null;\r\n }\r\n\r\n onDeleteVariation(variation: ProductEnamel) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Enamel Variation',\r\n content: 'Are you sure you want to delete this variation?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.productVariations.data = this.productVariations.data.filter(\r\n (p) => p.enamelID !== variation.enamelID,\r\n );\r\n if (variation.productsBOMEnamelID) {\r\n this.productBomService\r\n .deleteProductEnamel(variation.productsBOMEnamelID)\r\n .subscribe(() => {\r\n this.productService.reloadEnamelVariation();\r\n });\r\n }\r\n this.onCheckVariation();\r\n this.initiateFilters();\r\n this.isVariationLimit = false;\r\n });\r\n }\r\n\r\n onSave() {\r\n switch (this.selectedIndex) {\r\n case PRODUCT_ENAMEL_INDEX:\r\n this.onSaveEnamel();\r\n break;\r\n case PRODUCT_STONES_INDEX:\r\n this.stoneProductComponent.onSave();\r\n break;\r\n default:\r\n this.onCloseDialog();\r\n }\r\n }\r\n\r\n onSaveEnamel() {\r\n this.isSaving = true;\r\n const newProductVariations = this.productVariations.data.reduce(\r\n (variations, p) => {\r\n if (p.productsBOMEnamelID) return variations;\r\n return [\r\n ...variations,\r\n {\r\n enamelID: p.enamelID,\r\n productsID: this.data.productId,\r\n variation: true,\r\n },\r\n ];\r\n },\r\n [],\r\n );\r\n if (!newProductVariations.length) {\r\n this.isSaving = false;\r\n this.dialogRef.close(false);\r\n return;\r\n }\r\n this.productBomService\r\n .setProductEnamel(newProductVariations)\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n forkJoin([\r\n this.enamelService.getList(),\r\n this.supplierService.getList(),\r\n this.productBomService.getProductEnamel(this.data.productId),\r\n ])\r\n .pipe(\r\n map(([enamelList, supplierList, productVariationList]) => {\r\n const enamels = enamelList.map((enamel) => {\r\n const currentSupplier = supplierList.find(\r\n (s) => s.suppliersId === enamel.supplierId,\r\n );\r\n enamel.supplierDisplayName = currentSupplier\r\n ? `(${currentSupplier.supplierId}) ${currentSupplier.companyName}`\r\n : '';\r\n\r\n return enamel;\r\n });\r\n\r\n const productVariations = productVariationList\r\n .filter((v) => v.variation)\r\n .map((p) => {\r\n const enamel =\r\n enamels.find((e) => e.enamelId === p.enamelID) ?? {};\r\n return { ...p, ...enamel };\r\n });\r\n\r\n return { enamels, productVariations };\r\n }),\r\n )\r\n .subscribe(({ enamels, productVariations }) => {\r\n this.rawEnamels = enamels;\r\n this.productVariations.data = productVariations;\r\n this.onCheckVariation();\r\n this.initiateFilters();\r\n });\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","
    \r\n

    Variations

    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Search enamels to add\r\n \r\n \r\n \r\n
    \r\n
    Color
    \r\n
    SKU
    \r\n
    Name
    \r\n
    \r\n Pantone Color\r\n
    \r\n
    Hardness
    \r\n
    \r\n \r\n \r\n
    \r\n
    Color
    \r\n
    SKU
    \r\n
    Name
    \r\n
    \r\n Pantone Color\r\n
    \r\n
    Hardness
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ enamel.enamelSku }}\r\n
    \r\n
    \r\n {{ enamel.enamelName }}\r\n
    \r\n
    \r\n {{ enamel.pantoneColor }}\r\n
    \r\n
    \r\n {{ enamel.hardness }}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Not Found\r\n
    \r\n
    \r\n \r\n \r\n You reach the limit. Maximum variation per product is\r\n {{ maxVariation }}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    Color\r\n \r\n SKU\r\n {{ element.enamelSku }}\r\n Name\r\n {{ element.enamelName }}\r\n Pantone Color\r\n {{ element.pantoneColor }}\r\n Hardness\r\n {{ element.hardness }}\r\n Supplier\r\n {{ element.supplierDisplayName }}\r\n Color\r\n {{ element.colorHex }}\r\n \r\n \r\n
    \r\n No Available Data\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n
    \r\n \r\n Done\r\n \r\n
    \r\n
    \r\n\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ProductEnamel } from 'src/app/models/product';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { ConfirmationService } from './../../riva-confirmation/riva-confirmation.service';\r\n\r\n@Component({\r\n selector: 'app-enamel-variation',\r\n templateUrl: './enamel-variation.component.html',\r\n styleUrls: ['./enamel-variation.component.scss'],\r\n})\r\nexport class EnamelVariationComponent implements OnInit, OnChanges {\r\n @Input() productId: number;\r\n variationDisplayedColumns: string[] = [\r\n 'color',\r\n 'sku',\r\n 'name',\r\n 'pantoneColor',\r\n 'hardness',\r\n 'delete',\r\n ];\r\n productVariations = new MatTableDataSource([]);\r\n\r\n constructor(\r\n private enamelService: EnamelService,\r\n private supplierService: SupplierService,\r\n private productService: ProductService,\r\n private productBomService: ProductBomService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.productService.reloadEnamelVariation = () => {\r\n this.getProductVariation();\r\n };\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.productVariations.data = [];\r\n if (this.productId) {\r\n this.getProductVariation();\r\n }\r\n }\r\n\r\n getProductVariation() {\r\n forkJoin([\r\n this.enamelService.getList(),\r\n this.supplierService.getList(),\r\n this.productBomService.getProductEnamel(this.productId),\r\n ])\r\n .pipe(\r\n map(([enamelList, supplierList, productVariationList]) => {\r\n const enamels = enamelList.map((enamel) => {\r\n const currentSupplier = supplierList.find(\r\n (s) => s.suppliersId === enamel.supplierId,\r\n );\r\n enamel.supplierDisplayName = currentSupplier\r\n ? `(${currentSupplier.supplierId}) ${currentSupplier.companyName}`\r\n : '';\r\n\r\n return enamel;\r\n });\r\n\r\n const productVariations = productVariationList\r\n .filter((v) => v.variation)\r\n .map((p) => {\r\n const enamel =\r\n enamels.find((e) => e.enamelId === p.enamelID) ?? {};\r\n p.supplierId = enamel.supplierId;\r\n p.supplierDisplayName = enamel.supplierDisplayName;\r\n const pantoneColor = enamel.pantoneColor ? `[${enamel.pantoneColor}] ` : '';\r\n p.displayText = `${pantoneColor}${p.enamelName}`;\r\n return p;\r\n });\r\n\r\n return { enamels, productVariations };\r\n }),\r\n )\r\n .subscribe(({ productVariations }) => {\r\n this.productVariations.data = productVariations;\r\n });\r\n }\r\n\r\n onDeleteVariation(variation: ProductEnamel) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Enamel Variation',\r\n content: 'Are you sure you want to delete this variation?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.productVariations.data = this.productVariations.data.filter(\r\n (p) => p.enamelID !== variation.enamelID,\r\n );\r\n if (variation.productsBOMEnamelID) {\r\n this.productService\r\n .deleteProductVariations(variation.productsBOMEnamelID)\r\n .subscribe();\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    Enamel Variations
    \r\n
    \r\n \r\n No Variation\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n","import {\r\n CdkDragEnter,\r\n CdkDropList,\r\n CdkDropListGroup,\r\n moveItemInArray,\r\n} from '@angular/cdk/drag-drop';\r\nimport { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { ProductImage } from 'src/app/models/product';\r\nimport { ProductService } from 'src/app/services/product.service';\r\n\r\n@Component({\r\n templateUrl: './product-image-order-dialog.component.html',\r\n styleUrls: ['./product-image-order-dialog.component.scss'],\r\n})\r\nexport class ProductImageOrderDialogComponent implements OnInit {\r\n @ViewChild(CdkDropListGroup) listGroup: CdkDropListGroup;\r\n @ViewChild(CdkDropList) placeholder: CdkDropList;\r\n @ViewChild('errorProductImage')\r\n public readonly errorProductImage!: SwalComponent;\r\n\r\n images: ProductImage[];\r\n isSaving = false;\r\n error = {\r\n title: '',\r\n description: '',\r\n };\r\n\r\n public target: CdkDropList;\r\n public targetIndex: number;\r\n public source: CdkDropList;\r\n public sourceIndex: number;\r\n public activeContainer;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { productId: number; productImages: ProductImage[] },\r\n public dialogRef: MatDialogRef,\r\n public productService: ProductService,\r\n ) {\r\n this.target = null;\r\n this.source = null;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.images = [...(this.props.productImages ?? [])];\r\n }\r\n\r\n onReorder() {\r\n const imageReorder = this.images.map((p, i) => ({\r\n ...p,\r\n picsOrder: i + 1,\r\n }));\r\n\r\n this.isSaving = true;\r\n this.productService\r\n .setProductImages(this.props.productId, imageReorder)\r\n .subscribe(\r\n () => {\r\n this.dialogRef.close([...this.images]);\r\n this.isSaving = false;\r\n },\r\n () => {\r\n this.error = {\r\n title: 'Product Picture',\r\n description:\r\n 'There is an error while sorting order of pictures. Please try again later.',\r\n };\r\n setTimeout(() => {\r\n this.errorProductImage.fire();\r\n }, 100);\r\n this.isSaving = false;\r\n },\r\n );\r\n }\r\n\r\n public itemTrackBy(item) {\r\n return item.productsPicsID;\r\n }\r\n\r\n ngAfterViewInit() {\r\n const phElement = this.placeholder.element.nativeElement;\r\n\r\n phElement.style.display = 'none';\r\n phElement.parentElement.removeChild(phElement);\r\n }\r\n\r\n dropListDropped() {\r\n if (!this.target) {\r\n return;\r\n }\r\n\r\n const phElement = this.placeholder.element.nativeElement;\r\n const parent = phElement.parentElement;\r\n\r\n phElement.style.display = 'none';\r\n\r\n parent.removeChild(phElement);\r\n parent.appendChild(phElement);\r\n parent.insertBefore(\r\n this.source.element.nativeElement,\r\n parent.children[this.sourceIndex],\r\n );\r\n\r\n this.target = null;\r\n this.source = null;\r\n this.activeContainer = null;\r\n\r\n if (this.sourceIndex !== this.targetIndex) {\r\n moveItemInArray(this.images, this.sourceIndex, this.targetIndex);\r\n }\r\n }\r\n\r\n cdkDropListEntered(e: CdkDragEnter) {\r\n const drag = e.item;\r\n const drop = e.container;\r\n\r\n if (drop === this.placeholder) {\r\n return true;\r\n }\r\n\r\n const phElement = this.placeholder.element.nativeElement;\r\n const sourceElement = drag.dropContainer.element.nativeElement;\r\n const dropElement = drop.element.nativeElement;\r\n\r\n const dragIndex = __indexOf(\r\n dropElement.parentElement.children,\r\n this.source ? phElement : sourceElement,\r\n );\r\n const dropIndex = __indexOf(\r\n dropElement.parentElement.children,\r\n dropElement,\r\n );\r\n\r\n if (!this.source) {\r\n this.sourceIndex = dragIndex;\r\n this.source = drag.dropContainer;\r\n\r\n phElement.style.width = dropElement.clientWidth / 2 + 'px';\r\n phElement.style.height = dropElement.clientHeight + 'px';\r\n\r\n sourceElement.parentElement.removeChild(sourceElement);\r\n }\r\n\r\n this.targetIndex = dropIndex;\r\n this.target = drop;\r\n\r\n phElement.style.display = '';\r\n dropElement.parentElement.insertBefore(\r\n phElement,\r\n dropIndex > dragIndex ? dropElement.nextSibling : dropElement,\r\n );\r\n\r\n requestAnimationFrame(() => {\r\n this.placeholder._dropListRef.enter(\r\n drag._dragRef,\r\n drag.element.nativeElement.offsetLeft,\r\n drag.element.nativeElement.offsetTop,\r\n );\r\n });\r\n }\r\n}\r\nfunction __indexOf(collection, node) {\r\n return Array.prototype.indexOf.call(collection, node);\r\n}\r\n","
    \r\n

    Product Pictures

    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Reorder\r\n \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NgxGalleryAnimation, NgxGalleryImageSize } from '@kolkov/ngx-gallery';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { ProductImage } from 'src/app/models/product';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { ProductImageOrderDialogComponent } from '../product-image-order-dialog/product-image-order-dialog.component';\r\nimport { ConfirmationService } from './../../riva-confirmation/riva-confirmation.service';\r\n\r\n@Component({\r\n selector: 'app-product-image',\r\n templateUrl: './product-image.component.html',\r\n styleUrls: ['./product-image.component.scss'],\r\n})\r\nexport class ProductImageComponent implements OnInit, OnChanges {\r\n @Input() editMode: boolean;\r\n @Input() productId: number;\r\n\r\n @ViewChild('errorProductImage')\r\n public readonly errorProductImage!: SwalComponent;\r\n\r\n isLoading = false;\r\n currentImage: { index: number; image: ProductImage | null };\r\n error = {\r\n title: '',\r\n description: '',\r\n };\r\n productImages: ProductImage[] = [];\r\n galleryOptions = [\r\n {\r\n width: '100%',\r\n height: '400px',\r\n thumbnailsColumns: 4,\r\n imageAnimation: NgxGalleryAnimation.Slide,\r\n arrowPrevIcon: 'fa fa-chevron-circle-left',\r\n arrowNextIcon: 'fa fa-chevron-circle-right',\r\n preview: true,\r\n previewCloseOnClick: true,\r\n previewCloseOnEsc: true,\r\n previewZoom: true,\r\n previewZoomMax: 10,\r\n previewZoomStep: 1,\r\n previewKeyboardNavigation: true,\r\n previewDownload: true,\r\n imageSize: NgxGalleryImageSize.Contain,\r\n },\r\n ];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private productService: ProductService,\r\n private confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.productService.reloadProductImages = () => {\r\n this.getProductImages();\r\n };\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.productId?.currentValue === changes.productId?.previousValue)\r\n return;\r\n if (!this.productId) {\r\n this.productImages = [];\r\n return;\r\n }\r\n this.getProductImages();\r\n }\r\n\r\n getProductImages() {\r\n this.isLoading = true;\r\n this.productService\r\n .getProductImageList(this.productId)\r\n .subscribe((data) => {\r\n this.productImages = data.map(({ fileName, ...info }) => ({\r\n ...info,\r\n fileName,\r\n small: fileName,\r\n medium: fileName,\r\n big: fileName,\r\n }));\r\n this.currentImage = { index: 0, image: this.productImages[0] };\r\n this.isLoading = false;\r\n });\r\n }\r\n onImageChange($event) {\r\n this.currentImage = $event;\r\n }\r\n onMakePrimaryPicture() {\r\n this.productImages = [\r\n this.currentImage.image,\r\n ...this.productImages.filter(\r\n (p) => p.productsPicsID !== this.currentImage.image.productsPicsID,\r\n ),\r\n ];\r\n this.currentImage = { index: 0, image: this.productImages[0] };\r\n const imageReorder = this.productImages.map((p, i) => ({\r\n ...p,\r\n picsOrder: i + 1,\r\n }));\r\n this.productService\r\n .setProductImages(this.productId, imageReorder)\r\n .subscribe(\r\n () => {},\r\n () => {\r\n this.error = {\r\n title: 'Product Picture',\r\n description:\r\n 'There is an error while making this picture as primary. Please try again later.',\r\n };\r\n this.showErrorMessage();\r\n this.getProductImages();\r\n },\r\n );\r\n }\r\n showErrorMessage() {\r\n setTimeout(() => {\r\n this.errorProductImage.fire();\r\n }, 100);\r\n }\r\n onDeleteProductImage() {\r\n this.confirmationService\r\n .showConfirmation({\r\n title: 'Delete Picture',\r\n content: 'Are you sure you want to delete this picture?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n const id = this.currentImage.image?.productsPicsID;\r\n if (!id) return;\r\n this.productImages = this.productImages.filter(\r\n (p) => p.productsPicsID !== id,\r\n );\r\n this.currentImage = { index: 0, image: this.productImages[0] };\r\n this.productService.deleteProductImages(id).subscribe(\r\n () => {},\r\n () => {\r\n this.error = {\r\n title: 'Product Picture',\r\n description: 'There is an error while deleting this picture.',\r\n };\r\n this.showErrorMessage();\r\n this.getProductImages();\r\n },\r\n );\r\n }\r\n });\r\n }\r\n\r\n openReorderDialog() {\r\n const dialogRef = this.dialog.open(ProductImageOrderDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '550px',\r\n width: '100%',\r\n data: {\r\n productId: this.productId,\r\n productImages: this.productImages,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((newProductImages: ProductImage[]) => {\r\n if (newProductImages && newProductImages.length) {\r\n this.productImages = newProductImages;\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n \r\n Reorder\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

    No Pictures Available

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

    Loading Pictures...

    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { ProductMaterial } from 'src/app/models/product';\r\nimport { ProductService } from 'src/app/services/product.service';\r\n\r\n@Component({\r\n templateUrl: './product-material-dialog.component.html',\r\n styleUrls: ['./product-material-dialog.component.scss'],\r\n})\r\nexport class ProductMaterialDialogComponent implements OnInit {\r\n isSaving = false;\r\n productMaterial: Partial;\r\n materialCodes: MaterialCode[];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n productId: number;\r\n editMode: boolean;\r\n materialCodes: MaterialCode[];\r\n productMaterial: ProductMaterial | null;\r\n },\r\n public dialogRef: MatDialogRef,\r\n private productService: ProductService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.data.productMaterial != null) {\r\n this.productMaterial = { ...this.data.productMaterial };\r\n } else {\r\n this.productMaterial = {\r\n percentage1: 0,\r\n percentage2: 0,\r\n };\r\n }\r\n this.materialCodes = this.data.materialCodes.filter((m) => m.multiMetal);\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n const data = {\r\n productsID: this.data.productId,\r\n materialsCodeID: this.productMaterial.materialsCodeID,\r\n percentage1: this.productMaterial.percentage1 ?? 0,\r\n percentage2: this.productMaterial.percentage2 ?? 0,\r\n };\r\n this.productService.setProductMaterial(data).subscribe(() => {\r\n this.onCloseDialog(true);\r\n });\r\n }\r\n\r\n onCloseDialog(reload = false) {\r\n this.dialogRef.close(reload);\r\n }\r\n get isFormValid() {\r\n const total =\r\n this.productMaterial.percentage1 + this.productMaterial.percentage2;\r\n return total === 100;\r\n }\r\n}\r\n","
    \r\n

    Multi Material Variant

    \r\n \r\n
    \r\n \r\n Material\r\n \r\n \r\n {{ mats.description }}\r\n \r\n \r\n \r\n\r\n \r\n Percentage\r\n \r\n \r\n \r\n Percentage\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport { ProductService } from 'src/app/services/product.service';\r\n\r\n@Component({\r\n templateUrl: './product-setting-dialog.component.html',\r\n styleUrls: ['./product-setting-dialog.component.scss'],\r\n})\r\nexport class ProductSettingDialogComponent implements OnInit {\r\n isLoading = false;\r\n isSaving = false;\r\n productSetting = {\r\n workOrderLimit: 0,\r\n isBundled: false,\r\n };\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: { productId: number; editMode: boolean },\r\n public dialogRef: MatDialogRef,\r\n private productsService: ProductService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.isLoading = true;\r\n forkJoin([\r\n this.productsService.getProductWorkOrderLimit(this.data.productId),\r\n this.productsService.getProductBundled(this.data.productId),\r\n ]).subscribe(([{ workOrderLimit }, { isBundled }]) => {\r\n this.productSetting.workOrderLimit = workOrderLimit ?? 0;\r\n this.productSetting.isBundled = isBundled ?? false;\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n forkJoin([\r\n this.productsService.updateProductWorkOrderLimit({\r\n productId: this.data.productId,\r\n workOrderLimit: this.productSetting.workOrderLimit,\r\n }),\r\n this.productsService.updateProductBundle(\r\n this.data.productId,\r\n this.productSetting.isBundled,\r\n ),\r\n ]).subscribe(() => {\r\n this.onCloseDialog();\r\n });\r\n }\r\n\r\n setProductAsBundle() {\r\n if (!this.data.editMode) return;\r\n this.productSetting.isBundled = !this.productSetting.isBundled;\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","
    \r\n

    Product Settings

    \r\n \r\n \r\n Work Order Limit\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n Bundled Product\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n
    \r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport { ProductSizes } from 'src/app/models/product';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { ConfirmationService } from '../../riva-confirmation/riva-confirmation.service';\r\n\r\n@Component({\r\n templateUrl: './product-sizes-dialog.component.html',\r\n styleUrls: ['./product-sizes-dialog.component.scss'],\r\n})\r\nexport class ProductSizesDialogComponent {\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: { productSizes: ProductSizes[] },\r\n public dialogRef: MatDialogRef,\r\n private productService: ProductService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n isSaving = false;\r\n displayedColumns = ['size', 'newSize'];\r\n\r\n onSave() {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Update Size Names',\r\n content: 'Are you sure you want to update the size names?',\r\n confirmLabel: 'Yes, update it.',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.isSaving = true;\r\n const request = this.data.productSizes.reduce((accum, size) => {\r\n if ((size.newSize ?? '') === '') return accum;\r\n return [\r\n ...accum,\r\n this.productService.setProductSize({\r\n ...size,\r\n size: size.newSize,\r\n }),\r\n ];\r\n }, []);\r\n\r\n forkJoin(request).subscribe(() => {\r\n this.dialogRef.close(true);\r\n });\r\n });\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n get isFormValid() {\r\n return this.data.productSizes.some((s) => (s.newSize ?? '') !== '');\r\n }\r\n}\r\n","
    \r\n

    Product Sizes

    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    Size\r\n {{ element.size }}\r\n New Size Name\r\n \r\n
    No Available Data
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ProductDetail, ProductEnamel } from 'src/app/models/product';\r\nimport { ProductSku } from 'src/app/models/sku';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { SkuService } from 'src/app/services/sku.service';\r\nimport { ProductOrderChain } from '../../riva-chain/riva-chain-product/model';\r\nimport { ProductStone } from '../../riva-gems/riva-gems.model';\r\n\r\ninterface ProductSkuDetail {\r\n productId: number;\r\n materialCodeId: number;\r\n productSizeId: number;\r\n enamelId?: number;\r\n stoneId?: number;\r\n chainTypeId?: number;\r\n chainId?: number;\r\n}\r\n\r\n@Component({\r\n templateUrl: './product-sku-generator-dialog.component.html',\r\n styleUrls: ['./product-sku-generator-dialog.component.scss'],\r\n})\r\nexport class ProductSkuGeneratorDialogComponent implements OnInit {\r\n productSkuDetail: ProductSkuDetail = {} as ProductSkuDetail;\r\n productDetail: ProductDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n productEnamelVariations: ProductEnamel[] = [];\r\n productStoneVariationControl = new FormControl();\r\n productStoneVariations: ProductStone[] = [];\r\n productStoneVariation: ProductStone = {} as ProductStone;\r\n filteredProductStoneVariation: Observable;\r\n\r\n productChains: ProductOrderChain[] = [];\r\n productChain: ProductOrderChain = {} as ProductOrderChain;\r\n productChainControl = new FormControl();\r\n filteredProductChains: Observable;\r\n placeholderCustomerSku = '';\r\n productSkus: ProductSku[] = [];\r\n selectedProductSku: ProductSku = {} as ProductSku;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n productId: number;\r\n materialCodeId?: number;\r\n productSizeId?: number;\r\n },\r\n public dialogRef: MatDialogRef,\r\n private productService: ProductService,\r\n private productBomService: ProductBomService,\r\n private enamelService: EnamelService,\r\n private skuService: SkuService,\r\n private toastrService: ToastrService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.productSkuDetail.materialCodeId = this.data.materialCodeId;\r\n this.productSkuDetail.productSizeId = this.data.productSizeId;\r\n this.productService\r\n .getProductDetail(this.data.productId)\r\n .subscribe((data) => {\r\n this.productDetail = data;\r\n if (data.materials.length === 1) {\r\n this.productSkuDetail.materialCodeId =\r\n data.materials[0]?.materialsCodeID;\r\n }\r\n if (data.productSizes.length === 1) {\r\n this.productSkuDetail.productSizeId =\r\n data.productSizes[0]?.productsSizesID;\r\n }\r\n setTimeout(() => {\r\n this.getProductSku();\r\n }, 1000);\r\n });\r\n this.getProductEnamelVariations(this.data.productId);\r\n this.getProductStone(this.data.productId);\r\n this.getProductChain(this.data.productId);\r\n }\r\n\r\n getProductSku() {\r\n this.skuService.getProductSku(this.data.productId).subscribe((data) => {\r\n this.productSkus = data;\r\n this.getSelectedSku();\r\n });\r\n }\r\n\r\n getSelectedSku() {\r\n this.placeholderCustomerSku = '';\r\n this.selectedProductSku =\r\n this.productSkus.find(\r\n (sku) =>\r\n sku.productsMaterialsID ===\r\n (this.productSkuDetail.materialCodeId ?? 0) &&\r\n sku.productsSizesID === (this.productSkuDetail.productSizeId ?? 0) &&\r\n sku.productsBOMEnamelID === (this.productSkuDetail.enamelId ?? 0) &&\r\n sku.productsBOMStonesID ===\r\n (this.productStoneVariation.productsBOMStonesID ?? 0) &&\r\n ((this.productChain.chainType &&\r\n sku.productsBOMChainFinishedID ===\r\n (this.productChain.chainProductsID ?? 0)) ||\r\n (!this.productChain.chainType &&\r\n sku.productsBOMChainRawID ===\r\n (this.productChain.chainProductsID ?? 0))),\r\n ) ?? ({} as ProductSku);\r\n if (this.selectedProductSku?.productsCustSKUsID == null) {\r\n this.getCustomerSkuPlaceholder();\r\n }\r\n }\r\n\r\n getCustomerSkuPlaceholder() {\r\n let productSkus = this.productSkus;\r\n let skus = productSkus.filter(\r\n (sku) =>\r\n sku.productsMaterialsID === (this.productSkuDetail.materialCodeId ?? 0),\r\n );\r\n if (skus.length > 0) {\r\n productSkus = skus;\r\n } else {\r\n productSkus = productSkus.filter((sku) => sku.productsMaterialsID === 0);\r\n }\r\n if (productSkus.length === 0) {\r\n return;\r\n }\r\n\r\n skus = productSkus.filter(\r\n (sku) =>\r\n sku.productsSizesID === (this.productSkuDetail.productSizeId ?? 0),\r\n );\r\n if (skus.length > 0) {\r\n productSkus = skus;\r\n } else {\r\n productSkus = productSkus.filter((sku) => sku.productsSizesID === 0);\r\n }\r\n if (productSkus.length === 0) {\r\n return;\r\n }\r\n\r\n skus = productSkus.filter(\r\n (sku) =>\r\n sku.productsBOMEnamelID === (this.productSkuDetail.enamelId ?? 0),\r\n );\r\n if (skus.length > 0) {\r\n productSkus = skus;\r\n } else {\r\n productSkus = productSkus.filter((sku) => sku.productsBOMEnamelID === 0);\r\n }\r\n if (productSkus.length === 0) {\r\n return;\r\n }\r\n\r\n skus = productSkus.filter(\r\n (sku) =>\r\n sku.productsBOMStonesID ===\r\n (this.productStoneVariation.productsBOMStonesID ?? 0),\r\n );\r\n if (skus.length > 0) {\r\n productSkus = skus;\r\n } else {\r\n productSkus = productSkus.filter((sku) => sku.productsBOMStonesID === 0);\r\n }\r\n if (productSkus.length === 0) {\r\n return;\r\n }\r\n\r\n skus = productSkus.filter(\r\n (sku) =>\r\n (this.productChain.chainType &&\r\n sku.productsBOMChainFinishedID ===\r\n (this.productChain.chainProductsID ?? 0)) ||\r\n (!this.productChain.chainType &&\r\n sku.productsBOMChainRawID ===\r\n (this.productChain.chainProductsID ?? 0)),\r\n );\r\n if (skus.length > 0) {\r\n productSkus = skus;\r\n } else {\r\n productSkus = productSkus.filter(\r\n (sku) =>\r\n (this.productChain.chainType &&\r\n sku.productsBOMChainFinishedID === 0) ||\r\n (!this.productChain.chainType && sku.productsBOMChainRawID === 0),\r\n );\r\n }\r\n if (productSkus.length === 0) {\r\n return;\r\n }\r\n this.placeholderCustomerSku = productSkus?.[0]?.customerSKU;\r\n }\r\n\r\n getProductEnamelVariations(productId) {\r\n forkJoin([\r\n this.enamelService.getList(),\r\n this.productBomService.getProductEnamel(productId),\r\n ]).subscribe(([enamels, productEnamels]) => {\r\n this.productEnamelVariations = productEnamels.reduce(\r\n (variations, item) => {\r\n if (!item.variation) return variations;\r\n const enamel =\r\n enamels.find((e) => e.enamelId === item.enamelID) ?? {};\r\n return [...variations, { ...item, ...enamel }];\r\n },\r\n [],\r\n );\r\n\r\n if (this.productEnamelVariations.length === 1) {\r\n this.productSkuDetail.enamelId =\r\n this.productEnamelVariations[0].enamelID;\r\n }\r\n });\r\n }\r\n\r\n getProductStone(productId) {\r\n this.productBomService.getProductStones(productId).subscribe((data) => {\r\n this.productStoneVariations = data.filter((stone) => stone.variation);\r\n\r\n if (this.productStoneVariations.length === 1) {\r\n this.productStoneVariation = this.productStoneVariations[0];\r\n }\r\n this.filteredProductStoneVariation =\r\n this.productStoneVariationControl.valueChanges.pipe(\r\n startWith(this.productStoneVariation?.stone),\r\n map((value) => this._filterProductStoneVariation(value)),\r\n );\r\n });\r\n }\r\n\r\n displayProductStone(item: ProductStone): string {\r\n const labels = [];\r\n if (item?.stone?.stoneType?.name) labels.push(item.stone.stoneType.name);\r\n if (item?.stone?.stoneColor?.colorName)\r\n labels.push(item.stone.stoneColor.colorName);\r\n if (item?.stone?.stoneSize?.displayText)\r\n labels.push(item.overrideStoneSize || item.stone.stoneSize.displayText);\r\n return labels.join(' | ');\r\n }\r\n\r\n private _filterProductStoneVariation(name: string): ProductStone[] {\r\n if (name && typeof name === 'string') {\r\n const filterValue = name?.toLowerCase();\r\n return this.productStoneVariations.filter(\r\n (option) =>\r\n option.stone?.stoneType?.name?.toLowerCase().includes(filterValue) ||\r\n option.stone?.stoneColor?.colorName\r\n ?.toLowerCase()\r\n .includes(filterValue) ||\r\n option.stone?.stoneSize?.displayText\r\n ?.toLowerCase()\r\n .includes(filterValue),\r\n );\r\n } else if (typeof name === 'object' && name['productName']) {\r\n const filterValue: string = name['productName'];\r\n return this.productStoneVariations.filter(\r\n (option) =>\r\n option.stone?.stoneType?.name\r\n .toLowerCase()\r\n .includes(filterValue?.toLowerCase()) ||\r\n option.stone?.stoneColor?.colorName\r\n .toLowerCase()\r\n .includes(filterValue?.toLowerCase()) ||\r\n option.stone?.stoneSize?.displayText\r\n .toLowerCase()\r\n .includes(filterValue?.toLowerCase()),\r\n );\r\n }\r\n return this.productStoneVariations;\r\n }\r\n\r\n displayProductChain(item: ProductOrderChain): string {\r\n if (!item?.chainProductsID) return '';\r\n const labels = [];\r\n labels.push(item.chainType ? 'Finished' : 'Unfinished');\r\n if (item?.name) labels.push(item.name);\r\n if (item?.size) labels.push(item.size);\r\n return labels.join(' | ');\r\n }\r\n\r\n getProductChain(productId) {\r\n forkJoin([\r\n this.productBomService.getProductChainRaw(productId),\r\n this.productBomService.getProductChainFinished(productId),\r\n ]).subscribe(([raw, finished]) => {\r\n const rawMapped = raw.map((r) => ({\r\n chainProductsID: r.productsBOMChainRawID,\r\n chainType: false,\r\n name: r.chainRaw?.chainStyle?.styleName,\r\n size: r.lengthInches.toString(),\r\n }));\r\n const finishedMapped = finished.map((f) => ({\r\n chainProductsID: f.productsBOMChainFinishedID,\r\n chainType: true,\r\n name: f.chainRaw?.chainStyle?.styleName,\r\n size: f.chainFinishedSizes.size,\r\n }));\r\n this.productChains = [...finishedMapped, ...rawMapped];\r\n\r\n this.filteredProductChains = this.productChainControl.valueChanges.pipe(\r\n startWith(this.productChain.name),\r\n map((value) => this._filterProductChain(value)),\r\n );\r\n if (this.productChains.length === 1) {\r\n this.productChain = this.productChains[0];\r\n }\r\n });\r\n }\r\n private _filterProductChain(name: string): ProductOrderChain[] {\r\n if (name && typeof name === 'string') {\r\n const filterValue = name?.toLowerCase();\r\n return this.productChains.filter(\r\n (option) =>\r\n option.name?.toLowerCase().includes(filterValue) ||\r\n option.size?.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object' && name['name']) {\r\n const filterValue: string = name['name'];\r\n return this.productChains.filter(\r\n (option) =>\r\n option.name?.toLowerCase().includes(filterValue) ||\r\n option.size?.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.productChains;\r\n }\r\n\r\n getGeneratedProductSku() {\r\n const productId = String(this.data.productId ?? 0).padStart(7, '0');\r\n const materialCode = String(\r\n this.productSkuDetail.materialCodeId ?? 0,\r\n ).padStart(3, '0');\r\n const productSizeId = String(\r\n this.productSkuDetail.productSizeId ?? 0,\r\n ).padStart(8, '0');\r\n const enamelId = String(this.productSkuDetail.enamelId ?? 0).padStart(\r\n 4,\r\n '0',\r\n );\r\n const productStoneId = String(\r\n this.productStoneVariation.productsBOMStonesID ?? 0,\r\n ).padStart(8, '0');\r\n const productChainId = String(\r\n this.productChain.chainProductsID ?? 0,\r\n ).padStart(8, '0');\r\n\r\n return `PROD-${productId}-${materialCode}-${productSizeId}-${enamelId}-${productStoneId}-${\r\n this.productChain.chainType ? '1' : '0'\r\n }${productChainId}`;\r\n }\r\n\r\n onCopySku() {\r\n navigator.clipboard.writeText(this.getGeneratedProductSku());\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n saveProductSku() {\r\n const payload = {\r\n productsCustSKUsID: this.selectedProductSku?.productsCustSKUsID ?? 0,\r\n productsID: this.data.productId,\r\n productsMaterialsID: this.productSkuDetail.materialCodeId ?? 0,\r\n productsSizesID: this.productSkuDetail.productSizeId ?? 0,\r\n productsBOMEnamelID: this.productSkuDetail.enamelId ?? 0,\r\n productsBOMStonesID: this.productStoneVariation.productsBOMStonesID ?? 0,\r\n productsBOMChainFinishedID: this.productChain.chainType\r\n ? this.productChain.chainProductsID\r\n : 0,\r\n productsBOMChainRawID: this.productChain.chainType\r\n ? 0\r\n : this.productChain.chainProductsID,\r\n customerSKU: this.selectedProductSku.customerSKU,\r\n };\r\n this.skuService.setProductSku(payload).subscribe(() => {\r\n this.toastrService.success('Successfully saved.', 'Customer SKU');\r\n this.getProductSku();\r\n });\r\n }\r\n}\r\n","
    \r\n

    Generate Product SKU

    \r\n \r\n
    \r\n \r\n Material\r\n \r\n -- None --\r\n \r\n
    \r\n {{ mats.material.description }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n -- None --\r\n \r\n {{ size.size }}\r\n \r\n \r\n \r\n \r\n Enamel Variation\r\n \r\n -- None --\r\n \r\n
    \r\n
    \r\n {{ item.enamelName }} ({{ item.enamelSku }})\r\n
    \r\n \r\n \r\n \r\n \r\n Stone Variation\r\n \r\n \r\n \r\n
    \r\n
    Type
    \r\n
    Color
    \r\n
    Size
    \r\n
    Clarity
    \r\n
    Lab Grown
    \r\n
    Traceable
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Type
    \r\n
    Color
    \r\n
    Size
    \r\n
    Clarity
    \r\n
    Traceable
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    -- None --
    \r\n
     
    \r\n
     
    \r\n
     
    \r\n
     
    \r\n
     
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ variation.stone?.stoneType?.name }}\r\n
    \r\n
    \r\n {{ variation.stone?.stoneColor?.colorName ?? '-' }}\r\n
    \r\n
    \r\n {{\r\n variation.overrideStoneSize ||\r\n (variation.stone?.stoneSize?.displayText ?? '-')\r\n }}\r\n
    \r\n
    \r\n {{ variation.stone?.stoneClarity?.name }}\r\n
    \r\n
    \r\n {{ variation.stone?.labGrown ? 'Yes' : 'No' }}\r\n
    \r\n
    \r\n {{ variation.stone?.traceable ? 'Yes' : 'No' }}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n Chain\r\n \r\n \r\n \r\n
    \r\n
    Type
    \r\n
    Name
    \r\n
    Size/Length
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Type
    \r\n
    Name
    \r\n
    Size/Length
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    -- None --
    \r\n
     
    \r\n
     
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ chain.chainType ? 'Finished' : 'Unfinished' }}\r\n
    \r\n
    \r\n {{ chain.name }}\r\n
    \r\n
    \r\n {{ chain.size }}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n

    {{ getGeneratedProductSku() }}

    \r\n
    \r\n
    \r\n \r\n Customer SKU\r\n \r\n \r\n \r\n Save SKU\r\n \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n Close\r\n \r\n \r\n\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Inject,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nimport { DatePipe } from '@angular/common';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport {\r\n AbstractControl,\r\n FormArray,\r\n FormBuilder,\r\n FormControl,\r\n} from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { debounceTime, map } from 'rxjs/operators';\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { PRODUCT_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/product-permission';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { CustomerCode } from 'src/app/models/enum/customer.enum';\r\nimport { JewelryType } from 'src/app/models/jewelry-type';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { MetalGrain } from 'src/app/models/metal-grain';\r\nimport {\r\n Product,\r\n ProductDetail,\r\n ProductHistory,\r\n ProductMaterial,\r\n ProductSizes,\r\n ProductStatus,\r\n ProductWeight,\r\n ProductsInfo,\r\n ProductsRouting,\r\n ProductsStoreInfo,\r\n RoutingCodes,\r\n} from 'src/app/models/product';\r\nimport { ProductDetails } from 'src/app/models/product-stock';\r\nimport { ProductSearch } from 'src/app/models/request/product-search-request';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { AnalyticsService } from 'src/app/services/analytics.service';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { HistoryService } from 'src/app/services/history.service';\r\nimport { JewelryTypeService } from 'src/app/services/jewelry-type.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { Historylogs } from '../../models/historylogs.model';\r\nimport { ProductsRoutingService } from '../../services/products-routing.service';\r\nimport { InvoiceItemType } from '../invoicing-shipping/invoicing/models/invoice';\r\nimport { ProductRoutingDialogComponent } from '../product-routing/product-routing-dialog.component';\r\nimport { ConfirmationService } from '../riva-confirmation/riva-confirmation.service';\r\nimport { EnamelVariationDialogComponent } from './enamel-variation-dialog/enamel-variation-dialog.component';\r\nimport { ProductMaterialDialogComponent } from './product-material-dialog/product-material-dialog.component';\r\nimport { ProductSettingDialogComponent } from './product-setting-dialog/product-setting-dialog.component';\r\nimport { ProductSizesDialogComponent } from './product-sizes-dialog/product-sizes-dialog.component';\r\nimport { ProductSkuGeneratorDialogComponent } from './product-sku-generator-dialog/product-sku-generator-dialog.component';\r\n\r\nexport const ProductTypeMapping = [\r\n { value: 1, text: 'Products' },\r\n { value: 2, text: 'Subassemblies' },\r\n];\r\n\r\nexport enum KEY_CODE {\r\n UP_ARROW = 38,\r\n DOWN_ARROW = 40,\r\n}\r\n\r\n@Component({\r\n templateUrl: './products-table.component.html',\r\n styleUrls: ['./products-table.component.scss'],\r\n})\r\nexport class ProductsTableComponent extends GenericComponent implements OnInit {\r\n productFeatureKey = PRODUCT_FEATURE_KEY;\r\n customers: Customers[];\r\n filteredCustomers: Customers[];\r\n statuses: ProductStatus[];\r\n jewelryTypes: JewelryType[];\r\n filteredJewelryTypes: JewelryType[];\r\n materialCodes: MaterialCode[];\r\n filteredMaterialCodes: MaterialCode[];\r\n routingCodes: RoutingCodes[];\r\n customerFilterCtrl = new FormControl();\r\n jewelryTypeFilterCtrl = new FormControl();\r\n\r\n tableCollapsed = false;\r\n\r\n uom: UnitOfMeasure[];\r\n error = {\r\n sku: false,\r\n name: false,\r\n };\r\n\r\n products: Product[];\r\n filteredProducts: Product[];\r\n product: Product = new Product();\r\n\r\n productTypes: { value: number; text: string }[];\r\n newMode = false;\r\n indexMax = 0;\r\n index = 0;\r\n updateFlag = false;\r\n\r\n customerCodes = CustomerCode;\r\n\r\n searchString = '';\r\n selectedProductType = 1;\r\n selectedCustomer = 0;\r\n selectedJewelryType = 0;\r\n\r\n selectedUOM = 1;\r\n highlightSize: boolean = false;\r\n highlightMats: boolean = false;\r\n showProductSizeError: boolean = false;\r\n\r\n sorted: Product[];\r\n sortColumn = [\r\n { column: 'productsId', sort: '' },\r\n { column: 'sku', sort: '' },\r\n { column: 'customerSku', sort: '' },\r\n { column: 'productTypeName', sort: '' },\r\n { column: 'productName', sort: '' },\r\n { column: 'customerCode', sort: '' },\r\n { column: 'jewelryTypeName', sort: '' },\r\n ];\r\n\r\n showEditModeSizes = false;\r\n\r\n lastUpdated = new Historylogs();\r\n\r\n productLastHistory: ProductHistory = {} as ProductHistory;\r\n\r\n productsStoreInfo = new ProductsStoreInfo();\r\n productsInfo: ProductsInfo[] = [];\r\n prodMatList: number[];\r\n prodSizeList: string[];\r\n\r\n selectedProductsInfo = new ProductsInfo();\r\n newProductsInfo = new ProductsInfo();\r\n selectedMaterialCode: number = -1;\r\n selectedMaterial: ProductMaterial = {} as ProductMaterial;\r\n selectedProductSize: ProductSizes = {} as ProductSizes;\r\n selectedWeight: ProductWeight = {} as ProductWeight;\r\n productWeights: ProductWeight[] = [];\r\n selectedSize = '';\r\n modalMaterialCode = 0;\r\n modalSize = '';\r\n\r\n productMaterialCode = 0;\r\n productMetalGrain = null;\r\n productSize = '';\r\n\r\n productsRouting: ProductsRouting[] = [];\r\n notification = null;\r\n routingForms: FormArray = this.fb.array([]);\r\n productDetail: ProductDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n allCustomer: Partial = {\r\n custIdno: 0,\r\n companyName: 'All',\r\n };\r\n selectedCustomerObj: Customers = {\r\n custIdno: 0,\r\n companyName: 'All',\r\n } as Customers;\r\n private debouncer = new Subject();\r\n\r\n @ViewChild('uploadImage') imageUploader: ElementRef;\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n public dialog: MatDialog,\r\n private productService: ProductService,\r\n private historyService: HistoryService,\r\n private customerService: CustomerService,\r\n private materialCodeService: MaterialCodeService,\r\n private uomService: UnitOfMeasureService,\r\n private jewelryTypeService: JewelryTypeService,\r\n private userPermissionService: UserPermissionService,\r\n private analyticsService: AnalyticsService,\r\n private productsRoutingService: ProductsRoutingService,\r\n private tokenStorageService: TokenStorageService,\r\n private modalService: NgbModal,\r\n private _confirmationService: ConfirmationService,\r\n private _sanitizer: DomSanitizer,\r\n private _date: DatePipe,\r\n private fb: FormBuilder,\r\n @Inject(DOCUMENT) private document: Document,\r\n ) {\r\n super(loadService, alertService);\r\n this.productTypes = ProductTypeMapping;\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.product);\r\n\r\n this.debouncer.pipe(debounceTime(500)).subscribe(() => {\r\n this.scrollToClass('row-data-active');\r\n this.getProductLocal(this.product);\r\n });\r\n }\r\n\r\n tableActive = false;\r\n\r\n scrollToClass(className: string) {\r\n const element = this.productTable.nativeElement;\r\n const elementWithClass = element.querySelector(`.${className}`);\r\n\r\n if (elementWithClass) {\r\n element.scrollTop = elementWithClass.offsetTop - 70;\r\n }\r\n }\r\n\r\n @HostListener('window:keyup', ['$event'])\r\n keyEvent(event: KeyboardEvent) {\r\n if (this.tableActive) {\r\n let currentIndex = this.products.indexOf(this.product);\r\n if (currentIndex < this.products.length - 1 && currentIndex >= 0) {\r\n if (event.keyCode == KEY_CODE.UP_ARROW && currentIndex !== 0) {\r\n currentIndex -= 1;\r\n this.product = { ...this.products[currentIndex] };\r\n } else if (\r\n event.keyCode == KEY_CODE.DOWN_ARROW &&\r\n currentIndex < this.products.length\r\n ) {\r\n currentIndex += 1;\r\n this.product = { ...this.products[currentIndex] };\r\n }\r\n this.debouncer.next();\r\n }\r\n }\r\n }\r\n\r\n get totalProducts() {\r\n if (this.products !== undefined) {\r\n return this.products.length;\r\n }\r\n return 0;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n filterCustomers() {\r\n const customers = this.customers.filter(\r\n (customer) =>\r\n customer.customerId\r\n ?.toLocaleLowerCase()\r\n .includes(this.customerFilterCtrl.value?.trim()) ||\r\n customer.companyName\r\n ?.toLocaleLowerCase()\r\n .includes(this.customerFilterCtrl.value?.trim()),\r\n );\r\n this.filteredCustomers = orderBy(customers, 'companyName');\r\n }\r\n onCustomerChange(customer: Customers) {\r\n if (customer == null) {\r\n this.selectedCustomerObj = this.allCustomer as Customers;\r\n }\r\n this.selectedCustomer = customer?.custIdno ?? 0;\r\n this.searchPanelChange();\r\n }\r\n\r\n customerDisplay(item: Customers): string {\r\n return item?.companyName ?? '';\r\n }\r\n\r\n filterJewelryTypes() {\r\n this.filteredJewelryTypes = this.jewelryTypes.filter((type) =>\r\n type.type\r\n ?.toLowerCase()\r\n ?.includes(this.jewelryTypeFilterCtrl.value?.trim()),\r\n );\r\n }\r\n\r\n filteredMetalGrain: Observable;\r\n metalGrainControl = new FormControl();\r\n selectedMetalGrain: MetalGrain = new MetalGrain();\r\n _metalGrains: MetalGrain[] = [];\r\n metalGrainsDropdown: MetalGrain[] = [];\r\n\r\n load() {\r\n forkJoin([\r\n this.customerService.getList(),\r\n this.materialCodeService.getList(),\r\n this.productService.getProductStatuses(),\r\n this.uomService.getList(),\r\n this.jewelryTypeService.getList(),\r\n this.productsRoutingService.getProductRoutingCodes(),\r\n ])\r\n .pipe(\r\n map(\r\n ([\r\n customers,\r\n materialCodes,\r\n productStatuses,\r\n unitOfMeasurements,\r\n jewelryTypes,\r\n routingCodes,\r\n ]) => {\r\n this.customers = orderBy(customers, 'companyName');\r\n this.filteredCustomers = [...this.customers];\r\n this.materialCodes = materialCodes.responseObject;\r\n this.statuses = productStatuses.responseObject;\r\n this.uom = unitOfMeasurements.responseObject;\r\n this.jewelryTypes = jewelryTypes.responseObject;\r\n this.filteredJewelryTypes = [...this.jewelryTypes];\r\n this.routingCodes = routingCodes;\r\n return {\r\n customers,\r\n materialCodes,\r\n productStatuses,\r\n unitOfMeasurements,\r\n routingCodes,\r\n };\r\n },\r\n ),\r\n )\r\n .subscribe(\r\n (response) => {\r\n const defaultProductId = localStorage.getItem('selected-product-id');\r\n this.getProductSearch(\r\n defaultProductId ? +defaultProductId : undefined,\r\n );\r\n localStorage.removeItem('selected-product-id');\r\n this.customerFilterCtrl.valueChanges.subscribe(() => {\r\n this.filterCustomers();\r\n });\r\n this.jewelryTypeFilterCtrl.valueChanges.subscribe(() => {\r\n this.filterJewelryTypes();\r\n });\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n closeResult = '';\r\n\r\n editMaterial: MaterialCode;\r\n\r\n modalOpen(content) {\r\n this.modalService\r\n .open(content, { ariaLabelledBy: 'modal-basic-title' })\r\n .result.then(\r\n (result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n\r\n this.AddNewProductInfo();\r\n },\r\n (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n },\r\n );\r\n }\r\n\r\n transform(value: string): SafeHtml {\r\n return this._sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n\r\n AddNewProductInfo() {\r\n this.newProductsInfo = new ProductsInfo();\r\n this.newProductsInfo.productsInfoId = 0;\r\n this.newProductsInfo.productsId = this.product.productsId;\r\n this.newProductsInfo.size = this.modalSize.toString();\r\n this.newProductsInfo.materialCodeId = this.modalMaterialCode;\r\n this.newProductsInfo.priceRetail = 0;\r\n this.newProductsInfo.priceWhls = 0;\r\n this.newProductsInfo.stockQty = 0;\r\n this.newProductsInfo.weight = 0;\r\n this.newProductsInfo.metalGrainsId = 0;\r\n\r\n let index = this.productsInfo.findIndex(\r\n (d) =>\r\n d.materialCodeId.toString() == this.modalMaterialCode.toString() &&\r\n d.size == this.modalSize.toString(),\r\n );\r\n\r\n if (index == -1) {\r\n this.productsInfo.push(this.newProductsInfo);\r\n } else {\r\n this.alertService.error('Existing Material and size combination exist!');\r\n }\r\n\r\n this.getProdMatList();\r\n }\r\n\r\n createMaterialOpen(content) {\r\n this.editMaterial = new MaterialCode();\r\n\r\n this.modalOpen(content);\r\n }\r\n\r\n editMaterialOpen(content, materialId: number) {\r\n let materialToEdit = this.materialCodes.find(\r\n (m) => m.materialCodeId == materialId,\r\n );\r\n this.editMaterial = new MaterialCode();\r\n this.editMaterial.materialCodeId = materialToEdit.materialCodeId;\r\n this.editMaterial.code = materialToEdit.code;\r\n this.editMaterial.color = materialToEdit.color;\r\n this.editMaterial.karat = materialToEdit.karat;\r\n this.editMaterial.description = materialToEdit.description;\r\n\r\n this.modalOpen(content);\r\n }\r\n\r\n editSize: string = '0';\r\n\r\n editSizeOpen(content) {\r\n this.editSize = this.selectedProductsInfo.size;\r\n\r\n this.modalOpen(content);\r\n }\r\n\r\n newSize: ProductDetails = new ProductDetails();\r\n\r\n createSizeOpen(content) {\r\n this.newSize.matID = this.selectedProductsInfo.materialCodeId;\r\n\r\n this.newSize.productID = this.product.productsId;\r\n this.modalOpen(content);\r\n }\r\n\r\n createMatSizeOpen(content) {\r\n this.refreshRoutingList(this.product.productsId);\r\n\r\n this.modalOpen(content);\r\n }\r\n\r\n closeMatSizeOpen(content) {\r\n this.modalOpen(content);\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n materialUpdate() {\r\n this.materialCodeService.update(this.editMaterial).subscribe(\r\n (result) => {\r\n let updatedMaterial = result.responseObject;\r\n let index = this.materialCodes.indexOf(\r\n this.materialCodes.find(\r\n (m) => m.materialCodeId == updatedMaterial.materialCodeId,\r\n ),\r\n );\r\n this.materialCodes[index] = updatedMaterial;\r\n this.alertService.success(\r\n 'Updated material:' + updatedMaterial.description,\r\n );\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n },\r\n );\r\n }\r\n\r\n materialDelete() {\r\n this.materialCodeService.delete(this.editMaterial.materialCodeId).subscribe(\r\n (result) => {\r\n this.materialCodes = this.materialCodes.filter(\r\n (m) => m.materialCodeId != this.editMaterial.materialCodeId,\r\n );\r\n this.alertService.success('Material deleted');\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n },\r\n );\r\n }\r\n\r\n applyColorBand(product: Product) {\r\n let index = this.products.indexOf(product);\r\n if (index % 2 == 0 || index == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n searchPanelChange() {\r\n this.index = 1;\r\n this.alertService.clear();\r\n this.updateFlag = false;\r\n this.getProductSearch();\r\n }\r\n\r\n productImageList = [];\r\n imageListSize = 0;\r\n imageIndex = 0;\r\n\r\n nextImage() {\r\n this.imageIndex++;\r\n this.product.picPath = this.productImageList[this.imageIndex];\r\n }\r\n\r\n previousImage() {\r\n if (this.imageIndex !== 0) {\r\n this.imageIndex--;\r\n this.product.picPath = this.productImageList[this.imageIndex];\r\n }\r\n }\r\n\r\n loadProductImages() {\r\n this.productService.getProductImages(this.product.productsId).subscribe(\r\n (imageList) => {\r\n this.productImageList = [];\r\n this.productImageList = imageList.responseObject;\r\n this.imageListSize = this.productImageList.length - 1;\r\n this.imageIndex = this.productImageList.findIndex(\r\n (x) => x === this.product.picPath,\r\n );\r\n },\r\n (error) => {\r\n this.productImageList = [];\r\n this.imageListSize = 0;\r\n this.imageIndex = 0;\r\n },\r\n );\r\n }\r\n\r\n viewSubassembly(subProductsId: number) {\r\n this.productService.viewSubassembly(subProductsId).subscribe((result) => {\r\n this.products = result.responseObject;\r\n let product = this.products.find((p) => p.productsId === subProductsId);\r\n this.selectedProductType = product.productsTypeId;\r\n this.getProductLocal(product);\r\n this.getFilteredProducts();\r\n });\r\n }\r\n\r\n getProductLocal(product: Product) {\r\n this.selectedProductSize = {} as ProductSizes;\r\n this.selectedMaterial = {} as ProductMaterial;\r\n this.selectedWeight = {} as ProductWeight;\r\n this.product = { ...product };\r\n this.product.customerSku = '';\r\n\r\n this.productsStoreInfo = new ProductsStoreInfo();\r\n\r\n this.productsStoreInfo.productsId = this.product.productsId;\r\n\r\n if (this.product.productsStoreInfo !== undefined) {\r\n if (this.product.productsStoreInfo[0] !== undefined) {\r\n this.productsStoreInfo = this.product.productsStoreInfo[0];\r\n }\r\n }\r\n\r\n this.productsInfo = [];\r\n\r\n if (this.product.productsInfo?.length > 0) {\r\n this.productsInfo = this.product.productsInfo;\r\n }\r\n\r\n // routing\r\n this.refreshRoutingList(this.product.productsId);\r\n this.productsRouting = [];\r\n if (this.product.productsRouting.length > 0) {\r\n this.productsRouting = this.product.productsRouting;\r\n }\r\n\r\n // Resets selected productInfo\r\n this.selectedMaterialCode = 0;\r\n this.selectedSize = '';\r\n\r\n this.getProdMatList();\r\n\r\n this.loadProductImages();\r\n\r\n if (this.product.picPath === null) {\r\n this.product.picPath = '../../../assets/images/no-image.png';\r\n }\r\n\r\n this.getHistoryLog(this.product.productsId);\r\n this.getProductDetail();\r\n this.getProductWeight();\r\n }\r\n\r\n getProductDetail() {\r\n this.productDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n if (this.product.productsId) {\r\n this.productService\r\n .getProductDetail(this.product.productsId)\r\n .subscribe((data) => {\r\n this.productDetail = data;\r\n this.filteredMaterialCodes = this.materialCodes.filter(\r\n (code) =>\r\n !this.productDetail.materials.some(\r\n (p) => p.materialsCodeID === code.materialCodeId,\r\n ) && !code.multiMetal,\r\n );\r\n });\r\n }\r\n }\r\n\r\n timer;\r\n\r\n searchTimeout() {\r\n this.products = this.allProducts.filter(\r\n (p) =>\r\n p.sku.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.customerSku.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.productName.toLowerCase().includes(this.searchString.toLowerCase()),\r\n );\r\n this.getFilteredProducts();\r\n }\r\n\r\n @ViewChild('productTable') private productTable: ElementRef;\r\n\r\n scrollToBottom() {\r\n this.productTable.nativeElement.scrollTop =\r\n this.productTable.nativeElement.scrollHeight;\r\n }\r\n\r\n scrollToTop() {\r\n this.productTable.nativeElement.scrollTop = 0;\r\n }\r\n\r\n allProducts: Product[] = [];\r\n\r\n get ProductPicPath() {\r\n if (this.product == undefined || this.product == null)\r\n this.product = new Product();\r\n\r\n return this._sanitizer.bypassSecurityTrustUrl(\r\n this.product.picPath ||\r\n `${this.document.location.origin}/assets/images/no-image.png`,\r\n );\r\n }\r\n\r\n getProductSearch(selectedProduct?: number) {\r\n let searchObject = new ProductSearch();\r\n // this.sortColumn.forEach((s) => {\r\n // s.sort = '';\r\n // });\r\n\r\n if (this.product == undefined || this.product == null)\r\n this.product = new Product();\r\n\r\n this.product.customerCode = 0;\r\n if (this.selectedCustomer != 0) {\r\n this.product.customerCode = this.customers.find(\r\n (c) => c.custIdno == this.selectedCustomer,\r\n ).custIdno;\r\n }\r\n\r\n if (this.updateFlag == true) {\r\n this.selectedProductType = this.product.productsTypeId;\r\n }\r\n\r\n searchObject.customerCode = this.product.customerCode;\r\n searchObject.jewelryType = this.selectedJewelryType;\r\n searchObject.productTypeID = this.selectedProductType;\r\n\r\n this.index = 0;\r\n this.indexMax = 0;\r\n\r\n this.productService.getSearchList(searchObject).subscribe(\r\n (response) => {\r\n this.products = JSON.parse(response);\r\n this.allProducts = JSON.parse(response);\r\n\r\n if ((this.allProducts.length = 0)) {\r\n return;\r\n }\r\n\r\n this.products.forEach((item) => {\r\n item = this.mapTypeNames(item);\r\n });\r\n\r\n this.products.sort((a, b) => {\r\n if (a.productsId > b.productsId) {\r\n return -1;\r\n }\r\n\r\n if (a.productsId < b.productsId) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n if (this.products.length !== 0) {\r\n this.indexMax = this.products.length - 1;\r\n\r\n if (selectedProduct == undefined) {\r\n this.product = { ...this.products[this.index] };\r\n } else {\r\n const currentProduct = this.products.find(\r\n (p) => p.productsId === selectedProduct,\r\n );\r\n this.product = { ...(currentProduct ?? this.products[this.index]) };\r\n }\r\n\r\n this.refreshRoutingList(this.product.productsId);\r\n if (this.product.productsRouting.length > 0) {\r\n this.productsRouting = this.product.productsRouting;\r\n }\r\n\r\n this.loadProductImages();\r\n\r\n if (this.newMode) {\r\n this.product = {\r\n ...(this.products.find((p) => p.productsId === selectedProduct) ??\r\n ({} as Product)),\r\n };\r\n this.editMode = false;\r\n this.scrollToTop();\r\n } else if (selectedProduct !== undefined) {\r\n this.product = {\r\n ...(this.products.find((p) => p.productsId === selectedProduct) ??\r\n ({} as Product)),\r\n };\r\n }\r\n\r\n if (this.product == undefined) this.product = { ...this.products[0] };\r\n\r\n this.getHistoryLog(this.product.productsId);\r\n this.getProductWeight();\r\n } else {\r\n this.product = new Product();\r\n this.alertService.error('No records found.');\r\n this.loadService.loadContent(false);\r\n }\r\n\r\n if (this.product) {\r\n this.product.customerSku = '';\r\n }\r\n if (\r\n this.product.picPath === undefined ||\r\n this.product.picPath === null\r\n ) {\r\n this.product.picPath = '../../../assets/images/no-image.png';\r\n }\r\n\r\n if (\r\n this.product.productsInfo != undefined &&\r\n this.product.productsInfo.length > 0\r\n ) {\r\n this.productsInfo = this.product.productsInfo;\r\n this.getProdMatList();\r\n }\r\n this.getProductDetail();\r\n this.loadService.loadContent(false);\r\n this.getFilteredProducts();\r\n },\r\n (error) => {\r\n this.product = new Product();\r\n this.loadService.loadContent(false);\r\n this.alertService.error('Internal error.');\r\n },\r\n );\r\n }\r\n\r\n mapTypeNames(product: Product) {\r\n product.productTypeName = this.productTypes.find(\r\n (pt) => pt.value === product.productsTypeId,\r\n )?.text;\r\n\r\n if (product.jewelryType != null) {\r\n product.jewelryTypeName = this.jewelryTypes.find(\r\n (jt) => jt.jewelryTypeId === product.jewelryType,\r\n )?.type;\r\n }\r\n\r\n return product;\r\n }\r\n\r\n newSave() {\r\n this.productService.saveProduct(this.product).subscribe(\r\n (response) => {\r\n this.product = { ...response.responseObject };\r\n this.allProducts = [this.product, ...this.allProducts];\r\n this.productDetail.materials = [];\r\n this.productDetail.productSizes = [];\r\n this.editMode = false;\r\n this.alertService.success('Product details saved.');\r\n this.getProductSearch(this.product.productsId);\r\n this.getProductLocal(this.product);\r\n },\r\n (error) => {\r\n this.alertService.error(\r\n 'Error: Unable to save Product. ' + error.error.errorText,\r\n );\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n if (\r\n this.checkStringIfEmpty(this.product.sku) ||\r\n this.checkStringIfEmpty(this.product.productName)\r\n ) {\r\n this.error.sku = this.checkStringIfEmpty(this.product.sku);\r\n this.error.name = this.checkStringIfEmpty(this.product.productName);\r\n } else {\r\n if (this.product.productsId) {\r\n this.update();\r\n } else {\r\n this.newSave();\r\n }\r\n this.error = {\r\n sku: false,\r\n name: false,\r\n };\r\n this.getHistoryLog(this.product.productsId);\r\n }\r\n }\r\n\r\n updatePrimaryImage() {\r\n this.loadService.loadContent(true);\r\n this.productService.updatePrimaryImage(this.product).subscribe(\r\n (result) => {\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(\r\n 'Error: Unable to update primary image. ' + error.error.errorText,\r\n );\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n deleteImage() {\r\n this.loadService.loadContent(true);\r\n this.productService.deleteImage(this.product).subscribe(\r\n (result) => {\r\n this.loadProductImages();\r\n this.product.picPath = result.responseObject.picPath;\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(\r\n 'Error: Unable to delete image. ' + error.error.errorText,\r\n );\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n setMetalGrainToProductInfo() {\r\n this.product.productsInfo.find(\r\n (x) => x.productsInfoId == this.selectedProductsInfo.productsInfoId,\r\n ).metalGrainsId = this.selectedMetalGrain.metalGrainsId;\r\n }\r\n\r\n update() {\r\n this.product.createdBy = this.tokenStorageService.currentUser?.userName;\r\n\r\n this.product.productsStoreInfo = [];\r\n this.productsStoreInfo.productsId = this.product.productsId;\r\n this.product.productsStoreInfo.push(this.productsStoreInfo);\r\n\r\n this.updateProductInfoList();\r\n\r\n this.productService.updateProduct(this.product).subscribe(\r\n (response) => {\r\n this.alertService.clear();\r\n this.editMode = false;\r\n this.alertService.success('Product details UPDATED.');\r\n\r\n this.updateFlag = true;\r\n this.getProductSearch(this.product.productsId);\r\n\r\n this.getProductLocal(this.product);\r\n },\r\n (error) => {\r\n this.editMode = false;\r\n this.alertService.error(\r\n error.statusText +\r\n '. ' +\r\n (error.error.errorText !== undefined ? error.error.errorText : ''),\r\n );\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n toggleEdit() {\r\n this.editMode = !this.editMode;\r\n this.showEditModeSizes = false;\r\n if (this.editMode) {\r\n this.metalGrainControl.enable();\r\n } else {\r\n this.metalGrainControl.disable();\r\n }\r\n\r\n this.refreshRoutingList(this.product.productsId);\r\n if (\r\n this.product.productsInfo != undefined &&\r\n this.product.productsInfo.length > 0\r\n ) {\r\n this.productsInfo = this.product.productsInfo;\r\n this.getProdMatList();\r\n }\r\n\r\n if (this.editMode === false || this.newMode) {\r\n this.error.sku = false;\r\n this.error.name = false;\r\n this.newMode = false;\r\n }\r\n }\r\n\r\n toggleCancel() {\r\n if (!this.product.productsId) {\r\n this.product = { ...this.products[0] };\r\n } else {\r\n this.product = {\r\n ...this.products.find((p) => p.productsId === this.product.productsId),\r\n };\r\n }\r\n this.toggleEdit();\r\n this.onSelectProductWeight();\r\n }\r\n\r\n productMaterialCodes = [];\r\n\r\n isProductMaterials(matCodeId: number) {\r\n var materials = this.productMaterialCodes.filter(\r\n (mat) => mat.materialCodeId === matCodeId,\r\n );\r\n if (materials.length > 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n highlightSizes(materialCodeId: number) {\r\n if (this.productsInfo.length > 0 && this.selectedSize != '') {\r\n var sizes = this.productsInfo.find((x) => x.size === this.selectedSize);\r\n\r\n if (sizes !== undefined) {\r\n this.highlightSize = true;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n highlightMaterials(size: string) {\r\n if (this.selectedMaterialCode !== 0) {\r\n var materials = this.productsInfo.filter(\r\n (info) => info.materialCodeId == this.selectedMaterialCode,\r\n );\r\n\r\n if (materials !== undefined) {\r\n var filtered = materials.find((mat) => mat.size == size);\r\n\r\n if (filtered !== undefined) {\r\n this.highlightMats = true;\r\n\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n matHasSize(item) {\r\n let materials = this.productsInfo.filter(\r\n (x) => x.size == this.selectedSize,\r\n );\r\n let matHasSize = materials.find((x) => x.materialCodeId == item);\r\n if (matHasSize !== undefined) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n sizeInMat(size: string) {\r\n let material = this.productsInfo.find(\r\n (x) => x.materialCodeId == this.selectedMaterialCode && x.size == size,\r\n );\r\n if (material != undefined) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n newProduct() {\r\n this.product = new Product();\r\n this.product.customerCode = this.customers[0]?.custIdno ?? 0;\r\n this.productsStoreInfo = new ProductsStoreInfo();\r\n this.selectedProductsInfo = new ProductsInfo();\r\n\r\n this.productsInfo = [];\r\n this.productImageList = [];\r\n\r\n this.product.sku = '';\r\n this.product.productName = '';\r\n\r\n this.product.productsTypeId = this.selectedProductType;\r\n this.product.createdBy = this.tokenStorageService.currentUser?.userName;\r\n\r\n this.productDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n\r\n this.getProdMatList();\r\n\r\n this.newMode = true;\r\n this.editMode = true;\r\n }\r\n\r\n onSort(column: string) {\r\n if (\r\n this.checkStringIfEmpty(\r\n this.sortColumn.find((s) => s.column === column).sort,\r\n ) ||\r\n this.sortColumn.find((s) => s.column === column).sort !== 'asc'\r\n ) {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'asc';\r\n this.filteredProducts.sort((a, b) => {\r\n if (a[column] > b[column]) {\r\n return 1;\r\n }\r\n if (a[column] < b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n } else {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'desc';\r\n this.filteredProducts.sort((a, b) => {\r\n if (a[column] < b[column]) {\r\n return 1;\r\n }\r\n if (a[column] > b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n\r\n sortClass(column) {\r\n if (this.sortColumn.find((s) => s.column === column).sort === 'asc') {\r\n return 'fa-arrow-up';\r\n } else if (\r\n this.sortColumn.find((s) => s.column === column).sort === 'desc'\r\n ) {\r\n return 'fa-arrow-down';\r\n }\r\n return '';\r\n }\r\n\r\n uploadProductImage(files) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n this.loadService.loadContent(true);\r\n\r\n const formData = new FormData();\r\n\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append('file[]', files[i]);\r\n }\r\n\r\n formData.append('productId', this.product.productsId.toString());\r\n\r\n this.productService.uploadImage(formData).subscribe(\r\n (event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * event.loaded) / event.total) +\r\n '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.productService.reloadProductImages();\r\n this.loadService.loadContent(false);\r\n }\r\n this.imageUploader.nativeElement.value = null;\r\n },\r\n (error) => {\r\n this.alertService.error(error.error);\r\n this.loadService.loadContent(false);\r\n this.imageUploader.nativeElement.value = null;\r\n },\r\n );\r\n }\r\n\r\n getMaterialDesc(matId: number): string {\r\n return this.materialCodes.filter((x) => x.materialCodeId == matId)?.[0]\r\n ?.description;\r\n }\r\n\r\n showMetalGrainsDropdown: boolean = false;\r\n\r\n getSelectedProductsInfo() {\r\n this.metalGrainsDropdown = this._metalGrains.filter(\r\n (x) => x.materialCode == this.selectedMaterialCode,\r\n );\r\n this.selectedProductsInfo = new ProductsInfo();\r\n\r\n if (this.selectedMaterialCode != 0 && this.selectedSize != '') {\r\n this.selectedProductsInfo = this.productsInfo.filter(\r\n (x) =>\r\n x.materialCodeId == this.selectedMaterialCode &&\r\n x.size == this.selectedSize,\r\n )[0];\r\n if (this.selectedProductsInfo != undefined) {\r\n if (\r\n this.selectedProductsInfo.metalGrainsId != null &&\r\n this.selectedProductsInfo.metalGrainsId != 0\r\n ) {\r\n this.showMetalGrainsDropdown = true;\r\n this.selectedMetalGrain =\r\n this._metalGrains.find(\r\n (x) => x.metalGrainsId == this.selectedProductsInfo.metalGrainsId,\r\n ) ?? new MetalGrain();\r\n } else {\r\n this.showMetalGrainsDropdown = false;\r\n this.selectedMetalGrain = new MetalGrain();\r\n }\r\n } else {\r\n this.showMetalGrainsDropdown = false;\r\n this.selectedMetalGrain = new MetalGrain();\r\n this.selectedSize = this.productsInfo.filter(\r\n (x) => x.materialCodeId == this.selectedMaterialCode,\r\n )[0].size;\r\n this.getSelectedProductsInfo();\r\n }\r\n\r\n if (this.selectedProductsInfo == undefined) {\r\n this.selectedProductsInfo = new ProductsInfo();\r\n }\r\n } else {\r\n this.showMetalGrainsDropdown = false;\r\n this.selectedMetalGrain = new MetalGrain();\r\n }\r\n }\r\n\r\n updateProductInfoList() {\r\n if (this.productsInfo.length > 0) {\r\n let index = this.productsInfo.findIndex(\r\n (d) => d.productsInfoId === this.selectedProductsInfo.productsInfoId,\r\n );\r\n\r\n if (index != -1) {\r\n this.productsInfo.splice(index, 1);\r\n this.selectedProductsInfo.metalGrainsId =\r\n this.selectedMetalGrain.metalGrainsId;\r\n this.productsInfo.push(this.selectedProductsInfo);\r\n }\r\n\r\n this.product.productsInfo = this.productsInfo;\r\n }\r\n\r\n if (this.productsRouting.length > 0) {\r\n this.product.productsRouting = [];\r\n this.product.productsRouting = this.productsRouting;\r\n }\r\n }\r\n\r\n getProdMatList() {\r\n if (this.productsInfo.length > 0) {\r\n this.prodMatList = this.productsInfo\r\n .map((x) => parseInt(x.materialCodeId.toString()))\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.prodSizeList = this.productsInfo\r\n .map((x) => x.size)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n if (this.prodMatList.length > 0 && this.prodSizeList.length > 0) {\r\n this.highlightMaterials(this.selectedSize);\r\n this.highlightSizes(this.selectedMaterialCode);\r\n\r\n this.getSelectedProductsInfo();\r\n }\r\n } else {\r\n this.selectedSize = '';\r\n this.selectedMaterialCode = 0;\r\n this.selectedProductsInfo = new ProductsInfo();\r\n this.prodMatList = [];\r\n this.prodSizeList = [];\r\n }\r\n }\r\n\r\n deleteProduct() {\r\n this.productService.deleteProduct(this.product.productsId).subscribe(\r\n (res) => {\r\n res;\r\n },\r\n (err) => {},\r\n );\r\n\r\n this.product = new Product();\r\n }\r\n\r\n getHistoryLog(id: number) {\r\n if (!id) return;\r\n this.productLastHistory = {} as ProductHistory;\r\n this.historyService.getProductHistory(id).subscribe((data) => {\r\n this.productLastHistory = data;\r\n });\r\n }\r\n\r\n formatDate(iDate: Date) {\r\n return this._date.transform(iDate, 'MM.dd.yyyy HH:mm');\r\n }\r\n\r\n get EnableUpdateRouting() {\r\n return this.routingForms.value.length == 0;\r\n }\r\n\r\n updateProductRouting() {\r\n for (var i = 0; i < this.routingForms.controls.length; i++) {\r\n let fg = this.routingForms.controls[i];\r\n\r\n this.updateRouting(fg, i);\r\n }\r\n\r\n this.showNotification('update');\r\n }\r\n\r\n addnewrouting() {\r\n let prodRouting = new ProductsRouting();\r\n\r\n prodRouting.productsRoutingId = 0;\r\n prodRouting.productsId = this.product.productsId;\r\n\r\n prodRouting.routingCodesId = 1;\r\n prodRouting.standardTime = 0;\r\n prodRouting.comment = '';\r\n\r\n this.routingForms.push(\r\n this.fb.group({\r\n productsRoutingId: [prodRouting.productsRoutingId],\r\n productsId: [prodRouting.productsId],\r\n routingCodesId: [prodRouting.routingCodesId],\r\n standardTime: [prodRouting.standardTime],\r\n comment: [prodRouting.comment],\r\n }),\r\n );\r\n }\r\n\r\n deleteRouting(productsRoutingId, i) {\r\n if (productsRoutingId == 0) this.routingForms.removeAt(i);\r\n else if (confirm('Are you sure to delete this record ?'))\r\n this.productsRoutingService.delete(productsRoutingId).subscribe((res) => {\r\n this.refreshRoutingList(this.product.productsId);\r\n this.routingForms.removeAt(i);\r\n this.showNotification('delete');\r\n });\r\n }\r\n\r\n updateRouting(fg: AbstractControl, i) {\r\n this.productsRoutingService.addupdate(fg.value).subscribe(\r\n (res) => {\r\n fg.patchValue({ productsRoutingId: res.productsRoutingId });\r\n },\r\n (err) => {},\r\n );\r\n }\r\n\r\n refreshRoutingList(productId: number) {\r\n this.productsRoutingService.getRoutingListByProduct(productId).subscribe(\r\n (res) => {\r\n this.productsRouting = res;\r\n\r\n this.routingForms = this.fb.array([]);\r\n (this.productsRouting as []).forEach((routing: ProductsRouting) => {\r\n this.routingForms.push(\r\n this.fb.group({\r\n productsRoutingId: [routing.productsRoutingId],\r\n productsId: [routing.productsId],\r\n routingCodesId: [routing.routingCodesId],\r\n standardTime: [routing.standardTime],\r\n comment: [routing.comment],\r\n }),\r\n );\r\n });\r\n },\r\n (err) => {},\r\n );\r\n }\r\n\r\n showNotification(category) {\r\n switch (category) {\r\n case 'insert':\r\n this.notification = { class: 'text-success', message: 'saved!' };\r\n break;\r\n case 'update':\r\n this.notification = { class: 'text-primary', message: 'updated!' };\r\n break;\r\n case 'delete':\r\n this.notification = { class: 'text-danger', message: 'deleted!' };\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n setTimeout(() => {\r\n this.notification = null;\r\n }, 3000);\r\n }\r\n\r\n getRoutingDescription(id: number) {\r\n return this.routingCodes.filter((x) => x.routingCodesId == id)[0]\r\n .activityDesc;\r\n }\r\n\r\n getProductName(id) {\r\n let productname = '';\r\n let product = this.allProducts.filter((x) => (x.productsId = id))[0];\r\n if (product != undefined) {\r\n productname = product.productName;\r\n }\r\n\r\n return productname;\r\n }\r\n\r\n onVariationDialogOpen() {\r\n const dialogRef = this.dialog.open(EnamelVariationDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1200px',\r\n width: '100%',\r\n data: {\r\n productId: this.product.productsId,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((result: boolean | null) => {\r\n if (result) {\r\n this.productService.reloadEnamelVariation();\r\n }\r\n });\r\n }\r\n\r\n onProductSettingDialogOpen() {\r\n this.dialog.open(ProductSettingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '400px',\r\n width: '100%',\r\n data: {\r\n productId: this.product.productsId,\r\n editMode: this.editMode,\r\n },\r\n autoFocus: false,\r\n });\r\n }\r\n onOpenGenerateSkuDialog() {\r\n this.dialog.open(ProductSkuGeneratorDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '800px',\r\n width: '100%',\r\n data: {\r\n productId: this.product.productsId,\r\n materialCodeId: this.selectedMaterial?.materialsCodeID ?? 0,\r\n productSizeId: this.selectedProductSize?.productsSizesID ?? 0,\r\n },\r\n autoFocus: false,\r\n });\r\n }\r\n\r\n onSaveProductMaterial() {\r\n const data = {\r\n productsID: this.product.productsId,\r\n materialsCodeID: this.productMaterialCode,\r\n metalGrainsID: this.productMetalGrain,\r\n };\r\n this.productService.setProductMaterial(data).subscribe(() => {\r\n this.productMaterialCode = 0;\r\n this.getProductDetail();\r\n });\r\n }\r\n\r\n onSaveProductSize() {\r\n this.showProductSizeError = false;\r\n const isExist = this.productDetail.productSizes.some(\r\n (size) => size.size == this.productSize.trim(),\r\n );\r\n if (isExist) {\r\n this.showProductSizeError = true;\r\n return;\r\n }\r\n const data = {\r\n productsID: this.product.productsId,\r\n size: this.productSize,\r\n };\r\n this.productService.setProductSize(data).subscribe(() => {\r\n this.productSize = '';\r\n this.getProductDetail();\r\n });\r\n }\r\n\r\n onMaterialCodeChange() {\r\n this.productMetalGrain = null;\r\n }\r\n\r\n get metalGrainList() {\r\n return this._metalGrains.filter(\r\n (x) => x.materialCode == this.productMaterialCode,\r\n );\r\n }\r\n\r\n onProductRoutingDialogOpen() {\r\n this.dialog.open(ProductRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n productId: this.product.productsId,\r\n editMode: this.editMode,\r\n },\r\n });\r\n }\r\n\r\n onDeleteProductMaterial(id, label) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product Material',\r\n content: `Are you sure you want to delete ${label}?`,\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.productService.deleteProductMaterial(id).subscribe(() => {\r\n this.productDetail.materials = this.productDetail.materials.filter(\r\n (p) => p.productsMaterialsID !== id,\r\n );\r\n });\r\n });\r\n }\r\n\r\n onDeleteProductSize(id, size) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product Size',\r\n content: `Are you sure you want to delete ${size}?`,\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.productService.deleteProductSize(id).subscribe(() => {\r\n this.productDetail.productSizes =\r\n this.productDetail.productSizes.filter(\r\n (p) => p.productsSizesID !== id,\r\n );\r\n });\r\n });\r\n }\r\n\r\n onSelectMaterialCode(item: ProductMaterial) {\r\n this.selectedMaterial = item;\r\n this.onSelectProductWeight();\r\n }\r\n onSelectSize(item: ProductSizes) {\r\n this.selectedProductSize = item;\r\n this.onSelectProductWeight();\r\n }\r\n onSelectProductWeight() {\r\n this.selectedWeight = {} as ProductWeight;\r\n\r\n if (\r\n this.selectedMaterial.materialsCodeID &&\r\n this.selectedProductSize.productsSizesID\r\n ) {\r\n this.analyticsService\r\n .getRollingWeightAverage({\r\n type: InvoiceItemType.Product,\r\n itemId: this.product.productsId,\r\n materialCodeId: this.selectedMaterial.materialsCodeID,\r\n sizeId: this.selectedProductSize.productsSizesID,\r\n })\r\n .subscribe((data) => {\r\n this.selectedWeight.avgWeightGrams = data ?? 0;\r\n });\r\n // const weight = this.productWeights.find(\r\n // (w) =>\r\n // w.materialCodesID === this.selectedMaterial.materialsCodeID &&\r\n // w.productsSizesID === this.selectedProductSize.productsSizesID,\r\n // ) ?? {\r\n // productsWeightsID: 0,\r\n // productsID: this.product.productsId,\r\n // materialCodesID: this.selectedMaterial.materialsCodeID,\r\n // productsSizesID: this.selectedProductSize.productsSizesID,\r\n // avgWeightGrams: 0,\r\n // };\r\n // this.selectedWeight = { ...weight };\r\n }\r\n }\r\n\r\n getProductWeight() {\r\n if (!this.product.productsId) return;\r\n this.productService\r\n .getProductWeight(this.product.productsId)\r\n .subscribe((data) => {\r\n this.productWeights = data;\r\n this.onSelectProductWeight();\r\n });\r\n }\r\n\r\n onSaveProductWeight() {\r\n if (\r\n this.selectedWeight.materialCodesID &&\r\n this.selectedWeight.productsSizesID\r\n ) {\r\n this.productService\r\n .setProductWeight(this.selectedWeight)\r\n .subscribe(() => {\r\n this.getProductWeight();\r\n });\r\n }\r\n }\r\n\r\n onOpenMultiMaterial(item: ProductMaterial | null = null) {\r\n const ref = this.dialog.open(ProductMaterialDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n productId: this.product.productsId,\r\n editMode: this.editMode,\r\n materialCodes: this.materialCodes,\r\n productMaterial: item,\r\n },\r\n });\r\n ref.afterClosed().subscribe((result: boolean) => {\r\n if (result) {\r\n this.getProductDetail();\r\n }\r\n });\r\n }\r\n\r\n getFilteredProducts() {\r\n this.filteredProducts = this.products.filter((p) => {\r\n return (\r\n p.productName\r\n .toLowerCase()\r\n .includes(this.searchString?.toLowerCase()) ||\r\n p.productDesc\r\n .toLowerCase()\r\n .includes(this.searchString?.toLowerCase()) ||\r\n p.sku.toLowerCase().includes(this.searchString?.toLowerCase()) ||\r\n p.customerCodeNavigation?.customerId\r\n ?.toLowerCase()\r\n .includes(this.searchString?.toLowerCase()) ||\r\n p.jewelryTypeName\r\n ?.toLowerCase()\r\n .includes(this.searchString?.toLowerCase()) ||\r\n p.productsId\r\n ?.toString()\r\n ?.toLowerCase()\r\n .includes(this.searchString?.toLowerCase())\r\n );\r\n });\r\n const column = this.sortColumn.find((c) => c.sort !== '');\r\n if (column != null) {\r\n this.filteredProducts = orderBy(\r\n this.filteredProducts,\r\n [column.column],\r\n [column.sort],\r\n );\r\n }\r\n }\r\n\r\n onProductSizesDialogOpen() {\r\n const ref = this.dialog.open(ProductSizesDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '400px',\r\n width: '100%',\r\n data: {\r\n productSizes: cloneDeep(this.productDetail.productSizes),\r\n },\r\n autoFocus: false,\r\n });\r\n\r\n ref.afterClosed().subscribe((reload) => {\r\n if (reload) {\r\n this.getProductDetail();\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n LAST UPDATE BY : {{ productLastHistory.lastUpdatedBy }} / DATE :\r\n {{\r\n productLastHistory.lastUpdated | date : 'MM/dd/yyyy hh:mma'\r\n }}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n Customer\r\n \r\n \r\n \r\n \r\n All \r\n \r\n [{{ customer.customerId }}] {{ customer.companyName }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Jewelry types\r\n \r\n \r\n \r\n \r\n All \r\n \r\n {{ jewelryType.type }}\r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n Items: {{ filteredProducts?.length ?? 0 }}\r\n
    \r\n
    \r\n \r\n SKUs\r\n \r\n \r\n + New\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Upload Pictures\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ID\r\n \r\n Short Name\r\n \r\n Full\r\n Name\r\n \r\n Cust\r\n Code\r\n \r\n \r\n Jewelry Type\r\n
    {{ item.productsId }}{{ item.productName }}{{ item.customerCodeNavigation.customerId }}{{ item.jewelryTypNavigation?.type }}
    {{ item.productsId }}{{ item.productName }}{{ item.customerCodeNavigation.customerId }}{{ item.jewelryTypNavigation?.type }}
    {{ product.productsId }}{{ product.productName }}{{ product.jewelryTypeName }}
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Full Name\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Short Name\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n [{{ customer.customerId }}] {{ customer.companyName }}\r\n \r\n \r\n
    \r\n
    \r\n CUST CODE\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ unit.uom }}\r\n \r\n \r\n
    \r\n
    \r\n UOM\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ jewelryType.type }}\r\n \r\n \r\n
    \r\n
    \r\n Jewelry Type\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ status.status }}\r\n \r\n \r\n
    \r\n
    \r\n Status\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n 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 {{ item.material?.description }}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ item.material?.multiMetalPrimaryMaterial?.code }} /\r\n {{ item.material?.multiMetalSecondaryMaterial?.code }}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ mats.description }}\r\n \r\n \r\n \r\n \r\n Metal Grain\r\n \r\n \r\n {{ metalGrain.name }}\r\n \r\n \r\n \r\n \r\n Add Material\r\n \r\n \r\n Add Multi Material\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n \r\n {{ item.size }}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Size\r\n \r\n \r\n Size already exist.\r\n
    \r\n \r\n Add Size\r\n \r\n \r\n Update Sizes\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {{ selectedMaterial?.material?.code }}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n {{\r\n selectedMaterial.material?.multiMetalSecondaryMaterial\r\n ?.code\r\n }}\r\n /\r\n {{\r\n selectedMaterial.material?.multiMetalSecondaryMaterial\r\n ?.code\r\n }}\r\n \r\n\r\n X\r\n {{ selectedProductSize.size }}\r\n \r\n \r\n Weight (g)\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n Create Material and Sizes\r\n
    \r\n \r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n {{ mats.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 Save\r\n \r\n
    \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 Product Routing\r\n \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 Routing
    \r\n \r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Activity Code
    \r\n
    Description
    \r\n
    Standard Time
    \r\n
    Comment
    \r\n
    \r\n \r\n Add\r\n \r\n \r\n Update\r\n \r\n
    \r\n
    \r\n \r\n \r\n {{ notification.message }}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {{\r\n getRoutingDescription(prodroute.value.routingCodesId)\r\n }}\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { DatePipe } from '@angular/common';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport {\r\n RawMaterials,\r\n Rawmaterialsinfo,\r\n} from 'src/app/models/raw-materials.model';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { RawMaterialsService } from 'src/app/services/raw-materials.service';\r\nimport { RawmaterialsinfoService } from 'src/app/services/rawmaterialsinfo.service';\r\nimport { SuppliersService } from 'src/app/services/suppliers.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { Historylogs } from '../../models/historylogs.model';\r\n\r\n@Component({\r\n selector: 'app-raw-materials',\r\n templateUrl: './raw-materials.component.html',\r\n styleUrls: ['./raw-materials.component.scss'],\r\n})\r\nexport class RawMaterialsComponent extends GenericComponent implements OnInit {\r\n tableCollapsed = false;\r\n editMode = false;\r\n\r\n uom: UnitOfMeasure[];\r\n materialCodes: MaterialCode[];\r\n suppliers: Suppliers[];\r\n\r\n rawMaterials: RawMaterials[];\r\n allrawMaterials: RawMaterials[];\r\n rawMaterial = new RawMaterials();\r\n\r\n // Material and List Variables\r\n rawMaterialsInfo: Rawmaterialsinfo[];\r\n selectedRawMaterialsInfo = new Rawmaterialsinfo();\r\n selectedMaterialCode: number = -1;\r\n selectedSize = -1;\r\n MatList: number[];\r\n SizeList: number[];\r\n highlightSize: boolean = false;\r\n highlightMats: boolean = false;\r\n\r\n newRawMaterialsInfo = new Rawmaterialsinfo();\r\n modalMaterialCode = 0;\r\n modalSize = 0;\r\n\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private uomService: UnitOfMeasureService,\r\n private rawmaterialsService: RawMaterialsService,\r\n private materialCodeService: MaterialCodeService,\r\n private supplierService: SuppliersService,\r\n private rawMaterialsInfoService: RawmaterialsinfoService,\r\n private _date: DatePipe,\r\n private modalService: NgbModal,\r\n ) {\r\n super(loadService, alertService);\r\n this.loadService.loadContent(true);\r\n this.load();\r\n }\r\n\r\n tableActive = false;\r\n selectedUOM = 1;\r\n newFlag = false;\r\n lastUpdated = new Historylogs();\r\n\r\n @ViewChild('uploadImage') imageUploader: ElementRef;\r\n\r\n ngOnInit(): void {\r\n this.loadService.loadContent(false);\r\n }\r\n load() {\r\n forkJoin([\r\n this.uomService.getList(),\r\n this.rawmaterialsService.getList(),\r\n this.materialCodeService.getList(),\r\n this.supplierService.getList(),\r\n ])\r\n .pipe(\r\n map(([unitOfMeasurements, rawMaterials, materialCodes, suppliers]) => {\r\n this.uom = unitOfMeasurements.responseObject;\r\n this.rawMaterials = rawMaterials;\r\n this.allrawMaterials = rawMaterials;\r\n this.materialCodes = materialCodes.responseObject;\r\n this.suppliers = suppliers;\r\n\r\n return { unitOfMeasurements, rawMaterials, materialCodes, suppliers };\r\n }),\r\n )\r\n .subscribe(\r\n (response) => {\r\n if (this.allrawMaterials.length > 0) {\r\n this.rawMaterial = this.allrawMaterials[0];\r\n\r\n if (this.rawMaterial.rawMaterialsInfo.length > 0) {\r\n this.rawMaterialsInfo = this.rawMaterial.rawMaterialsInfo;\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n this.getHistoryLog(this.rawMaterial.rawMaterialsId);\r\n }\r\n\r\n this.loadService.loadContent(false);\r\n },\r\n (error) => {\r\n this.alertService.error(error.statusText);\r\n this.loadService.loadContent(false);\r\n },\r\n );\r\n }\r\n\r\n get totalRawMaterials() {\r\n if (this.rawMaterials !== undefined) {\r\n return this.rawMaterials.length;\r\n }\r\n return 0;\r\n }\r\n\r\n searchString = '';\r\n\r\n searchTimeout() {\r\n this.rawMaterials = this.allrawMaterials.filter(\r\n (p) =>\r\n p.name.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.sku.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.supplierSku.toLowerCase().includes(this.searchString.toLowerCase()) ||\r\n p.stockLocation.toLowerCase().includes(this.searchString.toLowerCase()),\r\n );\r\n }\r\n\r\n sortColumn = [\r\n { column: 'rawMaterialsId', sort: '' },\r\n { column: 'name', sort: '' },\r\n { column: 'sku', sort: '' },\r\n { column: 'supplierSku', sort: '' },\r\n { column: 'uom', sort: '' },\r\n { column: 'qtyStock', sort: '' },\r\n { column: 'stockLocation', sort: '' },\r\n ];\r\n\r\n onSort(column: string) {\r\n if (\r\n this.checkStringIfEmpty(\r\n this.sortColumn.find((s) => s.column === column).sort,\r\n ) ||\r\n this.sortColumn.find((s) => s.column === column).sort !== 'asc'\r\n ) {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'asc';\r\n this.rawMaterials.sort((a, b) => {\r\n if (a[column] > b[column]) {\r\n return 1;\r\n }\r\n if (a[column] < b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n } else {\r\n this.sortColumn.forEach((s) => {\r\n s.sort = '';\r\n });\r\n this.sortColumn.find((s) => s.column === column).sort = 'desc';\r\n this.rawMaterials.sort((a, b) => {\r\n if (a[column] < b[column]) {\r\n return 1;\r\n }\r\n if (a[column] > b[column]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n\r\n sortClass(column) {\r\n if (this.sortColumn.find((s) => s.column === column).sort === 'asc') {\r\n return 'fa-arrow-up';\r\n } else if (\r\n this.sortColumn.find((s) => s.column === column).sort === 'desc'\r\n ) {\r\n return 'fa-arrow-down';\r\n }\r\n return '';\r\n }\r\n\r\n applyColorBand(rawmaterial: RawMaterials) {\r\n let index = this.rawMaterials.indexOf(rawmaterial);\r\n if (index % 2 == 0 || index == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getRawMaterial(rawMaterial: RawMaterials) {\r\n this.rawMaterial = rawMaterial;\r\n\r\n this.getHistoryLog(rawMaterial.rawMaterialsId);\r\n }\r\n\r\n toggleEdit() {\r\n this.editMode = !this.editMode;\r\n\r\n this.newFlag = false;\r\n }\r\n\r\n toggleCancel() {\r\n this.editMode = !this.editMode;\r\n\r\n if (this.newFlag == false) {\r\n return;\r\n }\r\n\r\n this.rawmaterialsService\r\n .delete(this.rawMaterial.rawMaterialsId)\r\n .subscribe();\r\n }\r\n\r\n save() {\r\n this.editMode = !this.editMode;\r\n\r\n this.rawMaterial.rawMaterialsInfo = [];\r\n this.rawMaterial.rawMaterialsInfo = this.rawMaterialsInfo;\r\n\r\n this.rawmaterialsService.addupdate(this.rawMaterial).subscribe((res) => {\r\n this.rawMaterial = res;\r\n\r\n this.rawmaterialsService.getList().subscribe((res) => {\r\n this.rawMaterials = res;\r\n this.allrawMaterials = res;\r\n });\r\n\r\n this.alertService.success('product details updated.');\r\n });\r\n }\r\n\r\n newProduct() {\r\n this.editMode = !this.editMode;\r\n\r\n this.newFlag = true;\r\n\r\n this.rawMaterial = new RawMaterials();\r\n this.rawMaterial.name = 'NEW_ITEM';\r\n this.rawMaterial.sku = 'NEW_ITEM';\r\n this.rawMaterial.createdBy = '';\r\n this.rawMaterial.createdDate = new Date();\r\n\r\n this.rawmaterialsService.addupdate(this.rawMaterial).subscribe((res) => {\r\n this.rawMaterial = res;\r\n });\r\n }\r\n\r\n uploadProductImage(files) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append(\r\n 'rawMaterialsId',\r\n this.rawMaterial.rawMaterialsId.toString(),\r\n );\r\n formData.append('sku', this.rawMaterial.sku);\r\n\r\n // FUNCTION UNDER-CONTRUCTION\r\n this.rawmaterialsService.uploadImage(formData).subscribe(\r\n (event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * event.loaded) / event.total) +\r\n '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.rawMaterial.picPath = event.body.responseObject[0];\r\n }\r\n },\r\n (err) => {\r\n err;\r\n },\r\n );\r\n }\r\n\r\n getHistoryLog(id: number) {\r\n this.rawmaterialsService.lastupdate(id).subscribe((res) => {\r\n this.lastUpdated = res;\r\n\r\n if (this.lastUpdated != null) {\r\n this.lastUpdated = res;\r\n } else {\r\n this.lastUpdated = new Historylogs();\r\n }\r\n });\r\n }\r\n\r\n formatDate(iDate: Date) {\r\n return this._date.transform(iDate, 'MM.dd.yyyy HH:mm');\r\n }\r\n\r\n // Material and sizes -- codes ***************************************** -- START\r\n getMaterialDesc(matId: number): string {\r\n let materialCode = new MaterialCode();\r\n let desc = '';\r\n\r\n materialCode = this.materialCodes.filter(\r\n (x) => x.materialCodeId == matId,\r\n )[0];\r\n\r\n if (materialCode != undefined) {\r\n desc = materialCode.description;\r\n }\r\n\r\n return desc;\r\n }\r\n\r\n getSelectedRawMaterialsInfo() {\r\n this.selectedRawMaterialsInfo = new Rawmaterialsinfo();\r\n\r\n if (this.selectedMaterialCode != 0 && this.selectedSize != -1) {\r\n this.selectedRawMaterialsInfo = this.rawMaterialsInfo.filter(\r\n (x) =>\r\n x.materialCodeId == this.selectedMaterialCode &&\r\n parseInt(x.size) == this.selectedSize,\r\n )[0];\r\n\r\n if (this.selectedRawMaterialsInfo == undefined) {\r\n this.selectedRawMaterialsInfo = new Rawmaterialsinfo();\r\n }\r\n }\r\n }\r\n\r\n getMaterialList() {\r\n if (this.rawMaterialsInfo.length > 0) {\r\n this.MatList = this.rawMaterialsInfo\r\n .map((x) => parseInt(x.materialCodeId.toString()))\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.SizeList = this.rawMaterialsInfo\r\n .map((x) => parseInt(x.size.toString()))\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n if (this.MatList.length > 0 && this.SizeList.length > 0) {\r\n this.selectedSize = parseInt(this.rawMaterialsInfo[0].size);\r\n this.selectedMaterialCode = this.rawMaterialsInfo[0].materialCodeId;\r\n\r\n this.highlightMaterials(this.selectedSize);\r\n this.highlightSizes(this.selectedMaterialCode);\r\n\r\n this.getSelectedRawMaterialsInfo();\r\n }\r\n } else {\r\n this.selectedSize = -1;\r\n this.selectedMaterialCode = 0;\r\n this.selectedRawMaterialsInfo = new Rawmaterialsinfo();\r\n this.MatList = [];\r\n this.SizeList = [];\r\n }\r\n }\r\n\r\n highlightMaterials(size: number) {\r\n if (this.selectedMaterialCode !== 0) {\r\n // var materials = this.lstMatCodeSize.filter(mat => mat.matID == this.productDetails.matID);\r\n var materials = this.rawMaterialsInfo.filter(\r\n (info) => info.materialCodeId == this.selectedMaterialCode,\r\n );\r\n\r\n if (materials !== undefined) {\r\n var filtered = materials.find(\r\n (mat) => mat.size.toString() == size.toString(),\r\n );\r\n\r\n if (filtered !== undefined) {\r\n this.highlightMats = true;\r\n\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n highlightSizes(materialCodeId: number) {\r\n if (this.rawMaterialsInfo.length > 0 && this.selectedSize != -1) {\r\n var sizes = this.rawMaterialsInfo.find(\r\n (x) => parseInt(x.size) === this.selectedSize,\r\n );\r\n\r\n if (sizes !== undefined) {\r\n this.highlightSize = true;\r\n\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // Modal\r\n createMatSizeOpen(content) {\r\n this.modalOpen(content);\r\n }\r\n\r\n closeResult = '';\r\n\r\n modalOpen(content) {\r\n this.modalService\r\n .open(content, { ariaLabelledBy: 'modal-basic-title' })\r\n .result.then(\r\n (result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n\r\n // Add New Info\r\n this.AddNewRawMaterialInfo();\r\n },\r\n (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n },\r\n );\r\n }\r\n\r\n AddNewRawMaterialInfo() {\r\n this.newRawMaterialsInfo = new Rawmaterialsinfo();\r\n this.newRawMaterialsInfo.rawMaterialsInfoId = 0;\r\n this.newRawMaterialsInfo.rawMaterialsId = this.rawMaterial.rawMaterialsId;\r\n this.newRawMaterialsInfo.size = this.modalSize.toString();\r\n this.newRawMaterialsInfo.materialCodeId = this.modalMaterialCode;\r\n\r\n this.newRawMaterialsInfo.stockQty = 0;\r\n this.newRawMaterialsInfo.weight = 0;\r\n\r\n let index = this.rawMaterialsInfo.findIndex(\r\n (d) =>\r\n d.materialCodeId.toString() == this.modalMaterialCode.toString() &&\r\n d.size == this.modalSize.toString(),\r\n );\r\n\r\n if (index == -1) {\r\n this.rawMaterialsInfo.push(this.newRawMaterialsInfo);\r\n } else {\r\n this.alertService.error('Existing Material and size combination exist!');\r\n }\r\n\r\n this.getMaterialList();\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n LAST UPDATE BY : {{ lastUpdated.username }} / DATE :\r\n {{ formatDate(lastUpdated.date) }}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n\r\n
    \r\n Items: {{ totalRawMaterials }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ID\r\n \r\n NAME\r\n \r\n SKU\r\n \r\n \r\n SUPPLIER SKU\r\n \r\n QTY IN\r\n STOCK\r\n \r\n \r\n STOCK LOCATION\r\n
    {{ item.rawMaterialsId }}{{ item.name }}{{ item.sku }}{{ item.supplierSku }}{{ item.qtyStock }}{{ item.stockLocation }}
    {{ item.rawMaterialsId }}{{ item.name }}{{ item.sku }}{{ item.supplierSku }}{{ item.qtyStock }}{{ item.stockLocation }}
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n ITEM NAME / SKU / MATERIAL / UOM\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n NAME\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n SKU\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ mats.description }}\r\n \r\n \r\n
    \r\n
    \r\n MATERIAL CODE\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {{ unit.uom }}\r\n \r\n \r\n
    \r\n
    \r\n UOM\r\n
    \r\n
    \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 SKU / PRICE / CODE\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n SUPPLIER SKU\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n SUPPLIER PRICE\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {{ sups.supplierId }}\r\n \r\n \r\n\r\n
    \r\n
    \r\n SUPPLIER CODE\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n *{{ getMaterialDesc(item) }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n \r\n {{ item }}\r\n
    \r\n
    \r\n\r\n \r\n \r\n Add Materials\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \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 / PRICE /LOCATION\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n STOCK QUANTITY\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n SELL PRICE\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n STOCK LOCATION\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    COMMENTS
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n 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 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 + New\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n Create Material and Sizes\r\n
    \r\n \r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n {{ mats.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 Save\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n","import { DateTime } from \"luxon\";\r\n\r\nexport const thisYearDateFilterPresets = () => {\r\n const currentDate = DateTime.local();\r\n\r\n const thisYearStartQ1 = currentDate.startOf(\"year\");\r\n const thisYearEndQ1 = thisYearStartQ1.plus({ months: 2 }).endOf('month');\r\n\r\n const thisYearStartQ2 = thisYearEndQ1.plus({ days: 1 });\r\n const thisYearEndQ2 = thisYearStartQ2.plus({ months: 2 }).endOf('month');\r\n\r\n const thisYearStartQ3 = thisYearEndQ2.plus({ days: 1 });\r\n const thisYearEndQ3 = thisYearStartQ3.plus({ months: 2 }).endOf('month');\r\n\r\n const thisYearStartQ4 = thisYearEndQ3.plus({ days: 1 });\r\n const thisYearEndQ4 = thisYearStartQ4.plus({ months: 2 }).endOf('month');\r\n \r\n \r\n return [\r\n {\r\n label: 'YTD',\r\n config: {\r\n from: `${currentDate.year}-01-01`,\r\n to: currentDate.toFormat('yyyy-MM-dd'),\r\n },\r\n },\r\n {\r\n label: 'This Year - First Quarter',\r\n config: {\r\n from: thisYearStartQ1,\r\n to: thisYearEndQ1,\r\n },\r\n },\r\n {\r\n label: 'This Year - Second Quarter',\r\n config: {\r\n from: thisYearStartQ2,\r\n to: thisYearEndQ2,\r\n },\r\n },\r\n {\r\n label: 'This Year - Third Quarter',\r\n config: {\r\n from: thisYearStartQ3,\r\n to: thisYearEndQ3,\r\n },\r\n },\r\n {\r\n label: 'This Year - Fourth Quarter',\r\n config: {\r\n from: thisYearStartQ4,\r\n to: thisYearEndQ4,\r\n },\r\n },\r\n ]\r\n}\r\n\r\nexport const lastYearDateFilterPresets = () => {\r\n const currentDate = DateTime.local();\r\n \r\n const lastYear = currentDate.minus({ years: 1 });\r\n const lastYearStartQ1 = lastYear.startOf(\"year\");\r\n const lastYearEndQ1 = lastYearStartQ1.plus({ months: 2 }).endOf('month');\r\n\r\n const lastYearStartQ2 = lastYearEndQ1.plus({ days: 1 });\r\n const lastYearEndQ2 = lastYearStartQ2.plus({ months: 2 }).endOf('month');\r\n\r\n const lastYearStartQ3 = lastYearEndQ2.plus({ days: 1 });\r\n const lastYearEndQ3 = lastYearStartQ3.plus({ months: 2 }).endOf('month');\r\n\r\n const lastYearStartQ4 = lastYearEndQ3.plus({ days: 1 });\r\n const lastYearEndQ4 = lastYearStartQ4.plus({ months: 2 }).endOf('month');\r\n\r\n return [\r\n {\r\n label: 'Last Year',\r\n config: {\r\n from: currentDate.minus({ years: 1 }).startOf('year').toFormat('yyyy-MM-dd'),\r\n to: currentDate.minus({ years: 1 }).endOf('year').toFormat('yyyy-MM-dd'),\r\n },\r\n },\r\n {\r\n label: 'Last Year - First Quarter',\r\n config: {\r\n from: lastYearStartQ1,\r\n to: lastYearEndQ1,\r\n },\r\n },\r\n {\r\n label: 'Last Year - Second Quarter',\r\n config: {\r\n from: lastYearStartQ2,\r\n to: lastYearEndQ2,\r\n },\r\n },\r\n {\r\n label: 'Last Year - Third Quarter',\r\n config: {\r\n from: lastYearStartQ3,\r\n to: lastYearEndQ3,\r\n },\r\n },\r\n {\r\n label: 'Last Year - Fourth Quarter',\r\n config: {\r\n from: lastYearStartQ4,\r\n to: lastYearEndQ4,\r\n },\r\n },\r\n ]\r\n}\r\n\r\n\r\nexport const monthDateFilterPresets = () => {\r\n const currentDate = DateTime.local();\r\n\r\n return [\r\n {\r\n label: 'This Month',\r\n config: {\r\n from: currentDate.startOf('month').toFormat('yyyy-MM-dd'),\r\n to: currentDate.endOf('month').toFormat('yyyy-MM-dd'),\r\n },\r\n },\r\n {\r\n label: 'Last Month',\r\n config: {\r\n from: currentDate.minus({ months: 1 }).startOf('month').toFormat('yyyy-MM-dd'),\r\n to: currentDate.minus({ months: 1 }).endOf('month').toFormat('yyyy-MM-dd'),\r\n },\r\n },\r\n {\r\n label: '1 Month',\r\n config: {\r\n from: currentDate.minus({ months: 1 }).toFormat('yyyy-MM-dd'),\r\n to: currentDate.toFormat('yyyy-MM-dd'),\r\n },\r\n },\r\n {\r\n label: '3 Months',\r\n config: {\r\n from: currentDate.minus({ months: 3 }).toFormat('yyyy-MM-dd'),\r\n to: currentDate.toFormat('yyyy-MM-dd'),\r\n },\r\n },\r\n {\r\n label: '6 Months',\r\n config: {\r\n from: currentDate.minus({ months: 6 }).toFormat('yyyy-MM-dd'),\r\n to: currentDate.toFormat('yyyy-MM-dd'),\r\n },\r\n },\r\n {\r\n label: '12 Months',\r\n config: {\r\n from: currentDate.minus({ months: 12 }).toFormat('yyyy-MM-dd'),\r\n to: currentDate.toFormat('yyyy-MM-dd'),\r\n },\r\n },\r\n ]\r\n}","import { Component } from '@angular/core';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\n\r\n@Component({\r\n selector: 'general-reports',\r\n templateUrl: './general-reports.component.html',\r\n styleUrls: ['./general-reports.component.scss'],\r\n})\r\nexport class GeneralReportsComponent {\r\n constructor(private userPermissionService: UserPermissionService) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.reports);\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { DateTime } from 'luxon';\r\nimport { ReportService } from 'src/app/services/report.service';\r\nimport { InvoiceFairmined } from './invoice-fairmined';\r\n\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-invoice-reports',\r\n templateUrl: './invoice-reports.component.html',\r\n styleUrls: ['./invoice-reports.component.scss'],\r\n})\r\nexport class InvoiceReportsComponent implements OnInit {\r\n constructor(private reportService: ReportService) {}\r\n\r\n displayedColumns = ['invoicesID'];\r\n isSaving = false;\r\n isLoading = false;\r\n invoices = new MatTableDataSource([]);\r\n\r\n filters: Filters = {\r\n dateRangeFrom: DateTime.local().minus({ months: 9 }).toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n };\r\n\r\n ngOnInit(): void {\r\n this.getInvoiceFairmined();\r\n }\r\n\r\n getInvoiceFairmined() {\r\n this.reportService\r\n .getInvoiceFairmined(this.filters.dateRangeFrom, this.filters.dateRangeTo)\r\n .subscribe((data) => {\r\n this.invoices.data = data;\r\n });\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filters.dateRangeFrom = start;\r\n this.filters.dateRangeTo = end;\r\n this.getInvoiceFairmined();\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 \r\n \r\n \r\n {{ element.invoicesId }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { DateTime } from 'luxon';\r\nimport { StoneService } from 'src/app/components/riva-gems/stone.service';\r\nimport { ReportService } from 'src/app/services/report.service';\r\nimport { StoneMovementsReport } from './stone-movements-report';\r\n\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'stone-movements-report',\r\n templateUrl: './stone-movements-report.component.html',\r\n styleUrls: ['./stone-movements-report.component.scss'],\r\n})\r\nexport class StoneMovementReportComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n stoneMovementReports = new MatTableDataSource([]);\r\n displayedColumns = [\r\n 'stonesId',\r\n 'type',\r\n 'cut',\r\n 'clarity',\r\n 'color',\r\n 'caratsPerUnit',\r\n 'size',\r\n 'labGrown',\r\n 'traceable',\r\n 'amountPurchased',\r\n 'amountReleased',\r\n 'amountInStock',\r\n ];\r\n\r\n isExportingStoneInventory = false;\r\n isExportingStoneMovement = false;\r\n isShowAllData = true;\r\n filters: Filters = {\r\n dateRangeFrom: DateTime.local().minus({ months: 9 }).toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n };\r\n\r\n constructor(\r\n private stoneService: StoneService,\r\n private reportService: ReportService,\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit() {\r\n this.stoneMovementReports.sort = this.sort;\r\n this.stoneMovementReports.paginator = this.paginator;\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filters.dateRangeFrom = start;\r\n this.filters.dateRangeTo = end;\r\n }\r\n\r\n onDownloadExcelFileForStoneInventory() {\r\n this.isExportingStoneInventory = true;\r\n this.stoneService.getStoneExcel().subscribe((response) => {\r\n const blob = new Blob([response], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'stone-inventory-report.xlsx';\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n this.isExportingStoneInventory = false;\r\n });\r\n }\r\n\r\n onDownloadExcelFileForStoneMovement() {\r\n this.isExportingStoneMovement = true;\r\n const params = this.isShowAllData\r\n ? null\r\n : {\r\n start: this.filters.dateRangeFrom,\r\n end: this.filters.dateRangeTo,\r\n };\r\n this.reportService.getStoneMovementReports(params).subscribe((response) => {\r\n const blob = new Blob([response], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'stone-movement-report.xlsx';\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n this.isExportingStoneMovement = false;\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n

    Stone Inventory Report

    \r\n
    \r\n \r\n Download Excel Report\r\n \r\n
    \r\n
    \r\n

    Stone Movement Report

    \r\n
    \r\n Show all data\r\n \r\n \r\n \r\n
    \r\n \r\n Download Excel Report\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport groupBy from 'lodash/groupBy';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { AnalyticsClosedItemWeight, AnalyticsService } from 'src/app/services/analytics.service';\r\nimport { WorkOrderPrintDialogComponent } from '../../work-order-view/work-order-print/work-order-print-dialog.component';\r\n\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'item-weights',\r\n templateUrl: './item-weights.component.html',\r\n styleUrls: ['./item-weights.component.scss'],\r\n})\r\nexport class ItemWeightsComponent implements OnInit {\r\n // @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild('itemsSort', { read: MatSort, static: true }) sort1: MatSort;\r\n @ViewChild('workOrderSort', { read: MatSort, static: true }) sort2: MatSort;\r\n\r\n filters: Filters = {\r\n dateRangeFrom: DateTime.local().minus({ months: 6 }).toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n };\r\n items: AnalyticsClosedItemWeight[] = [];\r\n filteredItems: AnalyticsClosedItemWeight[] = [];\r\n groupedItems = new MatTableDataSource>([]);\r\n selectedItemWorkOrders = new MatTableDataSource([]);\r\n selectedItem: Partial = {};\r\n displayedColumns = ['itemName'];\r\n displayedWorkOrderColumns = ['workOrdersId', 'metalDescription', 'size', 'closedDate', 'closedQty', 'totalClosedWeight', 'individualClosedWeight'];\r\n\r\n searchText = '';\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private analyticsService: AnalyticsService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.analyticsService.getAnalyticsClosedItemWeights().subscribe((data) => {\r\n this.items = data;\r\n this.onFilterData();\r\n });\r\n }\r\n\r\n onGroupData() {\r\n const groupedItems = groupBy(this.filteredItems, 'itemId');\r\n this.groupedItems.data = Object.keys(groupedItems).map((key) => {\r\n const [firstItem] = groupedItems[key];\r\n return {\r\n itemId: parseInt(key),\r\n itemName: firstItem.itemName,\r\n picturePath: firstItem.picturePath\r\n }\r\n });\r\n const [firstItem] = orderBy(this.groupedItems.data, 'itemName')\r\n\r\n if (firstItem != null) {\r\n this.onRowClick(firstItem)\r\n }\r\n }\r\n\r\n onFilterData() {\r\n const startDate = DateTime.fromISO(this.filters.dateRangeFrom);\r\n const endDate = DateTime.fromISO(this.filters.dateRangeTo).plus({ day: 1 });\r\n this.filteredItems = this.items.filter((i) => {\r\n const closedDate = DateTime.fromISO(i.closedDate);\r\n const inRange = closedDate >= startDate && closedDate <= endDate;\r\n return inRange && (this.searchText.trim() === '' || i.itemName?.toLocaleLowerCase().includes(this.searchText.trim().toLocaleLowerCase()));\r\n });\r\n this.onGroupData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.groupedItems.sort = this.sort1;\r\n this.selectedItemWorkOrders.sort = this.sort2;\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filters.dateRangeFrom = start;\r\n this.filters.dateRangeTo = end;\r\n this.onFilterData();\r\n }\r\n onRowClick(row: Partial) {\r\n this.selectedItem = row;\r\n this.getSelectedItemWorkOrderDetails();\r\n }\r\n getSelectedItemWorkOrderDetails() {\r\n this.selectedItemWorkOrders.data = this.filteredItems.filter((i) => i.itemId === this.selectedItem.itemId);\r\n }\r\n onPrintWorkOrder(workOrdersId) {\r\n if (workOrdersId <= 0) return;\r\n this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder: {\r\n printedDate: '',\r\n releasedDate: '',\r\n dateClosed: '',\r\n workOrdersId: workOrdersId,\r\n },\r\n },\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n Search product\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Item\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    {{ element.itemName }}
    \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Work Order Number\r\n \r\n \r\n {{ element.workOrdersId }}\r\n \r\n \r\n \r\n \r\n Metal\r\n \r\n \r\n {{ element.metalDescription }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ element.size }}\r\n \r\n \r\n \r\n \r\n Closed Date\r\n \r\n \r\n {{ element.closedDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Closed QTY\r\n \r\n \r\n {{ element.closedQty }}\r\n \r\n \r\n \r\n \r\n Total Closed Weight\r\n \r\n \r\n {{ element.totalClosedWeight }}g\r\n \r\n \r\n \r\n \r\n Individual Closed Weight\r\n \r\n \r\n {{ element.individualClosedWeight }}g\r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'reporting-invoice-error-dialog',\r\n templateUrl: './reporting-invoice-error-dialog.component.html',\r\n styleUrls: ['./reporting-invoice-error-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ReportingInvoiceErrorDialogComponent implements OnInit {\r\n invoicesDisplayedColumns: string[] = ['invoiceId'];\r\n stoneDisplayedColumns: string[] = [\r\n 'stoneId',\r\n 'stoneType',\r\n 'stoneCut',\r\n 'stoneClarity',\r\n 'stoneColor',\r\n 'stoneSize',\r\n ];\r\n\r\n invoices = [];\r\n\r\n stones = [];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { errors },\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.stones = this.props.errors?.stones ?? [];\r\n this.invoices = (this.props.errors?.metals ?? [])?.map((m) => ({\r\n ...m,\r\n link: `/invoicing-and-shipping/invoicing/${m.invoiceId}`,\r\n }))\r\n }\r\n}\r\n","

    \r\n \r\n \r\n \r\n \r\n Daily Metrics Report Error\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
    Invoice ID\r\n \r\n {{ element.invoiceId }}\r\n \r\n
    No Invoice Error
    \r\n \r\n 0\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Stone ID\r\n {{ element.stoneId }}\r\n Type\r\n {{ element.stoneType }}\r\n Cut\r\n {{ element.stoneCut }}\r\n Clarity\r\n {{ element.stoneClarity }}\r\n Color\r\n {{ element.stoneColor }}\r\n Size\r\n {{ element.stoneSize }}\r\n
    No Stone Error
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n Close\r\n \r\n \r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { DateTime } from 'luxon';\r\nimport {\r\n AnalyticsMaterial,\r\n AnalyticsService,\r\n InvoicedStone,\r\n} from 'src/app/services/analytics.service';\r\nimport { WorkOrderMovementService } from 'src/app/services/work-order-movement.service';\r\nimport { ReportingInvoiceErrorDialogComponent } from './reporting-invoice-error-dialog/reporting-invoice-error-dialog.component';\r\n\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n}\r\n@Component({\r\n selector: 'riva-reporting-invoice',\r\n templateUrl: './reporting-invoice.component.html',\r\n styleUrls: ['./reporting-invoice.component.scss'],\r\n})\r\nexport class ReportingInvoiceComponent implements OnInit {\r\n @ViewChild('materialsSort', { read: MatSort, static: true })\r\n materialSort: MatSort;\r\n @ViewChild('stonesSort', { read: MatSort, static: true }) stoneSort: MatSort;\r\n @ViewChild('errorDialog')\r\n public readonly errorDialog!: SwalComponent;\r\n\r\n filters: Filters = {\r\n dateRangeFrom: DateTime.now().toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.now().toFormat('yyyy-MM-dd'),\r\n };\r\n isDateRange = false;\r\n\r\n materialList = new MatTableDataSource([]);\r\n stoneList = new MatTableDataSource([]);\r\n totalInvoiced: number = 0;\r\n displayedColumns = ['description', 'totalWeightShipped'];\r\n stoneColumns = [\r\n 'stoneType',\r\n 'stoneCut',\r\n 'stoneClarity',\r\n 'stoneColor',\r\n 'stoneSize',\r\n 'labGrown',\r\n 'traceable',\r\n 'customerProvided',\r\n 'invoicedQty',\r\n ];\r\n isGenerating = false;\r\n\r\n constructor(\r\n private workOrderMovementService: WorkOrderMovementService,\r\n private analyticsService: AnalyticsService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getReports();\r\n }\r\n ngAfterViewInit() {\r\n this.materialList.sort = this.materialSort;\r\n this.stoneList.sort = this.stoneSort;\r\n }\r\n\r\n getReports() {\r\n this.getAnalyticsMaterial();\r\n this.getAnalyticsInvoiced();\r\n this.getAnalyticsInvoicedStones();\r\n }\r\n getAnalyticsMaterial() {\r\n this.analyticsService\r\n .getAnalyticsInvoicedWeights({\r\n start: this.filters.dateRangeFrom,\r\n end: this.filters.dateRangeTo,\r\n })\r\n .subscribe((data) => {\r\n this.materialList.data = data.filter((d) => d.totalWeightShipped > 0);\r\n });\r\n }\r\n getAnalyticsInvoiced() {\r\n this.analyticsService\r\n .getAnalyticsInvoicedTimePeriod({\r\n start: this.filters.dateRangeFrom,\r\n end: this.filters.dateRangeTo,\r\n })\r\n .subscribe(({ totalInvoiced }) => {\r\n this.totalInvoiced = totalInvoiced;\r\n });\r\n }\r\n getAnalyticsInvoicedStones() {\r\n this.analyticsService\r\n .getAnalyticsInvoicedStones({\r\n start: this.filters.dateRangeFrom,\r\n end: this.filters.dateRangeTo,\r\n })\r\n .subscribe((data) => {\r\n this.stoneList.data = data;\r\n });\r\n }\r\n onSetDateRange(config) {\r\n this.filters.dateRangeFrom = config.start;\r\n this.filters.dateRangeTo = config.end;\r\n this.getReports();\r\n }\r\n onSetDate() {\r\n this.filters.dateRangeFrom = DateTime.fromJSDate(\r\n new Date(this.filters.dateRangeFrom),\r\n ).toFormat('yyyy-MM-dd');\r\n this.filters.dateRangeTo = DateTime.fromJSDate(\r\n new Date(this.filters.dateRangeFrom),\r\n ).toFormat('yyyy-MM-dd');\r\n this.getReports();\r\n }\r\n\r\n onGenerateReport() {\r\n this.isGenerating = true;\r\n this.workOrderMovementService\r\n .getDailyMetricsSummaryReport(\r\n this.filters.dateRangeFrom,\r\n this.filters.dateRangeTo,\r\n )\r\n .subscribe(\r\n (response) => {\r\n if (response == null) {\r\n setTimeout(() => {\r\n this.errorDialog.fire();\r\n }, 100);\r\n this.isGenerating = false;\r\n return;\r\n }\r\n\r\n const blob = new Blob([response], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n const selectedDate = DateTime.fromISO(this.filters.dateRangeFrom)\r\n a.download = `${selectedDate.toFormat(\"MM.dd.yyyy\")} ${selectedDate.weekdayLong} Daily Metrics.xlsx`;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n this.isGenerating = false;\r\n },\r\n (errors) => {\r\n this.isGenerating = false;\r\n this.dialog.open(ReportingInvoiceErrorDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '800px',\r\n width: '100%',\r\n data: {\r\n errors,\r\n },\r\n });\r\n },\r\n );\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n Show date range\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Total Invoiced:
    \r\n
    {{ totalInvoiced | currency }}
    \r\n
    \r\n \r\n End of Day Report\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Metals

    \r\n
    \r\n \r\n \r\n \r\n Metal\r\n \r\n \r\n {{ element.description }}\r\n \r\n \r\n \r\n \r\n Total Weight\r\n \r\n \r\n {{ element.totalWeightShipped }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Stones

    \r\n
    \r\n \r\n \r\n \r\n Type\r\n \r\n \r\n {{ element.stoneType }}\r\n \r\n \r\n \r\n \r\n Cut\r\n \r\n \r\n {{ element.stoneCut }}\r\n \r\n \r\n \r\n \r\n Clarity\r\n \r\n \r\n {{ element.stoneClarity }}\r\n \r\n \r\n \r\n \r\n Color\r\n \r\n \r\n {{ element.stoneColor }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ element.stoneSize }}\r\n \r\n \r\n \r\n \r\n Lab Grown\r\n \r\n \r\n {{ element.labGrown ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n \r\n Traceable\r\n \r\n \r\n {{ element.traceable ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n \r\n Customer Provided\r\n \r\n \r\n {{ element.customerProvided ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n \r\n {{ element.invoicedQty }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ChartConfiguration, ChartType } from 'chart.js';\r\nimport groupBy from 'lodash/groupBy';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { BaseChartDirective } from 'ng2-charts';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { AnalyticsCustomerOrder, AnalyticsService } from 'src/app/services/analytics.service';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\n\r\ninterface CustomerTotalOrder {\r\n customerId: number;\r\n customer: string;\r\n totalQty: number;\r\n}\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n customerId?: number;\r\n}\r\n@Component({\r\n selector: 'riva-reporting-item-placed',\r\n templateUrl: './reporting-item-placed.component.html',\r\n styleUrls: ['./reporting-item-placed.component.scss'],\r\n})\r\nexport class ReportingItemPlacedComponent implements OnInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n lineChartData: ChartConfiguration['data'];\r\n lineChartDataForQty: ChartConfiguration['data'];\r\n\r\n displayedColumns = [\r\n 'customer',\r\n 'totalQty',\r\n ];\r\n\r\n public lineChartOptions: ChartConfiguration['options'] = {\r\n elements: {\r\n line: {\r\n tension: 0,\r\n },\r\n },\r\n scales: {\r\n y: {\r\n position: 'left',\r\n grid: {\r\n color: '#68516d',\r\n },\r\n ticks: {\r\n color: '#68516d',\r\n },\r\n },\r\n },\r\n\r\n plugins: {\r\n legend: { display: true },\r\n },\r\n };\r\n public lineChartType: ChartType = 'line';\r\n\r\n @ViewChild(BaseChartDirective) chart?: BaseChartDirective;\r\n customers: Customers[];\r\n customersTotalOrders = new MatTableDataSource([]);\r\n customerOrders: AnalyticsCustomerOrder[];\r\n viewType: 'monthly' | 'weekly' = 'monthly'\r\n totalOrderForCustomer = 0;\r\n \r\n filters: Filters = {\r\n dateRangeFrom: DateTime.local().minus({ months: 9 }).toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n customerId: 0,\r\n };\r\n params = {\r\n PageNumber: 1,\r\n PageSize: 25,\r\n SearchQuery: '',\r\n CustomerId: 0,\r\n };\r\n\r\n constructor(\r\n private customerService: CustomerService,\r\n private analyticsService: AnalyticsService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.customerService.getList().subscribe((customers) => {\r\n this.customers = orderBy(customers, 'companyName');\r\n });\r\n this.getOrders();\r\n }\r\n ngAfterViewInit() {\r\n this.customersTotalOrders.sort = this.sort;\r\n }\r\n\r\n onFilter() {\r\n const customerIds = this.filters.customerId > 0 ? [this.filters.customerId] : [];\r\n const startDate = DateTime.fromISO(this.filters.dateRangeFrom);\r\n const endDate = DateTime.fromISO(this.filters.dateRangeTo).plus({ day: 1 });\r\n const filtered = this.customerOrders.reduce((data, customer) => {\r\n const orders = customer.orders.filter((i) => {\r\n const date = DateTime.fromISO(i.entryDate);\r\n const inRange = date >= startDate && date <= endDate;\r\n return inRange;\r\n });\r\n return [...data, {...customer, orders }]\r\n }, []);\r\n this.customersTotalOrders.data = filtered.reduce((list, customer) => {\r\n return [...list, { customer: customer.customer, customerId: customer.custIdNo, totalQty: customer.orders.reduce((total, i) => total + i.totalQty, 0) }]\r\n }, [])\r\n this.totalOrderForCustomer = this.customersTotalOrders.data.reduce((total, customer) => total + customer.totalQty, 0)\r\n const filteredData = filtered.filter((customer) => customerIds.length === 0 || customerIds.includes(customer.custIdNo))\r\n this.viewType === 'monthly' ? this.parseDataForTotalOrderGraphPerMonth(filteredData) : this.parseDataForTotalOrderGraphPerWeek(filteredData, startDate, endDate);\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filters.dateRangeFrom = start;\r\n this.filters.dateRangeTo = end;\r\n this.onFilter();\r\n }\r\n\r\n getOrders() {\r\n this.analyticsService.getAnalyticsOrders().subscribe((data) => {\r\n this.customerOrders = data;\r\n this.onFilter()\r\n });\r\n }\r\n\r\n parseDataForTotalOrderGraphPerWeek(data, startDate, endDate) {\r\n const allOrders = orderBy(data.reduce((accum, d) => {\r\n return [...accum, ...d.orders]\r\n }, []), 'entryDate');\r\n const weekGroups = this.getWeeksInRange(startDate, endDate)\r\n allOrders.forEach((i) => {\r\n const currentGroupIndex = weekGroups.findIndex((g) => {\r\n const date = DateTime.fromISO(i.entryDate.split('T')[0]);\r\n const inRange = date >= g.startDate && date <= g.endDate;\r\n return inRange;\r\n })\r\n if (currentGroupIndex >= 0) {\r\n const group = weekGroups[currentGroupIndex]\r\n group.total = group.total + i.totalQty;\r\n weekGroups[currentGroupIndex] = group;\r\n }\r\n })\r\n let weekData = weekGroups.map((g) => g.total)\r\n let weekLabel = weekGroups.map((g) => g.label)\r\n\r\n this.lineChartData = {\r\n datasets: [\r\n {\r\n data: weekData,\r\n label: 'Total Order Per Week',\r\n backgroundColor: 'transparent',\r\n borderColor: '#9854a7',\r\n pointBackgroundColor: '#9854a7',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)',\r\n fill: 'origin',\r\n }\r\n ],\r\n labels: weekLabel,\r\n };\r\n }\r\n\r\n parseDataForTotalOrderGraphPerMonth(data) {\r\n const allShipments = orderBy(data.reduce((accum, d) => {\r\n return [...accum, ...d.orders]\r\n }, []), 'entryDate');\r\n const grouped = allShipments.map((i) => {\r\n const date = new Date(i.entryDate)\r\n const month = date.toLocaleString('default', { month: 'long' });\r\n const year = date.getFullYear();\r\n return {...i, group: `${date.getMonth() + 1}-${month} ${year}`}\r\n });\r\n const monthRange = this.getMonthsInDateRange(this.filters.dateRangeFrom, this.filters.dateRangeTo);\r\n const group = groupBy(grouped, (i) => i.group);\r\n let labels = Object.keys(monthRange).map((m) => m.split('-')[1]);\r\n const totalDataPerMonth = Object.keys(group).reduce((totalPerMonth, key) => {\r\n totalPerMonth[key] = group[key].reduce((total, x) => total + x.totalQty, 0);\r\n return totalPerMonth\r\n }, monthRange);\r\n\r\n let values = Object.values(totalDataPerMonth) as number[]\r\n\r\n this.lineChartData = {\r\n datasets: [\r\n {\r\n data: values,\r\n label: 'Total Order Per Month',\r\n backgroundColor: 'transparent',\r\n borderColor: '#9854a7',\r\n pointBackgroundColor: '#9854a7',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)',\r\n fill: 'origin',\r\n }\r\n ],\r\n labels,\r\n };\r\n }\r\n \r\n onTableRowClick(row) {\r\n this.filters.customerId = row.customerId;\r\n this.onFilter()\r\n }\r\n onFilterAllCustomer() {\r\n this.filters.customerId = 0;\r\n this.onFilter()\r\n }\r\n onRangeChange(months?: number){\r\n if (months == null) {\r\n this.filters.dateRangeFrom = `${DateTime.local().year}-01-01`\r\n this.filters.dateRangeTo = DateTime.local().toFormat('yyyy-MM-dd');\r\n } else {\r\n this.filters.dateRangeFrom = DateTime.local().minus({ months }).toFormat('yyyy-MM-dd');\r\n this.filters.dateRangeTo = DateTime.local().toFormat('yyyy-MM-dd');\r\n }\r\n this.onFilter();\r\n }\r\n getMonthsInDateRange(startDate, endDate) {\r\n let start = DateTime.fromISO(startDate);\r\n const end = DateTime.fromISO(endDate);\r\n const months = {};\r\n \r\n while (start <= end) {\r\n const monthName = start.toFormat('MMMM yyyy');\r\n const key = `${start.month}-${monthName}`\r\n months[key] = 0;\r\n start = start.plus({ months: 1 });\r\n }\r\n \r\n return months;\r\n }\r\n getWeeksInRange(startDate, endDate) {\r\n const weeks = [];\r\n\r\n let currentWeekStart = startDate;\r\n \r\n while (currentWeekStart <= endDate) {\r\n const currentWeekEnd = currentWeekStart.plus({ days: 6 });\r\n\r\n const startDay = currentWeekStart.toFormat(\"d\")\r\n const startMonth = currentWeekStart.toFormat(\"LLL\")\r\n const startYear = currentWeekStart.toFormat(\"yyyy\")\r\n\r\n const endDay = currentWeekEnd.toFormat(\"d\")\r\n const endMonth = currentWeekEnd.toFormat(\"LLL\")\r\n const endYear = currentWeekEnd.toFormat(\"yyyy\")\r\n\r\n const weekRange = `${startMonth} ${startDay}${startYear !== endYear ? `, ${startYear}` : ''}-${startMonth!==endMonth? `${endMonth} `: ''}${endDay}, ${endYear}`;\r\n const range = {\r\n label: weekRange,\r\n startDate: currentWeekStart,\r\n endDate: currentWeekEnd,\r\n total: 0\r\n }\r\n weeks.push(range);\r\n currentWeekStart = currentWeekEnd.plus({ days: 1 });\r\n }\r\n return weeks;\r\n }\r\n onSetDateRange(config) {\r\n this.filters.dateRangeFrom = config.from;\r\n this.filters.dateRangeTo = config.to;\r\n this.onFilter();\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n All Customers\r\n {{ totalOrderForCustomer | number : '1.0' : 'en-US' }}\r\n \r\n
    \r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n {{ element.customer }}\r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n {{ element.totalQty | number : '1.0' : 'en-US' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n Monthly\r\n Weekly\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Total Order

    \r\n \r\n

    \r\n Data is pulled from the date orders are placed\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { lastYearDateFilterPresets, monthDateFilterPresets, thisYearDateFilterPresets } from '../date-filter-presets';\r\n\r\n@Component({\r\n selector: 'riva-reporting-presets',\r\n templateUrl: './reporting-presets.component.html',\r\n styleUrls: ['./reporting-presets.component.scss'],\r\n})\r\nexport class ReportingPresetsComponent implements OnInit {\r\n @Output() onChange = new EventEmitter();\r\n\r\n\r\n monthFilterPresets = monthDateFilterPresets();\r\n yearFilterPresets = thisYearDateFilterPresets();\r\n lastYearFilterPresets = lastYearDateFilterPresets();\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n onSetDateRange(config) {\r\n this.onChange.emit(config)\r\n }\r\n}\r\n","
    \r\n \r\n Month Presets\r\n \r\n \r\n This Year Presets\r\n \r\n \r\n Last Year Presets\r\n \r\n
    \r\n\r\n\r\n \r\n {{ preset.label }}\r\n \r\n\r\n\r\n\r\n \r\n {{ preset.label }}\r\n \r\n\r\n\r\n\r\n \r\n {{ preset.label }}\r\n \r\n\r\n","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ChartConfiguration, ChartType } from 'chart.js';\r\nimport groupBy from 'lodash/groupBy';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { BaseChartDirective } from 'ng2-charts';\r\nimport { forkJoin } from 'rxjs';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport {\r\n AnalyticsProductOrder,\r\n AnalyticsService,\r\n} from 'src/app/services/analytics.service';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\n\r\ninterface ProductTotalOrder {\r\n productId: number;\r\n productName: string;\r\n productPicPath: string;\r\n totalQty: number;\r\n}\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n productId?: number;\r\n product: boolean;\r\n unfinishedChain: boolean;\r\n finishedChain: boolean;\r\n findings: boolean;\r\n otherComponent: boolean;\r\n}\r\n@Component({\r\n selector: 'riva-reporting-top-product',\r\n templateUrl: './reporting-top-product.component.html',\r\n styleUrls: ['./reporting-top-product.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'),\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class ReportingTopProductComponent implements OnInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n lineChartData: ChartConfiguration['data'];\r\n lineChartDataForQty: ChartConfiguration['data'];\r\n\r\n displayedColumns = ['expander', 'rowNumber', 'productName', 'totalQty'];\r\n\r\n public lineChartOptions: ChartConfiguration['options'] = {\r\n elements: {\r\n line: {\r\n tension: 0,\r\n },\r\n },\r\n scales: {\r\n y: {\r\n position: 'left',\r\n grid: {\r\n color: '#68516d',\r\n },\r\n ticks: {\r\n color: '#68516d',\r\n },\r\n },\r\n },\r\n\r\n plugins: {\r\n legend: { display: true },\r\n },\r\n };\r\n public lineChartType: ChartType = 'line';\r\n\r\n @ViewChild(BaseChartDirective) chart?: BaseChartDirective;\r\n productTotalOrders = new MatTableDataSource([]);\r\n productOrders: AnalyticsProductOrder[] = [];\r\n\r\n topProducts: AnalyticsProductOrder[] = [];\r\n topUnfinishedChains: AnalyticsProductOrder[] = [];\r\n topFinishedChains: AnalyticsProductOrder[] = [];\r\n topFindings: AnalyticsProductOrder[] = [];\r\n topOtherComponents: AnalyticsProductOrder[] = [];\r\n\r\n viewType: 'monthly' | 'weekly' = 'monthly';\r\n totalOrderForProduct = 0;\r\n customers: Customers[] = [];\r\n filterByCustomer: number = 0;\r\n\r\n filters: Filters = {\r\n dateRangeFrom: DateTime.local().minus({ months: 9 }).toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n productId: 0,\r\n product: true,\r\n unfinishedChain: true,\r\n finishedChain: true,\r\n findings: true,\r\n otherComponent: true,\r\n };\r\n params = {\r\n PageNumber: 1,\r\n PageSize: 25,\r\n SearchQuery: '',\r\n CustomerId: 0,\r\n };\r\n selectedMetal: {\r\n metal?: string;\r\n productId?: number;\r\n } = {\r\n metal: '',\r\n productId: 0,\r\n };\r\n\r\n expandedItem: Record = {};\r\n\r\n constructor(\r\n private analyticsService: AnalyticsService,\r\n private customerService: CustomerService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getTopProducts();\r\n this.customerService.getList().subscribe((data) => {\r\n this.customers = orderBy(data, 'companyName');\r\n });\r\n }\r\n ngAfterViewInit() {\r\n this.productTotalOrders.sort = this.sort;\r\n }\r\n\r\n updateExpandedItem(row: AnalyticsProductOrder, event) {\r\n event.stopPropagation();\r\n this.expandedItem[row.productId] = !this.expandedItem[row.productId];\r\n }\r\n\r\n onFilterProductType() {\r\n this.productOrders = [];\r\n if (this.filters.product) {\r\n this.productOrders = [...this.productOrders, ...this.topProducts];\r\n }\r\n if (this.filters.unfinishedChain) {\r\n this.productOrders = [...this.productOrders, ...this.topUnfinishedChains];\r\n }\r\n if (this.filters.finishedChain) {\r\n this.productOrders = [...this.productOrders, ...this.topFinishedChains];\r\n }\r\n if (this.filters.findings) {\r\n this.productOrders = [...this.productOrders, ...this.topFindings];\r\n }\r\n if (this.filters.otherComponent) {\r\n this.productOrders = [...this.productOrders, ...this.topOtherComponents];\r\n }\r\n this.onFilter();\r\n }\r\n\r\n onFilter() {\r\n const productIds =\r\n this.filters.productId > 0 ? [this.filters.productId] : [];\r\n const startDate = DateTime.fromISO(this.filters.dateRangeFrom);\r\n const endDate = DateTime.fromISO(this.filters.dateRangeTo).plus({ day: 1 });\r\n const filtered = this.productOrders.reduce((data, product) => {\r\n const orders = product.orderEntry.filter((i) => {\r\n const date = DateTime.fromISO(i.entryDate);\r\n const inRange = date >= startDate && date <= endDate;\r\n return inRange && (this.filterByCustomer === 0 || this.filterByCustomer === i.customerId);\r\n });\r\n return [\r\n ...data,\r\n {\r\n ...product,\r\n orderEntry: orders,\r\n totalQty: orders.reduce((total, i) => total + i.totalQty, 0),\r\n },\r\n ];\r\n }, []);\r\n const topProduct = orderBy(\r\n filtered.filter((p) => p.totalQty > 0),\r\n 'totalQty',\r\n 'desc',\r\n )\r\n .slice(0, 50)\r\n .map((p, i) => ({\r\n ...p,\r\n rank: i + 1,\r\n }));\r\n this.productTotalOrders.data = topProduct.reduce((all, product) => {\r\n const groupedMaterials = groupBy(product.orderEntry, (i) => i.metal);\r\n const materials = Object.keys(groupedMaterials).reduce((accum, key) => {\r\n const totalQty = groupedMaterials[key].reduce(\r\n (total, g) => total + g.totalQty,\r\n 0,\r\n );\r\n return [\r\n ...accum,\r\n {\r\n metal: key,\r\n totalQty,\r\n orderEntry: groupedMaterials[key],\r\n },\r\n ];\r\n }, []);\r\n\r\n return [\r\n ...all,\r\n { ...product, materials: orderBy(materials, 'totalQty', 'desc') },\r\n ];\r\n }, []);\r\n this.totalOrderForProduct = this.productTotalOrders.data.reduce(\r\n (total, product) => total + product.totalQty,\r\n 0,\r\n );\r\n const filteredData = filtered.filter(\r\n (product) =>\r\n productIds.length === 0 || productIds.includes(product.productId),\r\n );\r\n this.viewType === 'monthly'\r\n ? this.parseDataForTotalOrderGraphPerMonth(filteredData)\r\n : this.parseDataForTotalOrderGraphPerWeek(\r\n filteredData,\r\n startDate,\r\n endDate,\r\n );\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filters.dateRangeFrom = start;\r\n this.filters.dateRangeTo = end;\r\n this.onFilter();\r\n }\r\n\r\n onSelectMetal(productId, selectedMetal) {\r\n this.selectedMetal.productId = productId;\r\n this.selectedMetal.metal = selectedMetal.metal;\r\n\r\n const startDate = DateTime.fromISO(this.filters.dateRangeFrom);\r\n const endDate = DateTime.fromISO(this.filters.dateRangeTo).plus({ day: 1 });\r\n if (this.viewType === 'monthly') {\r\n this.parseDataForTotalOrderGraphPerMonth([selectedMetal]);\r\n } else {\r\n this.parseDataForTotalOrderGraphPerWeek(\r\n [selectedMetal],\r\n startDate,\r\n endDate,\r\n );\r\n }\r\n }\r\n\r\n getTopProducts() {\r\n forkJoin([\r\n this.analyticsService.getAnalyticsTopProduct(),\r\n this.analyticsService.getAnalyticsTopUnfinishedChain(),\r\n this.analyticsService.getAnalyticsTopFinishedChain(),\r\n this.analyticsService.getAnalyticsTopFindings(),\r\n this.analyticsService.getAnalyticsTopOtherComponents(),\r\n ]).subscribe(\r\n ([\r\n products,\r\n unfinishedChains,\r\n finishedChains,\r\n findings,\r\n otherComponents,\r\n ]) => {\r\n this.topProducts = products ?? [];\r\n this.topUnfinishedChains = unfinishedChains ?? [];\r\n this.topFinishedChains = finishedChains ?? [];\r\n this.topFindings = findings ?? [];\r\n this.topOtherComponents = otherComponents ?? [];\r\n this.onFilterProductType();\r\n },\r\n );\r\n }\r\n\r\n parseDataForTotalOrderGraphPerWeek(data, startDate, endDate) {\r\n const allOrders = orderBy(\r\n data.reduce((accum, d) => {\r\n return [...accum, ...d.orderEntry];\r\n }, []),\r\n 'entryDate',\r\n );\r\n const weekGroups = this.getWeeksInRange(startDate, endDate);\r\n allOrders.forEach((i) => {\r\n const currentGroupIndex = weekGroups.findIndex((g) => {\r\n const date = DateTime.fromISO(i.entryDate.split('T')[0]);\r\n const inRange = date >= g.startDate && date <= g.endDate;\r\n return inRange;\r\n });\r\n if (currentGroupIndex >= 0) {\r\n const group = weekGroups[currentGroupIndex];\r\n group.total = group.total + i.totalQty;\r\n weekGroups[currentGroupIndex] = group;\r\n }\r\n });\r\n let weekData = weekGroups.map((g) => g.total);\r\n let weekLabel = weekGroups.map((g) => g.label);\r\n\r\n this.lineChartData = {\r\n datasets: [\r\n {\r\n data: weekData,\r\n label: 'Top Products Per Week',\r\n backgroundColor: 'transparent',\r\n borderColor: '#9854a7',\r\n pointBackgroundColor: '#9854a7',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)',\r\n fill: 'origin',\r\n },\r\n ],\r\n labels: weekLabel,\r\n };\r\n }\r\n\r\n parseDataForTotalOrderGraphPerMonth(data) {\r\n const mappedData = orderBy(\r\n data.reduce((accum, d) => {\r\n return [...accum, ...d.orderEntry];\r\n }, []),\r\n 'entryDate',\r\n );\r\n const grouped = mappedData.map((i) => {\r\n const date = new Date(i.entryDate);\r\n const month = date.toLocaleString('default', { month: 'long' });\r\n const year = date.getFullYear();\r\n return { ...i, group: `${date.getMonth() + 1}-${month} ${year}` };\r\n });\r\n const monthRange = this.getMonthsInDateRange(\r\n this.filters.dateRangeFrom,\r\n this.filters.dateRangeTo,\r\n );\r\n const group = groupBy(grouped, (i) => i.group);\r\n let labels = Object.keys(monthRange).map((m) => m.split('-')[1]);\r\n const totalDataPerMonth = Object.keys(group).reduce(\r\n (totalPerMonth, key) => {\r\n totalPerMonth[key] = group[key].reduce(\r\n (total, x) => total + x.totalQty,\r\n 0,\r\n );\r\n return totalPerMonth;\r\n },\r\n monthRange,\r\n );\r\n\r\n let values = Object.values(totalDataPerMonth) as number[];\r\n\r\n this.lineChartData = {\r\n datasets: [\r\n {\r\n data: values,\r\n label: 'Top Products Per Month',\r\n backgroundColor: 'transparent',\r\n borderColor: '#9854a7',\r\n pointBackgroundColor: '#9854a7',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)',\r\n fill: 'origin',\r\n },\r\n ],\r\n labels,\r\n };\r\n }\r\n\r\n onTableRowClick(row) {\r\n this.selectedMetal.productId = 0;\r\n this.selectedMetal.metal = '';\r\n this.filters.productId = row.productId;\r\n this.onFilter();\r\n }\r\n onFilterAllCustomer() {\r\n this.filters.productId = 0;\r\n this.selectedMetal.metal = '';\r\n this.selectedMetal.productId = 0;\r\n this.onFilter();\r\n }\r\n onRangeChange(months?: number) {\r\n if (months == null) {\r\n this.filters.dateRangeFrom = `${DateTime.local().year}-01-01`;\r\n this.filters.dateRangeTo = DateTime.local().toFormat('yyyy-MM-dd');\r\n } else {\r\n this.filters.dateRangeFrom = DateTime.local()\r\n .minus({ months })\r\n .toFormat('yyyy-MM-dd');\r\n this.filters.dateRangeTo = DateTime.local().toFormat('yyyy-MM-dd');\r\n }\r\n this.onFilter();\r\n }\r\n getMonthsInDateRange(startDate, endDate) {\r\n let start = DateTime.fromISO(startDate);\r\n const end = DateTime.fromISO(endDate);\r\n const months = {};\r\n\r\n while (start <= end) {\r\n const monthName = start.toFormat('MMMM yyyy');\r\n const key = `${start.month}-${monthName}`;\r\n months[key] = 0;\r\n start = start.plus({ months: 1 });\r\n }\r\n\r\n return months;\r\n }\r\n getWeeksInRange(startDate, endDate) {\r\n const weeks = [];\r\n\r\n let currentWeekStart = startDate;\r\n\r\n while (currentWeekStart <= endDate) {\r\n const currentWeekEnd = currentWeekStart.plus({ days: 6 });\r\n\r\n const startDay = currentWeekStart.toFormat('d');\r\n const startMonth = currentWeekStart.toFormat('LLL');\r\n const startYear = currentWeekStart.toFormat('yyyy');\r\n\r\n const endDay = currentWeekEnd.toFormat('d');\r\n const endMonth = currentWeekEnd.toFormat('LLL');\r\n const endYear = currentWeekEnd.toFormat('yyyy');\r\n\r\n const weekRange = `${startMonth} ${startDay}${\r\n startYear !== endYear ? `, ${startYear}` : ''\r\n }-${startMonth !== endMonth ? `${endMonth} ` : ''}${endDay}, ${endYear}`;\r\n const range = {\r\n label: weekRange,\r\n startDate: currentWeekStart,\r\n endDate: currentWeekEnd,\r\n total: 0,\r\n };\r\n weeks.push(range);\r\n currentWeekStart = currentWeekEnd.plus({ days: 1 });\r\n }\r\n return weeks;\r\n }\r\n onSetDateRange(config) {\r\n this.filters.dateRangeFrom = config.from;\r\n this.filters.dateRangeTo = config.to;\r\n this.onFilter();\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n Top 50 Products Total\r\n {{ totalOrderForProduct | number : '1.0' : 'en-US' }}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ element.rank }}\r\n \r\n \r\n \r\n \r\n Product\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    {{ element.productName }}
    \r\n
    \r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n {{ element.totalQty | number : '1.0' : 'en-US' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Metal
    \r\n
    Qty
    \r\n
    \r\n \r\n
    {{ item.metal }}
    \r\n
    {{ item.totalQty }}
    \r\n
    \r\n
    \r\n
    \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 All\r\n {{ item.companyName }}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Monthly\r\n Weekly\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filter by Type

    \r\n
    \r\n Product\r\n
    \r\n
    \r\n Unfinished Chain\r\n
    \r\n
    \r\n Finished Chain\r\n
    \r\n
    \r\n Findings\r\n
    \r\n
    \r\n Other Components\r\n
    \r\n
    \r\n
    \r\n

    Top 50 Products

    \r\n \r\n

    \r\n Data is based on the date orders are placed\r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl } from '@angular/forms';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ChartConfiguration, ChartType } from 'chart.js';\r\nimport groupBy from 'lodash/groupBy';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { BaseChartDirective } from 'ng2-charts';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { AnalyticsCustomerShipment, AnalyticsService } from 'src/app/services/analytics.service';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\n\r\ninterface CustomerTotalShipment {\r\n customerId: number;\r\n customer: string;\r\n totalQty: number;\r\n}\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n customerId?: number;\r\n}\r\n@Component({\r\n selector: 'riva-reporting-total-shipment',\r\n templateUrl: './reporting-total-shipment.component.html',\r\n styleUrls: ['./reporting-total-shipment.component.scss'],\r\n})\r\nexport class ReportingTotalShipmentComponent implements OnInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n lineChartData: ChartConfiguration['data'];\r\n lineChartDataForQty: ChartConfiguration['data'];\r\n\r\n displayedColumns = [\r\n 'customer',\r\n 'totalQty',\r\n ];\r\n\r\n public lineChartOptions: ChartConfiguration['options'] = {\r\n elements: {\r\n line: {\r\n tension: 0,\r\n },\r\n },\r\n scales: {\r\n y: {\r\n position: 'left',\r\n grid: {\r\n color: '#68516d',\r\n },\r\n ticks: {\r\n color: '#68516d',\r\n },\r\n },\r\n },\r\n\r\n plugins: {\r\n legend: { display: true },\r\n },\r\n };\r\n public lineChartType: ChartType = 'line';\r\n\r\n @ViewChild(BaseChartDirective) chart?: BaseChartDirective;\r\n customers: Customers[];\r\n customersTotalShipment = new MatTableDataSource([]);\r\n customerShipments: AnalyticsCustomerShipment[];\r\n selectedCustomer = new FormControl([]);\r\n viewType: 'monthly' | 'weekly' = 'monthly'\r\n totalShippedForCustomer = 0;\r\n \r\n filters: Filters = {\r\n dateRangeFrom: DateTime.local().minus({ months: 9 }).toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n customerId: 0,\r\n };\r\n shipmentParams = {\r\n PageNumber: 1,\r\n PageSize: 25,\r\n SearchQuery: '',\r\n CustomerId: 0,\r\n };\r\n\r\n constructor(\r\n private customerService: CustomerService,\r\n private analyticsService: AnalyticsService,\r\n private fb: FormBuilder,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.customerService.getList().subscribe((customers) => {\r\n this.customers = orderBy(customers, 'companyName');\r\n });\r\n this.getShipments();\r\n }\r\n ngAfterViewInit() {\r\n this.customersTotalShipment.sort = this.sort;\r\n }\r\n\r\n onFilter() {\r\n const customerIds = this.filters.customerId > 0 ? [this.filters.customerId] : [];\r\n const startDate = DateTime.fromISO(this.filters.dateRangeFrom);\r\n const endDate = DateTime.fromISO(this.filters.dateRangeTo).plus({ day: 1 });\r\n const filteredDataByShippedDate = this.customerShipments.reduce((data, customer) => {\r\n const shipments = customer.shipments.filter((i) => {\r\n const shippedDate = DateTime.fromISO(i.shipDate);\r\n const inRange = shippedDate >= startDate && shippedDate <= endDate;\r\n return inRange;\r\n });\r\n return [...data, {...customer, shipments }]\r\n }, []);\r\n this.customersTotalShipment.data = filteredDataByShippedDate.reduce((list, customer) => {\r\n return [...list, { customer: customer.customer, customerId: customer.custIdNo, totalQty: customer.shipments.reduce((total, i) => total + i.totalQty, 0) }]\r\n }, [])\r\n this.totalShippedForCustomer = this.customersTotalShipment.data.reduce((total, customer) => total + customer.totalQty, 0)\r\n const filteredData = filteredDataByShippedDate.filter((customer) => customerIds.length === 0 || customerIds.includes(customer.custIdNo))\r\n this.viewType === 'monthly' ? this.parseDataForTotalShipmentGraphPerMonth(filteredData) : this.parseDataForTotalShipmentGraphPerWeek(filteredData, startDate, endDate);\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filters.dateRangeFrom = start;\r\n this.filters.dateRangeTo = end;\r\n this.onFilter();\r\n }\r\n\r\n getShipments() {\r\n this.analyticsService.getAnalyticsShipments().subscribe((data) => {\r\n this.customerShipments = data;\r\n this.onFilter()\r\n });\r\n }\r\n\r\n parseDataForTotalShipmentGraphPerWeek(data, startDate, endDate) {\r\n const allShipments = orderBy(data.reduce((accum, d) => {\r\n return [...accum, ...d.shipments]\r\n }, []), 'shipDate');\r\n const weekGroups = this.getWeeksInRange(startDate, endDate)\r\n allShipments.forEach((i) => {\r\n const currentGroupIndex = weekGroups.findIndex((g) => {\r\n const shippedDate = DateTime.fromISO(i.shipDate.split('T')[0]);\r\n const inRange = shippedDate >= g.startDate && shippedDate <= g.endDate;\r\n return inRange;\r\n })\r\n if (currentGroupIndex >= 0) {\r\n const group = weekGroups[currentGroupIndex]\r\n group.total = group.total + i.totalQty;\r\n weekGroups[currentGroupIndex] = group;\r\n }\r\n })\r\n let weekData = weekGroups.map((g) => g.total)\r\n let weekLabel = weekGroups.map((g) => g.label)\r\n\r\n this.lineChartData = {\r\n datasets: [\r\n {\r\n data: weekData,\r\n label: 'Total Shipment Per Week',\r\n backgroundColor: 'transparent',\r\n borderColor: '#9854a7',\r\n pointBackgroundColor: '#9854a7',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)',\r\n fill: 'origin',\r\n }\r\n ],\r\n labels: weekLabel,\r\n };\r\n }\r\n\r\n parseDataForTotalShipmentGraphPerMonth(data) {\r\n const allShipments = orderBy(data.reduce((accum, d) => {\r\n return [...accum, ...d.shipments]\r\n }, []), 'shipDate');\r\n const groupedShipments = allShipments.map((i) => {\r\n const shippedDate = new Date(i.shipDate)\r\n const month = shippedDate.toLocaleString('default', { month: 'long' });\r\n const year = shippedDate.getFullYear();\r\n return {...i, group: `${shippedDate.getMonth() + 1}-${month} ${year}`}\r\n });\r\n const monthRange = this.getMonthsInDateRange(this.filters.dateRangeFrom, this.filters.dateRangeTo);\r\n const group = groupBy(groupedShipments, (i) => i.group);\r\n let labels = Object.keys(monthRange).map((m) => m.split('-')[1]);\r\n const totalShippedPerMonth = Object.keys(group).reduce((totalPerMonth, key) => {\r\n totalPerMonth[key] = group[key].reduce((total, x) => total + x.totalQty, 0);\r\n return totalPerMonth\r\n }, monthRange);\r\n let values = Object.values(totalShippedPerMonth) as number[]\r\n\r\n this.lineChartData = {\r\n datasets: [\r\n {\r\n data: values,\r\n label: 'Total Shipment Per Month',\r\n backgroundColor: 'transparent',\r\n borderColor: '#9854a7',\r\n pointBackgroundColor: '#9854a7',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)',\r\n fill: 'origin',\r\n }\r\n ],\r\n labels,\r\n };\r\n }\r\n \r\n onTableRowClick(row) {\r\n this.filters.customerId = row.customerId;\r\n this.onFilter()\r\n }\r\n onFilterAllCustomer() {\r\n this.filters.customerId = 0;\r\n this.onFilter()\r\n }\r\n onRangeChange(months?: number){\r\n if (months == null) {\r\n this.filters.dateRangeFrom = `${DateTime.local().year}-01-01`\r\n this.filters.dateRangeTo = DateTime.local().toFormat('yyyy-MM-dd');\r\n } else {\r\n this.filters.dateRangeFrom = DateTime.local().minus({ months }).toFormat('yyyy-MM-dd');\r\n this.filters.dateRangeTo = DateTime.local().toFormat('yyyy-MM-dd');\r\n }\r\n this.onFilter();\r\n }\r\n getMonthsInDateRange(startDate, endDate) {\r\n let start = DateTime.fromISO(startDate);\r\n const end = DateTime.fromISO(endDate);\r\n const months = {};\r\n \r\n while (start <= end) {\r\n const monthName = start.toFormat('MMMM yyyy');\r\n const key = `${start.month}-${monthName}`\r\n months[key] = 0;\r\n start = start.plus({ months: 1 });\r\n }\r\n \r\n return months;\r\n }\r\n getWeeksInRange(startDate, endDate) {\r\n const weeks = [];\r\n\r\n let currentWeekStart = startDate;\r\n \r\n while (currentWeekStart <= endDate) {\r\n const currentWeekEnd = currentWeekStart.plus({ days: 6 });\r\n\r\n const startDay = currentWeekStart.toFormat(\"d\")\r\n const startMonth = currentWeekStart.toFormat(\"LLL\")\r\n const startYear = currentWeekStart.toFormat(\"yyyy\")\r\n\r\n const endDay = currentWeekEnd.toFormat(\"d\")\r\n const endMonth = currentWeekEnd.toFormat(\"LLL\")\r\n const endYear = currentWeekEnd.toFormat(\"yyyy\")\r\n\r\n const weekRange = `${startMonth} ${startDay}${startYear !== endYear ? `, ${startYear}` : ''}-${startMonth!==endMonth? `${endMonth} `: ''}${endDay}, ${endYear}`;\r\n const range = {\r\n label: weekRange,\r\n startDate: currentWeekStart,\r\n endDate: currentWeekEnd,\r\n total: 0\r\n }\r\n weeks.push(range);\r\n currentWeekStart = currentWeekEnd.plus({ days: 1 });\r\n }\r\n return weeks;\r\n }\r\n onSetDateRange(config) {\r\n this.filters.dateRangeFrom = config.from;\r\n this.filters.dateRangeTo = config.to;\r\n this.onFilter();\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n All Customers\r\n {{ totalShippedForCustomer | number : '1.0' : 'en-US' }}\r\n \r\n
    \r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n {{ element.customer }}\r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n {{ element.totalQty | number : '1.0' : 'en-US' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n Monthly\r\n Weekly\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Total Shipment

    \r\n \r\n

    \r\n Data is pulled from the date items are shipped\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ChartConfiguration, ChartType } from 'chart.js';\r\nimport groupBy from 'lodash/groupBy';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { BaseChartDirective } from 'ng2-charts';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { AnalyticsCustomer, AnalyticsService } from 'src/app/services/analytics.service';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { Invoice } from '../invoicing-shipping/invoicing/models/invoice';\r\n\r\ninterface CustomerTotalBilled {\r\n customerId: number;\r\n customer: string;\r\n totalBilled: number;\r\n}\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n customerId?: number;\r\n}\r\n@Component({\r\n selector: 'riva-reporting',\r\n templateUrl: './reporting.component.html',\r\n styleUrls: ['./reporting.component.scss'],\r\n})\r\nexport class ReportingComponent implements OnInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n lineChartData: ChartConfiguration['data'];\r\n lineChartDataForQty: ChartConfiguration['data'];\r\n\r\n displayedColumns = [\r\n 'customer',\r\n 'totalBilled',\r\n ];\r\n\r\n public lineChartOptions: ChartConfiguration['options'] = {\r\n elements: {\r\n line: {\r\n tension: 0,\r\n },\r\n },\r\n scales: {\r\n y: {\r\n position: 'left',\r\n grid: {\r\n color: '#68516d',\r\n },\r\n ticks: {\r\n color: '#68516d',\r\n },\r\n },\r\n },\r\n\r\n plugins: {\r\n legend: { display: true },\r\n },\r\n };\r\n public lineChartType: ChartType = 'line';\r\n\r\n @ViewChild(BaseChartDirective) chart?: BaseChartDirective;\r\n customers: Customers[];\r\n customersTotalBilled = new MatTableDataSource([]);\r\n invoices: Invoice[];\r\n customerInvoices: AnalyticsCustomer[];\r\n selectedCustomer = new FormControl([]);\r\n viewType: 'monthly' | 'weekly' = 'monthly'\r\n totalBilledForCustomer = 0;\r\n \r\n filters: Filters = {\r\n dateRangeFrom: DateTime.local().minus({ months: 9 }).toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n customerId: 0,\r\n };\r\n invoiceParams = {\r\n SortBy: 'invoicesID',\r\n SortDirection: 'desc',\r\n PageNumber: 1,\r\n PageSize: 25,\r\n SearchQuery: '',\r\n CustomerId: 0,\r\n };\r\n\r\n constructor(\r\n private customerService: CustomerService,\r\n private analyticsService: AnalyticsService,\r\n private userPermissionService: UserPermissionService\r\n ) {\r\n this.userPermissionService.checkPagePermission(\r\n PAGE_NAME.reporting,\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.customerService.getList().subscribe((customers) => {\r\n this.customers = orderBy(customers, 'companyName');\r\n });\r\n this.getInvoices();\r\n }\r\n ngAfterViewInit() {\r\n this.customersTotalBilled.sort = this.sort;\r\n }\r\n\r\n onFilter() {\r\n const customerIds = this.filters.customerId > 0 ? [this.filters.customerId] : [];\r\n const startDate = DateTime.fromISO(this.filters.dateRangeFrom);\r\n const endDate = DateTime.fromISO(this.filters.dateRangeTo).plus({ day: 1 });\r\n const filteredDataByInvoicedDate = this.customerInvoices.reduce((data, customer) => {\r\n const invoices = customer.invoices.filter((i) => {\r\n const invoicedDate = DateTime.fromISO(i.invoicedDate);\r\n const inRange = invoicedDate >= startDate && invoicedDate <= endDate;\r\n return inRange;\r\n });\r\n return [...data, {...customer, invoices }]\r\n }, []);\r\n this.customersTotalBilled.data = filteredDataByInvoicedDate.reduce((list, customer) => {\r\n return [...list, { customer: customer.customer, customerId: customer.custIdNo, totalBilled: customer.invoices.reduce((total, i) => total + i.totalDue, 0) }]\r\n }, [])\r\n this.totalBilledForCustomer = this.customersTotalBilled.data.reduce((total, customer) => total + customer.totalBilled, 0)\r\n const filteredData = filteredDataByInvoicedDate.filter((customer) => customerIds.length === 0 || customerIds.includes(customer.custIdNo))\r\n this.viewType === 'monthly' ? this.parseDataForTotalBilledGraphPerMonth(filteredData) : this.parseDataForTotalBilledGraphPerWeek(filteredData, startDate, endDate);\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filters.dateRangeFrom = start;\r\n this.filters.dateRangeTo = end;\r\n this.onFilter();\r\n }\r\n\r\n getInvoices() {\r\n this.analyticsService.getAnalyticsInvoices().subscribe((data) => {\r\n this.customerInvoices = data;\r\n this.onFilter()\r\n });\r\n }\r\n\r\n parseDataForTotalBilledGraphPerWeek(data, startDate, endDate) {\r\n const allInvoices = orderBy(data.reduce((accum, d) => {\r\n return [...accum, ...d.invoices]\r\n }, []), 'invoicedDate');\r\n const weekGroups = this.getWeeksInRange(startDate, endDate)\r\n allInvoices.forEach((i) => {\r\n const currentGroupIndex = weekGroups.findIndex((g) => {\r\n const invoicedDate = DateTime.fromISO(i.invoicedDate.split('T')[0]);\r\n const inRange = invoicedDate >= g.startDate && invoicedDate <= g.endDate;\r\n return inRange;\r\n })\r\n if (currentGroupIndex >= 0) {\r\n const group = weekGroups[currentGroupIndex]\r\n group.total = group.total + i.totalDue;\r\n weekGroups[currentGroupIndex] = group;\r\n }\r\n })\r\n let weekData = weekGroups.map((g) => g.total)\r\n let weekLabel = weekGroups.map((g) => g.label)\r\n\r\n this.lineChartData = {\r\n datasets: [\r\n {\r\n data: weekData,\r\n label: 'Total Billed Per Week',\r\n backgroundColor: 'transparent',\r\n borderColor: '#9854a7',\r\n pointBackgroundColor: '#9854a7',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)',\r\n fill: 'origin',\r\n }\r\n ],\r\n labels: weekLabel,\r\n };\r\n }\r\n\r\n parseDataForTotalBilledGraphPerMonth(data) {\r\n const allInvoices = orderBy(data.reduce((accum, d) => {\r\n return [...accum, ...d.invoices]\r\n }, []), 'invoicedDate');\r\n const groupedInvoices = allInvoices.map((i) => {\r\n const invoicedDate = new Date(i.invoicedDate)\r\n const month = invoicedDate.toLocaleString('default', { month: 'long' });\r\n const year = invoicedDate.getFullYear();\r\n return {...i, group: `${invoicedDate.getMonth() + 1}-${month} ${year}`}\r\n });\r\n const monthRange = this.getMonthsInDateRange(this.filters.dateRangeFrom, this.filters.dateRangeTo);\r\n const group = groupBy(groupedInvoices, (i) => i.group);\r\n let labels = Object.keys(monthRange).map((m) => m.split('-')[1]);\r\n const totalBilledPerMonth = Object.keys(group).reduce((totalPerMonth, key) => {\r\n totalPerMonth[key] = group[key].reduce((total, x) => total + x.totalDue, 0);\r\n return totalPerMonth\r\n }, monthRange);\r\n let values = Object.values(totalBilledPerMonth) as number[]\r\n\r\n this.lineChartData = {\r\n datasets: [\r\n {\r\n data: values,\r\n label: 'Total Billed Per Month',\r\n backgroundColor: 'transparent',\r\n borderColor: '#9854a7',\r\n pointBackgroundColor: '#9854a7',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)',\r\n fill: 'origin',\r\n }\r\n ],\r\n labels,\r\n };\r\n }\r\n \r\n parseDataForTotalQtyGraph(data) {\r\n const allInvoices = orderBy(data.reduce((accum, d) => {\r\n return [...accum, ...d.invoices]\r\n }, []), 'invoicedDate');\r\n const groupedInvoices = allInvoices.map((i) => {\r\n const invoicedDate = new Date(i.invoicedDate)\r\n const month = invoicedDate.toLocaleString('default', { month: 'long' });\r\n const year = invoicedDate.getFullYear();\r\n return {...i, group: `${invoicedDate.getMonth()}-${month} ${year}`}\r\n });\r\n const group = groupBy(groupedInvoices, (i) => i.group);\r\n const labels = Object.keys(group).map((m) => m.split('-')[1]);\r\n\r\n const datasets = data.reduce((accum, d) => {\r\n const randomColor = `#${Math.floor(Math.random() * 16777215).toString(\r\n 16,\r\n )}`;\r\n const value = d.invoices.reduce(\r\n (accum, invoice) => {\r\n const invoicedDate = new Date(invoice.invoicedDate)\r\n const month = invoicedDate.toLocaleString('default', { month: 'long' });\r\n const year = invoicedDate.getFullYear();\r\n const group = `${month} ${year}`\r\n\r\n const monthIndex = labels.findIndex((g) => g === group);\r\n accum[monthIndex] = accum[monthIndex] + invoice.qtyTotal;\r\n return accum;\r\n },\r\n labels.map(() => 0),\r\n );\r\n const item = {\r\n data: value,\r\n label: d.customer,\r\n backgroundColor: 'transparent',\r\n borderColor: randomColor,\r\n pointBackgroundColor: randomColor,\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)',\r\n fill: 'origin',\r\n };\r\n return [...accum, item];\r\n }, []);\r\n this.lineChartDataForQty = {\r\n datasets,\r\n labels,\r\n };\r\n }\r\n\r\n onTableRowClick(row) {\r\n this.filters.customerId = row.customerId;\r\n this.onFilter()\r\n }\r\n onFilterAllCustomer() {\r\n this.filters.customerId = 0;\r\n this.onFilter()\r\n }\r\n onRangeChange(months?: number){\r\n if (months == null) {\r\n this.filters.dateRangeFrom = `${DateTime.local().year}-01-01`\r\n this.filters.dateRangeTo = DateTime.local().toFormat('yyyy-MM-dd');\r\n } else {\r\n this.filters.dateRangeFrom = DateTime.local().minus({ months }).toFormat('yyyy-MM-dd');\r\n this.filters.dateRangeTo = DateTime.local().toFormat('yyyy-MM-dd');\r\n }\r\n this.onFilter();\r\n }\r\n onSetDateRange(config) {\r\n this.filters.dateRangeFrom = config.from;\r\n this.filters.dateRangeTo = config.to;\r\n this.onFilter();\r\n }\r\n getMonthsInDateRange(startDate, endDate) {\r\n let start = DateTime.fromISO(startDate);\r\n const end = DateTime.fromISO(endDate);\r\n const months = {};\r\n \r\n while (start <= end) {\r\n const monthName = start.toFormat('MMMM yyyy');\r\n const key = `${start.month}-${monthName}`\r\n months[key] = 0;\r\n start = start.plus({ months: 1 });\r\n }\r\n \r\n return months;\r\n }\r\n getWeeksInRange(startDate, endDate) {\r\n const weeks = [];\r\n\r\n let currentWeekStart = startDate;\r\n \r\n while (currentWeekStart <= endDate) {\r\n const currentWeekEnd = currentWeekStart.plus({ days: 6 });\r\n\r\n const startDay = currentWeekStart.toFormat(\"d\")\r\n const startMonth = currentWeekStart.toFormat(\"LLL\")\r\n const startYear = currentWeekStart.toFormat(\"yyyy\")\r\n\r\n const endDay = currentWeekEnd.toFormat(\"d\")\r\n const endMonth = currentWeekEnd.toFormat(\"LLL\")\r\n const endYear = currentWeekEnd.toFormat(\"yyyy\")\r\n\r\n const weekRange = `${startMonth} ${startDay}${startYear !== endYear ? `, ${startYear}` : ''}-${startMonth!==endMonth? `${endMonth} `: ''}${endDay}, ${endYear}`;\r\n const range = {\r\n label: weekRange,\r\n startDate: currentWeekStart,\r\n endDate: currentWeekEnd,\r\n total: 0\r\n }\r\n weeks.push(range);\r\n currentWeekStart = currentWeekEnd.plus({ days: 1 });\r\n }\r\n return weeks;\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n All Customers\r\n {{ totalBilledForCustomer | currency }}\r\n \r\n
    \r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n {{ element.customer }}\r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n {{ element.totalBilled | currency }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n Monthly\r\n Weekly\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Total Billed

    \r\n \r\n \r\n Data is based on invoices created\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport orderBy from 'lodash/orderBy';\r\nimport {\r\n WorkOrderJiraDetail,\r\n WorkOrderMovementHistory\r\n} from 'src/app/components/work-order-tracking/model';\r\nimport { JiraService } from 'src/app/services/jira.service';\r\nimport { WorkOrderMovementService } from 'src/app/services/work-order-movement.service';\r\nimport { WorkOrderMovementReport } from '../work-order-moved-report';\r\n\r\n@Component({\r\n selector: 'work-order-pd-movement',\r\n templateUrl: './pd-movement.component.html',\r\n styleUrls: ['./pd-movement.component.scss'],\r\n})\r\nexport class PDMovementComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n selectedItem: WorkOrderMovementReport = {} as WorkOrderMovementReport;\r\n displayedColumns = ['productName', 'jira_ID'];\r\n workOrderMovedItems = new MatTableDataSource([]);\r\n workOrderMovementHistory: WorkOrderMovementHistory[] = [];\r\n jiraDetail: WorkOrderJiraDetail | null = null;\r\n poLabel = 'PO';\r\n poValue = '-';\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private workOrderMovementService: WorkOrderMovementService,\r\n private jiraService: JiraService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getMovedWorkOrders();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.workOrderMovedItems.sort = this.sort;\r\n }\r\n\r\n getMovedWorkOrders() {\r\n this.workOrderMovementService\r\n .getPDMovementReportDateFilter()\r\n .subscribe((data) => {\r\n this.workOrderMovedItems.data = data;\r\n this.selectedItem = {} as WorkOrderMovementReport;\r\n this.jiraDetail = null;\r\n this.workOrderMovementHistory = [];\r\n this.poLabel = 'PO';\r\n this.poValue = '-';\r\n });\r\n }\r\n\r\n onSelectItem(item: WorkOrderMovementReport) {\r\n this.selectedItem = item;\r\n this.jiraDetail = null;\r\n this.onGetJiraDetails(item.jira_ID);\r\n }\r\n\r\n onGetJiraDetails(jiraId) {\r\n this.jiraService.scan(jiraId).subscribe((data = {}) => {\r\n this.jiraDetail = {\r\n jiraId: jiraId.toUpperCase(),\r\n name: data.summary ?? '[No Title]',\r\n picPath: data.defaultImage ?? 'assets/images/no-image.png',\r\n status: data.status ?? '[No Status]',\r\n description: data.description ?? { content: [] },\r\n };\r\n this.getPdWorkOrderMovement(jiraId);\r\n });\r\n }\r\n\r\n getPdWorkOrderMovement(jiraId) {\r\n this.workOrderMovementHistory = [];\r\n this.workOrderMovementService\r\n .getPdWorkOrderMovement(jiraId)\r\n .subscribe((data) => {\r\n this.workOrderMovementHistory = orderBy(\r\n data,\r\n 'pdWorkMovementID',\r\n 'asc',\r\n );\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n JIRA ID\r\n \r\n \r\n {{ element.jira_ID | uppercase }}\r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.productName }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n {{ jiraDetail.jiraId }}\r\n
    \r\n
    \r\n
    \r\n
    Status
    \r\n
    \r\n {{ jiraDetail.status ?? '-' }}\r\n
    \r\n
    \r\n
    \r\n
    Description
    \r\n
    \r\n 0\"\r\n style=\"color: white\"\r\n >\r\n {{ i.text }}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {{ selectedItem.productName }}\r\n
    \r\n
    \r\n
    \r\n

    Movement 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 \r\n \r\n
    EmployeeRoutingScan OutScan InTotal Time
    {{ item.userName }}\r\n {{ item.routingCode.activityDesc }}\r\n {{ item.scanOutTime }}{{ item.scanInTime }}\r\n {{ item.differenceInMinutes ?? 0 }}\r\n {{ item.differenceInMinutes === 1 ? 'min' : 'mins' }}\r\n
    \r\n No Movement Available\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    No Data Available
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n","import { Component, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'employee-down-time-error-dialog',\r\n templateUrl: './employee-down-time-error-dialog.component.html',\r\n styleUrls: ['./employee-down-time-error-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class EmployeeDownTimeErrorDialogComponent {\r\n displayedColumns: string[] = ['name'];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { names: string[] },\r\n ) {}\r\n}\r\n","

    \r\n \r\n \r\n \r\n \r\n End of Day Report Error\r\n

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

    \r\n An error encountered as some employee still has a pending work order.\r\n Listed below are some employees who checkout but haven't checked in 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
    Name{{ element }}
    No Employee Details
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n Close\r\n \r\n \r\n\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { DateTime } from 'luxon';\r\nimport { EmployeeDownTime } from 'src/app/components/work-order-tracking/model';\r\nimport { User } from 'src/app/core/authentication/user';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { WorkOrderMovementService } from 'src/app/services/work-order-movement.service';\r\nimport { EmployeeDownTimeErrorDialogComponent } from './employee-down-time-error-dialog/employee-down-time-error-dialog.component';\r\n\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'work-order-employee-down-time',\r\n templateUrl: './work-order-employee-down-time.component.html',\r\n styleUrls: ['./work-order-employee-down-time.component.scss'],\r\n})\r\nexport class WorkOrderEmployeeDownTimeComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n @ViewChild('employeeSort', { read: MatSort, static: true }) sort1: MatSort;\r\n @ViewChild('workOrderSort', { read: MatSort, static: true }) sort2: MatSort;\r\n @ViewChild('errorDialog')\r\n public readonly errorDialog!: SwalComponent;\r\n\r\n displayedColumnsForEmployee = ['selection', 'fullName', 'employeeID'];\r\n displayedColumnsForWorkOrder = [\r\n 'scanInTime',\r\n 'totalMinutesActive',\r\n 'workDayDifference',\r\n ];\r\n accounts = new MatTableDataSource([]);\r\n search = '';\r\n selectedUser: User | null = null;\r\n employeeDownTime = new MatTableDataSource([]);\r\n isSelectedAll = false;\r\n isSomeSelected = false;\r\n isDownloadingFile = false;\r\n filters: Filters = {\r\n dateRangeFrom: DateTime.local().toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n };\r\n isDateRange = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private workOrderMovementService: WorkOrderMovementService,\r\n private userService: UserService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.userService.getUsers().subscribe((data = []) => {\r\n this.accounts.data = data\r\n .filter((a) => a.active && a.timeTracked && a.employeeID)\r\n .map((account) => ({\r\n ...account,\r\n fullName: this.getFullName(account),\r\n }));\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.accounts.sort = this.sort1;\r\n\r\n this.accounts.filterPredicate = (data: User, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.fullName\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.employeeID?.toLowerCase().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n }\r\n\r\n getFullName(account: User) {\r\n const name = [];\r\n account.firstName && name.push(account.firstName);\r\n account.lastName && name.push(account.lastName);\r\n if (!name.length) {\r\n name.push(account.userName);\r\n }\r\n return name.join(' ');\r\n }\r\n\r\n onFilterChange() {\r\n this.accounts.filter = JSON.stringify({ search: this.search });\r\n }\r\n\r\n onSelectUser(user: User) {\r\n this.selectedUser = user;\r\n this.getEmployeeDownTime(user.usersID);\r\n }\r\n\r\n getEmployeeDownTime(userId: number) {\r\n this.workOrderMovementService\r\n .getEmployeeDownTime(userId)\r\n .subscribe((data) => {\r\n this.employeeDownTime.data = data;\r\n this.employeeDownTime.sort = this.sort2;\r\n });\r\n }\r\n\r\n selectAll(checked) {\r\n this.accounts.data = this.accounts.data.map((e) => ({\r\n ...e,\r\n selected: checked,\r\n }));\r\n this.isSelectedAll = checked;\r\n this.isSomeSelected = false;\r\n }\r\n\r\n onSelect() {\r\n const selected = this.accounts.data.filter((i) => i.selected);\r\n this.isSelectedAll = selected.length === this.accounts.data.length;\r\n this.isSomeSelected = selected.length > 0 && !this.isSelectedAll;\r\n }\r\n\r\n onGenerateReport() {\r\n const usersId = this.accounts.data.reduce((accum, a) => {\r\n if (a.selected) return [...accum, a.usersID];\r\n return accum;\r\n }, []);\r\n this.isDownloadingFile = true;\r\n this.workOrderMovementService\r\n .getEmployeeDownTimeReport(\r\n usersId,\r\n this.filters.dateRangeFrom,\r\n this.filters.dateRangeTo,\r\n )\r\n .subscribe(\r\n (response) => {\r\n if (response == null) {\r\n setTimeout(() => {\r\n this.errorDialog.fire();\r\n }, 100);\r\n this.isDownloadingFile = false;\r\n return;\r\n }\r\n const blob = new Blob([response], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n const selectedDate = DateTime.fromISO(this.filters.dateRangeFrom);\r\n a.download = `${selectedDate.toFormat('MM.dd.yyyy')} ${\r\n selectedDate.weekdayLong\r\n } Employee Down Time.xlsx`;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n this.isDownloadingFile = false;\r\n },\r\n (employeeList) => {\r\n this.isDownloadingFile = false;\r\n this.dialog.open(EmployeeDownTimeErrorDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '450px',\r\n width: '100%',\r\n data: {\r\n names: employeeList.reduce((accum, a) => {\r\n return [...accum, `${a.firstName} ${a.lastName}`];\r\n }, []),\r\n },\r\n });\r\n },\r\n );\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filters.dateRangeFrom = start;\r\n this.filters.dateRangeTo = end;\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n End of Day Report\r\n \r\n
    \r\n \r\n Search...\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.fullName }}\r\n \r\n \r\n \r\n \r\n Employee ID\r\n \r\n \r\n {{ element.employeeID || '–' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {{ selectedUser?.fullName }}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Date\r\n \r\n \r\n {{ element.scanInTime | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Total Minutes Active\r\n \r\n \r\n {{ element.totalMinutesActive }}\r\n \r\n \r\n \r\n \r\n Workday Difference\r\n \r\n \r\n {{ element.workDayDifference }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n\r\n\r\n\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { WorkOrderPrintDialogComponent } from 'src/app/components/work-order-view/work-order-print/work-order-print-dialog.component';\r\nimport { User } from 'src/app/core/authentication/user';\r\nimport { ScanService } from 'src/app/services/scan.service';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { WorkOrderMovementService } from 'src/app/services/work-order-movement.service';\r\nimport { WorkOrderMovementEmployeeUI } from '../model';\r\n\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'work-order-employee',\r\n templateUrl: './work-order-employee.component.html',\r\n styleUrls: ['./work-order-employee.component.scss'],\r\n})\r\nexport class WorkOrderEmployeeComponent implements OnInit, AfterViewInit {\r\n @ViewChild('employeeSort', { read: MatSort, static: true }) sort1: MatSort;\r\n @ViewChild('workOrderSort', { read: MatSort, static: true }) sort2: MatSort;\r\n\r\n displayedColumnsForEmployee = ['fullName', 'employeeID'];\r\n displayedColumnsForWorkOrder = [\r\n 'workOrdersId',\r\n 'picturePath',\r\n 'productName',\r\n 'activityDesc',\r\n 'scanOutTimeRaw',\r\n 'scanInTimeRaw',\r\n 'differenceInMinutes',\r\n ];\r\n accounts = new MatTableDataSource([]);\r\n search = '';\r\n selectedUser: User | null = null;\r\n employeeWorkOrderMovements =\r\n new MatTableDataSource([]);\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private workOrderMovementService: WorkOrderMovementService,\r\n private scanService: ScanService,\r\n private userService: UserService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.userService.getUsers().subscribe((data = []) => {\r\n this.accounts.data = data\r\n .filter((data) => data.active)\r\n .map((account) => ({\r\n ...account,\r\n fullName: this.getFullName(account),\r\n }));\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.accounts.sort = this.sort1;\r\n\r\n this.accounts.filterPredicate = (data: User, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.fullName\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.employeeID?.toLowerCase().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n }\r\n\r\n getFullName(account: User) {\r\n const name = [];\r\n account.firstName && name.push(account.firstName);\r\n account.lastName && name.push(account.lastName);\r\n if (!name.length) {\r\n name.push(account.userName);\r\n }\r\n return name.join(' ');\r\n }\r\n\r\n onFilterChange() {\r\n this.accounts.filter = JSON.stringify({ search: this.search });\r\n }\r\n\r\n onPrintWorkOrder(workOrdersId: number) {\r\n this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder: {\r\n printedDate: '',\r\n releasedDate: '',\r\n dateClosed: '',\r\n workOrdersId,\r\n },\r\n },\r\n });\r\n }\r\n onSelectUser(user: User) {\r\n this.selectedUser = user;\r\n this.getEmployeeWorkOrderMovement(user.usersID);\r\n }\r\n\r\n getEmployeeWorkOrderMovement(userId: number) {\r\n this.workOrderMovementService\r\n .getWorkOrderMovementReportByUser(userId)\r\n .subscribe((data) => {\r\n this.employeeWorkOrderMovements.data = data;\r\n this.employeeWorkOrderMovements.sort = this.sort2;\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Search...\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.fullName }}\r\n \r\n \r\n \r\n \r\n Employee ID\r\n \r\n \r\n {{ element.employeeID || '–' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {{ selectedUser?.fullName }}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Pic\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n WKO#\r\n \r\n \r\n \r\n {{ element.workOrdersId }}\r\n
    \r\n \r\n \r\n \r\n \r\n Product Name\r\n \r\n \r\n {{ element.productName }}\r\n \r\n \r\n \r\n \r\n Routing\r\n \r\n \r\n {{ element.activityDesc }}\r\n \r\n \r\n \r\n \r\n Scan Out\r\n \r\n \r\n {{ element.scanOutTime }}\r\n \r\n \r\n \r\n \r\n Scan In\r\n \r\n \r\n {{ element.scanInTime }}\r\n \r\n \r\n \r\n \r\n Total Time\r\n \r\n \r\n {{ element.differenceInMinutes ?? 0 }}\r\n {{ element.differenceInMinutes === 1 ? 'min' : 'mins' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { forkJoin } from 'rxjs';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport {\r\n WorkOrderJiraDetail,\r\n WorkOrderMovementHistory,\r\n WorkOrderTracking,\r\n} from 'src/app/components/work-order-tracking/model';\r\nimport { WorkOrderPrintDialogComponent } from 'src/app/components/work-order-view/work-order-print/work-order-print-dialog.component';\r\nimport { WORK_ORDER_MOVEMENT_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/work-order-movement-permission';\r\nimport { JiraService } from 'src/app/services/jira.service';\r\nimport { ScanService } from 'src/app/services/scan.service';\r\nimport { WorkOrderMovementService } from 'src/app/services/work-order-movement.service';\r\nimport { WorkOrderMovementReport } from '../work-order-moved-report';\r\n\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'work-order-incomplete',\r\n templateUrl: './work-order-incomplete.component.html',\r\n styleUrls: ['./work-order-incomplete.component.scss'],\r\n})\r\nexport class WorkOrderIncompleteComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n selectedItem: WorkOrderMovementReport = {} as WorkOrderMovementReport;\r\n displayedColumns = ['picturePath', 'productName', 'valueDisplay', 'action'];\r\n workOrderMovedItems = new MatTableDataSource([]);\r\n workOrderMovementHistory: WorkOrderMovementHistory[] = [];\r\n workOrderTracking: WorkOrderTracking | null = null;\r\n jiraDetail: WorkOrderJiraDetail | null = null;\r\n isJira = false;\r\n poLabel = 'PO';\r\n poValue = '-';\r\n featureKey = WORK_ORDER_MOVEMENT_FEATURE_KEY;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private workOrderMovementService: WorkOrderMovementService,\r\n private scanService: ScanService,\r\n private jiraService: JiraService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getMovedWorkOrders();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.workOrderMovedItems.sort = this.sort;\r\n }\r\n\r\n getMovedWorkOrders() {\r\n this.workOrderMovementService\r\n .getWorkOrderMovementReportIncomplete()\r\n .subscribe((data) => {\r\n this.workOrderMovedItems.data = data;\r\n this.selectedItem = {} as WorkOrderMovementReport;\r\n this.workOrderTracking = null;\r\n this.workOrderMovementHistory = [];\r\n this.poLabel = 'PO';\r\n this.poValue = '-';\r\n });\r\n }\r\n onSelectItem(item: WorkOrderMovementReport) {\r\n this.selectedItem = item;\r\n if ((item.jira_ID ?? '') !== '') {\r\n this.isJira = true;\r\n this.jiraDetail = null;\r\n this.onGetJiraDetails(item.jira_ID);\r\n } else {\r\n this.isJira = false;\r\n this.jiraDetail = null;\r\n this.getWorkOrderDetails(item.workOrdersId);\r\n }\r\n }\r\n\r\n onGetJiraDetails(jiraId) {\r\n this.jiraService.scan(jiraId).subscribe((data = {}) => {\r\n this.jiraDetail = {\r\n jiraId: jiraId.toUpperCase(),\r\n name: data.summary ?? '[No Title]',\r\n picPath: data.defaultImage ?? 'assets/images/no-image.png',\r\n status: data.status ?? '[No Status]',\r\n description: data.description ?? { content: [] },\r\n };\r\n this.getPdWorkOrderMovement(jiraId);\r\n });\r\n }\r\n getPdWorkOrderMovement(jiraId) {\r\n this.workOrderMovementHistory = [];\r\n this.workOrderMovementService\r\n .getPdWorkOrderMovement(jiraId)\r\n .subscribe((data) => {\r\n this.workOrderMovementHistory = orderBy(\r\n data,\r\n 'pdWorkMovementID',\r\n 'asc',\r\n );\r\n });\r\n }\r\n getWorkOrderDetails(workOrderId) {\r\n forkJoin([\r\n this.scanService.scanWorkOrder(workOrderId),\r\n this.workOrderMovementService.getWorkOrderMovement(workOrderId),\r\n ]).subscribe(([data, history]) => {\r\n this.workOrderTracking = data;\r\n this.workOrderMovementHistory = orderBy(\r\n history,\r\n 'workOrdersMovementID',\r\n 'asc',\r\n );\r\n if (this.workOrderTracking) {\r\n const { poExternal, poInternal } = this.workOrderTracking.purchaseOrder;\r\n const hasExternalAndInternal = poExternal && poInternal;\r\n const isEqual = poExternal === poInternal;\r\n this.poLabel =\r\n hasExternalAndInternal && !isEqual ? 'PO External / Internal' : 'PO';\r\n this.poValue =\r\n hasExternalAndInternal && !isEqual\r\n ? `${poExternal} / ${poInternal}`\r\n : poExternal || poInternal;\r\n }\r\n });\r\n }\r\n onPrintWorkOrder() {\r\n if (this.workOrderTracking.workOrder.workOrdersId <= 0) return;\r\n this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder: {\r\n printedDate: '',\r\n releasedDate: '',\r\n dateClosed: this.workOrderTracking?.workOrder?.closedDate ?? '',\r\n workOrdersId: this.workOrderTracking.workOrder.workOrdersId,\r\n },\r\n },\r\n });\r\n }\r\n\r\n onCancelWorkOrder(item: WorkOrderMovementReport) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Cancel Open Work Order',\r\n content: 'Are you sure you want to cancel open work order?',\r\n confirmLabel: 'Yes, cancel it.',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n if ((item.jira_ID ?? '') !== '') {\r\n this.workOrderMovementService\r\n .deletePdMovement(item.workOrdersMovementID)\r\n .subscribe(() => {\r\n this.getMovedWorkOrders();\r\n });\r\n } else {\r\n this.workOrderMovementService\r\n .deleteWorkOrderMovement(item.workOrdersMovementID)\r\n .subscribe(() => {\r\n this.getMovedWorkOrders();\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Pic\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n WKO#\r\n \r\n \r\n {{ element.valueDisplay }}\r\n \r\n \r\n \r\n \r\n Product Name\r\n \r\n \r\n {{ element.productName }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ workOrderTracking?.material?.description }}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {{ workOrderTracking?.primaryMaterial?.code }}\r\n
    \r\n \r\n {{ workOrderTracking?.secondaryMaterial?.code }}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n WKO# {{ selectedItem.workOrdersId }}\r\n
    \r\n
    \r\n
    \r\n
    Total QTY
    \r\n
    \r\n {{ workOrderTracking?.totalQty ?? '-' }}\r\n
    \r\n
    \r\n
    \r\n
    SKU
    \r\n
    \r\n {{ workOrderTracking?.product?.sku ?? '-' }}\r\n
    \r\n
    \r\n
    \r\n
    {{ poLabel }}
    \r\n
    {{ poValue }}
    \r\n
    \r\n
    \r\n
    Due Date
    \r\n
    \r\n {{\r\n workOrderTracking?.purchaseOrder?.requiredDate\r\n | date : 'MM/dd/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 {{ jiraDetail.jiraId }}\r\n
    \r\n
    \r\n
    \r\n
    Status
    \r\n
    \r\n {{ jiraDetail.status ?? '-' }}\r\n
    \r\n
    \r\n
    \r\n
    Description
    \r\n
    \r\n 0\"\r\n style=\"color: white\"\r\n >\r\n {{ i.text }}\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {{ selectedItem.productName }}\r\n
    \r\n
    \r\n
    \r\n

    Movement 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 \r\n \r\n
    EmployeeRoutingScan OutScan InTotal Time
    {{ item.userName }}\r\n {{ item.routingCode.activityDesc }}\r\n {{ item.scanOutTime }}{{ item.scanInTime }}\r\n {{ item.differenceInMinutes ?? 0 }}\r\n {{ item.differenceInMinutes === 1 ? 'min' : 'mins' }}\r\n
    \r\n No Movement Available\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    No Data Available
    \r\n
    \r\n \r\n \r\n \r\n\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { forkJoin } from 'rxjs';\r\nimport {\r\n WorkOrderJiraDetail,\r\n WorkOrderMovementHistory,\r\n WorkOrderTracking,\r\n} from 'src/app/components/work-order-tracking/model';\r\nimport { WorkOrderPrintDialogComponent } from 'src/app/components/work-order-view/work-order-print/work-order-print-dialog.component';\r\nimport { JiraService } from 'src/app/services/jira.service';\r\nimport { ScanService } from 'src/app/services/scan.service';\r\nimport { WorkOrderMovementService } from 'src/app/services/work-order-movement.service';\r\nimport { WorkOrderMovementReport } from '../work-order-moved-report';\r\n\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'work-order-moved',\r\n templateUrl: './work-order-moved.component.html',\r\n styleUrls: ['./work-order-moved.component.scss'],\r\n})\r\nexport class WorkOrderMovedComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n filters: Filters = {\r\n dateRangeFrom: DateTime.local().toFormat('yyyy-MM-dd'),\r\n dateRangeTo: DateTime.local().toFormat('yyyy-MM-dd'),\r\n };\r\n selectedItem: WorkOrderMovementReport = {} as WorkOrderMovementReport;\r\n displayedColumns = ['picturePath', 'productName', 'valueDisplay'];\r\n workOrderMovedItems = new MatTableDataSource([]);\r\n workOrderMovementHistory: WorkOrderMovementHistory[] = [];\r\n workOrderTracking: WorkOrderTracking | null = null;\r\n jiraDetail: WorkOrderJiraDetail | null = null;\r\n isJira = false;\r\n poLabel = 'PO';\r\n poValue = '-';\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private workOrderMovementService: WorkOrderMovementService,\r\n private scanService: ScanService,\r\n private jiraService: JiraService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getMovedWorkOrders();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.workOrderMovedItems.sort = this.sort;\r\n }\r\n\r\n onDateRangeChange({ start, end }) {\r\n this.filters.dateRangeFrom = start;\r\n this.filters.dateRangeTo = end;\r\n this.getMovedWorkOrders();\r\n }\r\n\r\n getMovedWorkOrders() {\r\n this.workOrderMovementService\r\n .getWorkOrderMovementReportDateFilter({\r\n from: this.filters.dateRangeFrom,\r\n to: this.filters.dateRangeTo,\r\n })\r\n .subscribe((data) => {\r\n this.workOrderMovedItems.data = data;\r\n this.selectedItem = {} as WorkOrderMovementReport;\r\n this.workOrderTracking = null;\r\n this.workOrderMovementHistory = [];\r\n this.poLabel = 'PO';\r\n this.poValue = '-';\r\n });\r\n }\r\n onSelectItem(item: WorkOrderMovementReport) {\r\n this.selectedItem = item;\r\n if ((item.jira_ID ?? '') !== '') {\r\n this.isJira = true;\r\n this.jiraDetail = null;\r\n this.onGetJiraDetails(item.jira_ID);\r\n } else {\r\n this.isJira = false;\r\n this.jiraDetail = null;\r\n this.getWorkOrderDetails(item.workOrdersId);\r\n }\r\n }\r\n\r\n onGetJiraDetails(jiraId) {\r\n this.jiraService.scan(jiraId).subscribe(\r\n (data = {}) => {\r\n this.jiraDetail = {\r\n jiraId: jiraId.toUpperCase(),\r\n name: data.summary ?? '[No Title]',\r\n picPath: data.defaultImage ?? 'assets/images/no-image.png',\r\n status: data.status ?? '[No Status]',\r\n description: data.description ?? { content: [] },\r\n };\r\n this.getPdWorkOrderMovement(jiraId);\r\n });\r\n }\r\n getWorkOrderDetails(workOrderId) {\r\n this.workOrderMovementHistory = [];\r\n forkJoin([\r\n this.scanService.scanWorkOrder(workOrderId),\r\n this.workOrderMovementService.getWorkOrderMovement(workOrderId),\r\n ]).subscribe(([data, history]) => {\r\n this.workOrderTracking = data;\r\n this.workOrderMovementHistory = orderBy(\r\n history,\r\n 'workOrdersMovementID',\r\n 'asc',\r\n );\r\n if (this.workOrderTracking) {\r\n const { poExternal, poInternal } = this.workOrderTracking.purchaseOrder;\r\n const hasExternalAndInternal = poExternal && poInternal;\r\n const isEqual = poExternal === poInternal;\r\n this.poLabel =\r\n hasExternalAndInternal && !isEqual ? 'PO External / Internal' : 'PO';\r\n this.poValue =\r\n hasExternalAndInternal && !isEqual\r\n ? `${poExternal} / ${poInternal}`\r\n : poExternal || poInternal;\r\n }\r\n });\r\n }\r\n\r\n getPdWorkOrderMovement(jiraId) {\r\n this.workOrderMovementHistory = [];\r\n this.workOrderMovementService\r\n .getPdWorkOrderMovement(jiraId)\r\n .subscribe((data) => {\r\n this.workOrderMovementHistory = orderBy(\r\n data,\r\n 'pdWorkMovementID',\r\n 'asc',\r\n );\r\n });\r\n }\r\n onPrintWorkOrder() {\r\n if (this.workOrderTracking.workOrder.workOrdersId <= 0) return;\r\n this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder: {\r\n printedDate: '',\r\n releasedDate: '',\r\n dateClosed: this.workOrderTracking?.workOrder?.closedDate ?? '',\r\n workOrdersId: this.workOrderTracking.workOrder.workOrdersId,\r\n },\r\n },\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n Pic\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n WKO#\r\n \r\n \r\n {{ element.valueDisplay }}\r\n \r\n \r\n \r\n \r\n Product Name\r\n \r\n \r\n {{ element.productName }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ workOrderTracking?.material?.description }}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {{ workOrderTracking?.primaryMaterial?.code }}\r\n
    \r\n \r\n {{ workOrderTracking?.secondaryMaterial?.code }}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n WKO# {{ selectedItem.workOrdersId }}\r\n
    \r\n
    \r\n
    \r\n
    Total QTY
    \r\n
    \r\n {{ workOrderTracking?.totalQty ?? '-' }}\r\n
    \r\n
    \r\n
    \r\n
    SKU
    \r\n
    \r\n {{ workOrderTracking?.product?.sku ?? '-' }}\r\n
    \r\n
    \r\n
    \r\n
    {{ poLabel }}
    \r\n
    {{ poValue }}
    \r\n
    \r\n
    \r\n
    Due Date
    \r\n
    \r\n {{\r\n workOrderTracking?.purchaseOrder?.requiredDate\r\n | date : 'MM/dd/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 {{ jiraDetail.jiraId }}\r\n
    \r\n
    \r\n
    \r\n
    Status
    \r\n
    \r\n {{ jiraDetail.status ?? '-' }}\r\n
    \r\n
    \r\n
    \r\n
    Description
    \r\n
    \r\n 0\"\r\n style=\"color: white\"\r\n >\r\n {{ i.text }}\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {{ selectedItem.productName }}\r\n
    \r\n
    \r\n
    \r\n

    Movement 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 \r\n \r\n
    EmployeeRoutingScan OutScan InTotal Time
    {{ item.userName }}\r\n {{ item.routingCode.activityDesc }}\r\n {{ item.scanOutTime }}{{ item.scanInTime }}\r\n {{ item.differenceInMinutes ?? 0 }}\r\n {{ item.differenceInMinutes === 1 ? 'min' : 'mins' }}\r\n
    \r\n No Movement Available\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    No Data Available
    \r\n
    \r\n \r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\n\r\ninterface Filters {\r\n dateRangeFrom?: string;\r\n dateRangeTo?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'work-order-movement',\r\n templateUrl: './work-order-movement.component.html',\r\n styleUrls: ['./work-order-movement.component.scss'],\r\n})\r\nexport class WorkOrderMovementComponent {\r\n constructor(private userPermissionService: UserPermissionService) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.workOrderMovement);\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { InvoiceItemType } from 'src/app/components/invoicing-shipping/invoicing/models/invoice';\r\nimport { WorkOrderPrintDialogComponent } from 'src/app/components/work-order-view/work-order-print/work-order-print-dialog.component';\r\nimport { WorkOrderMovementService } from 'src/app/services/work-order-movement.service';\r\nimport { ProductLookup } from '../model';\r\nimport {\r\n WorkOrderMovementActivitySummary,\r\n WorkOrderMovementProductActivity,\r\n} from '../work-order-moved-report';\r\n\r\ninterface ItemModel {\r\n id: number;\r\n name: string;\r\n type: InvoiceItemType;\r\n}\r\n\r\n@Component({\r\n selector: 'work-order-process-comparison',\r\n templateUrl: './work-order-process-comparison.component.html',\r\n styleUrls: ['./work-order-process-comparison.component.scss'],\r\n})\r\nexport class WorkOrderProcessComparisonComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns = [\r\n 'workOrdersId',\r\n 'activityDesc',\r\n 'employeeName',\r\n 'scanInTime',\r\n 'operationResult',\r\n ];\r\n productActivity: WorkOrderMovementProductActivity[] = [];\r\n activitySummary = new MatTableDataSource(\r\n [],\r\n );\r\n productLookup: ProductLookup[] = [];\r\n productLookupControl = new FormControl();\r\n filteredProductLookup: Observable;\r\n selectedProductLookup: ProductLookup = {} as ProductLookup;\r\n selectedRoutingCodeId: number;\r\n selectedProduct: { productId: number; productType: number } = {} as {\r\n productId: number;\r\n productType: number;\r\n };\r\n selectedMedianTime: number = 0;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private workOrderMovementService: WorkOrderMovementService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.workOrderMovementService.getProductLookup().subscribe((products) => {\r\n this.productLookup = products;\r\n this.filteredProductLookup = this.productLookupControl.valueChanges.pipe(\r\n startWith(this.selectedProductLookup.productName),\r\n map((value) => this._filterProduct(value)),\r\n );\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.activitySummary.sort = this.sort;\r\n }\r\n\r\n private _filterProduct(name: string): ProductLookup[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name?.toLowerCase();\r\n return this.productLookup.filter((option) =>\r\n option.productName?.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['productName'];\r\n return this.productLookup.filter((option) =>\r\n option.productName?.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.productLookup;\r\n }\r\n\r\n getProductActivity(productsId, type) {\r\n this.selectedProduct.productId = productsId;\r\n this.selectedProduct.productType = type;\r\n this.selectedRoutingCodeId = 0;\r\n this.workOrderMovementService\r\n .getWorkOrderMovementProductActivity(productsId, type)\r\n .subscribe((data) => {\r\n this.productActivity = data;\r\n });\r\n }\r\n\r\n getActivitySummary() {\r\n this.workOrderMovementService\r\n .getWorkOrderMovementActivitySummary(\r\n this.selectedRoutingCodeId,\r\n this.selectedProduct.productId,\r\n this.selectedProduct.productType,\r\n )\r\n .subscribe((data) => {\r\n this.activitySummary.data = data;\r\n });\r\n this.workOrderMovementService\r\n .getWorkOrderMovementActivitySummaryMedian(\r\n this.selectedRoutingCodeId,\r\n this.selectedProduct.productId,\r\n this.selectedProduct.productType,\r\n )\r\n .subscribe((data) => {\r\n this.selectedMedianTime = data || 0;\r\n });\r\n }\r\n onSelectProduct(product: string | ProductLookup) {\r\n if (typeof product === 'string' || (product?.productsId ?? 0) === 0) return;\r\n this.getProductActivity(product?.productsId, product?.itemType);\r\n }\r\n\r\n displayValue(item: ProductLookup) {\r\n return item?.productName ?? '';\r\n }\r\n\r\n onPrintWorkOrder(workOrderId) {\r\n if (!workOrderId) return;\r\n this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder: {\r\n printedDate: '',\r\n releasedDate: '',\r\n dateClosed: '',\r\n workOrdersId: workOrderId,\r\n },\r\n },\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Search products\r\n \r\n \r\n \r\n {{ option.productName }}\r\n \r\n \r\n \r\n \r\n Operation\r\n \r\n {{ activity.activityDesc }}\r\n \r\n \r\n
    \r\n

    Median Time:

    \r\n

    {{ selectedMedianTime || 0 }}

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Work Order #\r\n \r\n \r\n {{ element.workOrdersId }}\r\n \r\n \r\n \r\n \r\n Operation you selected\r\n \r\n \r\n {{ element.activityDesc }}\r\n \r\n \r\n \r\n \r\n Employee\r\n \r\n \r\n {{ element.employeeName }}\r\n \r\n \r\n \r\n \r\n Check In\r\n \r\n \r\n {{ element.scanInTimeString }}\r\n \r\n \r\n \r\n \r\n (Time of operations / work order QTY)\r\n \r\n \r\n {{ element.operationResult }}\r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { forkJoin, Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { InvoiceItemType } from 'src/app/components/invoicing-shipping/invoicing/models/invoice';\r\nimport {\r\n WorkOrderMovementHistory,\r\n WorkOrderTracking,\r\n} from 'src/app/components/work-order-tracking/model';\r\nimport { WorkOrderPrintDialogComponent } from 'src/app/components/work-order-view/work-order-print/work-order-print-dialog.component';\r\nimport { ScanService } from 'src/app/services/scan.service';\r\nimport { WorkOrderMovementService } from 'src/app/services/work-order-movement.service';\r\nimport { ProductLookup } from '../model';\r\nimport { WorkOrderMovementReport } from '../work-order-moved-report';\r\n\r\ninterface ItemModel {\r\n id: number;\r\n name: string;\r\n type: InvoiceItemType;\r\n}\r\n\r\n@Component({\r\n selector: 'work-order-product-search',\r\n templateUrl: './work-order-product-search.component.html',\r\n styleUrls: ['./work-order-product-search.component.scss'],\r\n})\r\nexport class WorkOrderProductSearchComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n selectedItem: WorkOrderMovementReport = {} as WorkOrderMovementReport;\r\n displayedColumns = ['picturePath', 'productName', 'workOrdersId'];\r\n workOrderMovedItems = new MatTableDataSource([]);\r\n workOrderMovementHistory: WorkOrderMovementHistory[] = [];\r\n workOrderTracking: WorkOrderTracking | null = null;\r\n poLabel = 'PO';\r\n poValue = '-';\r\n productLookup: ProductLookup[] = [];\r\n productLookupControl = new FormControl();\r\n filteredProductLookup: Observable;\r\n selectedProductLookup: ProductLookup = {} as ProductLookup;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private workOrderMovementService: WorkOrderMovementService,\r\n private scanService: ScanService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.workOrderMovementService.getProductLookup().subscribe((products) => {\r\n this.productLookup = products;\r\n this.filteredProductLookup = this.productLookupControl.valueChanges.pipe(\r\n startWith(this.selectedProductLookup.productName),\r\n map((value) => this._filterProduct(value)),\r\n );\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.workOrderMovedItems.sort = this.sort;\r\n }\r\n\r\n private _filterProduct(name: string): ProductLookup[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name?.toLowerCase();\r\n return this.productLookup.filter((option) =>\r\n option.productName?.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['productName'];\r\n return this.productLookup.filter((option) =>\r\n option.productName?.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.productLookup;\r\n }\r\n\r\n getMovedWorkOrders(productsId) {\r\n this.workOrderMovementService\r\n .getWorkOrderMovementReportSearch(productsId)\r\n .subscribe((data) => {\r\n this.workOrderMovedItems.data = data;\r\n this.selectedItem = {} as WorkOrderMovementReport;\r\n this.workOrderTracking = null;\r\n this.workOrderMovementHistory = [];\r\n this.poLabel = 'PO';\r\n this.poValue = '-';\r\n });\r\n }\r\n onSelectProduct(product: string | ProductLookup) {\r\n if (typeof product === 'string' || (product?.productsId ?? 0) === 0) return;\r\n this.getMovedWorkOrders(product?.productsId);\r\n }\r\n onSelectItem(item: WorkOrderMovementReport) {\r\n this.selectedItem = item;\r\n this.getWorkOrderDetails(item.workOrdersId);\r\n }\r\n getWorkOrderDetails(workOrderId) {\r\n forkJoin([\r\n this.scanService.scanWorkOrder(workOrderId),\r\n this.workOrderMovementService.getWorkOrderMovement(workOrderId),\r\n ]).subscribe(([data, history]) => {\r\n this.workOrderTracking = data;\r\n this.workOrderMovementHistory = orderBy(\r\n history,\r\n 'workOrdersMovementID',\r\n 'asc',\r\n );\r\n if (this.workOrderTracking) {\r\n const { poExternal, poInternal } = this.workOrderTracking.purchaseOrder;\r\n const hasExternalAndInternal = poExternal && poInternal;\r\n const isEqual = poExternal === poInternal;\r\n this.poLabel =\r\n hasExternalAndInternal && !isEqual ? 'PO External / Internal' : 'PO';\r\n this.poValue =\r\n hasExternalAndInternal && !isEqual\r\n ? `${poExternal} / ${poInternal}`\r\n : poExternal || poInternal;\r\n }\r\n });\r\n }\r\n\r\n displayValue(item: ProductLookup) {\r\n return item?.productName ?? '';\r\n }\r\n\r\n onPrintWorkOrder() {\r\n if (this.workOrderTracking.workOrder.workOrdersId <= 0) return;\r\n this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder: {\r\n printedDate: '',\r\n releasedDate: '',\r\n dateClosed: this.workOrderTracking?.workOrder?.closedDate ?? '',\r\n workOrdersId: this.workOrderTracking.workOrder.workOrdersId,\r\n },\r\n },\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Search products\r\n \r\n \r\n \r\n {{ option.productName }}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Pic\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n WKO#\r\n \r\n \r\n {{ element.workOrdersId }}\r\n \r\n \r\n \r\n \r\n Product Name\r\n \r\n \r\n {{ element.productName }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{ workOrderTracking?.material?.description }}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {{ workOrderTracking?.primaryMaterial?.code }}\r\n
    \r\n \r\n {{ workOrderTracking?.secondaryMaterial?.code }}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n WKO# {{ selectedItem.workOrdersId }}\r\n
    \r\n
    \r\n
    \r\n
    Total QTY
    \r\n
    \r\n {{ workOrderTracking?.totalQty ?? '-' }}\r\n
    \r\n
    \r\n
    \r\n
    SKU
    \r\n
    \r\n {{ workOrderTracking?.product?.sku ?? '-' }}\r\n
    \r\n
    \r\n
    \r\n
    {{ poLabel }}
    \r\n
    {{ poValue }}
    \r\n
    \r\n
    \r\n
    Due Date
    \r\n
    \r\n {{\r\n workOrderTracking?.purchaseOrder?.requiredDate\r\n | date : 'MM/dd/yyyy'\r\n }}\r\n -\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {{ selectedItem.productName }}\r\n
    \r\n
    \r\n
    \r\n

    Movement 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 \r\n \r\n
    EmployeeRoutingScan OutScan InTotal Time
    {{ item.userName }}\r\n {{ item.routingCode.activityDesc }}\r\n {{ item.scanOutTime }}{{ item.scanInTime }}\r\n {{ item.differenceInMinutes ?? 0 }}\r\n {{ item.differenceInMinutes === 1 ? 'min' : 'mins' }}\r\n
    \r\n No Movement Available\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    No Data Available
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Finding } from 'src/app/components/riva-findings/model';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { ChainFinishBillOfMaterial } from '../models';\r\n\r\n@Component({\r\n templateUrl: './chain-finish-bom-dialog.component.html',\r\n styleUrls: ['./chain-finish-bom-dialog.component.scss'],\r\n})\r\nexport class ChainFinishBomDialogComponent implements OnInit {\r\n isSaving = false;\r\n chainFinishBom: ChainFinishBillOfMaterial = {} as ChainFinishBillOfMaterial;\r\n findingControl = new FormControl();\r\n finding: Finding = {} as Finding;\r\n findings: Finding[] = [];\r\n filteredFindings: Observable;\r\n imageFiles: FileList | null = null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { chainFinishedID: number },\r\n\r\n private toastrService: ToastrService,\r\n private chainService: ChainService,\r\n private findingsService: FindingsService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getFindings();\r\n }\r\n\r\n getFindings() {\r\n this.findingsService.getFindingList().subscribe((data) => {\r\n this.findings = data;\r\n\r\n this.filteredFindings = this.findingControl.valueChanges.pipe(\r\n startWith(this.finding.findingsTypeName),\r\n map((value) => this._filterFinding(value)),\r\n );\r\n });\r\n }\r\n\r\n private _filterFinding(name: string): Finding[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.findings.filter((option) =>\r\n option.findingsTypeName.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['findingsTypeName'];\r\n return this.findings.filter((option) =>\r\n option.findingsTypeName\r\n .toLowerCase()\r\n .includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.findings;\r\n }\r\n\r\n get isFormValid() {\r\n return this.finding.findingsId && this.chainFinishBom.qty > 0;\r\n }\r\n\r\n displayFn(item: Finding): string {\r\n return item?.findingsTypeName\r\n ? `${item?.findingsTypeName} (${item?.sizeLabel})`\r\n : '';\r\n }\r\n\r\n onSaveChainFinishBom() {\r\n this.chainFinishBom.chainFinishedID = this.props.chainFinishedID;\r\n this.chainFinishBom.findingsID = this.finding.findingsId;\r\n this.isSaving = true;\r\n this.chainService\r\n .setChainFinishedBom(this.chainFinishBom)\r\n .subscribe((id) => {\r\n this.toastrService.success('Chain BOM successfully saved.');\r\n this.dialogRef.close(id);\r\n });\r\n }\r\n}\r\n","
    \r\n

    New Finish Chain BOM

    \r\n \r\n \r\n Findings\r\n \r\n \r\n \r\n
    \r\n
    Name
    \r\n
    Size
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Name
    \r\n
    Size
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ finding.findingsTypeName }}\r\n
    \r\n
    {{ finding.sizeLabel }}
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n \r\n Qty\r\n \r\n \r\n \r\n Comment\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { ChainRaw } from '../../riva-chain/models';\r\nimport { ChainFinish } from '../models';\r\n\r\n@Component({\r\n templateUrl: './chain-finish-dialog.component.html',\r\n styleUrls: ['./chain-finish-dialog.component.scss'],\r\n})\r\nexport class ChainFinishDialogComponent implements OnInit {\r\n isSaving = false;\r\n chainFinish: ChainFinish = {\r\n name: '',\r\n description: '',\r\n } as ChainFinish;\r\n chainRawControl = new FormControl();\r\n chainRaw: ChainRaw = {} as ChainRaw;\r\n chainRaws: ChainRaw[] = [];\r\n filteredChainRaws: Observable;\r\n imageFiles: FileList | null = null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n private toastrService: ToastrService,\r\n private chainService: ChainService,\r\n private sanitizer: DomSanitizer,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getChainRaws();\r\n }\r\n\r\n getChainRaws() {\r\n this.chainService.getChainRaws().subscribe((data) => {\r\n this.chainRaws = orderBy(data, ['styleName']);\r\n\r\n this.filteredChainRaws = this.chainRawControl.valueChanges.pipe(\r\n startWith(this.chainRaw.styleName),\r\n map((value) => this._filterChainRaw(value)),\r\n );\r\n });\r\n }\r\n\r\n private _filterChainRaw(name: string): ChainRaw[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.chainRaws.filter(\r\n (option) =>\r\n option.styleName.toLowerCase().includes(filterValue) ||\r\n option.sku.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['styleName'];\r\n return this.chainRaws.filter(\r\n (option) =>\r\n option.styleName.toLowerCase().includes(filterValue.toLowerCase()) ||\r\n option.sku.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.chainRaws;\r\n }\r\n\r\n onUploadChange(files: FileList) {\r\n this.imageFiles = files;\r\n this.chainFinish.picPath = URL.createObjectURL(files[0]);\r\n }\r\n\r\n sanitize(url: string) {\r\n if (!url) return 'assets/images/no-image.png';\r\n return this.sanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n uploadImage(chainFinishedId) {\r\n if (!chainFinishedId) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', this.imageFiles[0]);\r\n\r\n formData.append('chainFinishedId', chainFinishedId.toString());\r\n\r\n this.chainService.uploadFinishedImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.toastrService.success('Chain successfully saved.');\r\n this.dialogRef.close(chainFinishedId);\r\n }\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n return this.chainRaw.chainRawID && this.chainFinish.name;\r\n }\r\n\r\n displayFn(item: ChainRaw): string {\r\n let text = item?.sku ?? '';\r\n if (item?.chainStyle?.styleName) {\r\n text = text\r\n ? `${text} | ${item?.chainStyle?.styleName}`\r\n : item?.chainStyle?.styleName ?? '';\r\n }\r\n return text;\r\n }\r\n\r\n onSaveChainFinish() {\r\n this.chainFinish.chainRawID = this.chainRaw.chainRawID;\r\n this.isSaving = true;\r\n this.chainService\r\n .setChainFinished({\r\n ...this.chainFinish,\r\n inHouse: !this.chainFinish.fromSupplier,\r\n })\r\n .subscribe((id) => {\r\n if (this.imageFiles?.length > 0) {\r\n this.uploadImage(id);\r\n return;\r\n }\r\n this.toastrService.success('Chain successfully saved.');\r\n this.dialogRef.close(id);\r\n });\r\n }\r\n onChangeChainRaw(chainRaw) {\r\n // this.chainFinish.inHouse = chainRaw.inHouse;\r\n }\r\n}\r\n","
    \r\n

    New Finish Chain

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Raw Chain\r\n \r\n \r\n \r\n
    \r\n
    SKU
    \r\n
    Style Name
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    SKU
    \r\n
    Style Name
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {{ chainRaw.sku }}
    \r\n
    \r\n {{ chainRaw.styleName }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n \r\n Name\r\n \r\n \r\n \r\n Description\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    From Supplier
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { map } from 'rxjs/operators';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { OrderChainSize, OrderChainStock } from '../models';\r\n\r\ninterface ChainFinishedSkuDetail {\r\n chainId: number;\r\n materialCodeId: number;\r\n chainSizeId: number;\r\n}\r\n\r\n@Component({\r\n templateUrl: './chain-finished-sku-generator-dialog.component.html',\r\n styleUrls: ['./chain-finished-sku-generator-dialog.component.scss'],\r\n})\r\nexport class ChainFinishedSkuGeneratorDialogComponent implements OnInit {\r\n chainSkuDetail: ChainFinishedSkuDetail = {} as ChainFinishedSkuDetail;\r\n chainStocks: OrderChainStock[] = [];\r\n chainSizes: OrderChainSize[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n chainId: number;\r\n materialCodeId?: number;\r\n chainSizeId?: number;\r\n },\r\n public dialogRef: MatDialogRef,\r\n private chainService: ChainService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.chainSkuDetail.chainId = this.data.chainId;\r\n this.chainSkuDetail.materialCodeId = this.data.materialCodeId;\r\n this.chainSkuDetail.chainSizeId = this.data.chainSizeId;\r\n this.getChainMaterials();\r\n this.getChainSizes();\r\n }\r\n\r\n getChainMaterials() {\r\n this.chainService\r\n .getChainFinishedMaterials(this.chainSkuDetail.chainId)\r\n .pipe(\r\n map((mats) =>\r\n mats.map((mat) => ({\r\n chainFinishedStockID: mat.chainFinishedMaterialsID,\r\n materialCodesID: mat.materialsCodeID,\r\n material: mat.material,\r\n })),\r\n ),\r\n )\r\n .subscribe((data = []) => {\r\n this.chainStocks = data;\r\n if (data.length === 1) {\r\n this.chainSkuDetail.materialCodeId = data[0].materialCodesID;\r\n }\r\n });\r\n }\r\n\r\n getChainSizes() {\r\n this.chainService\r\n .getChainFinishedSizes(this.chainSkuDetail.chainId)\r\n .pipe(\r\n map((sizes) =>\r\n sizes.map((size) => ({\r\n chainSizeId: size.chainFinishedSizesID,\r\n size: size.size,\r\n })),\r\n ),\r\n )\r\n .subscribe((data = []) => {\r\n this.chainSizes = data;\r\n if (data.length === 1) {\r\n this.chainSkuDetail.chainSizeId = data[0].chainSizeId;\r\n }\r\n });\r\n }\r\n\r\n getGeneratedSku() {\r\n const chainId = String(this.data.chainId ?? 0).padStart(7, '0');\r\n const materialCode = String(\r\n this.chainSkuDetail.materialCodeId ?? 0,\r\n ).padStart(3, '0');\r\n const sizeId = String(this.chainSkuDetail.chainSizeId ?? 0).padStart(\r\n 8,\r\n '0',\r\n );\r\n\r\n return `CHNF-${chainId}-${materialCode}-${sizeId}`;\r\n }\r\n\r\n onCopySku() {\r\n navigator.clipboard.writeText(this.getGeneratedSku());\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","
    \r\n

    Generate Finished Chain SKU

    \r\n \r\n
    \r\n \r\n Material\r\n \r\n \r\n
    \r\n {{ mats.material.description }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ size.size }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n

    {{ getGeneratedSku() }}

    \r\n \r\n \r\n\r\n \r\n \r\n Close\r\n \r\n \r\n\r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { ChainRoutingDialogComponent } from '../../riva-chain-routing/chain-routing-dialog.component';\r\nimport { ChainStyle } from '../../riva-chain/models';\r\nimport { ChainFinishBomDialogComponent } from '../chain-finish-bom-dialog/chain-finish-bom-dialog.component';\r\nimport { ChainFinishDialogComponent } from '../chain-finish-dialog/chain-finish-dialog.component';\r\nimport { ChainFinishedSkuGeneratorDialogComponent } from '../chain-finished-sku-generator-dialog/chain-finished-sku-generator-dialog.component';\r\nimport {\r\n ChainFinish,\r\n ChainFinishBillOfMaterial,\r\n ChainFinishMaterial,\r\n ChainFinishSize,\r\n ChainFinishStock,\r\n} from '../models';\r\n\r\n@Component({\r\n selector: 'riva-chain-finish-list',\r\n templateUrl: './riva-chain-finish-list.component.html',\r\n styleUrls: ['./riva-chain-finish-list.component.scss'],\r\n})\r\nexport class RivaChainFinishListComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns = [\r\n 'name',\r\n 'fromSupplier',\r\n 'description',\r\n 'styleName',\r\n 'sku',\r\n ];\r\n displayedColumnsForBOM = ['picPath', 'name', 'size', 'qty', 'comment'];\r\n\r\n search: string;\r\n editMode = false;\r\n\r\n chainFinishes = new MatTableDataSource([]);\r\n selectedChainFinish: ChainFinish = {} as ChainFinish;\r\n chainFinishSizes: ChainFinishSize[] = [];\r\n selectedChainFinishSize: ChainFinishSize = {} as ChainFinishSize;\r\n newSize = '';\r\n showSizeError = false;\r\n isSavingNewSize = false;\r\n isSavingStock = false;\r\n\r\n chainFinishStocks: ChainFinishStock[] = [];\r\n selectedChainFinishStock: ChainFinishStock = {} as ChainFinishStock;\r\n selectedMaterialCode: number;\r\n isSavingMaterial = false;\r\n\r\n chainFinishMaterials: ChainFinishMaterial[] = [];\r\n selectedChainFinishMaterial: ChainFinishMaterial = {} as ChainFinishMaterial;\r\n\r\n materialCodes: MaterialCode[] = [];\r\n filteredMaterialCodes: MaterialCode[] = [];\r\n\r\n billOfMaterials = new MatTableDataSource([]);\r\n\r\n chainStyles: ChainStyle[] = [];\r\n filterChainStyleID = 0;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private chainService: ChainService,\r\n private materialCodeService: MaterialCodeService,\r\n private toastrService: ToastrService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject.filter((m) => !m.multiMetal);\r\n const chainId = localStorage.getItem('selected-chain-finished-id');\r\n this.getChains(chainId ? +chainId : null);\r\n localStorage.removeItem('selected-chain-finished-id');\r\n });\r\n this.chainService.reloadFinishChainTypes = () => {\r\n this.getChainStyles();\r\n };\r\n this.getChainStyles();\r\n }\r\n\r\n getChainStyles() {\r\n this.chainService.getChainStyles().subscribe((data) => {\r\n this.chainStyles = [\r\n {\r\n chainStylesID: 0,\r\n styleName: 'All',\r\n },\r\n ...data,\r\n ];\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.chainFinishes.sort = this.sort;\r\n this.chainFinishes.filterPredicate = (\r\n data: ChainFinish,\r\n filterValue: string,\r\n ) => {\r\n const { search = '', chainStyleId = 0 } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.name?.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.styleName?.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.sku?.toLowerCase().includes(search?.toLowerCase());\r\n return (\r\n searchFilter &&\r\n (chainStyleId === 0 ||\r\n data.chainRaw.chainStyle.chainStylesID === chainStyleId)\r\n );\r\n };\r\n }\r\n\r\n getChains(chainsId?: number) {\r\n this.chainService.getChainFinished().subscribe((data) => {\r\n this.chainFinishes.data = data;\r\n const chain = chainsId\r\n ? this.chainFinishes.data.find((c) => c.chainFinishedID === chainsId)\r\n : this.chainFinishes.data[0];\r\n this.selectedChainFinish = { ...(chain ?? ({} as ChainFinish)) };\r\n this.getChainBom(this.selectedChainFinish.chainFinishedID);\r\n this.getChainSizes(this.selectedChainFinish.chainFinishedID);\r\n this.getChainMaterials(this.selectedChainFinish.chainFinishedID);\r\n });\r\n }\r\n getChainMaterials(chainFinishedId) {\r\n if (!chainFinishedId) {\r\n this.chainFinishMaterials = [];\r\n return;\r\n }\r\n this.chainService\r\n .getChainFinishedMaterials(chainFinishedId)\r\n .subscribe((data = []) => {\r\n this.chainFinishMaterials = orderBy(\r\n data,\r\n (d: ChainFinishMaterial) => d.material.code,\r\n 'desc',\r\n );\r\n this.selectedChainFinishMaterial =\r\n data[0] ?? ({} as ChainFinishMaterial);\r\n this.filteredMaterialCodes = this.materialCodes.filter(\r\n (m) => !data.some((c) => c.materialsCodeID === m.materialCodeId),\r\n );\r\n this.getChainFinishedStocks();\r\n });\r\n }\r\n\r\n getChainSizes(chainFinishedId) {\r\n if (!chainFinishedId) return;\r\n this.chainService\r\n .getChainFinishedSizes(chainFinishedId)\r\n .subscribe((data = []) => {\r\n const sizes = data.reduce(\r\n (accum, size) => {\r\n const isNumber = !Number.isNaN(Number(size.size));\r\n if (isNumber) {\r\n const value = Number(size.size);\r\n accum.numeric = [...accum.numeric, { ...size, size: value }];\r\n } else {\r\n accum.alpha = [...accum.alpha, size];\r\n }\r\n return accum;\r\n },\r\n {\r\n alpha: [],\r\n numeric: [],\r\n },\r\n );\r\n const sortedNumber = orderBy(\r\n sizes.numeric,\r\n (s: ChainFinishSize) => s.size,\r\n 'desc',\r\n );\r\n const convertedSizeToString = sortedNumber.map((s) => ({\r\n ...s,\r\n size: s.size?.toString(),\r\n }));\r\n\r\n this.chainFinishSizes = [\r\n ...convertedSizeToString,\r\n ...orderBy(sizes.alpha, (s: ChainFinishSize) => s.size, 'desc'),\r\n ];\r\n this.selectedChainFinishSize = data[0] ?? ({} as ChainFinishSize);\r\n this.getChainFinishedStocks();\r\n });\r\n }\r\n getChainBom(id) {\r\n if (!id) return;\r\n this.chainService.getChainFinishedBom(id).subscribe((data) => {\r\n this.billOfMaterials.data = data;\r\n });\r\n }\r\n onSelectChain(chain: ChainFinish) {\r\n this.selectedChainFinish = { ...chain };\r\n this.getChainBom(this.selectedChainFinish.chainFinishedID);\r\n this.getChainSizes(this.selectedChainFinish.chainFinishedID);\r\n this.getChainMaterials(this.selectedChainFinish.chainFinishedID);\r\n }\r\n onSelectSize(size: ChainFinishSize) {\r\n this.selectedChainFinishSize = { ...size };\r\n this.getChainFinishedStocks();\r\n }\r\n onSaveChainSize() {\r\n const isExist = this.chainFinishSizes.some(\r\n (c) => c.size?.toLowerCase() === this.newSize?.trim().toLowerCase(),\r\n );\r\n if (isExist) {\r\n this.showSizeError = true;\r\n return;\r\n }\r\n this.showSizeError = false;\r\n this.isSavingNewSize = true;\r\n this.chainService\r\n .setChainFinishedSizes({\r\n size: this.newSize,\r\n chainFinishedID: this.selectedChainFinish.chainFinishedID,\r\n chainFinishedSizesID: 0,\r\n })\r\n .subscribe(() => {\r\n this.newSize = '';\r\n this.getChainSizes(this.selectedChainFinish.chainFinishedID);\r\n this.isSavingNewSize = false;\r\n });\r\n }\r\n onSaveMaterial() {\r\n const data = {\r\n chainFinishedMaterialsID: 0,\r\n chainFinishedID: this.selectedChainFinish.chainFinishedID,\r\n materialsCodeID: this.selectedMaterialCode,\r\n };\r\n this.isSavingMaterial = true;\r\n this.chainService.setChainFinishedMaterial(data).subscribe(() => {\r\n this.selectedMaterialCode = 0;\r\n this.isSavingMaterial = false;\r\n this.getChainMaterials(this.selectedChainFinish.chainFinishedID);\r\n });\r\n }\r\n onSaveStock(isNew = false) {\r\n const {\r\n chainFinishedStockID,\r\n qtyInStock,\r\n chainFinishedSizesID,\r\n chainTotalWeight,\r\n } = this.selectedChainFinishStock;\r\n\r\n this.isSavingStock = true;\r\n this.chainService\r\n .setChainFinishedStocks({\r\n chainFinishedStockID: isNew ? 0 : chainFinishedStockID,\r\n materialCodesID: this.selectedChainFinishMaterial.materialsCodeID,\r\n qtyInStock,\r\n chainFinishedSizesID:\r\n chainFinishedSizesID ??\r\n this.selectedChainFinishSize.chainFinishedSizesID,\r\n chainTotalWeight,\r\n })\r\n .subscribe(() => {\r\n this.selectedMaterialCode = 0;\r\n this.isSavingStock = false;\r\n this.toastrService.success(\r\n 'Successfully saved.',\r\n 'Chain Finished Stock',\r\n );\r\n this.getChainFinishedStocks();\r\n });\r\n }\r\n getChainFinishedStocks() {\r\n if (!this.selectedChainFinishSize.chainFinishedSizesID) {\r\n this.selectedChainFinishStock = {} as ChainFinishStock;\r\n this.chainFinishStocks = [];\r\n return;\r\n }\r\n this.chainService\r\n .getChainFinishedStocks(this.selectedChainFinishSize.chainFinishedSizesID)\r\n .subscribe((data = []) => {\r\n this.chainFinishStocks = data;\r\n this.setSelectedStock();\r\n });\r\n }\r\n\r\n setSelectedStock() {\r\n if (\r\n !this.selectedChainFinishSize.chainFinishedSizesID ||\r\n !this.selectedChainFinishMaterial.materialsCodeID\r\n )\r\n return;\r\n\r\n this.selectedChainFinishStock =\r\n this.chainFinishStocks.find(\r\n (s) =>\r\n s.chainFinishedSizesID ===\r\n this.selectedChainFinishSize.chainFinishedSizesID &&\r\n s.materialCodesID ===\r\n this.selectedChainFinishMaterial.materialsCodeID,\r\n ) ?? ({} as ChainFinishStock);\r\n }\r\n\r\n onFilterChange() {\r\n this.chainFinishes.filter = JSON.stringify({\r\n search: this.search,\r\n chainStyleId: this.filterChainStyleID,\r\n });\r\n }\r\n\r\n createNewChainFinish() {\r\n const ref = this.dialog.open(ChainFinishDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '800px',\r\n width: '100%',\r\n });\r\n ref.afterClosed().subscribe((data) => {\r\n this.getChains(data);\r\n });\r\n }\r\n\r\n createNewChainFinishBom() {\r\n const ref = this.dialog.open(ChainFinishBomDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n chainFinishedID: this.selectedChainFinish.chainFinishedID,\r\n },\r\n });\r\n ref.afterClosed().subscribe(() => {\r\n this.getChainBom(this.selectedChainFinish.chainFinishedID);\r\n });\r\n }\r\n onChangeMaterialCode() {\r\n const stock = this.chainFinishStocks.find(\r\n (s) =>\r\n s.materialCodesID === this.selectedChainFinishStock.materialCodesID,\r\n );\r\n this.selectedChainFinishStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialCodesID: this.selectedChainFinishStock.materialCodesID,\r\n } as ChainFinishStock);\r\n }\r\n get isStockFormValid() {\r\n return (\r\n this.selectedChainFinishSize.chainFinishedSizesID &&\r\n this.selectedChainFinishMaterial.materialsCodeID &&\r\n this.selectedChainFinishStock.qtyInStock &&\r\n Number.isInteger(this.selectedChainFinishStock.qtyInStock)\r\n );\r\n }\r\n onSetEditMode() {\r\n this.editMode = !this.editMode;\r\n if (!this.editMode) {\r\n this.getChains(this.selectedChainFinish.chainFinishedID);\r\n }\r\n }\r\n onSaveFinishDetail() {\r\n if (\r\n this.selectedChainFinish.findingsLength &&\r\n this.selectedChainFinish.findingsLength >= 10\r\n ) {\r\n return;\r\n }\r\n this.chainService\r\n .setChainFinished({\r\n ...this.selectedChainFinish,\r\n inHouse: !this.selectedChainFinish.fromSupplier,\r\n })\r\n .subscribe(() => {\r\n this.chainFinishes.data = this.chainFinishes.data.map((c) => {\r\n if (c.chainFinishedID === this.selectedChainFinish.chainFinishedID) {\r\n return {\r\n ...c,\r\n name: this.selectedChainFinish.name,\r\n description: this.selectedChainFinish.description,\r\n };\r\n }\r\n return c;\r\n });\r\n });\r\n }\r\n\r\n onUploadImage(files: FileList) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append(\r\n 'chainFinishedId',\r\n this.selectedChainFinish.chainFinishedID.toString(),\r\n );\r\n\r\n this.chainService.uploadFinishedImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.selectedChainFinish.picPath = event.body;\r\n this.toastrService.success('Successfully uploaded.');\r\n }\r\n });\r\n }\r\n onSelectMaterial(material) {\r\n this.selectedChainFinishMaterial = { ...material };\r\n if (this.chainFinishStocks.length) {\r\n this.setSelectedStock();\r\n }\r\n }\r\n\r\n onRoutingDialogOpen() {\r\n this.dialog.open(ChainRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n chainId: this.selectedChainFinish.chainFinishedID,\r\n chainType: 1,\r\n editMode: this.editMode,\r\n },\r\n });\r\n }\r\n\r\n onOpenGenerateSkuDialog() {\r\n this.dialog.open(ChainFinishedSkuGeneratorDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '450px',\r\n width: '100%',\r\n data: {\r\n chainId: this.selectedChainFinish.chainFinishedID,\r\n materialCodeId: this.selectedChainFinishMaterial.materialsCodeID,\r\n chainSizeId: this.selectedChainFinishSize.chainFinishedSizesID,\r\n },\r\n autoFocus: false,\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n \r\n \r\n Chain Style\r\n \r\n \r\n {{ style.styleName }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Generate SKU\r\n \r\n \r\n New Chain\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n \r\n From Supplier\r\n \r\n \r\n {{ element.fromSupplier ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n {{ element.description }}\r\n \r\n \r\n \r\n \r\n SKU\r\n \r\n \r\n {{ element.sku }}\r\n \r\n \r\n \r\n \r\n Style Name\r\n \r\n \r\n {{ element.styleName }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Name\r\n \r\n \r\n \r\n Description\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    From Supplier
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {{ item.material?.description }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ mats.description }}\r\n \r\n \r\n \r\n \r\n Add Material\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {{ item.size }}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Size\r\n \r\n \r\n Size already exist.\r\n
    \r\n \r\n Add Size\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n QTY in Stock\r\n \r\n \r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n Edit\r\n \r\n \r\n Save\r\n \r\n \r\n Routing\r\n \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    Bill of Materials
    \r\n
    \r\n \r\n Finished Length in Inches\r\n \r\n \r\n \r\n New Material\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ element.size }}\r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n \r\n {{ element.qty }}\r\n \r\n \r\n \r\n \r\n Comment\r\n \r\n \r\n {{ element.comment }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n\r\n","import { Location } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { ChainDialogComponent } from '../riva-chain/chain-dialog/chain-dialog.component';\r\n\r\nconst chainTabSlugByIndex = {\r\n 0: 'chain-raw',\r\n 1: 'chain-finished',\r\n};\r\nconst chainTabIndexBySlug = {\r\n 'chain-raw': 0,\r\n 'chain-finished': 1,\r\n};\r\n\r\n@Component({\r\n selector: 'riva-chain-page',\r\n templateUrl: './riva-chain-page.component.html',\r\n styleUrls: ['./riva-chain-page.component.scss'],\r\n})\r\nexport class RivaChainPageComponent {\r\n selectedTabIndex = 0;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private userPermissionService: UserPermissionService,\r\n private chainService: ChainService,\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n ) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.chain);\r\n\r\n this.route.params.subscribe((params: { slug: string }) => {\r\n this.selectedTabIndex = chainTabIndexBySlug[params.slug] ?? 0;\r\n });\r\n }\r\n\r\n createNewChainStyle() {\r\n const dialogRef = this.dialog.open(ChainDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n });\r\n dialogRef.afterClosed().subscribe((id) => {\r\n // this.chainService.reloadChains(id);\r\n this.chainService.reloadRawChainTypes();\r\n this.chainService.reloadFinishChainTypes();\r\n });\r\n }\r\n\r\n onTabChange(event) {\r\n const slug = chainTabSlugByIndex[event];\r\n this.location.replaceState(`items/chain/${slug}`);\r\n }\r\n}\r\n","
    \r\n \r\n Chain Styles\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { Component, Input } from '@angular/core';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { ChainRaw, ChainRawStock } from '../../../riva-chain/models';\r\n\r\n@Component({\r\n selector: 'riva-chain-pricing-unfinished-table',\r\n templateUrl: './riva-chain-pricing-unfinished-table.component.html',\r\n styleUrls: ['./riva-chain-pricing-unfinished-table.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'),\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class RivaChainPricingUnfinishedTableComponent {\r\n @Input() dataSource: ChainRaw[] = [];\r\n\r\n constructor(private chainService: ChainService) {}\r\n\r\n displayedColumns = [\r\n 'expander',\r\n 'sku',\r\n 'styleName',\r\n 'linkDim1',\r\n 'linkDim2',\r\n 'wireSize',\r\n 'description',\r\n ];\r\n\r\n expandedRow: Record = {};\r\n\r\n updateExpanded(row: ChainRaw) {\r\n this.expandedRow[row.chainRawID] = !this.expandedRow[row.chainRawID];\r\n }\r\n\r\n onSaveStock(row: ChainRawStock) {\r\n this.chainService.setChainRawStock(row).subscribe()\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.sku }}\r\n \r\n \r\n \r\n \r\n From Supplier\r\n \r\n \r\n {{ element.fromSupplier ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n \r\n Style\r\n \r\n \r\n {{ element.styleName }}\r\n \r\n \r\n \r\n \r\n Link Dim 1\r\n \r\n \r\n {{ element.linkDim1 }}mm\r\n \r\n \r\n \r\n \r\n Link Dim 2\r\n \r\n \r\n {{ element.linkDim2 }}mm\r\n \r\n \r\n \r\n \r\n Wire Size\r\n \r\n \r\n {{ element.wireSize }}mm\r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n {{ element.description }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    Metal
    \r\n
    Weight per inch
    \r\n
    Labor per inch
    \r\n
    Calculated price per inch
    \r\n
    \r\n
    \r\n
    \r\n {{ item.material?.description }}\r\n
    \r\n
    {{ item.weightPerInchG }}
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n No Metal Available\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { MetalMarket, MetalMarketPremiums } from 'src/app/models/metal-market';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { MetalMarketService } from 'src/app/services/metal-market.service';\r\nimport { ChainRaw } from '../../riva-chain/models';\r\n\r\n@Component({\r\n selector: 'riva-chain-pricing-unfinished',\r\n templateUrl: './riva-chain-pricing-unfinished.component.html',\r\n styleUrls: ['./riva-chain-pricing-unfinished.component.scss'],\r\n})\r\nexport class RivaChainPricingUnfinishedComponent implements OnInit {\r\n constructor(\r\n private chainService: ChainService,\r\n private metalMarketService: MetalMarketService,\r\n private materialCodeService: MaterialCodeService\r\n ) {}\r\n\r\n chainsInHouse: ChainRaw[] = [];\r\n chainsOutside: ChainRaw[] = [];\r\n metalMarketPremiums: MetalMarketPremiums = {} as MetalMarketPremiums;\r\n metalMarket: MetalMarket = {} as MetalMarket;\r\n\r\n ngOnInit(): void {\r\n forkJoin([\r\n this.metalMarketService.getLatestMetalMarket(),\r\n this.metalMarketService.getMetalMarketPremiums(),\r\n this.materialCodeService.getMaterialCodeCalculations(),\r\n this.chainService.getChainRaws(),\r\n ]).subscribe(([metalMarket, [premiums], materialCalculations, data]) => {\r\n this.metalMarketPremiums = premiums;\r\n this.metalMarket = metalMarket;\r\n const requestStocks = data.map((d) =>\r\n this.chainService.getChainRawStock(d.chainRawID),\r\n );\r\n forkJoin(requestStocks).subscribe((response) => {\r\n const { inHouse, outside } = data.reduce(\r\n (acc, curr, index) => {\r\n const stocks = response[index];\r\n\r\n if (curr.inHouse) {\r\n acc.inHouse.push({ ...curr, stocks });\r\n } else {\r\n acc.outside.push({ ...curr, stocks });\r\n }\r\n return acc;\r\n },\r\n { inHouse: [], outside: [] } as {\r\n inHouse: ChainRaw[];\r\n outside: ChainRaw[];\r\n },\r\n );\r\n this.chainsInHouse = inHouse;\r\n this.chainsOutside = outside;\r\n });\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    In-House Chain
    \r\n \r\n
    \r\n
    \r\n
    Outside Chain
    \r\n \r\n
    \r\n
    \r\n
    \r\n","import { Component } from '@angular/core';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\n\r\n@Component({\r\n selector: 'riva-chain-pricing',\r\n templateUrl: './riva-chain-pricing.component.html',\r\n styleUrls: ['./riva-chain-pricing.component.scss'],\r\n})\r\nexport class RivaChainPricingComponent {\r\n constructor(\r\n private userPermissionService: UserPermissionService,\r\n ) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.chainPricing);\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ProductChainFinished } from '../model';\r\n\r\n@Component({\r\n selector: 'product-chain-finished-table',\r\n styleUrls: ['./product-chain-finished-table.component.scss'],\r\n templateUrl: './product-chain-finished-table.component.html',\r\n})\r\nexport class ProductChainFinishedTableComponent implements OnInit {\r\n @Input() productChainFinished: ProductChainFinished[];\r\n @Input() editMode: boolean;\r\n\r\n displayedColumns: string[] = ['picPath', 'name', 'styleName', 'sku', 'size'];\r\n action: string[] = ['delete'];\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    Name\r\n {{ element.name }}\r\n SKU\r\n {{ element.chainRaw?.sku }}\r\n Style Name\r\n {{ element.chainRaw?.chainStyle?.styleName }}\r\n Size\r\n {{ element.chainFinishedSizes?.size }}\r\n
    No Available Data
    \r\n
    \r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ProductFindings } from 'src/app/models/findings.model';\r\nimport { ProductChainRaw } from '../model';\r\n\r\n@Component({\r\n selector: 'product-chain-unfinished-table',\r\n styleUrls: ['./product-chain-unfinished-table.component.scss'],\r\n templateUrl: './product-chain-unfinished-table.component.html',\r\n})\r\nexport class ProductChainUnfinishedTableComponent implements OnInit {\r\n @Input() productChainUnfinished: ProductChainRaw[];\r\n @Input() editMode: boolean;\r\n @Output() onDeleteChain = new EventEmitter();\r\n\r\n displayedColumns: string[] = ['picPath', 'styleName', 'sku', 'lengthInches'];\r\n action: string[] = ['delete'];\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    SKU\r\n {{ element.chainRaw?.sku }}\r\n Style Name\r\n {{ element.chainRaw?.chainStyle?.styleName }}\r\n Length\r\n {{ element.lengthInches }}\r\n
    No Available Data
    \r\n
    \r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ChainFinish, ChainFinishSize } from '../../riva-chain-finish/models';\r\nimport { ProductChainFinished } from '../model';\r\n\r\n@Component({\r\n selector: 'riva-chain-finished-product',\r\n templateUrl: './riva-chain-finished-product.component.html',\r\n styleUrls: ['./riva-chain-finished-product.component.scss'],\r\n})\r\nexport class RivaChainFinishedProductComponent implements OnInit {\r\n @Input() productId: number;\r\n\r\n displayedColumns = ['picPath', 'name', 'styleName', 'sku'];\r\n displayedProductColumns = [\r\n 'picPath',\r\n 'name',\r\n 'styleName',\r\n 'sku',\r\n 'chainFinishedSizesID',\r\n 'action',\r\n ];\r\n displayedSizeColumns = ['size'];\r\n\r\n chains = new MatTableDataSource([]);\r\n @ViewChild(MatSort) sort: MatSort;\r\n productChains: ProductChainFinished[] = [];\r\n selectedChain: ChainFinish = {} as ChainFinish;\r\n chainFinishSizes: ChainFinishSize[] = [];\r\n selectedChainFinishSize: ChainFinishSize = {} as ChainFinishSize;\r\n\r\n isSaving = false;\r\n showSizeError = false;\r\n searchText = '';\r\n\r\n constructor(\r\n private chainService: ChainService,\r\n private productBomService: ProductBomService,\r\n private loadService: LoadService,\r\n private toastrService: ToastrService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getChains();\r\n this.getProductChains();\r\n }\r\n\r\n getChains() {\r\n this.chainService.getChainFinished().subscribe((data) => {\r\n this.chains.data = data;\r\n this.chains.sort = this.sort;\r\n this.chains.filterPredicate = (\r\n data: ChainFinish,\r\n filterValue: string,\r\n ) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.name?.toString().toLowerCase().includes(search?.toLowerCase()) ||\r\n data.styleName\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.sku?.toLowerCase().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n });\r\n }\r\n getChainSizes(chainFinishedID) {\r\n this.selectedChainFinishSize = {} as ChainFinishSize;\r\n this.chainService\r\n .getChainFinishedSizes(chainFinishedID)\r\n .subscribe((data) => {\r\n this.chainFinishSizes = data;\r\n this.onCheckChainSizes();\r\n });\r\n }\r\n\r\n onSearchChain() {\r\n this.chains.filter = JSON.stringify({\r\n search: this.searchText,\r\n });\r\n }\r\n\r\n onCheckChainSizes() {\r\n this.chainFinishSizes = this.chainFinishSizes.reduce((sizes, current) => {\r\n if (\r\n this.productChains.some(\r\n (p) => p.chainFinishedSizesID === current.chainFinishedSizesID,\r\n )\r\n )\r\n return sizes;\r\n return [...sizes, current];\r\n }, []);\r\n }\r\n\r\n getProductChains() {\r\n this.productBomService\r\n .getProductChainFinished(this.productId)\r\n .subscribe((data) => {\r\n this.productChains = data;\r\n if (this.selectedChain.chainFinishedID) {\r\n this.getChainSizes(this.selectedChain.chainFinishedID);\r\n return;\r\n }\r\n this.onCheckChainSizes();\r\n });\r\n }\r\n\r\n onSelectChain(chain: ChainFinish) {\r\n this.selectedChain = { ...chain };\r\n this.getChainSizes(chain.chainFinishedID);\r\n }\r\n onSelectChainFinishSize(size: ChainFinishSize) {\r\n this.selectedChainFinishSize = { ...size };\r\n }\r\n\r\n onSaveChainFinish() {\r\n this.isSaving = true;\r\n this.productBomService\r\n .setProductChainFinished({\r\n productsBOMChainFinishedID: 0,\r\n productsID: this.productId,\r\n chainFinishedID: this.selectedChain.chainFinishedID,\r\n chainFinishedSizesID: this.selectedChainFinishSize.chainFinishedSizesID,\r\n variation: true,\r\n })\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.selectedChainFinishSize = {} as ChainFinishSize;\r\n this.getProductChains();\r\n this.loadService.reloadProductChainFinished();\r\n this.toastrService.success('Successfully added.', 'Chain Finished');\r\n });\r\n }\r\n onDeleteChain(chain: ProductChainFinished) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product Chain',\r\n content: 'Are you sure you want to delete this chain?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.productBomService\r\n .deleteProductChainFinished(chain.productsBOMChainFinishedID)\r\n .subscribe(() => {\r\n this.getProductChains();\r\n this.loadService.reloadProductChainFinished();\r\n this.toastrService.success(\r\n 'Chain successfully deleted',\r\n 'Chain Finished',\r\n );\r\n });\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n return (\r\n this.selectedChain.chainFinishedID &&\r\n this.selectedChainFinishSize.chainFinishedSizesID > 0\r\n );\r\n }\r\n}\r\n","
    \r\n \r\n Search chain\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n \r\n SKU\r\n \r\n \r\n {{ element.chainRaw.sku }}\r\n \r\n \r\n \r\n \r\n Style Name\r\n \r\n \r\n {{ element.styleName }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ element.size }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Size\r\n \r\n \r\n
    \r\n \r\n Add\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n SKU\r\n \r\n \r\n {{ element.chainRaw.sku }}\r\n \r\n \r\n \r\n \r\n Style Name\r\n \r\n \r\n {{ element.chainRaw?.chainStyle?.styleName }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ element.chainFinishedSizes.size }}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'riva-chain-product-container',\r\n templateUrl: './riva-chain-product-container.component.html',\r\n styleUrls: ['./riva-chain-product-container.component.scss'],\r\n})\r\nexport class RivaChainProductContainerComponent {\r\n @Input() productId: number;\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ChainRaw } from '../../riva-chain/models';\r\nimport { ProductChainRaw } from '../model';\r\n\r\n@Component({\r\n selector: 'riva-chain-unfinished-product',\r\n templateUrl: './riva-chain-unfinished-product.component.html',\r\n styleUrls: ['./riva-chain-unfinished-product.component.scss'],\r\n})\r\nexport class RivaChainUnfinishedProductComponent implements OnInit {\r\n @Input() productId: number;\r\n\r\n displayedColumns = ['picPath', 'styleName', 'sku'];\r\n displayedProductColumns = [\r\n 'picPath',\r\n 'styleName',\r\n 'sku',\r\n 'lengthInches',\r\n 'action',\r\n ];\r\n\r\n chains = new MatTableDataSource([]);\r\n @ViewChild(MatSort) sort: MatSort;\r\n productChains: ProductChainRaw[] = [];\r\n selectedChain: ChainRaw = {} as ChainRaw;\r\n length: number = 0;\r\n isSaving = false;\r\n showSizeError = false;\r\n searchText = '';\r\n\r\n constructor(\r\n private chainService: ChainService,\r\n private productBomService: ProductBomService,\r\n private loadService: LoadService,\r\n private toastrService: ToastrService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getChains();\r\n this.getProductChains();\r\n }\r\n\r\n getChains() {\r\n this.chainService.getChainRaws().subscribe((data) => {\r\n this.chains.data = data;\r\n this.chains.sort = this.sort;\r\n this.chains.filterPredicate = (data: ChainRaw, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.styleName\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.sku?.toLowerCase().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n });\r\n }\r\n onSearchChain() {\r\n this.chains.filter = JSON.stringify({\r\n search: this.searchText,\r\n });\r\n }\r\n getProductChains() {\r\n this.productBomService\r\n .getProductChainRaw(this.productId)\r\n .subscribe((data) => {\r\n this.productChains = data;\r\n });\r\n }\r\n\r\n onSelectChain(chain: ChainRaw) {\r\n this.selectedChain = { ...chain };\r\n }\r\n onDeleteChain(chain: ProductChainRaw) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product Chain',\r\n content: 'Are you sure you want to delete this chain?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.productBomService\r\n .deleteProductChainRaw(chain.productsBOMChainRawID)\r\n .subscribe(() => {\r\n this.getProductChains();\r\n this.loadService.reloadProductChainUnfinished();\r\n this.toastrService.success(\r\n 'Chain successfully deleted',\r\n 'Chain Unfinished',\r\n );\r\n });\r\n });\r\n }\r\n\r\n onSaveChainRaw() {\r\n const isExist = this.productChains.some(\r\n (p) =>\r\n p.chainRawID === this.selectedChain.chainRawID &&\r\n p.lengthInches === this.length,\r\n );\r\n if (isExist) {\r\n this.showSizeError = true;\r\n return;\r\n }\r\n this.showSizeError = false;\r\n this.productBomService\r\n .setProductChainRaw({\r\n productsBOMChainRawID: 0,\r\n productsID: this.productId,\r\n chainRawID: this.selectedChain.chainRawID,\r\n lengthInches: this.length,\r\n variation: true,\r\n })\r\n .subscribe(() => {\r\n this.getProductChains();\r\n this.loadService.reloadProductChainUnfinished();\r\n this.length = 0;\r\n this.toastrService.success('Successfully added.', 'Chain Unfinished');\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n return this.selectedChain.chainRawID && this.length > 0;\r\n }\r\n}\r\n","
    \r\n \r\n Search chain\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n SKU\r\n \r\n \r\n {{ element.sku }}\r\n \r\n \r\n \r\n \r\n Style Name\r\n \r\n \r\n {{ element.styleName }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n \r\n Length in Inches\r\n \r\n \r\n \r\n \r\n Add\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n SKU\r\n \r\n \r\n {{ element.chainRaw.sku }}\r\n \r\n \r\n \r\n \r\n Style Name\r\n \r\n \r\n {{ element.chainRaw.chainStyle?.styleName }}\r\n \r\n \r\n \r\n \r\n Length\r\n \r\n \r\n {{ element.lengthInches }}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { ProductsRouting } from 'src/app/models/product';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { ChainCommon } from '../riva-chain/models';\r\nimport { ChainRoutingComponent } from './chain-routing.component';\r\n\r\n@Component({\r\n selector: 'chain-routing-copy-dialog',\r\n templateUrl: './chain-routing-copy-dialog.component.html',\r\n styleUrls: ['./chain-routing-copy-dialog.component.scss'],\r\n})\r\nexport class ChainRoutingCopyDialogComponent implements OnInit {\r\n @ViewChild(ChainRoutingComponent)\r\n productRoutingComponent: ChainRoutingComponent;\r\n\r\n chainId: number = 0;\r\n filteredChains: Observable;\r\n chainControl = new FormControl();\r\n chains: ChainCommon[] = [];\r\n chain: ChainCommon = {} as ChainCommon;\r\n routings: ProductsRouting[];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public loadService: LoadService,\r\n public productService: ProductService,\r\n public chainService: ChainService,\r\n\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { chainType: number },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getChains();\r\n }\r\n initializeFilter() {\r\n this.filteredChains = this.chainControl.valueChanges.pipe(\r\n startWith(this.chain.name),\r\n map((value) => this._filterChain(value)),\r\n );\r\n }\r\n getChains() {\r\n if (this.props.chainType) {\r\n this.chainService.getChainFinished().subscribe((data) => {\r\n this.chains = data.map((d) => ({\r\n chainId: d.chainFinishedID,\r\n chainType: 1,\r\n name: d.name,\r\n sku: d.sku,\r\n style: d.chainRaw.styleName,\r\n }));\r\n this.initializeFilter();\r\n });\r\n } else {\r\n this.chainService.getChainRaws().subscribe((data) => {\r\n this.chains = data.map((d) => ({\r\n chainId: d.chainRawID,\r\n chainType: 0,\r\n name: d.sku,\r\n sku: d.sku,\r\n style: d.styleName,\r\n }));\r\n this.initializeFilter();\r\n });\r\n }\r\n }\r\n\r\n private _filterChain(name: string): ChainCommon[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.chains.filter((option) =>\r\n option.name.toLowerCase().includes(filterValue),\r\n );\r\n } else if (typeof name === 'object') {\r\n const filterValue: string = name['name'];\r\n return this.chains.filter((option) =>\r\n option.name.toLowerCase().includes(filterValue.toLowerCase()),\r\n );\r\n }\r\n return this.chains;\r\n }\r\n\r\n displayFn(item: ChainCommon): string {\r\n return item?.name ?? '';\r\n }\r\n\r\n onRoutingChange($events) {\r\n this.routings = $events;\r\n }\r\n\r\n onConfirm() {\r\n this.dialogRef.close(this.routings);\r\n }\r\n}\r\n","

    Copy From Chain Routing

    \r\n\r\n\r\n \r\n Search Chain\r\n \r\n \r\n \r\n
    \r\n
    Name
    \r\n
    SKU
    \r\n
    Style
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Name
    \r\n
    SKU
    \r\n
    Style
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ chain.name }}\r\n
    \r\n
    {{ chain.sku }}
    \r\n
    \r\n {{ chain.style }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Copy Routing\r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { ChainRoutingComponent } from './chain-routing.component';\r\n\r\n@Component({\r\n selector: 'chain-routing-dialog',\r\n templateUrl: './chain-routing-dialog.component.html',\r\n})\r\nexport class ChainRoutingDialogComponent implements OnInit {\r\n @ViewChild(ChainRoutingComponent)\r\n chainRoutingComponent: ChainRoutingComponent;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public loadService: LoadService,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { chainId: number; chainType: number; editMode: boolean },\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onSave() {\r\n this.chainRoutingComponent.onSaveProductRouting();\r\n }\r\n}\r\n","

    Chain Routing

    \r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { ProductRoutingCodes } from 'src/app/models/product';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { RoutingCodeService } from 'src/app/services/routing-code.service';\r\nimport { ConfirmationService } from '../../riva-confirmation/riva-confirmation.service';\r\nimport { ChainRouting } from '../riva-chain/models';\r\nimport { ChainRoutingCopyDialogComponent } from './chain-routing-copy-dialog.component';\r\nimport { ChainRoutingDialogComponent } from './chain-routing-dialog.component';\r\n\r\n@Component({\r\n selector: 'chain-routing',\r\n templateUrl: './chain-routing.component.html',\r\n styleUrls: ['./chain-routing.component.scss'],\r\n})\r\nexport class ChainRoutingComponent implements OnChanges {\r\n @Input() chainId: number;\r\n @Input() chainType: number;\r\n @Input() readonly?: boolean;\r\n @Output() onRoutingChange = new EventEmitter();\r\n @ViewChild('table') table: MatTable;\r\n routingDisplayColumn: string[] = [\r\n 'draggable',\r\n 'activityCode',\r\n 'department',\r\n 'activityDescription',\r\n 'standardTime',\r\n 'comment',\r\n 'delete',\r\n ];\r\n productRoutings: ChainRouting[] = [];\r\n productRoutingsForDelete: ChainRouting[] = [];\r\n productRoutingCodes: ProductRoutingCodes[] = [];\r\n rawProductRoutingCodes: ProductRoutingCodes[] = [];\r\n filteredProductRoutingCodes: Observable;\r\n productRoutingControl = new FormControl();\r\n selectedProductRouting: ProductRoutingCodes;\r\n isSaving = false;\r\n dragEnabled = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n private routingCodeService: RoutingCodeService,\r\n private chainService: ChainService,\r\n private loadService: LoadService,\r\n private confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.loadChainRoutings();\r\n }\r\n\r\n loadChainRoutings() {\r\n if (!this.chainId) {\r\n this.productRoutings = [];\r\n this.productRoutingCodes = [];\r\n this.rawProductRoutingCodes = [];\r\n this.onRoutingChange.emit(this.productRoutings);\r\n return;\r\n }\r\n forkJoin([\r\n this.routingCodeService.getAll(),\r\n this.chainService.getChainRoutings(this.chainId, this.chainType),\r\n ]).subscribe(([productRoutingCodes, chainRoutings]) => {\r\n this.productRoutingCodes = [...productRoutingCodes];\r\n this.rawProductRoutingCodes = [...productRoutingCodes];\r\n this.productRoutings = chainRoutings;\r\n this.onRoutingChange.emit(this.productRoutings);\r\n this.initiateFilters();\r\n });\r\n }\r\n\r\n onCheckProductRoutingCode() {\r\n this.productRoutingCodes = this.rawProductRoutingCodes.filter(\r\n (productRoutingCode) => {\r\n return !this.productRoutings.some(\r\n (productRouting) =>\r\n productRouting.routingCode?.routingCodesId ===\r\n productRoutingCode.routingCodesId,\r\n );\r\n },\r\n );\r\n }\r\n\r\n displayFn(item: ProductRoutingCodes): string {\r\n return item?.activityCode ?? '';\r\n }\r\n\r\n onSelectProductRoutingCode(productRoutingCode: ProductRoutingCodes) {\r\n const productRouting: ChainRouting = {\r\n chainId: this.chainId,\r\n chainType: this.chainType,\r\n routingCodesId: productRoutingCode.routingCodesId,\r\n chainRoutingId: 0,\r\n standardTime: 0,\r\n comment: '',\r\n routingCode: productRoutingCode,\r\n tempRoutingId: +new Date(),\r\n routingId: 0,\r\n };\r\n this.productRoutings = [...this.productRoutings, productRouting];\r\n\r\n this.selectedProductRouting = null;\r\n }\r\n\r\n initiateFilters() {\r\n this.filteredProductRoutingCodes =\r\n this.productRoutingControl.valueChanges.pipe(\r\n startWith(this.selectedProductRouting?.activityCode),\r\n map((value) => this._filterProductRoutingCode(value)),\r\n );\r\n }\r\n\r\n private _filterProductRoutingCode(name: string): ProductRoutingCodes[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.productRoutingCodes.filter(\r\n (option) =>\r\n option.activityCode.toLowerCase().includes(filterValue) ||\r\n option.department.toLowerCase().includes(filterValue) ||\r\n option.activityDesc.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.productRoutingCodes;\r\n }\r\n\r\n dropTable(event: CdkDragDrop) {\r\n const prevIndex = this.productRoutings.findIndex(\r\n (d) => d === event.item.data,\r\n );\r\n moveItemInArray(this.productRoutings, prevIndex, event.currentIndex);\r\n }\r\n\r\n onSaveProductRouting() {\r\n if (!this.productRoutings?.length) {\r\n this.dialogRef.close();\r\n return;\r\n }\r\n const data = this.productRoutings.map(({ routingCode, ...p }, index) => ({\r\n ...p,\r\n routingOrder: index + 1,\r\n chainRoutingId: p.routingId ?? 0,\r\n }));\r\n this.loadService.isSavingChainRouting = true;\r\n this.chainService.setChainRouting(data).subscribe(\r\n () => {\r\n this.loadService.isSavingChainRouting = false;\r\n this.dialogRef.close();\r\n },\r\n () => {\r\n this.loadService.isSavingChainRouting = false;\r\n },\r\n );\r\n }\r\n onDeleteProductRouting(productRouting: ChainRouting) {\r\n this.confirmationService\r\n .showConfirmation({\r\n content: `Continue to delete ${productRouting.routingCode.activityCode} from Chain Routing?`,\r\n title: 'Delete chain routing?',\r\n confirmLabel: 'Continue',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n if (productRouting.routingId) {\r\n this.productRoutings = this.productRoutings.filter(\r\n (p) => p.routingId !== productRouting.routingId,\r\n );\r\n this.chainService\r\n .deleteChainRouting(productRouting.routingId)\r\n .subscribe();\r\n } else {\r\n this.productRoutings = this.productRoutings.filter(\r\n (p) => p.tempRoutingId !== productRouting.tempRoutingId,\r\n );\r\n }\r\n }\r\n });\r\n }\r\n onCopyRoutingOpen() {\r\n const dialogRef = this.dialog.open(ChainRoutingCopyDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1000px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n chainType: this.chainType,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((newRoutings) => {\r\n if (!newRoutings) return;\r\n this.productRoutings = newRoutings.map((r, index) => ({\r\n ...r,\r\n productsRoutingId: 0,\r\n tempRoutingId: +new Date() + index,\r\n chainId: this.chainId,\r\n chainType: this.chainType,\r\n }));\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Search product routing code to add\r\n \r\n \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ productRoutingCode.activityCode }}\r\n
    \r\n
    \r\n {{ productRoutingCode.department }}\r\n
    \r\n
    \r\n {{ productRoutingCode.activityDesc }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not 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 Copy From\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    Standard Time
    \r\n
    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 {{ routing.routingCode?.activityCode }}\r\n
    \r\n
    \r\n {{ routing.routingCode?.department }}\r\n
    \r\n
    \r\n {{ routing.routingCode?.activityDesc }}\r\n
    \r\n \r\n {{ routing.standardTime }}\r\n \r\n
    \r\n \r\n {{ routing.comment }}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    No Data
    \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { ChainStyle } from './../models';\r\n\r\n@Component({\r\n templateUrl: './chain-dialog.component.html',\r\n styleUrls: ['./chain-dialog.component.scss'],\r\n})\r\nexport class ChainDialogComponent implements OnInit {\r\n isSaving = false;\r\n chainStyle: ChainStyle = {} as ChainStyle;\r\n chainStyles: ChainStyle[] = [];\r\n displayedColumns = ['styleName'];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n private toastrService: ToastrService,\r\n private chainService: ChainService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getChainStyles();\r\n }\r\n\r\n get isFormValid() {\r\n return this.chainStyle.styleName;\r\n }\r\n\r\n getChainStyles() {\r\n this.chainService.getChainStyles().subscribe((data) => {\r\n this.chainStyles = data;\r\n });\r\n }\r\n\r\n onSaveChainStyle() {\r\n this.isSaving = true;\r\n this.chainService.setChainStyles(this.chainStyle).subscribe((id) => {\r\n this.toastrService.success('Chain style successfully saved.');\r\n this.dialogRef.close(id);\r\n });\r\n }\r\n}\r\n","
    \r\n

    Chain Style

    \r\n \r\n \r\n Style Name\r\n \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n Style Name\r\n \r\n \r\n {{ element.styleName }}\r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { ChainRaw, ChainStyle } from '../models';\r\n\r\n@Component({\r\n templateUrl: './chain-raw-dialog.component.html',\r\n styleUrls: ['./chain-raw-dialog.component.scss'],\r\n})\r\nexport class ChainRawDialogComponent implements OnInit {\r\n isSaving = false;\r\n chainRaw: ChainRaw = {} as ChainRaw;\r\n chainStyles: ChainStyle[] = [];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n private toastrService: ToastrService,\r\n private chainService: ChainService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.chainService.getChainStyles().subscribe((data) => {\r\n this.chainStyles = data;\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const { chainStyleID, sku, linkDim1, linkDim2, wireSize } = this.chainRaw;\r\n const scenario1 =\r\n linkDim1 && linkDim1 < 1000 && linkDim2 && linkDim2 < 1000;\r\n\r\n const scenario2 =\r\n linkDim1 && linkDim1 < 1000 && linkDim2 && linkDim2 < 1000;\r\n\r\n const scenario3 = linkDim1 && linkDim1 < 1000 && !linkDim2;\r\n return (\r\n chainStyleID && sku && wireSize && (scenario1 || scenario2 || scenario3)\r\n );\r\n }\r\n\r\n onSaveChainRawSize() {\r\n this.chainService\r\n .setChainRaw({ ...this.chainRaw, inHouse: !this.chainRaw.fromSupplier })\r\n .subscribe((data) => {\r\n this.dialogRef.close(data);\r\n });\r\n }\r\n\r\n onConvertMmToInches(fieldFrom, fieldTo) {\r\n this.chainRaw[fieldTo] = +(\r\n (this.chainRaw[fieldFrom] ?? 0) * 0.0393701\r\n ).toFixed(4);\r\n }\r\n onConvertInchesToMm(fieldFrom, fieldTo) {\r\n this.chainRaw[fieldTo] = +((this.chainRaw[fieldFrom] ?? 0) * 25.4).toFixed(\r\n 4,\r\n );\r\n }\r\n}\r\n","
    \r\n

    New Chain

    \r\n \r\n \r\n Chain Style\r\n \r\n \r\n {{ style.styleName }}\r\n \r\n \r\n \r\n \r\n Sku\r\n \r\n \r\n
    \r\n \r\n Link Dim 1 (mm)\r\n \r\n \r\n \r\n Link Dim 1 (in)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Link Dim 2 (mm)\r\n \r\n \r\n \r\n Link Dim 2 (in)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Wire Size (mm)\r\n \r\n \r\n \r\n Wire Size (in)\r\n \r\n \r\n
    \r\n \r\n Description\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    From Supplier
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { map } from 'rxjs/operators';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { OrderChainStock } from '../../riva-chain-finish/models';\r\n\r\ninterface ChainUnfinishedSkuDetail {\r\n chainId: number;\r\n materialCodeId: number;\r\n}\r\n\r\n@Component({\r\n templateUrl: './chain-unfinished-sku-generator-dialog.component.html',\r\n styleUrls: ['./chain-unfinished-sku-generator-dialog.component.scss'],\r\n})\r\nexport class ChainUnfinishedSkuGeneratorDialogComponent implements OnInit {\r\n chainSkuDetail: ChainUnfinishedSkuDetail = {} as ChainUnfinishedSkuDetail;\r\n chainStocks: OrderChainStock[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n chainId: number;\r\n materialCodeId?: number;\r\n },\r\n public dialogRef: MatDialogRef,\r\n private chainService: ChainService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.chainSkuDetail.chainId = this.data.chainId;\r\n this.chainSkuDetail.materialCodeId = this.data.materialCodeId;\r\n this.getChainStock();\r\n }\r\n\r\n getChainStock() {\r\n this.chainService\r\n .getChainRawStock(this.data.chainId)\r\n .pipe(\r\n map((stock) =>\r\n stock.map((stock) => ({\r\n chainFinishedStockID: stock.chainRawStockID,\r\n materialCodesID: stock.materialCodesID,\r\n material: stock.material,\r\n })),\r\n ),\r\n )\r\n .subscribe((data = []) => {\r\n this.chainStocks = data;\r\n if (data.length === 1) {\r\n this.chainSkuDetail.materialCodeId = data[0].materialCodesID;\r\n }\r\n });\r\n }\r\n\r\n getGeneratedSku() {\r\n const chainId = String(this.data.chainId ?? 0).padStart(7, '0');\r\n const materialCode = String(\r\n this.chainSkuDetail.materialCodeId ?? 0,\r\n ).padStart(3, '0');\r\n\r\n return `CHNR-${chainId}-${materialCode}`;\r\n }\r\n\r\n onCopySku() {\r\n navigator.clipboard.writeText(this.getGeneratedSku());\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","
    \r\n

    Generate Unfinished Chain SKU

    \r\n \r\n
    \r\n \r\n Material\r\n \r\n \r\n
    \r\n {{ mats.material.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

    {{ getGeneratedSku() }}

    \r\n \r\n \r\n\r\n \r\n \r\n Close\r\n \r\n \r\n\r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { ChainService } from 'src/app/services/chain.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { ChainRoutingDialogComponent } from '../riva-chain-routing/chain-routing-dialog.component';\r\nimport { ChainRawDialogComponent } from './chain-raw-dialog/chain-raw-dialog.component';\r\nimport { ChainUnfinishedSkuGeneratorDialogComponent } from './chain-unfinished-sku-generator-dialog/chain-unfinished-sku-generator-dialog.component';\r\nimport { ChainRaw, ChainRawStock, ChainStyle } from './models';\r\n\r\n@Component({\r\n selector: 'riva-chain',\r\n templateUrl: './riva-chain.component.html',\r\n styleUrls: ['./riva-chain.component.scss'],\r\n})\r\nexport class RivaChainComponent implements OnInit, AfterViewInit {\r\n constructor(\r\n private chainService: ChainService,\r\n private materialCodeService: MaterialCodeService,\r\n private toastrService: ToastrService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n chains = new MatTableDataSource([]);\r\n selectedChain: ChainRaw = {} as ChainRaw;\r\n imageFiles: FileList | null = null;\r\n displayedColumns = [\r\n 'sku',\r\n 'fromSupplier',\r\n 'styleName',\r\n 'linkDim1',\r\n 'linkDim2',\r\n 'wireSize',\r\n 'description',\r\n ];\r\n editMode = false;\r\n search = '';\r\n materialCodes: MaterialCode[] = [];\r\n filteredMaterialCodes: MaterialCode[] = [];\r\n selectedMaterialCode: number = 0;\r\n chainStocks: ChainRawStock[] = [];\r\n selectedChainStock: ChainRawStock = {} as ChainRawStock;\r\n chainStyles: ChainStyle[] = [];\r\n filterChainStyleID = 0;\r\n\r\n isStockSaving = false;\r\n\r\n ngOnInit(): void {\r\n const chainId = localStorage.getItem('selected-chain-raw-id');\r\n this.getChains(chainId ? +chainId : null);\r\n localStorage.removeItem('selected-chain-raw-id');\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject.filter((m) => !m.multiMetal);\r\n });\r\n this.chainService.reloadRawChainTypes = () => {\r\n this.getChainStyles();\r\n };\r\n this.getChainStyles();\r\n }\r\n\r\n getChainStyles() {\r\n this.chainService.getChainStyles().subscribe((data) => {\r\n this.chainStyles = [\r\n {\r\n chainStylesID: 0,\r\n styleName: 'All',\r\n },\r\n ...data,\r\n ];\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.chains.sort = this.sort;\r\n this.chains.filterPredicate = (data: ChainRaw, filterValue: string) => {\r\n const { search = '', chainStyleId } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.sku?.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.chainStyle?.styleName\r\n ?.toLowerCase()\r\n .includes(search?.toLowerCase());\r\n return (\r\n searchFilter &&\r\n (chainStyleId === 0 || data.chainStyleID === chainStyleId)\r\n );\r\n };\r\n }\r\n\r\n getChains(id = 0) {\r\n this.chainService.getChainRaws().subscribe((data = []) => {\r\n this.chains.data = data;\r\n if (id > 0 && data.length > 0) {\r\n this.selectedChain = data.find((d) => d.chainRawID === id);\r\n } else {\r\n this.selectedChain = data[0] ?? ({} as ChainRaw);\r\n }\r\n this.getChainStocks(this.selectedChain.chainRawID);\r\n });\r\n }\r\n\r\n getChainStocks(chainRawId) {\r\n this.chainService.getChainRawStock(chainRawId).subscribe((data = []) => {\r\n this.chainStocks = orderBy(\r\n data,\r\n (d: ChainRawStock) => d.material.code,\r\n 'desc',\r\n );\r\n this.filteredMaterialCodes = this.materialCodes.filter(\r\n (m) => !data.some((c) => c.materialCodesID === m.materialCodeId),\r\n );\r\n });\r\n }\r\n\r\n onSelectChain(chain: ChainRaw) {\r\n this.selectedChain = { ...chain };\r\n this.selectedChainStock = {} as ChainRawStock;\r\n this.getChainStocks(this.selectedChain.chainRawID);\r\n }\r\n\r\n uploadChainRawImage(files: FileList) {\r\n if (files.length === 0) return;\r\n const formData = new FormData();\r\n\r\n for (let i = 0; i < files.length; i++) {\r\n formData.append('file[]', files[i]);\r\n }\r\n\r\n formData.append('chainRawId', this.selectedChain.chainRawID.toString());\r\n\r\n this.chainService.chainRawUploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.selectedChain.picPath = event.body;\r\n this.chains.data = this.chains.data.map((c) => ({\r\n ...c,\r\n picPath:\r\n this.selectedChain.chainRawID === c.chainRawID\r\n ? event.body\r\n : c.picPath,\r\n }));\r\n // this.getChains(this.selectedChain.chainRawID);\r\n this.toastrService.success('Successfully uploaded.');\r\n }\r\n });\r\n }\r\n\r\n createNewChain() {\r\n const ref = this.dialog.open(ChainRawDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '400px',\r\n width: '100%',\r\n });\r\n ref.afterClosed().subscribe((data) => {\r\n this.getChains(data);\r\n });\r\n }\r\n onFilterChange() {\r\n this.chains.filter = JSON.stringify({\r\n search: this.search,\r\n chainStyleId: this.filterChainStyleID,\r\n });\r\n }\r\n onSetEditMode() {\r\n this.editMode = !this.editMode;\r\n if (!this.editMode) {\r\n this.getChains(this.selectedChain.chainRawID);\r\n }\r\n }\r\n onUpdateSelectedChain() {\r\n this.chainService\r\n .setChainRaw({\r\n ...this.selectedChain,\r\n inHouse: !this.selectedChain.fromSupplier,\r\n })\r\n .subscribe();\r\n }\r\n onSelectStock(stock) {\r\n this.selectedChainStock = { ...stock };\r\n }\r\n onSaveChainStock(isNew = false) {\r\n const {\r\n chainRawStockID,\r\n chainRawID,\r\n materialCodesID,\r\n weightPerInchG = 0,\r\n qtyInStockInch = 0,\r\n } = this.selectedChainStock;\r\n const stock = {\r\n chainRawStockID: isNew ? 0 : chainRawStockID,\r\n materialCodesID: isNew ? this.selectedMaterialCode : materialCodesID,\r\n weightPerInchG: isNew ? 0 : weightPerInchG,\r\n qtyInStockInch: isNew ? 0 : qtyInStockInch,\r\n chainRawID: chainRawID ?? this.selectedChain.chainRawID,\r\n };\r\n this.isStockSaving = true;\r\n this.selectedMaterialCode = 0;\r\n this.chainService.setChainRawStock(stock).subscribe(() => {\r\n this.toastrService.success('Successfully saved.', 'Chain Stock');\r\n this.isStockSaving = false;\r\n this.getChainStocks(this.selectedChain.chainRawID);\r\n });\r\n }\r\n\r\n get isStockFormValid() {\r\n return (\r\n this.selectedChainStock.qtyInStockInch &&\r\n Number.isInteger(this.selectedChainStock.qtyInStockInch) &&\r\n this.selectedChainStock.weightPerInchG < 1000\r\n );\r\n }\r\n\r\n onRoutingDialogOpen() {\r\n this.dialog.open(ChainRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n chainId: this.selectedChain.chainRawID,\r\n chainType: 0,\r\n editMode: this.editMode,\r\n },\r\n });\r\n }\r\n\r\n onOpenGenerateSkuDialog() {\r\n this.dialog.open(ChainUnfinishedSkuGeneratorDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '450px',\r\n width: '100%',\r\n data: {\r\n chainId: this.selectedChain.chainRawID,\r\n materialCodeId: this.selectedChainStock.materialCodesID,\r\n },\r\n autoFocus: false,\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n \r\n \r\n Chain Style\r\n \r\n \r\n {{ style.styleName }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Generate SKU\r\n \r\n \r\n New Chain\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.sku }}\r\n \r\n \r\n \r\n \r\n From Supplier\r\n \r\n \r\n {{ element.fromSupplier ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n \r\n Style\r\n \r\n \r\n {{ element.styleName }}\r\n \r\n \r\n \r\n \r\n Link Dim 1\r\n \r\n \r\n {{ element.linkDim1 }}mm\r\n \r\n \r\n \r\n \r\n Link Dim 2\r\n \r\n \r\n {{ element.linkDim2 }}mm\r\n \r\n \r\n \r\n \r\n Wire Size\r\n \r\n \r\n {{ element.wireSize }}mm\r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n {{ element.description }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Name\r\n \r\n \r\n
    \r\n \r\n Link Dim 1 (mm)\r\n \r\n \r\n \r\n Link Dim 2 (mm)\r\n \r\n \r\n
    \r\n \r\n Wire Size (mm)\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    From Supplier
    \r\n
    \r\n \r\n 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 {{ item.material?.description }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ mats.description }}\r\n \r\n \r\n \r\n \r\n Add Material\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Inches in Stock\r\n \r\n \r\n \r\n Grams Per Inch\r\n \r\n \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Edit\r\n \r\n \r\n Save\r\n \r\n \r\n Routing\r\n \r\n
    \r\n \r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Confirmation } from './confirmation';\r\n\r\n@Component({\r\n selector: 'riva-confirmation',\r\n templateUrl: './riva-confirmation.component.html',\r\n})\r\nexport class RivaConfirmationComponent {\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: Confirmation) {}\r\n}\r\n","

    {{ data.title ?? \"Confirmation\" }}

    \r\n\r\n
    {{ data.content }}
    \r\n
    \r\n\r\n\r\n \r\n {{ data.cancelLabel ?? \"Cancel\" }}\r\n \r\n \r\n {{ data.confirmLabel ?? \"Confirm\" }}\r\n \r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Confirmation } from './confirmation';\r\nimport { RivaConfirmationComponent } from './riva-confirmation.component';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ConfirmationService {\r\n constructor(public dialog: MatDialog) {}\r\n\r\n showConfirmation(config: Confirmation) {\r\n const dialogRef = this.dialog.open(RivaConfirmationComponent, {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n data: { ...config },\r\n });\r\n return dialogRef.afterClosed();\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n} from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\n\r\n@Component({\r\n selector: 'riva-date-range-picker',\r\n templateUrl: './riva-date-range-picker.component.html',\r\n styleUrls: ['./riva-date-range-picker.component.scss'],\r\n})\r\nexport class RivaDateRangePickerComponent implements OnChanges {\r\n @Input() startDate: string;\r\n @Input() endDate: string;\r\n @Input() isSinglePicker: boolean;\r\n @Input() singlePickerLabel: string = 'Date';\r\n @Input() startDateLabel: string = 'Start Date';\r\n @Input() endDateLabel: string = 'End Date';\r\n @Output() onChange = new EventEmitter();\r\n\r\n start: Date;\r\n end: Date;\r\n invalidDate: boolean = false;\r\n\r\n ngOnChanges() {\r\n this.start = DateTime.fromISO(this.startDate).toJSDate();\r\n this.end = DateTime.fromISO(this.endDate).toJSDate();\r\n }\r\n\r\n onDateRangeChange() {\r\n if (this.isSinglePicker && this.start != null) {\r\n this.onChange.emit({\r\n start: DateTime.fromJSDate(this.start).toFormat('yyyy-MM-dd'),\r\n end: DateTime.fromJSDate(this.start).toFormat('yyyy-MM-dd'),\r\n });\r\n } else if (this.isSinglePicker && this.start == null) {\r\n this.onChange.emit({\r\n start: null,\r\n end: null,\r\n });\r\n } else if (this.start <= this.end) {\r\n this.onChange.emit({\r\n start: DateTime.fromJSDate(this.start).toFormat('yyyy-MM-dd'),\r\n end: DateTime.fromJSDate(this.end).toFormat('yyyy-MM-dd'),\r\n });\r\n }\r\n }\r\n\r\n get isInvalid() {\r\n if (this.isSinglePicker) return false;\r\n return this.start > this.end;\r\n }\r\n}\r\n","
    \r\n \r\n \r\n {{\r\n isSinglePicker ? singlePickerLabel : startDateLabel\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n {{ endDateLabel }}\r\n \r\n \r\n \r\n \r\n
    \r\n
    Invalid date range
    \r\n\r\n","export const FINDINGS_TYPE = {\r\n JUMPRINGS: 1,\r\n POST: 2,\r\n FLYER: 3,\r\n SPRING: 4,\r\n SPRING_RING: 5,\r\n LOBSTER_CLAW: 6,\r\n TAGS: 7,\r\n};\r\n\r\nexport const FINDING_MAX_WEIGHT = 3;\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { FINDINGS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/findings-permission';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { FindingRoutingComponent } from './finding-routing.component';\r\n\r\n@Component({\r\n selector: 'finding-routing-dialog',\r\n templateUrl: './finding-routing-dialog.component.html',\r\n})\r\nexport class FindingRoutingDialogComponent implements OnInit {\r\n @ViewChild(FindingRoutingComponent)\r\n findingRoutingComponent: FindingRoutingComponent;\r\n\r\n featureKey = FINDINGS_FEATURE_KEY;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public loadService: LoadService,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { findingId: number; editMode: boolean },\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onSave() {\r\n this.findingRoutingComponent.onSaveFindingRouting();\r\n }\r\n}\r\n","

    Finding Routing

    \r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n \r\n Cancel\r\n \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n \r\n\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { cloneDeep } from 'lodash';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { FINDINGS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/findings-permission';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { RoutingCode } from 'src/app/models/routing-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { RoutingCodeService } from 'src/app/services/routing-code.service';\r\nimport { ConfirmationService } from '../../riva-confirmation/riva-confirmation.service';\r\nimport { FindingRoutingDialogComponent } from './finding-routing-dialog.component';\r\nimport { FindingRouting } from './model';\r\n\r\n@Component({\r\n selector: 'finding-routing',\r\n templateUrl: './finding-routing.component.html',\r\n styleUrls: ['./finding-routing.component.scss'],\r\n})\r\nexport class FindingRoutingComponent implements OnInit, OnChanges {\r\n @Input() findingsID: number;\r\n @Input() readonly?: boolean;\r\n @Output() onRoutingChange = new EventEmitter();\r\n @ViewChild('table') table: MatTable;\r\n routingDisplayColumn: string[] = [\r\n 'draggable',\r\n 'activityCode',\r\n 'department',\r\n 'activityDescription',\r\n 'standardTime',\r\n 'comment',\r\n 'delete',\r\n ];\r\n findingRoutings: FindingRouting[] = [];\r\n findingRoutingsRaw: FindingRouting[] = [];\r\n findingRoutingsForDelete: FindingRouting[] = [];\r\n findingRoutingsCodes: RoutingCode[] = [];\r\n rawFindingRoutingCodes: RoutingCode[] = [];\r\n filteredFindingRoutingCodes: Observable;\r\n findingRoutingsControl = new FormControl();\r\n selectedFindingRouting: RoutingCode;\r\n isSaving = false;\r\n dragEnabled = false;\r\n materialCodes: MaterialCode[] = [];\r\n selectedMaterialCodeId = 0;\r\n featureKey = FINDINGS_FEATURE_KEY;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n private routingCodeService: RoutingCodeService,\r\n private findingsService: FindingsService,\r\n private loadService: LoadService,\r\n private confirmationService: ConfirmationService,\r\n private materialCodeService: MaterialCodeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject.filter((code) => !code.multiMetal);\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.loadFindingRoutings();\r\n }\r\n\r\n loadFindingRoutings() {\r\n if (!this.findingsID) {\r\n this.findingRoutings = [];\r\n this.findingRoutingsCodes = [];\r\n this.rawFindingRoutingCodes = [];\r\n this.onRoutingChange.emit(this.findingRoutings);\r\n return;\r\n }\r\n forkJoin([\r\n this.routingCodeService.getAll(),\r\n this.findingsService.getFindingsRoutingByFindingsId(this.findingsID),\r\n ]).subscribe(([findingRoutingsCodes, findingRoutings]) => {\r\n this.findingRoutingsCodes = [...findingRoutingsCodes];\r\n this.rawFindingRoutingCodes = [...findingRoutingsCodes];\r\n this.findingRoutingsRaw = findingRoutings.map((r) => ({\r\n ...r,\r\n routingCode: findingRoutingsCodes.find(\r\n (code) => code.routingCodesId === r.routingCodesID,\r\n ),\r\n }));\r\n this.onFilterRoutings();\r\n this.onRoutingChange.emit(this.findingRoutings);\r\n this.initiateFilters();\r\n });\r\n }\r\n\r\n onFilterRoutings() {\r\n if (this.selectedMaterialCodeId > 0) {\r\n const noMaterialFindings = this.findingRoutingsRaw.filter(\r\n (f) => f.materialCodesID === 0,\r\n );\r\n const data = noMaterialFindings.map((f) => {\r\n const withMaterial = this.findingRoutingsRaw.find(\r\n (r) =>\r\n r.routingCodesID === f.routingCodesID &&\r\n r.materialCodesID === this.selectedMaterialCodeId,\r\n );\r\n if (withMaterial == null) {\r\n return f;\r\n }\r\n\r\n return {\r\n ...withMaterial,\r\n routingOrder: f.routingOrder,\r\n };\r\n });\r\n this.findingRoutings = cloneDeep(data);\r\n } else {\r\n const data = this.findingRoutingsRaw.filter(\r\n (f) => f.materialCodesID === 0,\r\n );\r\n this.findingRoutings = cloneDeep(data);\r\n }\r\n }\r\n\r\n onCheckFindingRoutingCode() {\r\n this.findingRoutingsCodes = this.rawFindingRoutingCodes.filter(\r\n (findingRoutingsCode) => {\r\n return !this.findingRoutings.some(\r\n (findingRoutings) =>\r\n findingRoutings.routingCodesID ===\r\n findingRoutingsCode.routingCodesId,\r\n );\r\n },\r\n );\r\n }\r\n\r\n displayFn(item: RoutingCode): string {\r\n return item?.activityCode ?? '';\r\n }\r\n\r\n onSelectFindingRoutingCode(findingRoutingsCode: RoutingCode) {\r\n const findingRoutings: FindingRouting = {\r\n findingsID: this.findingsID,\r\n routingCodesID: findingRoutingsCode.routingCodesId,\r\n findingsRoutingID: 0,\r\n standardTime: 0,\r\n comment: '',\r\n routingCode: findingRoutingsCode,\r\n materialCodesID: 0,\r\n tempRoutingId: +new Date(),\r\n };\r\n const data = [...this.findingRoutings, findingRoutings];\r\n this.findingRoutings = cloneDeep(data);\r\n\r\n this.selectedFindingRouting = null;\r\n }\r\n\r\n initiateFilters() {\r\n this.filteredFindingRoutingCodes =\r\n this.findingRoutingsControl.valueChanges.pipe(\r\n startWith(this.selectedFindingRouting?.activityCode),\r\n map((value) => this._filterFindingRoutingCode(value)),\r\n );\r\n }\r\n\r\n private _filterFindingRoutingCode(name: string): RoutingCode[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.findingRoutingsCodes.filter(\r\n (option) =>\r\n option.activityCode.toLowerCase().includes(filterValue) ||\r\n option.department.toLowerCase().includes(filterValue) ||\r\n option.activityDesc.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.findingRoutingsCodes;\r\n }\r\n\r\n dropTable(event: CdkDragDrop) {\r\n const prevIndex = this.findingRoutings.findIndex(\r\n (d) => d === event.item.data,\r\n );\r\n moveItemInArray(this.findingRoutings, prevIndex, event.currentIndex);\r\n }\r\n\r\n onSaveFindingRouting() {\r\n if (!this.findingRoutings?.length) {\r\n this.dialogRef.close();\r\n return;\r\n }\r\n if (this.selectedMaterialCodeId === 0) {\r\n const data = this.findingRoutings.map(\r\n ({ routingCode, tempRoutingId, ...p }, index) => ({\r\n ...p,\r\n routingOrder: index + 1,\r\n findingsRoutingID: p.findingsRoutingID ?? 0,\r\n }),\r\n );\r\n this.loadService.isSavingFindingRouting = true;\r\n this.findingsService.setFindingsRouting(data).subscribe(\r\n () => {\r\n this.loadService.isSavingFindingRouting = false;\r\n this.dialogRef.close();\r\n },\r\n () => {\r\n this.loadService.isSavingFindingRouting = false;\r\n },\r\n );\r\n } else {\r\n const routings = [];\r\n this.findingRoutings.forEach(\r\n ({ routingCode, tempRoutingId, ...routing }, index) => {\r\n const originalRouting = this.findingRoutingsRaw.find(\r\n (r) => r.findingsRoutingID === routing.findingsRoutingID,\r\n );\r\n if (originalRouting == null) {\r\n routings.push({\r\n ...routing,\r\n routingOrder: index + 1,\r\n materialCodesID: 0,\r\n });\r\n routings.push({\r\n ...routing,\r\n routingOrder: index + 1,\r\n materialCodesID: this.selectedMaterialCodeId,\r\n });\r\n } else {\r\n const hasChanges =\r\n originalRouting.comment !== routing.comment ||\r\n originalRouting.standardTime !== routing.standardTime;\r\n if (hasChanges && originalRouting.materialCodesID === 0) {\r\n routings.push({\r\n ...routing,\r\n findingsRoutingID: 0,\r\n routingOrder: index + 1,\r\n materialCodesID: this.selectedMaterialCodeId,\r\n });\r\n routings.push({\r\n ...originalRouting,\r\n routingOrder: index + 2,\r\n });\r\n } else {\r\n routings.push({\r\n ...routing,\r\n routingOrder: index + 1,\r\n });\r\n }\r\n }\r\n },\r\n );\r\n this.loadService.isSavingFindingRouting = true;\r\n this.findingsService.setFindingsRouting(routings).subscribe(\r\n () => {\r\n this.loadService.isSavingFindingRouting = false;\r\n this.dialogRef.close();\r\n },\r\n () => {\r\n this.loadService.isSavingFindingRouting = false;\r\n },\r\n );\r\n }\r\n }\r\n onDeleteFindingRouting(findingRoutings: FindingRouting) {\r\n this.confirmationService\r\n .showConfirmation({\r\n content: `Continue to delete routing from Finding Routing?`,\r\n title: 'Delete finding routing?',\r\n confirmLabel: 'Continue',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n if (findingRoutings.findingsRoutingID) {\r\n const data = this.findingRoutings.filter(\r\n (p) => p.findingsRoutingID !== findingRoutings.findingsRoutingID,\r\n );\r\n this.findingRoutings = cloneDeep(data);\r\n this.findingsService\r\n .deleteFindingsRouting(findingRoutings.findingsRoutingID)\r\n .subscribe();\r\n } else {\r\n const data = this.findingRoutings.filter(\r\n (p) => p.tempRoutingId !== findingRoutings.tempRoutingId,\r\n );\r\n this.findingRoutings = cloneDeep(data);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n Search routing code to add\r\n \r\n \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ findingRoutingCode.activityCode }}\r\n
    \r\n
    \r\n {{ findingRoutingCode.department }}\r\n
    \r\n
    \r\n {{ findingRoutingCode.activityDesc }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n Material Code\r\n \r\n None \r\n \r\n {{ mats.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    Standard Time
    \r\n
    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 {{ routing.routingCode?.activityCode }}\r\n
    \r\n
    \r\n {{ routing.routingCode?.department }}\r\n
    \r\n
    \r\n {{ routing.routingCode?.activityDesc }}\r\n
    \r\n \r\n {{ routing.standardTime }}\r\n \r\n
    \r\n \r\n {{ routing.comment }}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    No Data
    \r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FindingsType } from '../model';\r\n\r\n@Component({\r\n templateUrl: './finding-setting-dialog.component.html',\r\n styleUrls: ['./finding-setting-dialog.component.scss'],\r\n})\r\nexport class FindingSettingDialogComponent implements OnInit {\r\n isSaving = false;\r\n productSetting = {\r\n workOrderLimit: 0,\r\n };\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: { findingsType: FindingsType },\r\n public dialogRef: MatDialogRef,\r\n private findingsService: FindingsService,\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n this.findingsService\r\n .setFindingsType(this.data.findingsType)\r\n .subscribe(() => {\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","
    \r\n

    {{ data.findingsType.findingsTypeName }} Settings

    \r\n \r\n \r\n Work Order Limit\r\n \r\n \r\n \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { FINDING_MAX_WEIGHT } from '../constants';\r\nimport { Finding, FindingsStock } from '../model';\r\nimport { countDecimalPlaces } from '../util';\r\n\r\n@Component({\r\n templateUrl: './finding-stock-dialog.component.html',\r\n styleUrls: ['./finding-stock-dialog.component.scss'],\r\n})\r\nexport class FindingStockDialogComponent implements OnInit {\r\n isSaving = false;\r\n selectedStock: FindingsStock = {} as FindingsStock;\r\n materialCodes: MaterialCode[] = [];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: { selectedFinding: Finding; stocks: FindingsStock[] },\r\n\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject.filter(\r\n (m) =>\r\n !m.multiMetal &&\r\n !this.data.stocks.some((s) => s.materialsCodeID === m.materialCodeId),\r\n );\r\n });\r\n }\r\n\r\n onSaveStock() {\r\n const {\r\n findingsStockID,\r\n findingsSizesID,\r\n materialsCodeID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n } = this.selectedStock;\r\n const stock = {\r\n findingsStockID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n materialCodesID: materialsCodeID,\r\n findingsSizesID:\r\n findingsSizesID ?? this.data.selectedFinding.findingSizesID,\r\n };\r\n this.isSaving = true;\r\n this.findingsService.setFindingsStock(stock).subscribe(() => {\r\n this.toastrService.success('Successfully saved.', 'Finding Stock');\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n return (\r\n this.selectedStock.materialsCodeID &&\r\n this.selectedStock.qtyInStock >= 0 &&\r\n Number.isInteger(this.selectedStock.qtyInStock) &&\r\n this.selectedStock.weight_G < 100 &&\r\n countDecimalPlaces(this.selectedStock.weight_G) <= FINDING_MAX_WEIGHT\r\n );\r\n }\r\n}\r\n","
    \r\n

    New Stock

    \r\n \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ mats.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY in Stock\r\n \r\n \r\n \r\n Weight (g)\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport {\r\n RivaFindings,\r\n RivaFindingsDto,\r\n Supplier,\r\n} from 'src/app/models/findings.model';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { ConfirmationService } from '../../riva-confirmation/riva-confirmation.service';\r\n\r\n@Component({\r\n selector: 'findings-details',\r\n templateUrl: './findings-details.component.html',\r\n styleUrls: ['./findings-details.component.scss'],\r\n})\r\nexport class FindingsDetailsComponent implements OnInit {\r\n @Input() findings: RivaFindings = {} as RivaFindings;\r\n @Input() editMode: boolean = false;\r\n @Output() onSetEditMode = new EventEmitter();\r\n @Output() callback = new EventEmitter();\r\n\r\n uomOptions$: Observable;\r\n suppliers: Suppliers[] = [];\r\n materialCodes: MaterialCode[] = [];\r\n imageFiles: FileList | null = null;\r\n isSaving: boolean = false;\r\n findingMaterialCode: number;\r\n findingsSize: string;\r\n showFindingsSizeError = false;\r\n hasDeleteAccess = false;\r\n\r\n constructor(\r\n private findingsService: FindingsService,\r\n private uomService: UnitOfMeasureService,\r\n private supplierService: SupplierService,\r\n private materialCodeService: MaterialCodeService,\r\n private confirmationService: ConfirmationService,\r\n private tokenStorageService: TokenStorageService,\r\n private sanitizer: DomSanitizer,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.uomOptions$ = this.uomService\r\n .getList()\r\n .pipe(map((data) => data.responseObject));\r\n this.getSuppliers();\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n\r\n get filteredMaterialCodes() {\r\n return this.materialCodes?.filter(\r\n (c) =>\r\n !this.findings?.materials?.some(\r\n (m) => m.materialCodeId === c.materialCodeId,\r\n ),\r\n );\r\n }\r\n\r\n getSuppliers() {\r\n this.supplierService.getList().subscribe((result) => {\r\n this.suppliers = result;\r\n });\r\n }\r\n\r\n setEditMode() {\r\n this.onSetEditMode.emit();\r\n }\r\n onCancel() {\r\n this.callback.emit();\r\n }\r\n onChangeSource() {\r\n if (this.findings.source) {\r\n this.findings.supplier = this.suppliers?.[0];\r\n } else {\r\n this.findings.supplier = {} as Supplier;\r\n }\r\n }\r\n\r\n saveFindings() {\r\n const findings: RivaFindingsDto = {\r\n findingsId: this.findings.findingsId,\r\n name: this.findings.name,\r\n sku: this.findings.sku,\r\n suppliersId: this.findings.supplier.suppliersId,\r\n commentBox: this.findings.commentBox,\r\n unitsOfMeasureId: this.findings.unitsOfMeasure.unitsOfMeasureId,\r\n picPath: this.findings.picPath ?? 'assets/images/no-image.png',\r\n createdBy:\r\n this.findings.createdBy ??\r\n this.tokenStorageService.currentUser?.userName ??\r\n '',\r\n source: this.findings.source,\r\n };\r\n return this.findingsService.setFindings(findings);\r\n }\r\n\r\n onSaveFindings() {\r\n this.isSaving = true;\r\n this.saveFindings().subscribe((data: number) => {\r\n this.findings.findingsId = data;\r\n if (this.findings.findingsId && this.imageFiles?.length) {\r\n this.uploadImage();\r\n return;\r\n }\r\n this.callback.emit();\r\n this.isSaving = false;\r\n });\r\n }\r\n\r\n sanitize(url: string) {\r\n return this.sanitizer.bypassSecurityTrustUrl(\r\n url ?? 'https://test.rivapm.com/assets/images/no-image.png',\r\n );\r\n }\r\n\r\n onClickUpload(uploadImage) {\r\n uploadImage?.click();\r\n }\r\n\r\n onUploadChange(files: FileList) {\r\n this.imageFiles = files;\r\n this.findings.picPath = URL.createObjectURL(files[0]);\r\n }\r\n\r\n uploadImage() {\r\n const formData = new FormData();\r\n\r\n for (let i = 0; i < this.imageFiles.length; i++) {\r\n formData.append('file[]', this.imageFiles[i]);\r\n }\r\n\r\n formData.append('findingsId', this.findings.findingsId.toString());\r\n formData.append('sku', this.findings.sku);\r\n\r\n this.findingsService.uploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.ResponseHeader) {\r\n this.findings.picPath = event.url;\r\n this.callback.emit();\r\n this.isSaving = false;\r\n }\r\n });\r\n }\r\n\r\n onSaveFindingsSize() {\r\n this.showFindingsSizeError = false;\r\n const isExist = this.findings.sizes.some(\r\n (size) => size.size == this.findingsSize.trim(),\r\n );\r\n if (isExist) {\r\n this.showFindingsSizeError = true;\r\n return;\r\n }\r\n const data = {\r\n findingSizesID: 0,\r\n findingsID: this.findings.findingsId,\r\n size: this.findingsSize,\r\n };\r\n this.findingsService\r\n .setFindingsSizes(data)\r\n .subscribe((findingSizesID: number) => {\r\n data.findingSizesID = findingSizesID;\r\n const findings = { ...this.findings };\r\n findings.sizes.push(data);\r\n this.findings =\r\n this.findingsService.orderFindingsMaterialAndSize(findings);\r\n this.findingsSize = '';\r\n });\r\n }\r\n\r\n onSaveFindingsMaterial() {\r\n const data = {\r\n findingsMaterialsCodeId: 0,\r\n findingsID: this.findings.findingsId,\r\n materialsCodeID: this.findingMaterialCode,\r\n };\r\n this.findingsService\r\n .setFindingsMaterials(data)\r\n .subscribe((findingsMaterialsCodeId: number) => {\r\n const { materialCodeId, code, karat, color, description } =\r\n this.materialCodes.find(\r\n (c) => c.materialCodeId === this.findingMaterialCode,\r\n ) ?? {};\r\n const findingsMaterialCode = {\r\n materialCodeId,\r\n code,\r\n karat,\r\n color,\r\n description,\r\n findingsMaterialsCodeId,\r\n };\r\n const findings = { ...this.findings };\r\n findings.materials.push(findingsMaterialCode);\r\n this.findings =\r\n this.findingsService.orderFindingsMaterialAndSize(findings);\r\n this.findingMaterialCode = null;\r\n });\r\n }\r\n\r\n onDeleteMaterial(material) {\r\n this.confirmationService\r\n .showConfirmation({\r\n content: `Continue to delete ${material.description} from findings materials?`,\r\n title: 'Delete Material?',\r\n confirmLabel: 'Continue',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.findingsService\r\n .deleteFindingsMaterials(material.findingsMaterialsCodeId)\r\n .subscribe();\r\n this.findings.materials = this.findings.materials.filter(\r\n (m) =>\r\n m.findingsMaterialsCodeId !== material.findingsMaterialsCodeId,\r\n );\r\n }\r\n });\r\n }\r\n\r\n onDeleteSize(size) {\r\n this.confirmationService\r\n .showConfirmation({\r\n content: `Continue to delete ${size.size} from findings sizes?`,\r\n title: 'Delete Size?',\r\n confirmLabel: 'Continue',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.findingsService\r\n .deleteFindingsSizes(size.findingSizesID)\r\n .subscribe();\r\n this.findings.sizes = this.findings.sizes.filter(\r\n (s) => s.findingSizesID !== size.findingSizesID,\r\n );\r\n }\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n return (\r\n this.findings.name &&\r\n this.findings.sku &&\r\n this.findings.unitsOfMeasure.unitsOfMeasureId\r\n );\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Upload\r\n \r\n \r\n
    \r\n
    \r\n \r\n Edit Finding\r\n \r\n
    \r\n \r\n Save Finding\r\n \r\n \r\n Cancel\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n Item Name\r\n \r\n \r\n \r\n SKU\r\n \r\n \r\n \r\n Unit of Measure\r\n \r\n \r\n {{ unit.uom }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Comment\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ material.description }}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ mats.description }}\r\n \r\n \r\n \r\n \r\n Add Material\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ size.size }}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Size\r\n \r\n \r\n Size already exist.\r\n
    \r\n \r\n Add Size\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { RivaFindings, Supplier } from 'src/app/models/findings.model';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\n\r\n@Component({\r\n selector: 'findings-list',\r\n templateUrl: './findings-list.component.html',\r\n styleUrls: ['./findings-list.component.scss'],\r\n})\r\nexport class FindingsListComponent implements OnInit, AfterViewInit {\r\n @Input() selectedFindings: RivaFindings;\r\n @Input() editMode: boolean = false;\r\n @Output() onSelectFindings = new EventEmitter();\r\n @Output() onSetEditMode = new EventEmitter();\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n findings = new MatTableDataSource([]);\r\n displayedColumns = ['picPath', 'name', 'sku'];\r\n search = '';\r\n\r\n constructor(private findingsService: FindingsService) {}\r\n\r\n ngOnInit(): void {\r\n this.getFindings();\r\n\r\n this.findingsService.reloadFindingsList = (findingsId?: number) => {\r\n this.getFindings(findingsId);\r\n };\r\n }\r\n ngAfterViewInit() {\r\n this.findings.sort = this.sort;\r\n this.findings.paginator = this.paginator;\r\n this.findings.filterPredicate = (\r\n data: RivaFindings,\r\n filterValue: string,\r\n ) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.name.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.sku?.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.suppliersName?.toLowerCase().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n }\r\n\r\n getFindings(findingsId?: number) {\r\n this.findingsService.getFindings().subscribe((data) => {\r\n this.findings.data = orderBy(\r\n data,\r\n (s: RivaFindings) => s.findingsId,\r\n 'desc',\r\n ).map((findings) => ({\r\n ...findings,\r\n suppliersName: findings.supplier?.companyName ?? '',\r\n unitsOfMeasure: findings.unitsOfMeasure ?? ({} as UnitOfMeasure),\r\n supplier: findings.supplier ?? ({} as Supplier),\r\n }));\r\n const selected = findingsId\r\n ? this.findings.data.find((f) => f.findingsId === findingsId)\r\n : this.findings.data[0];\r\n\r\n this.onSelectFindings.emit({ ...(selected ?? {}) });\r\n });\r\n }\r\n\r\n onClickNewFinding() {\r\n this.onSelectFindings.emit({\r\n unitsOfMeasure: {},\r\n supplier: {},\r\n source: false,\r\n materials: [],\r\n sizes: [],\r\n });\r\n this.onSetEditMode.emit();\r\n }\r\n\r\n onTableRowClick(row: RivaFindings) {\r\n if (this.editMode) return;\r\n this.onSelectFindings.emit({ ...row });\r\n }\r\n\r\n onFilterChange() {\r\n this.findings.filter = JSON.stringify({ search: this.search });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n Search by name, sku or supplier\r\n \r\n \r\n
    \r\n
    \r\n \r\n New Finding\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n \r\n SKU\r\n \r\n \r\n {{ element.sku }}\r\n \r\n \r\n \r\n \r\n Supplier\r\n \r\n \r\n {{ element.suppliersName }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { FindingsSkuGeneratorDialogComponent } from '../findings-sku-generator-dialog/findings-sku-generator-dialog.component';\r\nimport { Finding } from '../model';\r\n\r\ninterface FindingSkuDetail {\r\n findingsId: number;\r\n findingSizeId: number;\r\n materialCodeId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'finding-sku-generator-button',\r\n templateUrl: './findings-sku-generator-button.component.html',\r\n})\r\nexport class FindingsSkuGeneratorButtonComponent implements OnInit {\r\n @Input() findings: Finding[];\r\n @Input() findingsTypeId: number;\r\n @Input() findingsId?: number;\r\n @Input() findingSizeId?: number;\r\n @Input() materialCodeId?: number;\r\n\r\n constructor(public dialog: MatDialog) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onOpenGenerateSkuDialog() {\r\n this.dialog.open(FindingsSkuGeneratorDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '800px',\r\n width: '100%',\r\n data: {\r\n findings: this.findings,\r\n findingsTypeId: this.findingsTypeId,\r\n findingsId: this.findingsId,\r\n findingSizeId: this.findingSizeId,\r\n materialCodeId: this.materialCodeId,\r\n },\r\n autoFocus: false,\r\n });\r\n }\r\n}\r\n","
    \r\n \r\n SKUs\r\n \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FINDINGS_TYPE } from '../constants';\r\nimport { Finding, FindingsStock } from '../model';\r\n\r\ninterface FindingSkuDetail {\r\n findingsId: number;\r\n findingSizeId: number;\r\n materialCodeId: number;\r\n}\r\n\r\n@Component({\r\n templateUrl: './findings-sku-generator-dialog.component.html',\r\n styleUrls: ['./findings-sku-generator-dialog.component.scss'],\r\n})\r\nexport class FindingsSkuGeneratorDialogComponent implements OnInit {\r\n findingSkuDetail: FindingSkuDetail = {} as FindingSkuDetail;\r\n findingsByType = new MatTableDataSource([]);\r\n\r\n jumpringColumns = {\r\n size_1: 'Wire Diameter',\r\n jumpringSize: 'ID',\r\n };\r\n postColumns = {\r\n size_1: 'Length',\r\n size_2: 'Thickness',\r\n };\r\n flyerColumns = {\r\n size_1: 'Size',\r\n };\r\n springColumns = {\r\n size_1: 'Spring height',\r\n size_2: 'Wire Thickness',\r\n size_3: 'Spring Angle',\r\n size_4: 'Hole Inside Diameter',\r\n };\r\n springRingColumns = {\r\n name: 'Name',\r\n size_1: 'Size',\r\n };\r\n lobsterClawColumns = {\r\n name: 'Name',\r\n size_1: 'Size',\r\n };\r\n tagColumns = {\r\n name: 'Name',\r\n customerName: 'Customer',\r\n size_1: 'Lengths',\r\n size_2: 'Width',\r\n size_3: 'Thickness',\r\n };\r\n\r\n columns: Record; // Key and Label (name: 'Name')\r\n displayedColumns = [];\r\n stocks: FindingsStock[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n findings: Finding[];\r\n findingsTypeId: number;\r\n findingsId: number;\r\n findingSizeId?: number;\r\n materialCodeId?: number;\r\n },\r\n public dialogRef: MatDialogRef,\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.findingSkuDetail.findingsId = this.data.findingsId;\r\n this.findingSkuDetail.materialCodeId = this.data.materialCodeId;\r\n this.findingSkuDetail.findingSizeId = this.data.findingSizeId;\r\n this.getStockBySizeId();\r\n this.columns = this.getColumns(this.data.findingsTypeId);\r\n this.displayedColumns = Object.keys(this.columns);\r\n }\r\n\r\n onSelectFinding(finding: Finding) {\r\n this.findingSkuDetail.findingsId = finding.findingsId;\r\n this.findingSkuDetail.findingSizeId = finding.findingSizesID;\r\n this.findingSkuDetail.materialCodeId = 0;\r\n this.getStockBySizeId();\r\n }\r\n getStockBySizeId() {\r\n if (!this.findingSkuDetail.findingSizeId) {\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.findingSkuDetail.findingSizeId)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n });\r\n }\r\n\r\n getGeneratedSku() {\r\n const findingsId = String(this.data.findingsId ?? 0).padStart(5, '0');\r\n const materialCode = String(\r\n this.findingSkuDetail.materialCodeId ?? 0,\r\n ).padStart(3, '0');\r\n const findingsSizeId = String(\r\n this.findingSkuDetail.findingSizeId ?? 0,\r\n ).padStart(3, '0');\r\n\r\n return `FIND-${findingsId}-${findingsSizeId}-${materialCode}`;\r\n }\r\n\r\n onCopySku() {\r\n navigator.clipboard.writeText(this.getGeneratedSku());\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n getColumns(typeId) {\r\n switch (typeId) {\r\n case FINDINGS_TYPE.JUMPRINGS:\r\n return this.jumpringColumns;\r\n case FINDINGS_TYPE.POST:\r\n return this.postColumns;\r\n case FINDINGS_TYPE.FLYER:\r\n return this.flyerColumns;\r\n case FINDINGS_TYPE.SPRING:\r\n return this.springColumns;\r\n case FINDINGS_TYPE.SPRING_RING:\r\n return this.springRingColumns;\r\n case FINDINGS_TYPE.LOBSTER_CLAW:\r\n return this.lobsterClawColumns;\r\n case FINDINGS_TYPE.TAGS:\r\n return this.tagColumns;\r\n default:\r\n return this.jumpringColumns;\r\n }\r\n }\r\n}\r\n","
    \r\n

    Generate Findings SKU

    \r\n \r\n
    \r\n \r\n \r\n Material Code\r\n \r\n \r\n {{ stock.material.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

    {{ getGeneratedSku() }}

    \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n Close\r\n \r\n \r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FINDINGS_TYPE } from '../../constants';\r\nimport { Finding } from '../../model';\r\n\r\n@Component({\r\n templateUrl: './flyer-dialog.component.html',\r\n styleUrls: ['./flyer-dialog.component.scss'],\r\n})\r\nexport class FlyerDialogComponent {\r\n isSaving = false;\r\n flyer: Finding = {} as Finding;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: { flyers: Finding[] },\r\n\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n ) {}\r\n\r\n onSaveflyer() {\r\n const isExist = this.data.flyers.some((j) => {\r\n const { size_1 } = this.flyer;\r\n return j.size_1 === size_1;\r\n });\r\n if (isExist) {\r\n this.toastrService.error('Size already exist.', 'Flyer');\r\n return;\r\n }\r\n this.isSaving = true;\r\n this.findingsService\r\n .setFindingsSizes({\r\n ...this.flyer,\r\n findingsTypesID: FINDINGS_TYPE.FLYER,\r\n })\r\n .subscribe((id) => {\r\n this.findingsService\r\n .setFinding({\r\n findingsId: 0,\r\n commentBox: '',\r\n findingSizesId: id,\r\n })\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.toastrService.success('Successfully saved.', 'Flyer');\r\n this.dialogRef.close(true);\r\n });\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const { size_1 } = this.flyer;\r\n\r\n return size_1 && size_1 < 100;\r\n }\r\n}\r\n","
    \r\n

    New Size

    \r\n \r\n \r\n Size\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { HttpEventType } from '@angular/common/http';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FINDINGS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/findings-permission';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { FindingRoutingDialogComponent } from '../finding-routing/finding-routing-dialog.component';\r\nimport { FindingStockDialogComponent } from '../finding-stock-dialog/finding-stock-dialog.component';\r\nimport { Finding, MeasurementUnit } from '../model';\r\nimport { countDecimalPlaces } from '../util';\r\nimport { FINDINGS_TYPE, FINDING_MAX_WEIGHT } from './../constants';\r\nimport { FindingsStock } from './../model';\r\nimport { FlyerDialogComponent } from './flyer-dialog/flyer-dialog.component';\r\n\r\n@Component({\r\n selector: 'finding-flyer',\r\n templateUrl: './flyer.component.html',\r\n styleUrls: ['./flyer.component.scss'],\r\n})\r\nexport class FlyerComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() findings: Finding[];\r\n @Input() measurementUnit: MeasurementUnit;\r\n @Output() onReloadList = new EventEmitter();\r\n @Output() onOpenSetting = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n selectedFlyer: Finding;\r\n selectedStock: FindingsStock;\r\n stocks: FindingsStock[] = [];\r\n flyers = new MatTableDataSource([]);\r\n materialCodes: MaterialCode[] = [];\r\n displayedColumns = ['size_1'];\r\n\r\n isSavingStock = false;\r\n defaultFindingsId = 0;\r\n findingsType = FINDINGS_TYPE;\r\n featureKey = FINDINGS_FEATURE_KEY;\r\n\r\n constructor(\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const selectedFindingsId = localStorage.getItem(\r\n 'selected-findings-id-flyer',\r\n );\r\n if (selectedFindingsId) {\r\n this.defaultFindingsId = +selectedFindingsId;\r\n localStorage.removeItem('selected-findings-id-flyer');\r\n }\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.flyers.data = this.findings.filter(\r\n (f) => f.findingsTypesID === FINDINGS_TYPE.FLYER,\r\n );\r\n this.selectedFlyer = this.defaultFindingsId\r\n ? this.flyers.data.find((f) => f.findingsId === this.defaultFindingsId)\r\n : this.flyers.data?.[this.flyers.data?.length - 1] ?? ({} as Finding);\r\n this.getStockBySizeId();\r\n }\r\n ngAfterViewInit() {\r\n this.flyers.sort = this.sort;\r\n this.flyers.paginator = this.paginator;\r\n }\r\n getStockBySizeId() {\r\n if (!this.selectedFlyer.findingSizesID) {\r\n this.selectedStock = {} as FindingsStock;\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.selectedFlyer.findingSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n const [stock = {} as FindingsStock] = data ?? [];\r\n this.selectedStock = this.selectedStock.materialsCodeID\r\n ? {\r\n ...(data.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n ) ?? ({} as FindingsStock)),\r\n }\r\n : { ...stock };\r\n });\r\n }\r\n\r\n uploadFindingImage(files, input: HTMLInputElement) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append('findingsId', this.selectedFlyer.findingsId.toString());\r\n\r\n this.findingsService.uploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.selectedFlyer.picPath = event.body;\r\n input.value = '';\r\n }\r\n });\r\n }\r\n onTableRowClick(selected: Finding) {\r\n this.selectedFlyer = selected;\r\n this.getStockBySizeId();\r\n }\r\n onAddNewSpringRing() {\r\n const dialogRef = this.dialog.open(FlyerDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '300px',\r\n width: '100%',\r\n data: {\r\n flyers: this.flyers.data,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((reload: boolean) => {\r\n if (reload) {\r\n this.onReloadList.emit();\r\n }\r\n });\r\n }\r\n onSaveStock() {\r\n const {\r\n findingsStockID,\r\n findingsSizesID,\r\n materialsCodeID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n } = this.selectedStock;\r\n const stock = {\r\n findingsStockID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n materialCodesID: materialsCodeID,\r\n findingsSizesID: findingsSizesID ?? this.selectedFlyer.findingSizesID,\r\n };\r\n this.isSavingStock = true;\r\n this.findingsService.setFindingsStock(stock).subscribe(() => {\r\n this.getStockBySizeId();\r\n this.toastrService.success('Successfully saved.', 'Spring Ring');\r\n this.isSavingStock = false;\r\n });\r\n }\r\n onChangeMaterialCode() {\r\n const stock = this.stocks.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n );\r\n this.selectedStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialsCodeID: this.selectedStock.materialsCodeID,\r\n } as FindingsStock);\r\n }\r\n get isFormValid() {\r\n return (\r\n this.selectedStock.materialsCodeID &&\r\n this.selectedStock.qtyInStock >= 0 &&\r\n Number.isInteger(this.selectedStock.qtyInStock) &&\r\n this.selectedStock.weight_G < 100 &&\r\n countDecimalPlaces(this.selectedStock.weight_G) <= FINDING_MAX_WEIGHT\r\n );\r\n }\r\n\r\n onRoutingDialogOpen() {\r\n this.dialog.open(FindingRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n findingId: this.selectedFlyer.findingsId,\r\n editMode: true,\r\n },\r\n });\r\n }\r\n onStockDialogOpen() {\r\n const ref = this.dialog.open(FindingStockDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n selectedFinding: this.selectedFlyer,\r\n stocks: this.stocks,\r\n },\r\n });\r\n ref.afterClosed().subscribe((isReload) => {\r\n if (isReload) {\r\n this.getStockBySizeId();\r\n }\r\n });\r\n }\r\n onOpen() {\r\n this.onOpenSetting.emit(FINDINGS_TYPE.FLYER);\r\n }\r\n getDisplayValue(size) {\r\n const value = this.measurementUnit === 'mm' ? size : size / 25.4;\r\n return `${Number(value.toFixed(3))}${this.measurementUnit}`;\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n 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 Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n + New\r\n \r\n
    \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ getDisplayValue(element.size_1) }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n New Stock\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ stock.material.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY in Stock\r\n \r\n \r\n \r\n Weight (g)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Findings Routing\r\n \r\n
    \r\n
    \r\n
    \r\n","import { Component, Inject } from '@angular/core';\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FINDINGS_TYPE } from '../../constants';\r\nimport { Finding } from '../../model';\r\n\r\n@Component({\r\n templateUrl: './jumpring-dialog.component.html',\r\n styleUrls: ['./jumpring-dialog.component.scss'],\r\n})\r\nexport class JumpringDialogComponent {\r\n isSaving = false;\r\n jumpring: Finding = {} as Finding;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: { jumprings: Finding[] },\r\n\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n ) {}\r\n\r\n onSaveJumpring() {\r\n const isExist = this.data.jumprings.some((j) => {\r\n const { size_1, size_2, size_3 } = this.jumpring;\r\n return (\r\n j.size_1 === size_1 &&\r\n j.size_2 === (size_2 ?? 0) &&\r\n j.size_3 === (size_3 ?? 0)\r\n );\r\n });\r\n if (isExist) {\r\n this.toastrService.error('Size already exist.', 'Jumpring');\r\n return;\r\n }\r\n this.isSaving = true;\r\n this.findingsService\r\n .setFindingsSizes({\r\n ...this.jumpring,\r\n findingsTypesID: FINDINGS_TYPE.JUMPRINGS,\r\n })\r\n .subscribe((id) => {\r\n this.findingsService\r\n .setFinding({\r\n findingsId: 0,\r\n commentBox: '',\r\n findingSizesId: id,\r\n })\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.toastrService.success('Successfully saved.', 'Jumpring');\r\n this.dialogRef.close(true);\r\n });\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const { size_1, size_2, size_3 } = this.jumpring;\r\n const scenario1 =\r\n size_1 &&\r\n size_1 < 100 &&\r\n size_2 &&\r\n size_2 < 100 &&\r\n size_3 &&\r\n size_3 < 100;\r\n\r\n const scenario2 =\r\n size_1 && size_1 < 100 && size_2 && size_2 < 100 && !size_3;\r\n\r\n const scenario3 = size_1 && size_1 < 100 && !size_2 && !size_3;\r\n return scenario1 || scenario2 || scenario3;\r\n }\r\n}\r\n","
    \r\n

    New Size

    \r\n \r\n \r\n Wire Dia\r\n \r\n \r\n \r\n ID 1\r\n \r\n \r\n \r\n ID 2\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { HttpEventType } from '@angular/common/http';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FINDINGS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/findings-permission';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { FindingRoutingDialogComponent } from '../finding-routing/finding-routing-dialog.component';\r\nimport { FindingStockDialogComponent } from '../finding-stock-dialog/finding-stock-dialog.component';\r\nimport { Finding, MeasurementUnit } from '../model';\r\nimport { countDecimalPlaces } from '../util';\r\nimport { FINDINGS_TYPE, FINDING_MAX_WEIGHT } from './../constants';\r\nimport { FindingsStock } from './../model';\r\nimport { JumpringDialogComponent } from './jumpring-dialog/jumpring-dialog.component';\r\n\r\n@Component({\r\n selector: 'finding-jumpring',\r\n templateUrl: './jumpring.component.html',\r\n styleUrls: ['./jumpring.component.scss'],\r\n})\r\nexport class JumpringComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() findings: Finding[];\r\n @Input() measurementUnit: MeasurementUnit;\r\n @Output() onReloadList = new EventEmitter();\r\n @Output() onOpenSetting = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n selectedJumpring: Finding;\r\n selectedStock: FindingsStock;\r\n stocks: FindingsStock[] = [];\r\n jumprings = new MatTableDataSource([]);\r\n materialCodes: MaterialCode[] = [];\r\n displayedColumns = ['size_1', 'jumpringSize'];\r\n\r\n isSavingStock = false;\r\n defaultFindingsId = 0;\r\n findingsType = FINDINGS_TYPE;\r\n featureKey = FINDINGS_FEATURE_KEY;\r\n\r\n constructor(\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const selectedFindingsId = localStorage.getItem(\r\n 'selected-findings-id-jumprings',\r\n );\r\n if (selectedFindingsId) {\r\n this.defaultFindingsId = +selectedFindingsId;\r\n localStorage.removeItem('selected-findings-id-jumprings');\r\n }\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.jumprings.data = this.findings.filter(\r\n (f) => f.findingsTypesID === FINDINGS_TYPE.JUMPRINGS,\r\n );\r\n this.selectedJumpring = this.defaultFindingsId\r\n ? this.jumprings.data.find((f) => f.findingsId === this.defaultFindingsId)\r\n : this.jumprings.data?.[this.jumprings.data?.length - 1] ??\r\n ({} as Finding);\r\n this.getStockBySizeId();\r\n }\r\n ngAfterViewInit() {\r\n this.jumprings.sort = this.sort;\r\n this.jumprings.paginator = this.paginator;\r\n }\r\n getStockBySizeId() {\r\n if (!this.selectedJumpring.findingSizesID) {\r\n this.selectedStock = {} as FindingsStock;\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.selectedJumpring.findingSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n const [stock = {} as FindingsStock] = data ?? [];\r\n this.selectedStock = this.selectedStock.materialsCodeID\r\n ? {\r\n ...(data.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n ) ?? ({} as FindingsStock)),\r\n }\r\n : { ...stock };\r\n });\r\n }\r\n\r\n uploadFindingImage(files, input: HTMLInputElement) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append('findingsId', this.selectedJumpring.findingsId.toString());\r\n\r\n this.findingsService.uploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.selectedJumpring.picPath = event.body;\r\n input.value = '';\r\n }\r\n });\r\n }\r\n onTableRowClick(selected: Finding) {\r\n this.selectedJumpring = selected;\r\n this.getStockBySizeId();\r\n }\r\n onAddNewJumpring() {\r\n const dialogRef = this.dialog.open(JumpringDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '300px',\r\n width: '100%',\r\n data: {\r\n jumprings: this.jumprings.data,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((reload: boolean) => {\r\n if (reload) {\r\n this.onReloadList.emit();\r\n }\r\n });\r\n }\r\n onSaveStock() {\r\n const {\r\n findingsStockID,\r\n findingsSizesID,\r\n materialsCodeID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n } = this.selectedStock;\r\n const stock = {\r\n findingsStockID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n materialCodesID: materialsCodeID,\r\n findingsSizesID: findingsSizesID ?? this.selectedJumpring.findingSizesID,\r\n };\r\n this.isSavingStock = true;\r\n this.findingsService.setFindingsStock(stock).subscribe(() => {\r\n this.getStockBySizeId();\r\n this.toastrService.success('Successfully saved.', 'Jumpring');\r\n this.isSavingStock = false;\r\n });\r\n }\r\n onChangeMaterialCode() {\r\n const stock = this.stocks.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n );\r\n this.selectedStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialsCodeID: this.selectedStock.materialsCodeID,\r\n } as FindingsStock);\r\n }\r\n\r\n get isFormValid() {\r\n return (\r\n this.selectedStock.materialsCodeID &&\r\n this.selectedStock.qtyInStock >= 0 &&\r\n Number.isInteger(this.selectedStock.qtyInStock) &&\r\n this.selectedStock.weight_G < 100 &&\r\n countDecimalPlaces(this.selectedStock.weight_G) <= FINDING_MAX_WEIGHT\r\n );\r\n }\r\n onRoutingDialogOpen() {\r\n this.dialog.open(FindingRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n findingId: this.selectedJumpring.findingsId,\r\n editMode: true,\r\n },\r\n });\r\n }\r\n\r\n onStockDialogOpen() {\r\n const ref = this.dialog.open(FindingStockDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n selectedFinding: this.selectedJumpring,\r\n stocks: this.stocks,\r\n },\r\n });\r\n ref.afterClosed().subscribe((isReload) => {\r\n if (isReload) {\r\n this.getStockBySizeId();\r\n }\r\n });\r\n }\r\n onOpen() {\r\n this.onOpenSetting.emit(FINDINGS_TYPE.JUMPRINGS);\r\n }\r\n getDisplayValue(size) {\r\n const value = this.measurementUnit === 'mm' ? size : size / 25.4;\r\n return `${Number(value.toFixed(3))}${this.measurementUnit}`;\r\n }\r\n measurementSwitcher(row: Finding) {\r\n return this.measurementUnit === 'mm'\r\n ? row.jumpringSize\r\n : row.jumpringSizeInches;\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n 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 Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n + New\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Wire Diameter\r\n \r\n \r\n {{ getDisplayValue(element.size_1) }}\r\n \r\n \r\n \r\n \r\n ID\r\n \r\n \r\n {{ measurementSwitcher(element) }}\r\n \r\n \r\n \r\n \r\n ID 1\r\n \r\n \r\n {{ element.size_2 }}\r\n \r\n \r\n \r\n \r\n ID 2\r\n \r\n \r\n {{ element.size_3 }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n New Stock\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ stock.material.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY in Stock\r\n \r\n \r\n \r\n Weight (g)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Findings Routing\r\n \r\n
    \r\n
    \r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FINDINGS_TYPE } from '../../constants';\r\nimport { Finding } from '../../model';\r\n\r\n@Component({\r\n templateUrl: './lobster-claw-dialog.component.html',\r\n styleUrls: ['./lobster-claw-dialog.component.scss'],\r\n})\r\nexport class LobsterClawDialogComponent {\r\n isSaving = false;\r\n lobsterClaw: Finding = {} as Finding;\r\n lobsterClawName = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: { lobsterClaws: Finding[] },\r\n\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n ) {}\r\n\r\n onSaveLobsterClaw() {\r\n this.isSaving = true;\r\n this.findingsService\r\n .setFindingsSizes({\r\n ...this.lobsterClaw,\r\n findingsTypesID: FINDINGS_TYPE.LOBSTER_CLAW,\r\n })\r\n .subscribe((id) => {\r\n this.findingsService\r\n .setFinding({\r\n findingsId: 0,\r\n commentBox: '',\r\n findingSizesId: id,\r\n name: this.lobsterClawName,\r\n })\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.toastrService.success('Successfully saved.', 'Lobster Claw');\r\n this.dialogRef.close(true);\r\n });\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const { size_1 } = this.lobsterClaw;\r\n\r\n return this.lobsterClawName && size_1 && size_1 < 100;\r\n }\r\n}\r\n","
    \r\n

    New Size

    \r\n \r\n \r\n Name\r\n \r\n \r\n \r\n Size\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { HttpEventType } from '@angular/common/http';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FINDINGS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/findings-permission';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { FindingRoutingDialogComponent } from '../finding-routing/finding-routing-dialog.component';\r\nimport { FindingStockDialogComponent } from '../finding-stock-dialog/finding-stock-dialog.component';\r\nimport { Finding, MeasurementUnit } from '../model';\r\nimport { countDecimalPlaces } from '../util';\r\nimport { FINDINGS_TYPE, FINDING_MAX_WEIGHT } from './../constants';\r\nimport { FindingsStock } from './../model';\r\nimport { LobsterClawDialogComponent } from './lobster-claw-dialog/lobster-claw-dialog.component';\r\n\r\n@Component({\r\n selector: 'finding-lobster-claw',\r\n templateUrl: './lobster-claw.component.html',\r\n styleUrls: ['./lobster-claw.component.scss'],\r\n})\r\nexport class LobsterClawComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() findings: Finding[];\r\n @Input() measurementUnit: MeasurementUnit;\r\n @Output() onReloadList = new EventEmitter();\r\n @Output() onOpenSetting = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n selectedLobsterClaw: Finding;\r\n selectedStock: FindingsStock;\r\n stocks: FindingsStock[] = [];\r\n lobsterClaws = new MatTableDataSource([]);\r\n materialCodes: MaterialCode[] = [];\r\n displayedColumns = ['name', 'size_1'];\r\n\r\n isSavingStock = false;\r\n defaultFindingsId = 0;\r\n findingsType = FINDINGS_TYPE;\r\n featureKey = FINDINGS_FEATURE_KEY;\r\n\r\n constructor(\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const selectedFindingsId = localStorage.getItem(\r\n 'selected-findings-id-lobster-claws',\r\n );\r\n if (selectedFindingsId) {\r\n this.defaultFindingsId = +selectedFindingsId;\r\n localStorage.removeItem('selected-findings-id-lobster-claws');\r\n }\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.lobsterClaws.data = this.findings.filter(\r\n (f) => f.findingsTypesID === FINDINGS_TYPE.LOBSTER_CLAW,\r\n );\r\n this.selectedLobsterClaw = this.defaultFindingsId\r\n ? this.lobsterClaws.data.find(\r\n (f) => f.findingsId === this.defaultFindingsId,\r\n )\r\n : this.lobsterClaws.data?.[this.lobsterClaws.data?.length - 1] ??\r\n ({} as Finding);\r\n this.getStockBySizeId();\r\n }\r\n ngAfterViewInit() {\r\n this.lobsterClaws.sort = this.sort;\r\n this.lobsterClaws.paginator = this.paginator;\r\n }\r\n getStockBySizeId() {\r\n if (!this.selectedLobsterClaw.findingSizesID) {\r\n this.selectedStock = {} as FindingsStock;\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.selectedLobsterClaw.findingSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n const [stock = {} as FindingsStock] = data ?? [];\r\n this.selectedStock = this.selectedStock.materialsCodeID\r\n ? {\r\n ...(data.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n ) ?? ({} as FindingsStock)),\r\n }\r\n : { ...stock };\r\n });\r\n }\r\n\r\n uploadFindingImage(files, input: HTMLInputElement) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append(\r\n 'findingsId',\r\n this.selectedLobsterClaw.findingsId.toString(),\r\n );\r\n\r\n this.findingsService.uploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.selectedLobsterClaw.picPath = event.body;\r\n input.value = '';\r\n }\r\n });\r\n }\r\n onTableRowClick(selected: Finding) {\r\n this.selectedLobsterClaw = selected;\r\n this.getStockBySizeId();\r\n }\r\n onAddNewLobsterClaw() {\r\n const dialogRef = this.dialog.open(LobsterClawDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '300px',\r\n width: '100%',\r\n data: {\r\n lobsterClaws: this.lobsterClaws.data,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((reload: boolean) => {\r\n if (reload) {\r\n this.onReloadList.emit();\r\n }\r\n });\r\n }\r\n onSaveStock() {\r\n const {\r\n findingsStockID,\r\n findingsSizesID,\r\n materialsCodeID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n } = this.selectedStock;\r\n const stock = {\r\n findingsStockID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n materialCodesID: materialsCodeID,\r\n findingsSizesID:\r\n findingsSizesID ?? this.selectedLobsterClaw.findingSizesID,\r\n };\r\n this.isSavingStock = true;\r\n this.findingsService.setFindingsStock(stock).subscribe(() => {\r\n this.getStockBySizeId();\r\n this.toastrService.success('Successfully saved.', 'Lobster Claw');\r\n this.isSavingStock = false;\r\n });\r\n }\r\n onChangeMaterialCode() {\r\n const stock = this.stocks.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n );\r\n this.selectedStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialsCodeID: this.selectedStock.materialsCodeID,\r\n } as FindingsStock);\r\n }\r\n get isFormValid() {\r\n return (\r\n this.selectedStock.materialsCodeID &&\r\n this.selectedStock.qtyInStock >= 0 &&\r\n Number.isInteger(this.selectedStock.qtyInStock) &&\r\n this.selectedStock.weight_G < 100 &&\r\n countDecimalPlaces(this.selectedStock.weight_G) <= FINDING_MAX_WEIGHT\r\n );\r\n }\r\n\r\n onRoutingDialogOpen() {\r\n this.dialog.open(FindingRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n findingId: this.selectedLobsterClaw.findingsId,\r\n editMode: true,\r\n },\r\n });\r\n }\r\n onStockDialogOpen() {\r\n const ref = this.dialog.open(FindingStockDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n selectedFinding: this.selectedLobsterClaw,\r\n stocks: this.stocks,\r\n },\r\n });\r\n ref.afterClosed().subscribe((isReload) => {\r\n if (isReload) {\r\n this.getStockBySizeId();\r\n }\r\n });\r\n }\r\n onOpen() {\r\n this.onOpenSetting.emit(FINDINGS_TYPE.LOBSTER_CLAW);\r\n }\r\n getDisplayValue(size) {\r\n const value = this.measurementUnit === 'mm' ? size : size / 25.4;\r\n return `${Number(value.toFixed(3))}${this.measurementUnit}`;\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n 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 Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n + New\r\n \r\n
    \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ getDisplayValue(element.size_1) }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n New Stock\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ stock.material.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY in Stock\r\n \r\n \r\n \r\n Weight (g)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Findings Routing\r\n \r\n
    \r\n
    \r\n
    \r\n","import { Component, Inject } from '@angular/core';\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FINDINGS_TYPE } from '../../constants';\r\nimport { Finding } from '../../model';\r\n\r\n@Component({\r\n templateUrl: './post-dialog.component.html',\r\n styleUrls: ['./post-dialog.component.scss'],\r\n})\r\nexport class PostDialogComponent {\r\n isSaving = false;\r\n post: Finding = {} as Finding;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: { posts: Finding[] },\r\n\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n ) {}\r\n\r\n onSavePost() {\r\n const isExist = this.data.posts.some((j) => {\r\n const { size_1, size_2, size_3 } = this.post;\r\n return (\r\n j.size_1 === size_1 &&\r\n j.size_2 === (size_2 ?? 0) &&\r\n j.size_3 === (size_3 ?? 0)\r\n );\r\n });\r\n if (isExist) {\r\n this.toastrService.error('Size already exist.', 'Post');\r\n return;\r\n }\r\n this.isSaving = true;\r\n this.findingsService\r\n .setFindingsSizes({\r\n ...this.post,\r\n findingsTypesID: FINDINGS_TYPE.POST,\r\n })\r\n .subscribe((id) => {\r\n this.findingsService\r\n .setFinding({\r\n findingsId: 0,\r\n commentBox: '',\r\n findingSizesId: id,\r\n })\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.toastrService.success('Successfully saved.', 'Post');\r\n this.dialogRef.close(true);\r\n });\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const { size_1, size_2, size_3 } = this.post;\r\n const scenario1 =\r\n size_1 &&\r\n size_1 < 100 &&\r\n size_2 &&\r\n size_2 < 100 &&\r\n size_3 &&\r\n size_3 < 100;\r\n\r\n const scenario2 =\r\n size_1 && size_1 < 100 && size_2 && size_2 < 100 && !size_3;\r\n\r\n const scenario3 = size_1 && size_1 < 100 && !size_2 && !size_3;\r\n return scenario1 || scenario2 || scenario3;\r\n }\r\n}\r\n","
    \r\n

    New Size

    \r\n \r\n \r\n Length\r\n \r\n \r\n \r\n Thickness\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { HttpEventType } from '@angular/common/http';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FINDINGS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/findings-permission';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { FindingRoutingDialogComponent } from '../finding-routing/finding-routing-dialog.component';\r\nimport { FindingStockDialogComponent } from '../finding-stock-dialog/finding-stock-dialog.component';\r\nimport { Finding, MeasurementUnit } from '../model';\r\nimport { countDecimalPlaces } from '../util';\r\nimport { FINDINGS_TYPE, FINDING_MAX_WEIGHT } from './../constants';\r\nimport { FindingsStock } from './../model';\r\nimport { PostDialogComponent } from './post-dialog/post-dialog.component';\r\n\r\n@Component({\r\n selector: 'finding-post',\r\n templateUrl: './post.component.html',\r\n styleUrls: ['./post.component.scss'],\r\n})\r\nexport class PostComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() findings: Finding[];\r\n @Input() measurementUnit: MeasurementUnit;\r\n @Output() onReloadList = new EventEmitter();\r\n @Output() onOpenSetting = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n selectedPost: Finding;\r\n selectedStock: FindingsStock;\r\n stocks: FindingsStock[] = [];\r\n posts = new MatTableDataSource([]);\r\n materialCodes: MaterialCode[] = [];\r\n displayedColumns = ['size_1', 'size_2'];\r\n\r\n isSavingStock = false;\r\n defaultFindingsId = 0;\r\n findingsType = FINDINGS_TYPE;\r\n featureKey = FINDINGS_FEATURE_KEY;\r\n\r\n constructor(\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const selectedFindingsId = localStorage.getItem(\r\n 'selected-findings-id-posts',\r\n );\r\n if (selectedFindingsId) {\r\n this.defaultFindingsId = +selectedFindingsId;\r\n localStorage.removeItem('selected-findings-id-posts');\r\n }\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.posts.data = this.findings.filter(\r\n (f) => f.findingsTypesID === FINDINGS_TYPE.POST,\r\n );\r\n this.selectedPost = this.defaultFindingsId\r\n ? this.posts.data.find((f) => f.findingsId === this.defaultFindingsId)\r\n : this.posts.data?.[this.posts.data?.length - 1] ?? ({} as Finding);\r\n this.getStockBySizeId();\r\n }\r\n ngAfterViewInit() {\r\n this.posts.sort = this.sort;\r\n this.posts.paginator = this.paginator;\r\n }\r\n getStockBySizeId() {\r\n if (!this.selectedPost.findingSizesID) {\r\n this.selectedStock = {} as FindingsStock;\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.selectedPost.findingSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n const [stock = {} as FindingsStock] = data ?? [];\r\n this.selectedStock = this.selectedStock.materialsCodeID\r\n ? {\r\n ...(data.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n ) ?? ({} as FindingsStock)),\r\n }\r\n : { ...stock };\r\n });\r\n }\r\n\r\n uploadFindingImage(files, input: HTMLInputElement) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append('findingsId', this.selectedPost.findingsId.toString());\r\n\r\n this.findingsService.uploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.selectedPost.picPath = event.body;\r\n input.value = '';\r\n }\r\n });\r\n }\r\n onTableRowClick(selected: Finding) {\r\n this.selectedPost = selected;\r\n this.getStockBySizeId();\r\n }\r\n onAddNewPost() {\r\n const dialogRef = this.dialog.open(PostDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '300px',\r\n width: '100%',\r\n data: {\r\n posts: this.posts.data,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((reload: boolean) => {\r\n if (reload) {\r\n this.onReloadList.emit();\r\n }\r\n });\r\n }\r\n onSaveStock() {\r\n const {\r\n findingsStockID,\r\n findingsSizesID,\r\n materialsCodeID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n } = this.selectedStock;\r\n const stock = {\r\n findingsStockID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n materialCodesID: materialsCodeID,\r\n findingsSizesID: findingsSizesID ?? this.selectedPost.findingSizesID,\r\n };\r\n this.isSavingStock = true;\r\n this.findingsService.setFindingsStock(stock).subscribe(() => {\r\n this.getStockBySizeId();\r\n this.toastrService.success('Successfully saved.', 'Post');\r\n this.isSavingStock = false;\r\n });\r\n }\r\n onChangeMaterialCode() {\r\n const stock = this.stocks.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n );\r\n this.selectedStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialsCodeID: this.selectedStock.materialsCodeID,\r\n } as FindingsStock);\r\n }\r\n get isFormValid() {\r\n return (\r\n this.selectedStock.materialsCodeID &&\r\n this.selectedStock.qtyInStock >= 0 &&\r\n Number.isInteger(this.selectedStock.qtyInStock) &&\r\n this.selectedStock.weight_G < 100 &&\r\n countDecimalPlaces(this.selectedStock.weight_G) <= FINDING_MAX_WEIGHT\r\n );\r\n }\r\n\r\n onRoutingDialogOpen() {\r\n this.dialog.open(FindingRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n findingId: this.selectedPost.findingsId,\r\n editMode: true,\r\n },\r\n });\r\n }\r\n\r\n onStockDialogOpen() {\r\n const ref = this.dialog.open(FindingStockDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n selectedFinding: this.selectedPost,\r\n stocks: this.stocks,\r\n },\r\n });\r\n ref.afterClosed().subscribe((isReload) => {\r\n if (isReload) {\r\n this.getStockBySizeId();\r\n }\r\n });\r\n }\r\n onOpen() {\r\n this.onOpenSetting.emit(FINDINGS_TYPE.POST);\r\n }\r\n getDisplayValue(size) {\r\n const value = this.measurementUnit === 'mm' ? size : size / 25.4;\r\n return `${Number(value.toFixed(3))}${this.measurementUnit}`;\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n 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 Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n + New\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Length\r\n \r\n \r\n {{ getDisplayValue(element.size_1) }}\r\n \r\n \r\n \r\n \r\n Thickness\r\n \r\n \r\n {{ getDisplayValue(element.size_2) }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n New Stock\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ stock.material.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY in Stock\r\n \r\n \r\n \r\n Weight (g)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Findings Routing\r\n \r\n
    \r\n
    \r\n\r\n","import { Location } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FindingSettingDialogComponent } from './finding-setting-dialog/finding-setting-dialog.component';\r\nimport { Finding, FindingsStock, FindingsType, MeasurementUnit } from './model';\r\n\r\nconst findingsTabSlugByIndex = {\r\n 0: 'jumprings',\r\n 1: 'posts',\r\n 2: 'flyers',\r\n 3: 'springs',\r\n 4: 'spring-rings',\r\n 5: 'lobster-claws',\r\n 6: 'tags',\r\n};\r\nconst findingsTabIndexBySlug = {\r\n jumprings: 0,\r\n posts: 1,\r\n flyers: 2,\r\n springs: 3,\r\n 'spring-rings': 4,\r\n 'lobster-claws': 5,\r\n tags: 6,\r\n};\r\n\r\n@Component({\r\n selector: 'riva-findings',\r\n templateUrl: './riva-findings.component.html',\r\n styleUrls: ['./riva-findings.component.scss'],\r\n})\r\nexport class RivaFindingsComponent implements OnInit {\r\n selectedTabIndex = 0;\r\n findings: Finding[] = [];\r\n findingsStocks: FindingsStock[] = [];\r\n findingsTypes: Record = {} as Record<\r\n number,\r\n FindingsType\r\n >;\r\n measurementUnit: MeasurementUnit = 'mm';\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n private userPermissionService: UserPermissionService,\r\n private findingsService: FindingsService,\r\n public dialog: MatDialog,\r\n ) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.finding);\r\n\r\n this.route.params.subscribe((params: { slug: string }) => {\r\n this.selectedTabIndex = findingsTabIndexBySlug[params.slug] ?? 0;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getFindingsSize();\r\n this.getFindingsTypes();\r\n }\r\n\r\n onChangeMeasurementUnit(unit: MeasurementUnit) {\r\n this.measurementUnit = unit;\r\n }\r\n\r\n getFindingsTypes() {\r\n this.findingsService.getFindingsTypes().subscribe((record) => {\r\n this.findingsTypes = record;\r\n });\r\n }\r\n\r\n getFindingsSize() {\r\n this.findingsService.getFindingList().subscribe((data) => {\r\n this.findings = data ?? [];\r\n });\r\n }\r\n getFindingsStock() {\r\n this.findingsService.getFindingsStocks().subscribe((data) => {\r\n this.findingsStocks = data ?? [];\r\n });\r\n }\r\n\r\n onTabChange(event) {\r\n const slug = findingsTabSlugByIndex[event];\r\n this.location.replaceState(`items/findings/${slug}`);\r\n }\r\n\r\n onOpenSetting(typeId) {\r\n const findingsType = this.findingsTypes[typeId];\r\n const ref = this.dialog.open(FindingSettingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '400px',\r\n width: '100%',\r\n data: {\r\n findingsType,\r\n },\r\n autoFocus: false,\r\n });\r\n ref.afterClosed().subscribe((reload) => {\r\n reload && this.getFindingsTypes();\r\n });\r\n }\r\n}\r\n","
    \r\n \r\n \r\n Millimeter\r\n \r\n \r\n Inches\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n","import { Component, Inject } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FINDINGS_TYPE } from '../../constants';\r\nimport { Finding } from '../../model';\r\n\r\n@Component({\r\n templateUrl: './spring-ring-dialog.component.html',\r\n styleUrls: ['./spring-ring-dialog.component.scss'],\r\n})\r\nexport class SpringRingDialogComponent {\r\n isSaving = false;\r\n springRing: Finding = {} as Finding;\r\n springRingName = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: { springRings: Finding[] },\r\n\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n ) {}\r\n\r\n onSavespringRing() {\r\n this.isSaving = true;\r\n this.findingsService\r\n .setFindingsSizes({\r\n ...this.springRing,\r\n findingsTypesID: FINDINGS_TYPE.SPRING_RING,\r\n })\r\n .subscribe((id) => {\r\n this.findingsService\r\n .setFinding({\r\n findingsId: 0,\r\n commentBox: '',\r\n findingSizesId: id,\r\n name: this.springRingName,\r\n })\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.toastrService.success('Successfully saved.', 'Spring Ring');\r\n this.dialogRef.close(true);\r\n });\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const { size_1 } = this.springRing;\r\n\r\n return this.springRingName && size_1 && size_1 < 100;\r\n }\r\n}\r\n","
    \r\n

    New Size

    \r\n \r\n \r\n Name\r\n \r\n \r\n \r\n Size\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { HttpEventType } from '@angular/common/http';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FINDINGS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/findings-permission';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { FindingRoutingDialogComponent } from '../finding-routing/finding-routing-dialog.component';\r\nimport { FindingStockDialogComponent } from '../finding-stock-dialog/finding-stock-dialog.component';\r\nimport { Finding, MeasurementUnit } from '../model';\r\nimport { countDecimalPlaces } from '../util';\r\nimport { FINDINGS_TYPE, FINDING_MAX_WEIGHT } from './../constants';\r\nimport { FindingsStock } from './../model';\r\nimport { SpringRingDialogComponent } from './spring-ring-dialog/spring-ring-dialog.component';\r\n\r\n@Component({\r\n selector: 'finding-spring-ring',\r\n templateUrl: './spring-ring.component.html',\r\n styleUrls: ['./spring-ring.component.scss'],\r\n})\r\nexport class SpringRingComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() findings: Finding[];\r\n @Input() measurementUnit: MeasurementUnit;\r\n @Output() onReloadList = new EventEmitter();\r\n @Output() onOpenSetting = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n selectedSpringRing: Finding;\r\n selectedStock: FindingsStock;\r\n stocks: FindingsStock[] = [];\r\n springRings = new MatTableDataSource([]);\r\n materialCodes: MaterialCode[] = [];\r\n displayedColumns = ['name', 'size_1'];\r\n\r\n isSavingStock = false;\r\n defaultFindingsId = 0;\r\n findingsType = FINDINGS_TYPE;\r\n featureKey = FINDINGS_FEATURE_KEY;\r\n\r\n constructor(\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const selectedFindingsId = localStorage.getItem(\r\n 'selected-findings-id-spring-rings',\r\n );\r\n if (selectedFindingsId) {\r\n this.defaultFindingsId = +selectedFindingsId;\r\n localStorage.removeItem('selected-findings-id-spring-rings');\r\n }\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.springRings.data = this.findings.filter(\r\n (f) => f.findingsTypesID === FINDINGS_TYPE.SPRING_RING,\r\n );\r\n this.selectedSpringRing = this.defaultFindingsId\r\n ? this.springRings.data.find(\r\n (f) => f.findingsId === this.defaultFindingsId,\r\n )\r\n : this.springRings.data?.[this.springRings.data?.length - 1] ??\r\n ({} as Finding);\r\n this.getStockBySizeId();\r\n }\r\n ngAfterViewInit() {\r\n this.springRings.sort = this.sort;\r\n this.springRings.paginator = this.paginator;\r\n }\r\n getStockBySizeId() {\r\n if (!this.selectedSpringRing.findingSizesID) {\r\n this.selectedStock = {} as FindingsStock;\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.selectedSpringRing.findingSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n const [stock = {} as FindingsStock] = data ?? [];\r\n this.selectedStock = this.selectedStock.materialsCodeID\r\n ? {\r\n ...(data.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n ) ?? ({} as FindingsStock)),\r\n }\r\n : { ...stock };\r\n });\r\n }\r\n\r\n uploadFindingImage(files, input: HTMLInputElement) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append(\r\n 'findingsId',\r\n this.selectedSpringRing.findingsId.toString(),\r\n );\r\n\r\n this.findingsService.uploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.selectedSpringRing.picPath = event.body;\r\n input.value = '';\r\n }\r\n });\r\n }\r\n onTableRowClick(selected: Finding) {\r\n this.selectedSpringRing = selected;\r\n this.getStockBySizeId();\r\n }\r\n onAddNewSpringRing() {\r\n const dialogRef = this.dialog.open(SpringRingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '300px',\r\n width: '100%',\r\n data: {\r\n springRings: this.springRings.data,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((reload: boolean) => {\r\n if (reload) {\r\n this.onReloadList.emit();\r\n }\r\n });\r\n }\r\n onSaveStock() {\r\n const {\r\n findingsStockID,\r\n findingsSizesID,\r\n materialsCodeID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n } = this.selectedStock;\r\n const stock = {\r\n findingsStockID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n materialCodesID: materialsCodeID,\r\n findingsSizesID:\r\n findingsSizesID ?? this.selectedSpringRing.findingSizesID,\r\n };\r\n this.isSavingStock = true;\r\n this.findingsService.setFindingsStock(stock).subscribe(() => {\r\n this.getStockBySizeId();\r\n this.toastrService.success('Successfully saved.', 'Spring Ring');\r\n this.isSavingStock = false;\r\n });\r\n }\r\n onChangeMaterialCode() {\r\n const stock = this.stocks.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n );\r\n this.selectedStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialsCodeID: this.selectedStock.materialsCodeID,\r\n } as FindingsStock);\r\n }\r\n get isFormValid() {\r\n return (\r\n this.selectedStock.materialsCodeID &&\r\n this.selectedStock.qtyInStock >= 0 &&\r\n Number.isInteger(this.selectedStock.qtyInStock) &&\r\n this.selectedStock.weight_G < 100 &&\r\n countDecimalPlaces(this.selectedStock.weight_G) <= FINDING_MAX_WEIGHT\r\n );\r\n }\r\n onRoutingDialogOpen() {\r\n this.dialog.open(FindingRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n findingId: this.selectedSpringRing.findingsId,\r\n editMode: true,\r\n },\r\n });\r\n }\r\n onStockDialogOpen() {\r\n const ref = this.dialog.open(FindingStockDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n selectedFinding: this.selectedSpringRing,\r\n stocks: this.stocks,\r\n },\r\n });\r\n ref.afterClosed().subscribe((isReload) => {\r\n if (isReload) {\r\n this.getStockBySizeId();\r\n }\r\n });\r\n }\r\n onOpen() {\r\n this.onOpenSetting.emit(FINDINGS_TYPE.SPRING_RING);\r\n }\r\n getDisplayValue(size) {\r\n const value = this.measurementUnit === 'mm' ? size : size / 25.4;\r\n return `${Number(value.toFixed(3))}${this.measurementUnit}`;\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n 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 Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n + New\r\n \r\n
    \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ getDisplayValue(element.size_1) }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n New Stock\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ stock.material.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY in Stock\r\n \r\n \r\n \r\n Weight (g)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Findings Routing\r\n \r\n
    \r\n
    \r\n
    \r\n","import { Component, Inject } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FINDINGS_TYPE } from '../../constants';\r\nimport { Finding } from '../../model';\r\n\r\n@Component({\r\n templateUrl: './spring-dialog.component.html',\r\n styleUrls: ['./spring-dialog.component.scss'],\r\n})\r\nexport class SpringDialogComponent {\r\n isSaving = false;\r\n spring: Finding = {} as Finding;\r\n comment = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: { springs: Finding[] },\r\n\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n ) {}\r\n\r\n onSaveSpring() {\r\n const isExist = this.data.springs.some((j) => {\r\n const { size_1, size_2, size_3, size_4 } = this.spring;\r\n return (\r\n j.size_1 === size_1 &&\r\n j.size_2 === (size_2 ?? 0) &&\r\n j.size_3 === (size_3 ?? 0) &&\r\n j.size_4 === (size_4 ?? 0)\r\n );\r\n });\r\n if (isExist) {\r\n this.toastrService.error('Size already exist.', 'Spring');\r\n return;\r\n }\r\n this.isSaving = true;\r\n this.findingsService\r\n .setFindingsSizes({\r\n ...this.spring,\r\n findingsTypesID: FINDINGS_TYPE.SPRING,\r\n })\r\n .subscribe((id) => {\r\n this.findingsService\r\n .setFinding({\r\n findingsId: 0,\r\n commentBox: this.comment,\r\n findingSizesId: id,\r\n })\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.toastrService.success('Successfully saved.', 'Spring Ring');\r\n this.dialogRef.close(true);\r\n });\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const { size_1, size_2, size_3, size_4 } = this.spring;\r\n\r\n return (\r\n size_1 &&\r\n size_1 < 100 &&\r\n size_2 &&\r\n size_2 < 100 &&\r\n size_3 &&\r\n size_3 < 100 &&\r\n size_4 &&\r\n size_4 < 100\r\n );\r\n }\r\n}\r\n","
    \r\n

    New Size

    \r\n \r\n \r\n Spring height\r\n \r\n \r\n \r\n Wire Thickness\r\n \r\n \r\n \r\n Spring Angle\r\n \r\n \r\n \r\n Hole Inside Diameter\r\n \r\n \r\n \r\n Comment\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { HttpEventType } from '@angular/common/http';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FINDINGS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/findings-permission';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { FindingRoutingDialogComponent } from '../finding-routing/finding-routing-dialog.component';\r\nimport { FindingStockDialogComponent } from '../finding-stock-dialog/finding-stock-dialog.component';\r\nimport { Finding, MeasurementUnit } from '../model';\r\nimport { countDecimalPlaces } from '../util';\r\nimport { FINDINGS_TYPE, FINDING_MAX_WEIGHT } from './../constants';\r\nimport { FindingsStock } from './../model';\r\nimport { SpringDialogComponent } from './spring-dialog/spring-dialog.component';\r\n\r\n@Component({\r\n selector: 'finding-spring',\r\n templateUrl: './spring.component.html',\r\n styleUrls: ['./spring.component.scss'],\r\n})\r\nexport class SpringComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() findings: Finding[];\r\n @Input() measurementUnit: MeasurementUnit;\r\n @Output() onReloadList = new EventEmitter();\r\n @Output() onOpenSetting = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n selectedSpring: Finding;\r\n selectedStock: FindingsStock;\r\n stocks: FindingsStock[] = [];\r\n springs = new MatTableDataSource([]);\r\n materialCodes: MaterialCode[] = [];\r\n displayedColumns = ['size_1', 'size_2', 'size_3', 'size_4'];\r\n\r\n isSavingStock = false;\r\n defaultFindingsId = 0;\r\n findingsType = FINDINGS_TYPE;\r\n featureKey = FINDINGS_FEATURE_KEY;\r\n\r\n constructor(\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const selectedFindingsId = localStorage.getItem(\r\n 'selected-findings-id-springs',\r\n );\r\n if (selectedFindingsId) {\r\n this.defaultFindingsId = +selectedFindingsId;\r\n localStorage.removeItem('selected-findings-id-springs');\r\n }\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.springs.data = this.findings.filter(\r\n (f) => f.findingsTypesID === FINDINGS_TYPE.SPRING,\r\n );\r\n this.selectedSpring = this.defaultFindingsId\r\n ? this.springs.data.find((f) => f.findingsId === this.defaultFindingsId)\r\n : this.springs.data?.[this.springs.data?.length - 1] ?? ({} as Finding);\r\n this.getStockBySizeId();\r\n }\r\n ngAfterViewInit() {\r\n this.springs.sort = this.sort;\r\n this.springs.paginator = this.paginator;\r\n }\r\n getStockBySizeId() {\r\n if (!this.selectedSpring.findingSizesID) {\r\n this.selectedStock = {} as FindingsStock;\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.selectedSpring.findingSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n const [stock = {} as FindingsStock] = data ?? [];\r\n this.selectedStock = this.selectedStock.materialsCodeID\r\n ? {\r\n ...(data.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n ) ?? ({} as FindingsStock)),\r\n }\r\n : { ...stock };\r\n });\r\n }\r\n\r\n uploadFindingImage(files, input: HTMLInputElement) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append('findingsId', this.selectedSpring.findingsId.toString());\r\n\r\n this.findingsService.uploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.selectedSpring.picPath = event.body;\r\n input.value = '';\r\n }\r\n });\r\n }\r\n onTableRowClick(selected: Finding) {\r\n this.selectedSpring = selected;\r\n this.getStockBySizeId();\r\n }\r\n onAddNewSpringRing() {\r\n const dialogRef = this.dialog.open(SpringDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '400px',\r\n width: '100%',\r\n data: {\r\n springs: this.springs.data,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((reload: boolean) => {\r\n if (reload) {\r\n this.onReloadList.emit();\r\n }\r\n });\r\n }\r\n onSaveStock() {\r\n const {\r\n findingsStockID,\r\n findingsSizesID,\r\n materialsCodeID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n } = this.selectedStock;\r\n const stock = {\r\n findingsStockID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n materialCodesID: materialsCodeID,\r\n findingsSizesID: findingsSizesID ?? this.selectedSpring.findingSizesID,\r\n };\r\n this.isSavingStock = true;\r\n this.findingsService.setFindingsStock(stock).subscribe(() => {\r\n this.getStockBySizeId();\r\n this.toastrService.success('Successfully saved.', 'Spring');\r\n this.isSavingStock = false;\r\n });\r\n }\r\n onChangeMaterialCode() {\r\n const stock = this.stocks.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n );\r\n this.selectedStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialsCodeID: this.selectedStock.materialsCodeID,\r\n } as FindingsStock);\r\n }\r\n get isFormValid() {\r\n return (\r\n this.selectedStock.materialsCodeID &&\r\n this.selectedStock.qtyInStock >= 0 &&\r\n Number.isInteger(this.selectedStock.qtyInStock) &&\r\n this.selectedStock.weight_G < 100 &&\r\n countDecimalPlaces(this.selectedStock.weight_G) <= FINDING_MAX_WEIGHT\r\n );\r\n }\r\n\r\n onRoutingDialogOpen() {\r\n this.dialog.open(FindingRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n findingId: this.selectedSpring.findingsId,\r\n editMode: true,\r\n },\r\n });\r\n }\r\n onStockDialogOpen() {\r\n const ref = this.dialog.open(FindingStockDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n selectedFinding: this.selectedSpring,\r\n stocks: this.stocks,\r\n },\r\n });\r\n ref.afterClosed().subscribe((isReload) => {\r\n if (isReload) {\r\n this.getStockBySizeId();\r\n }\r\n });\r\n }\r\n onOpen() {\r\n this.onOpenSetting.emit(FINDINGS_TYPE.SPRING);\r\n }\r\n getDisplayValue(size) {\r\n const value = this.measurementUnit === 'mm' ? size : size / 25.4;\r\n return `${Number(value.toFixed(3))}${this.measurementUnit}`;\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n 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 Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n + New\r\n \r\n
    \r\n \r\n \r\n \r\n Spring height\r\n \r\n \r\n {{ getDisplayValue(element.size_1) }}\r\n \r\n \r\n \r\n \r\n Wire Thickness\r\n \r\n \r\n {{ getDisplayValue(element.size_2) }}\r\n \r\n \r\n \r\n \r\n Spring Angle\r\n \r\n \r\n {{ getDisplayValue(element.size_3) }}\r\n \r\n \r\n \r\n \r\n Hole Inside Diameter\r\n \r\n \r\n {{ getDisplayValue(element.size_4) }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n \r\n Comment\r\n \r\n \r\n
    \r\n \r\n

    Stocks

    \r\n
    \r\n \r\n New Stock\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ stock.material.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY in Stock\r\n \r\n \r\n \r\n Weight (g)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Findings Routing\r\n \r\n
    \r\n
    \r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { FINDINGS_TYPE } from '../../constants';\r\nimport { Finding } from '../../model';\r\n\r\n@Component({\r\n templateUrl: './tags-dialog.component.html',\r\n styleUrls: ['./tags-dialog.component.scss'],\r\n})\r\nexport class TagsDialogComponent implements OnInit {\r\n isSaving = false;\r\n tag: Finding = {} as Finding;\r\n customers: Customers[] = [];\r\n tagName = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: { tags: Finding[] },\r\n\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n private customerService: CustomerService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.customerService.getList().subscribe((result) => {\r\n this.customers = result;\r\n this.tag.customerId =\r\n this.customers.find((c) => c.customerId.toLowerCase() === 'riva')\r\n ?.custIdno ?? 0;\r\n });\r\n }\r\n\r\n onSaveFinding() {\r\n // const isExist = this.data.tags.some((j) => {\r\n // const { size_1, size_2, size_3 } = this.tag;\r\n // return (\r\n // j.size_1 === size_1 &&\r\n // j.size_2 === (size_2 ?? 0) &&\r\n // j.size_3 === (size_3 ?? 0)\r\n // );\r\n // });\r\n // if (isExist) {\r\n // this.toastrService.error('Size already exist.', 'Tags');\r\n // return;\r\n // }\r\n this.isSaving = true;\r\n this.findingsService\r\n .setFindingsSizes({\r\n ...this.tag,\r\n findingsTypesID: FINDINGS_TYPE.TAGS,\r\n })\r\n .subscribe((id) => {\r\n this.findingsService\r\n .setFinding({\r\n findingsId: 0,\r\n commentBox: '',\r\n findingSizesId: id,\r\n customerId: this.tag.customerId,\r\n name: this.tagName,\r\n })\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.toastrService.success('Successfully saved.', 'Tags');\r\n this.dialogRef.close(true);\r\n });\r\n });\r\n }\r\n\r\n get isFormValid() {\r\n const { size_1, size_2, size_3 } = this.tag;\r\n const scenario1 =\r\n this.tagName &&\r\n size_1 &&\r\n size_1 < 100 &&\r\n size_2 &&\r\n size_2 < 100 &&\r\n size_3 &&\r\n size_3 < 100;\r\n return scenario1;\r\n }\r\n}\r\n","
    \r\n

    New Tag

    \r\n \r\n \r\n Customer\r\n \r\n \r\n {{ customer.companyName }}\r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n \r\n Length\r\n \r\n \r\n \r\n Width\r\n \r\n \r\n \r\n Thickness\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { HttpEventType } from '@angular/common/http';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FINDINGS_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/findings-permission';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { FindingsService } from 'src/app/services/findings.service';\r\nimport { MaterialCodeService } from 'src/app/services/material-code.service';\r\nimport { FINDINGS_TYPE, FINDING_MAX_WEIGHT } from '../constants';\r\nimport { FindingRoutingDialogComponent } from '../finding-routing/finding-routing-dialog.component';\r\nimport { FindingStockDialogComponent } from '../finding-stock-dialog/finding-stock-dialog.component';\r\nimport { Finding, FindingsStock, MeasurementUnit } from '../model';\r\nimport { countDecimalPlaces } from '../util';\r\nimport { TagsDialogComponent } from './tags-dialog/tags-dialog.component';\r\n\r\n@Component({\r\n selector: 'finding-tags',\r\n templateUrl: './tags.component.html',\r\n styleUrls: ['./tags.component.scss'],\r\n})\r\nexport class TagsComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() findings: Finding[];\r\n @Input() measurementUnit: MeasurementUnit;\r\n @Output() onReloadList = new EventEmitter();\r\n @Output() onOpenSetting = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n selectedTag: Finding;\r\n selectedStock: FindingsStock;\r\n stocks: FindingsStock[] = [];\r\n tags = new MatTableDataSource([]);\r\n materialCodes: MaterialCode[] = [];\r\n displayedColumns = ['name', 'customerName', 'size_1', 'size_2', 'size_3'];\r\n\r\n isSavingStock = false;\r\n defaultFindingsId = 0;\r\n findingsType = FINDINGS_TYPE;\r\n featureKey = FINDINGS_FEATURE_KEY;\r\n\r\n constructor(\r\n private toastrService: ToastrService,\r\n private findingsService: FindingsService,\r\n private materialCodeService: MaterialCodeService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const selectedFindingsId = localStorage.getItem(\r\n 'selected-findings-id-tags',\r\n );\r\n if (selectedFindingsId) {\r\n this.defaultFindingsId = +selectedFindingsId;\r\n localStorage.removeItem('selected-findings-id-tags');\r\n }\r\n this.materialCodeService.getList().subscribe(({ responseObject }) => {\r\n this.materialCodes = responseObject;\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.tags.data = this.findings.filter(\r\n (f) => f.findingsTypesID === FINDINGS_TYPE.TAGS,\r\n );\r\n this.selectedTag = this.defaultFindingsId\r\n ? this.tags.data.find((f) => f.findingsId === this.defaultFindingsId)\r\n : this.tags.data?.[this.tags.data?.length - 1] ?? ({} as Finding);\r\n this.getStockBySizeId();\r\n }\r\n ngAfterViewInit() {\r\n this.tags.sort = this.sort;\r\n this.tags.paginator = this.paginator;\r\n }\r\n getStockBySizeId() {\r\n if (!this.selectedTag.findingSizesID) {\r\n this.selectedStock = {} as FindingsStock;\r\n return;\r\n }\r\n this.findingsService\r\n .getFindingsStockBySizeId(this.selectedTag.findingSizesID)\r\n .subscribe((data) => {\r\n this.stocks = data ?? [];\r\n const [stock = {} as FindingsStock] = data ?? [];\r\n this.selectedStock = this.selectedStock.materialsCodeID\r\n ? {\r\n ...(data.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n ) ?? ({} as FindingsStock)),\r\n }\r\n : { ...stock };\r\n });\r\n }\r\n\r\n uploadFindingImage(files, input: HTMLInputElement) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('file[]', files[0]);\r\n\r\n formData.append('findingsId', this.selectedTag.findingsId.toString());\r\n\r\n this.findingsService.uploadImage(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.Response) {\r\n this.selectedTag.picPath = event.body;\r\n input.value = '';\r\n }\r\n });\r\n }\r\n onTableRowClick(selected: Finding) {\r\n this.selectedTag = selected;\r\n this.getStockBySizeId();\r\n }\r\n onAddNewFinding() {\r\n const dialogRef = this.dialog.open(TagsDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '400px',\r\n width: '100%',\r\n data: {\r\n tags: this.tags.data,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((reload: boolean) => {\r\n if (reload) {\r\n this.onReloadList.emit();\r\n }\r\n });\r\n }\r\n onSaveStock() {\r\n const {\r\n findingsStockID,\r\n findingsSizesID,\r\n materialsCodeID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n } = this.selectedStock;\r\n const stock = {\r\n findingsStockID,\r\n weight_G,\r\n qtyInStock,\r\n suppliersID,\r\n materialCodesID: materialsCodeID,\r\n findingsSizesID: findingsSizesID ?? this.selectedTag.findingSizesID,\r\n };\r\n this.isSavingStock = true;\r\n this.findingsService.setFindingsStock(stock).subscribe(() => {\r\n this.getStockBySizeId();\r\n this.toastrService.success('Successfully saved.', 'Jumpring');\r\n this.isSavingStock = false;\r\n });\r\n }\r\n onChangeMaterialCode() {\r\n const stock = this.stocks.find(\r\n (s) => s.materialsCodeID === this.selectedStock.materialsCodeID,\r\n );\r\n this.selectedStock = stock\r\n ? { ...stock }\r\n : ({\r\n materialsCodeID: this.selectedStock.materialsCodeID,\r\n } as FindingsStock);\r\n }\r\n get isFormValid() {\r\n return (\r\n this.selectedStock.materialsCodeID &&\r\n this.selectedStock.qtyInStock >= 0 &&\r\n Number.isInteger(this.selectedStock.qtyInStock) &&\r\n this.selectedStock.weight_G < 100 &&\r\n countDecimalPlaces(this.selectedStock.weight_G) <= FINDING_MAX_WEIGHT\r\n );\r\n }\r\n\r\n onRoutingDialogOpen() {\r\n this.dialog.open(FindingRoutingDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1400px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n findingId: this.selectedTag.findingsId,\r\n editMode: true,\r\n },\r\n });\r\n }\r\n onStockDialogOpen() {\r\n const ref = this.dialog.open(FindingStockDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n selectedFinding: this.selectedTag,\r\n stocks: this.stocks,\r\n },\r\n });\r\n ref.afterClosed().subscribe((isReload) => {\r\n if (isReload) {\r\n this.getStockBySizeId();\r\n }\r\n });\r\n }\r\n onOpen() {\r\n this.onOpenSetting.emit(FINDINGS_TYPE.TAGS);\r\n }\r\n getDisplayValue(size) {\r\n const value = this.measurementUnit === 'mm' ? size : size / 25.4;\r\n return `${Number(value.toFixed(3))}${this.measurementUnit}`;\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n 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 Upload Picture\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n + New\r\n \r\n
    \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n \r\n Lengths\r\n \r\n \r\n {{ getDisplayValue(element.size_1) }}\r\n \r\n \r\n \r\n \r\n Width\r\n \r\n \r\n {{ getDisplayValue(element.size_2) }}\r\n \r\n \r\n \r\n \r\n Thickness\r\n \r\n \r\n {{ getDisplayValue(element.size_3) }}\r\n \r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n {{ element.customerName }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n New Stock\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Material Code\r\n \r\n \r\n {{ stock.material.description }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n QTY in Stock\r\n \r\n \r\n \r\n Weight (g)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Findings Routing\r\n \r\n
    \r\n
    \r\n
    \r\n","export const countDecimalPlaces = (number) => {\r\n if (typeof number !== 'number') {\r\n throw new Error('Input is not a valid number');\r\n }\r\n\r\n const numberString = number.toString();\r\n if (numberString.indexOf('.') === -1) {\r\n return 0;\r\n }\r\n\r\n const decimalPart = numberString.split('.')[1];\r\n return decimalPart.length;\r\n};\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'stone-confirmation',\r\n templateUrl: './stone-confirmation.component.html',\r\n})\r\nexport class StoneConfirmationComponent {\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: string[]) {}\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n Create new stone options?\r\n\r\n\r\n
    \r\n Are you sure you want to create the following variants?\r\n
    \r\n
    {{ item }}
    \r\n
    \r\n\r\n\r\n \r\n Cancel\r\n \r\n \r\n Yes\r\n \r\n\r\n","import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport orderBy from 'lodash/orderBy';\r\nimport uniqBy from 'lodash/uniqBy';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport {\r\n RivaGems,\r\n StoneClarity,\r\n StoneColor,\r\n StoneCut,\r\n StoneSize,\r\n StoneType,\r\n} from '../../riva-gems.model';\r\nimport { StoneService } from '../../stone.service';\r\nimport { StoneConfirmationComponent } from '../stone-confirmation/stone-confirmation.component';\r\n\r\n@Component({\r\n templateUrl: './stone-dialog.component.html',\r\n styleUrls: ['./stone-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class StoneDialogComponent implements OnInit {\r\n isSaving = false;\r\n sizeBorderClass = '';\r\n gem: RivaGems = { stockQTY: 0 } as RivaGems;\r\n gems: RivaGems[] = [];\r\n stoneSizes: StoneSize[];\r\n stoneTypes: StoneType[];\r\n stoneCuts: StoneCut[];\r\n stoneClarities: StoneClarity[];\r\n stoneColors: StoneColor[];\r\n filteredTypes: Observable;\r\n filteredCuts: Observable;\r\n filteredClarities: Observable;\r\n filteredColors: Observable;\r\n filteredSizesD1: Observable;\r\n filteredSizesD2: Observable;\r\n filteredSizesD3: Observable;\r\n\r\n stoneTypeControl = new FormControl('');\r\n stoneCutControl = new FormControl('');\r\n stoneClarityControl = new FormControl('');\r\n stoneColorControl = new FormControl('');\r\n stoneSizeD1Control = new FormControl('');\r\n stoneSizeD2Control = new FormControl('');\r\n stoneSizeD3Control = new FormControl('');\r\n\r\n currentStonePicture = '';\r\n isSizeOrderValid = true;\r\n\r\n @ViewChild('confirmationDuplicateStone')\r\n public readonly confirmationDuplicateStone!: SwalComponent;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n private stoneService: StoneService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.stoneService.getStones().subscribe((stones) => {\r\n this.gems = stones;\r\n });\r\n forkJoin([\r\n this.stoneService.getSizes(),\r\n this.stoneService.getTypes(),\r\n this.stoneService.getCuts(),\r\n this.stoneService.getClarities(),\r\n this.stoneService.getColors(),\r\n ]).subscribe(([stones, types, cuts, clarities, colors]) => {\r\n this.stoneSizes = orderBy(stones, [(item) => item.name?.toLowerCase()]);\r\n this.stoneTypes = orderBy(types, [(item) => item.name?.toLowerCase()]);\r\n this.stoneCuts = orderBy(cuts, [(item) => item.name?.toLowerCase()]);\r\n this.stoneClarities = orderBy(clarities, [\r\n (item) => item.name?.toLowerCase(),\r\n ]);\r\n this.stoneColors = orderBy(colors, [\r\n (item) => item.colorName?.toLowerCase(),\r\n ]);\r\n this.filteredTypes = this.stoneTypeControl.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => {\r\n const name = typeof value === 'string' ? value : value?.name;\r\n return name\r\n ? this._filterType(name as string)\r\n : this.stoneTypes.slice();\r\n }),\r\n );\r\n this.filteredCuts = this.stoneCutControl.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => {\r\n const name = typeof value === 'string' ? value : value?.name;\r\n return name\r\n ? this._filterCut(name as string)\r\n : this.stoneCuts.slice();\r\n }),\r\n );\r\n this.filteredClarities = this.stoneClarityControl.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => {\r\n const name = typeof value === 'string' ? value : value?.name;\r\n return name\r\n ? this._filterClarity(name as string)\r\n : this.stoneClarities.slice();\r\n }),\r\n );\r\n this.filteredColors = this.stoneColorControl.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => {\r\n const name = typeof value === 'string' ? value : value?.colorName;\r\n return name\r\n ? this._filterColor(name as string)\r\n : this.stoneColors.slice();\r\n }),\r\n );\r\n });\r\n }\r\n\r\n getControlValue(ctrl: FormControl, key: string) {\r\n return typeof ctrl.value === 'string' ? 0 : ctrl.value[key];\r\n }\r\n onSaveStone() {\r\n const requests = [];\r\n const newItem = [];\r\n\r\n if (\r\n typeof this.stoneTypeControl.value === 'string' &&\r\n this.stoneTypeControl.value?.trim()\r\n ) {\r\n requests.push(\r\n this.stoneService.setStoneType({\r\n stoneTypesID: 0,\r\n name: this.stoneTypeControl.value.trim(),\r\n }),\r\n );\r\n newItem.push(`Type: ${this.stoneTypeControl.value}`);\r\n }\r\n\r\n if (\r\n typeof this.stoneCutControl.value === 'string' &&\r\n this.stoneCutControl.value?.trim()\r\n ) {\r\n requests.push(\r\n this.stoneService.setStoneCut({\r\n stoneCutsID: 0,\r\n name: this.stoneCutControl.value.trim(),\r\n custom: true,\r\n }),\r\n );\r\n newItem.push(`Cut: ${this.stoneCutControl.value}`);\r\n }\r\n\r\n if (\r\n typeof this.stoneClarityControl.value === 'string' &&\r\n this.stoneClarityControl.value?.trim()\r\n ) {\r\n requests.push(\r\n this.stoneService.setStoneClarity({\r\n stoneClaritiesID: 0,\r\n name: this.stoneClarityControl.value.trim(),\r\n }),\r\n );\r\n newItem.push(`Clarity: ${this.stoneClarityControl.value}`);\r\n }\r\n\r\n if (\r\n typeof this.stoneColorControl.value === 'string' &&\r\n this.stoneColorControl.value.trim()\r\n ) {\r\n requests.push(\r\n this.stoneService.setStoneColor({\r\n stoneColorsID: 0,\r\n colorName: this.stoneColorControl.value.trim(),\r\n }),\r\n );\r\n newItem.push(`Color: ${this.stoneColorControl.value}`);\r\n }\r\n\r\n const sizeD1 = this.getValue(this.stoneSizeD1Control, 'dimension_1');\r\n const sizeD2 = this.getValue(this.stoneSizeD2Control, 'dimension_2');\r\n const sizeD3 = this.getValue(this.stoneSizeD3Control, 'dimension_3');\r\n\r\n const currentStoneSizesID =\r\n this.stoneSizes.find(\r\n (s) =>\r\n s.dimension_1 === sizeD1 &&\r\n (s.dimension_2 || 0) === (sizeD2 || 0) &&\r\n (s.dimension_3 || 0) === (sizeD3 || 0),\r\n )?.stoneSizesID ?? 0;\r\n\r\n if (currentStoneSizesID === 0) {\r\n requests.push(\r\n this.stoneService.setStoneSize({\r\n stoneSizesID: 0,\r\n dimension_1: Number(sizeD1 ?? 0),\r\n dimension_2: Number(sizeD2 ?? 0),\r\n dimension_3: Number(sizeD3 ?? 0),\r\n }),\r\n );\r\n newItem.push(\r\n `Size: ${sizeD1}mm ${sizeD2 ? ` x ${sizeD2}mm` : ''}${\r\n sizeD3 ? ` x ${sizeD3}mm` : ''\r\n }`,\r\n );\r\n }\r\n if (requests.length > 0) {\r\n this.showConfirmation(newItem).subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.isSaving = true;\r\n forkJoin(requests).subscribe((response) => {\r\n const {\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneColorsID,\r\n stoneSizesID,\r\n } = response.reduce((props, res) => {\r\n props['stoneTypesID'] =\r\n props?.['stoneTypesID'] ||\r\n res['stoneTypesID'] ||\r\n this.getControlValue(this.stoneTypeControl, 'stoneTypesID') ||\r\n 0;\r\n props['stoneCutsID'] =\r\n props?.['stoneCutsID'] ||\r\n res['stoneCutsID'] ||\r\n this.getControlValue(this.stoneCutControl, 'stoneCutsID') ||\r\n 0;\r\n props['stoneClaritiesID'] =\r\n (props?.['stoneClaritiesID'] ||\r\n res['stoneClaritiesID'] ||\r\n this.getControlValue(\r\n this.stoneClarityControl,\r\n 'stoneClaritiesID',\r\n )) ??\r\n 0;\r\n props['stoneColorsID'] =\r\n props?.['stoneColorsID'] ||\r\n res['stoneColorsID'] ||\r\n this.getControlValue(this.stoneColorControl, 'stoneColorsID') ||\r\n 0;\r\n props['stoneSizesID'] =\r\n props?.['stoneSizesID'] ||\r\n res['stoneSizesID'] ||\r\n currentStoneSizesID;\r\n return props;\r\n }, {});\r\n this.setStone({\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneColorsID,\r\n stoneSizesID,\r\n caratsPerUnit: this.gem.caratsPerUnit,\r\n });\r\n });\r\n });\r\n } else {\r\n const stoneTypesID = this.getControlValue(\r\n this.stoneTypeControl,\r\n 'stoneTypesID',\r\n );\r\n const stoneCutsID = this.getControlValue(\r\n this.stoneCutControl,\r\n 'stoneCutsID',\r\n );\r\n const stoneClaritiesID = this.getControlValue(\r\n this.stoneClarityControl,\r\n 'stoneClaritiesID',\r\n );\r\n const stoneColorsID = this.getControlValue(\r\n this.stoneColorControl,\r\n 'stoneColorsID',\r\n );\r\n const isExist = this.gems.some(\r\n (gem) =>\r\n gem.stoneTypesID === stoneTypesID &&\r\n gem.stoneCutsID === stoneCutsID &&\r\n gem.stoneClaritiesID === stoneClaritiesID &&\r\n gem.stoneSizesID === currentStoneSizesID &&\r\n (!stoneColorsID || gem.stoneColorsID === stoneColorsID) &&\r\n (!this.gem.avgCarat || gem.avgCarat === this.gem.avgCarat) &&\r\n gem.labGrown === !!this.gem.labGrown &&\r\n gem.traceable === !!this.gem.traceable,\r\n );\r\n if (isExist) {\r\n this.confirmationDuplicateStone.fire();\r\n return;\r\n }\r\n this.isSaving = true;\r\n this.setStone({\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneSizesID: currentStoneSizesID,\r\n stoneColorsID,\r\n caratsPerUnit: this.gem.caratsPerUnit,\r\n labGrown: this.gem.labGrown,\r\n traceable: this.gem.traceable,\r\n });\r\n }\r\n }\r\n\r\n setStone({\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneSizesID,\r\n stoneColorsID,\r\n caratsPerUnit,\r\n stockQTY = 0,\r\n labGrown = false,\r\n traceable = false,\r\n }) {\r\n this.stoneService\r\n .setStone({\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneSizesID,\r\n stoneColorsID,\r\n caratsPerUnit,\r\n stockQTY,\r\n labGrown,\r\n traceable,\r\n })\r\n .subscribe(({ stonesID }) => {\r\n this.stoneService.reloadStones(stonesID);\r\n this.dialogRef.close(true);\r\n this.isSaving = false;\r\n });\r\n }\r\n\r\n displayStoneType(type: StoneType): string {\r\n return type?.name ?? '';\r\n }\r\n private _filterType(name: string): StoneType[] {\r\n const filterValue = name.toLowerCase();\r\n return this.stoneTypes.filter((type) =>\r\n type.name.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n\r\n displayStoneCut(cut: StoneCut): string {\r\n return cut?.name ?? '';\r\n }\r\n private _filterCut(name: string): StoneCut[] {\r\n const filterValue = name.toLowerCase();\r\n return this.stoneCuts.filter((cut) =>\r\n cut.name.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n\r\n displayStoneClarity(clarity: StoneClarity): string {\r\n return clarity?.name ?? '';\r\n }\r\n private _filterClarity(name: string): StoneClarity[] {\r\n const filterValue = name.toLowerCase();\r\n return this.stoneClarities.filter((clarity) =>\r\n clarity.name.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n\r\n displayStoneColor(color: StoneColor): string {\r\n return color?.colorName ?? '';\r\n }\r\n private _filterColor(name: string): StoneColor[] {\r\n const filterValue = name.toLowerCase();\r\n return this.stoneColors.filter((color) =>\r\n color.colorName.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n\r\n displayStoneSizeD1(size: StoneSize): string {\r\n return size?.dimension_1?.toString() ?? '';\r\n }\r\n displayStoneSizeD2(size: StoneSize): string {\r\n return size?.dimension_2?.toString() ?? '';\r\n }\r\n displayStoneSizeD3(size: StoneSize): string {\r\n return size?.dimension_3?.toString() ?? '';\r\n }\r\n\r\n getValue(ctrl: FormControl, key: string) {\r\n return typeof ctrl.value === 'string' || typeof ctrl.value === 'number'\r\n ? ctrl.value ?? ''\r\n : ctrl.value?.[key] ?? '';\r\n }\r\n\r\n get getFilteredSizesD1() {\r\n return orderBy(\r\n uniqBy(\r\n this.stoneSizes?.filter((s) => {\r\n return (\r\n s.dimension_1 &&\r\n s.dimension_1\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(this.getValue(this.stoneSizeD1Control, 'dimension_1'))\r\n );\r\n }) ?? [],\r\n 'dimension_1',\r\n ),\r\n ['dimension_1'],\r\n );\r\n }\r\n\r\n get getFilteredSizesD2() {\r\n return orderBy(\r\n uniqBy(\r\n this.stoneSizes?.filter((s) => {\r\n return (\r\n s.dimension_1 ===\r\n this.getValue(this.stoneSizeD1Control, 'dimension_1') &&\r\n s.dimension_2 &&\r\n s.dimension_2\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(this.getValue(this.stoneSizeD2Control, 'dimension_2'))\r\n );\r\n }) ?? [],\r\n 'dimension_2',\r\n ),\r\n ['dimension_2'],\r\n );\r\n }\r\n\r\n get getFilteredSizesD3() {\r\n return orderBy(\r\n uniqBy(\r\n this.stoneSizes?.filter((s) => {\r\n return (\r\n s.dimension_1 ===\r\n this.getValue(this.stoneSizeD1Control, 'dimension_1') &&\r\n s.dimension_2 ===\r\n this.getValue(this.stoneSizeD2Control, 'dimension_2') &&\r\n s.dimension_3 &&\r\n s.dimension_3\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(this.getValue(this.stoneSizeD3Control, 'dimension_3'))\r\n );\r\n }) ?? [],\r\n 'dimension_3',\r\n ),\r\n ['dimension_3'],\r\n );\r\n }\r\n\r\n getFieldBorder(ctrl: FormControl) {\r\n if (!ctrl.value) return '';\r\n return typeof ctrl.value === 'string' || typeof ctrl.value === 'number'\r\n ? 'is-custom'\r\n : 'is-existing';\r\n }\r\n\r\n isSizeValid() {\r\n const d1 = this.getValue(this.stoneSizeD1Control, 'dimension_1');\r\n const d2 = this.getValue(this.stoneSizeD2Control, 'dimension_2');\r\n const d3 = this.getValue(this.stoneSizeD3Control, 'dimension_3');\r\n\r\n const scenario1 = d1 && d1 < 1000 && d2 && d2 < 1000 && d3 && d3 < 1000;\r\n const scenario2 = d1 && d1 < 1000 && d2 && d2 < 1000 && !d3;\r\n const scenario3 = d1 && d1 < 1000 && !d2 && !d3;\r\n const isAllValidNumber = d1 >= 0 && (d2 ?? 0) >= 0 && (d3 ?? 0) >= 0;\r\n this.isSizeOrderValid = d1 >= (d2 ?? 0) && (d2 ?? 0) >= (d3 ?? 0);\r\n return (\r\n isAllValidNumber &&\r\n this.isSizeOrderValid &&\r\n (scenario1 || scenario2 || scenario3)\r\n );\r\n }\r\n\r\n checkSize() {\r\n if (!this.isSizeValid()) {\r\n this.sizeBorderClass = 'is-invalid';\r\n return;\r\n }\r\n\r\n const sizeD1 = this.getValue(this.stoneSizeD1Control, 'dimension_1');\r\n const sizeD2 = this.getValue(this.stoneSizeD2Control, 'dimension_2');\r\n const sizeD3 = this.getValue(this.stoneSizeD3Control, 'dimension_3');\r\n\r\n const currentStoneSizesID =\r\n this.stoneSizes.find(\r\n (s) =>\r\n s.dimension_1 === sizeD1 &&\r\n (s.dimension_2 || 0) === (sizeD2 || 0) &&\r\n (s.dimension_3 || 0) === (sizeD3 || 0),\r\n )?.stoneSizesID ?? 0;\r\n this.sizeBorderClass = currentStoneSizesID\r\n ? 'is-existing-size'\r\n : 'is-custom-size';\r\n }\r\n\r\n get isFormValid() {\r\n return (\r\n this.stoneTypeControl.value &&\r\n this.stoneCutControl.value &&\r\n this.stoneClarityControl.value &&\r\n this.isSizeValid() &&\r\n (!this.gem.avgCarat || this.gem.avgCarat < 1000)\r\n );\r\n }\r\n\r\n onTypeCheck() {\r\n if (\r\n !this.stoneTypeControl.value ||\r\n typeof this.stoneTypeControl.value !== 'string'\r\n )\r\n return;\r\n const { value } = this.stoneTypeControl;\r\n const existingValue = this.stoneTypes.find(\r\n (i) => i.name?.trim()?.toLowerCase() === value.trim()?.toLowerCase(),\r\n );\r\n if (existingValue) {\r\n this.stoneTypeControl.patchValue({\r\n stoneTypesID: existingValue.stoneTypesID,\r\n name: value,\r\n });\r\n }\r\n }\r\n\r\n onCutCheck() {\r\n if (\r\n !this.stoneCutControl.value ||\r\n typeof this.stoneCutControl.value !== 'string'\r\n )\r\n return;\r\n const { value } = this.stoneCutControl;\r\n const existingValue = this.stoneCuts.find(\r\n (i) => i.name?.trim()?.toLowerCase() === value.trim()?.toLowerCase(),\r\n );\r\n if (existingValue) {\r\n this.stoneCutControl.patchValue({\r\n stoneCutsID: existingValue.stoneCutsID,\r\n name: value,\r\n });\r\n }\r\n }\r\n\r\n onClarityCheck() {\r\n if (\r\n !this.stoneClarityControl.value ||\r\n typeof this.stoneClarityControl.value !== 'string'\r\n )\r\n return;\r\n const { value } = this.stoneClarityControl;\r\n const existingValue = this.stoneClarities.find(\r\n (i) => i.name?.trim()?.toLowerCase() === value.trim()?.toLowerCase(),\r\n );\r\n if (existingValue) {\r\n this.stoneClarityControl.patchValue({\r\n stoneClaritiesID: existingValue.stoneClaritiesID,\r\n name: value,\r\n });\r\n }\r\n }\r\n\r\n onColorCheck() {\r\n if (\r\n !this.stoneColorControl.value ||\r\n typeof this.stoneColorControl.value !== 'string'\r\n )\r\n return;\r\n const { value } = this.stoneColorControl;\r\n const existingValue = this.stoneColors.find(\r\n (i) => i.colorName?.trim()?.toLowerCase() === value.trim()?.toLowerCase(),\r\n );\r\n if (existingValue) {\r\n this.stoneColorControl.patchValue({\r\n stoneColorsID: existingValue.stoneColorsID,\r\n colorName: value,\r\n });\r\n }\r\n }\r\n\r\n showConfirmation(data) {\r\n const dialogRef = this.dialog.open(StoneConfirmationComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n data,\r\n panelClass: 'stone-dialog-confirmation',\r\n });\r\n return dialogRef.afterClosed();\r\n }\r\n\r\n onGetImage() {\r\n const stoneType = this.getControlValue(\r\n this.stoneTypeControl,\r\n 'stoneTypesID',\r\n );\r\n const stoneCut = this.getControlValue(this.stoneCutControl, 'stoneCutsID');\r\n const stoneColor = this.getControlValue(\r\n this.stoneColorControl,\r\n 'stoneColorsID',\r\n );\r\n if (!stoneType || !stoneCut) {\r\n this.currentStonePicture = '';\r\n return;\r\n }\r\n this.stoneService\r\n .getStoneDefaultPicture({\r\n stoneTypesID: stoneType,\r\n stoneCutsID: stoneCut,\r\n stoneColorsID: stoneColor || 0,\r\n })\r\n .subscribe((data) => {\r\n if (data.stonePicsDefaultID > 0) {\r\n this.currentStonePicture = data.picturePath;\r\n } else {\r\n this.currentStonePicture = '';\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    No Image
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Type\r\n \r\n \r\n \r\n {{ type.name }}\r\n \r\n \r\n \r\n \r\n Cut\r\n \r\n \r\n \r\n {{ cut.name }}\r\n \r\n \r\n \r\n \r\n Color\r\n \r\n \r\n \r\n {{ color.colorName }}\r\n \r\n \r\n \r\n \r\n Clarity\r\n \r\n \r\n \r\n {{ clarity.name }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n D1\r\n \r\n \r\n \r\n {{ size.dimension_1 }}\r\n \r\n \r\n \r\n mm\r\n
    \r\n
    X
    \r\n
    \r\n \r\n D2\r\n \r\n \r\n \r\n {{ size.dimension_2 }}\r\n \r\n \r\n \r\n mm\r\n
    \r\n
    X
    \r\n
    \r\n \r\n D3\r\n \r\n \r\n \r\n {{ size.dimension_3 }}\r\n \r\n \r\n \r\n mm\r\n
    \r\n
    \r\n Invalid size.\r\n Size order should be descending.\r\n
    \r\n
    \r\n \r\n
    \r\n Lab Grown\r\n
    \r\n
    \r\n Traceable\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n\r\n\r\n\r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { forkJoin } from 'rxjs';\r\nimport {\r\n StoneColor,\r\n StoneCut,\r\n StoneDefaultImage,\r\n StoneType,\r\n} from '../../riva-gems.model';\r\nimport { StoneService } from '../../stone.service';\r\n\r\n@Component({\r\n templateUrl: './stone-images-dialog.component.html',\r\n styleUrls: ['./stone-images-dialog.component.scss'],\r\n})\r\nexport class StoneImagesDialogComponent implements OnInit {\r\n stoneTypes: StoneType[];\r\n stoneCuts: StoneCut[];\r\n stoneColors: StoneColor[];\r\n stoneDefaultImages: StoneDefaultImage[];\r\n imageFiles: FileList | null = null;\r\n stoneDefaultImageConfig: StoneDefaultImage = {\r\n stonePicsDefaultID: 0,\r\n stoneTypesID: 0,\r\n stoneCutsID: 0,\r\n stoneColorsID: 0,\r\n picturePath: '',\r\n };\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: { productId: number },\r\n public dialogRef: MatDialogRef,\r\n private stoneService: StoneService,\r\n private sanitizer: DomSanitizer,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n forkJoin([\r\n this.stoneService.getTypes(),\r\n this.stoneService.getCuts(),\r\n this.stoneService.getColors(),\r\n ]).subscribe(([types, cuts, colors]) => {\r\n this.stoneTypes = types;\r\n this.stoneCuts = cuts;\r\n this.stoneColors = colors;\r\n });\r\n }\r\n\r\n onGetImage() {\r\n if (!this.isValid) return;\r\n this.stoneService\r\n .getStoneDefaultPicture(this.stoneDefaultImageConfig)\r\n .subscribe((data) => {\r\n if (data.stonePicsDefaultID > 0) {\r\n this.stoneDefaultImageConfig.picturePath = data.picturePath;\r\n } else {\r\n this.stoneDefaultImageConfig.picturePath = '';\r\n }\r\n });\r\n }\r\n\r\n onUploadChange(files: FileList) {\r\n this.imageFiles = files;\r\n this.stoneDefaultImageConfig.picturePath = URL.createObjectURL(files[0]);\r\n this.uploadImage();\r\n }\r\n\r\n uploadImage() {\r\n const formData = new FormData();\r\n for (let i = 0; i < this.imageFiles.length; i++) {\r\n formData.append('file[]', this.imageFiles[i]);\r\n }\r\n\r\n const { stoneTypesID, stoneCutsID, stoneColorsID } =\r\n this.stoneDefaultImageConfig;\r\n\r\n formData.append('stoneTypesID', stoneTypesID.toString());\r\n formData.append('stoneCutsID', stoneCutsID.toString());\r\n formData.append('stoneColorsID', stoneColorsID?.toString());\r\n this.stoneService.uploadDefaultPicture(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.ResponseHeader) {\r\n }\r\n });\r\n }\r\n\r\n get currentImage() {\r\n return this.stoneDefaultImageConfig.picturePath\r\n ? this.sanitizer.bypassSecurityTrustUrl(\r\n this.stoneDefaultImageConfig.picturePath,\r\n )\r\n : '';\r\n }\r\n get isValid() {\r\n return (\r\n this.stoneDefaultImageConfig.stoneTypesID &&\r\n this.stoneDefaultImageConfig.stoneCutsID\r\n );\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    No Image
    \r\n \r\n
    \r\n\r\n \r\n Upload\r\n \r\n \r\n
    \r\n
    \r\n \r\n Type\r\n \r\n \r\n {{ type.name }}\r\n \r\n \r\n \r\n \r\n Cut\r\n \r\n \r\n {{ cut.name }}\r\n \r\n \r\n \r\n \r\n Color\r\n \r\n None\r\n \r\n {{ color.colorName }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n Close\r\n \r\n
    \r\n \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { RivaGems, StoneMovementAppend } from '../../riva-gems.model';\r\nimport { StoneService } from '../../stone.service';\r\n\r\n@Component({\r\n templateUrl: './stone-inventory-adjustment-dialog.component.html',\r\n styleUrls: ['./stone-inventory-adjustment-dialog.component.scss'],\r\n})\r\nexport class StoneInventoryAdjustmentDialogComponent implements OnInit {\r\n isSaving = false;\r\n suppliers: Suppliers[] = [];\r\n inventoryAdjustment: Partial = {\r\n inventoryValue: '',\r\n appendType: false,\r\n customerProvided: 0,\r\n movementDate: DateTime.now().toFormat('yyyy-MM-dd'),\r\n };\r\n qtyMinValue = 0;\r\n qtyMaxValue = 0;\r\n customersList: Customers[];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: { stone: RivaGems },\r\n public dialogRef: MatDialogRef,\r\n private supplierService: SupplierService,\r\n private stoneService: StoneService,\r\n private customerService: CustomerService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.qtyMaxValue = parseInt(`${999.9999 / this.data.stone.caratsPerUnit}`);\r\n this.qtyMinValue = -this.qtyMaxValue;\r\n\r\n this.supplierService.getList().subscribe((result) => {\r\n this.suppliers = result;\r\n });\r\n\r\n this.customerService.getList().subscribe((data) => {\r\n this.customersList = orderBy(data, 'companyName');\r\n });\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n const {\r\n appendType,\r\n inventoryValue,\r\n qtyMoved,\r\n caratsMoved,\r\n suppliersID,\r\n pricePerCarat,\r\n customerProvided = 0,\r\n reason,\r\n movementDate,\r\n } = this.inventoryAdjustment;\r\n\r\n this.stoneService\r\n .setStoneMovementAppends({\r\n stonesID: this.data.stone.stonesID,\r\n appendType,\r\n reason,\r\n customerProvided: appendType ? null : customerProvided,\r\n qtyMoved: inventoryValue === 'qty' ? qtyMoved : 0,\r\n caratsMoved: inventoryValue === 'carats' ? caratsMoved : 0,\r\n suppliersID: appendType ? suppliersID : null,\r\n pricePerCarat: appendType ? pricePerCarat : null,\r\n movementDate: DateTime.fromJSDate(new Date(movementDate)).toFormat(\r\n 'yyyy-MM-dd',\r\n ),\r\n })\r\n .subscribe(() => {\r\n this.stoneService.reloadStones(this.data.stone.stonesID);\r\n this.dialogRef.close(false);\r\n });\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n onUpdateQty() {\r\n this.inventoryAdjustment.inventoryValue =\r\n parseInt(`${this.inventoryAdjustment.qtyMoved || 0}`) === 0 ? '' : 'qty';\r\n this.inventoryAdjustment.caratsMoved = parseFloat(\r\n (\r\n this.inventoryAdjustment.qtyMoved * this.data.stone.caratsPerUnit\r\n ).toFixed(4),\r\n );\r\n }\r\n onUpdateCarats() {\r\n this.inventoryAdjustment.inventoryValue =\r\n (this.inventoryAdjustment.caratsMoved ?? 0) === 0 ? '' : 'carats';\r\n this.inventoryAdjustment.qtyMoved = Math.ceil(\r\n this.inventoryAdjustment.caratsMoved / this.data.stone.caratsPerUnit,\r\n );\r\n }\r\n onChangeAppendType() {\r\n if (this.inventoryAdjustment.appendType) {\r\n this.inventoryAdjustment.customerProvided = 0;\r\n } else {\r\n this.inventoryAdjustment.suppliersID = 0;\r\n this.inventoryAdjustment.pricePerCarat = null;\r\n }\r\n }\r\n\r\n get isFormValid() {\r\n return (\r\n this.inventoryAdjustment.inventoryValue !== '' &&\r\n ((!this.data.stone.caratsPerUnit &&\r\n Math.abs(this.inventoryAdjustment.qtyMoved) > 0) ||\r\n (this.inventoryAdjustment.qtyMoved <= this.qtyMaxValue &&\r\n this.inventoryAdjustment.caratsMoved <= 999.9999 &&\r\n this.inventoryAdjustment.caratsMoved >= -999.9999 &&\r\n this.inventoryAdjustment.caratsMoved >= this.qtyMinValue))\r\n );\r\n }\r\n}\r\n","
    \r\n

    Stone Inventory Adjustment

    \r\n \r\n
    \r\n \r\n Inventory Adjust\r\n Stone Purchase\r\n \r\n
    \r\n \r\n Qty\r\n \r\n \r\n
    \r\n \r\n Carats\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Provided By\r\n \r\n None \r\n \r\n {{ customer.companyName }}\r\n \r\n \r\n \r\n \r\n Date\r\n \r\n \r\n \r\n \r\n \r\n Supplier\r\n \r\n \r\n {{ supplier.companyName }}\r\n \r\n \r\n \r\n \r\n Price per carat\r\n \r\n \r\n
    \r\n \r\n Comments\r\n \r\n \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport { StoneSize } from '../../riva-gems.model';\r\nimport { getDisplayText } from '../../stone.mapper';\r\nimport { StoneService } from '../../stone.service';\r\n\r\n@Component({\r\n templateUrl: './stone-size-dialog.component.html',\r\n styleUrls: ['./stone-size-dialog.component.scss'],\r\n})\r\nexport class StoneSizeDialogComponent implements OnInit {\r\n displayColumns = ['displayText'];\r\n isSaving = false;\r\n stoneSize: StoneSize = { stoneSizesID: 0 } as StoneSize;\r\n stoneSizes: StoneSize[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: { productId: number },\r\n public dialogRef: MatDialogRef,\r\n private stoneService: StoneService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.stoneService.getSizes().subscribe((data) => {\r\n this.stoneSizes = data;\r\n });\r\n }\r\n addDimension() {\r\n this.stoneSizes = [\r\n ...this.stoneSizes,\r\n { ...this.stoneSize, displayText: getDisplayText(this.stoneSize) },\r\n ];\r\n this.stoneSize = { stoneSizesID: 0 } as StoneSize;\r\n }\r\n onSave() {\r\n const requests = this.stoneSizes.reduce((r, s) => {\r\n if (s.stoneSizesID) return r;\r\n return [...r, this.stoneService.setStoneSize(s)];\r\n }, []);\r\n this.isSaving = true;\r\n forkJoin(requests).subscribe(() => {\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n}\r\n","
    \r\n

    Stone Sizes

    \r\n \r\n
    \r\n \r\n Dimension 1\r\n \r\n \r\n \r\n Dimension 2\r\n \r\n \r\n \r\n Dimension 3\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Dimensions{{ element.displayText }}
    No Available Size
    \r\n
    \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { RivaGems } from '../../riva-gems.model';\r\nimport { StoneService } from '../../stone.service';\r\n\r\n@Component({\r\n templateUrl: './stone-updater-dialog.component.html',\r\n styleUrls: ['./stone-updater-dialog.component.scss'],\r\n})\r\nexport class StoneUpdaterDialogComponent implements OnInit {\r\n isSaving = false;\r\n stone: RivaGems = {} as RivaGems;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: { stone: RivaGems },\r\n public dialogRef: MatDialogRef,\r\n private stoneService: StoneService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.stone = { ...this.data.stone };\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n this.stoneService.setStone(this.stone).subscribe(({ stonesID }) => {\r\n this.stoneService.reloadStones(stonesID);\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n}\r\n","
    \r\n

    Update stone

    \r\n \r\n \r\n Carat Per Stone\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n \r\n
    \r\n","import { HttpEventType } from '@angular/common/http';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { STONE_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/stone-permission';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { ConfirmationService } from '../../riva-confirmation/riva-confirmation.service';\r\nimport { StoneDialogComponent } from '../dialogs/stone-dialog/stone-dialog.component';\r\nimport { StoneImagesDialogComponent } from '../dialogs/stone-images-dialog/stone-images-dialog.component';\r\nimport { StoneInventoryAdjustmentDialogComponent } from '../dialogs/stone-inventory-adjustment-dialog/stone-inventory-adjustment-dialog.component';\r\nimport { StoneSizeDialogComponent } from '../dialogs/stone-size-dialog/stone-size-dialog.component';\r\nimport { StoneUpdaterDialogComponent } from '../dialogs/stone-updater-dialog/stone-updater-dialog.component';\r\nimport {\r\n RivaGems,\r\n StoneClarity,\r\n StoneMovementStockTracking,\r\n StoneSize,\r\n StoneType,\r\n} from '../riva-gems.model';\r\nimport { StoneService } from '../stone.service';\r\nimport { StoneCut } from './../riva-gems.model';\r\n\r\n@Component({\r\n selector: 'gems-details',\r\n templateUrl: './gems-details.component.html',\r\n styleUrls: ['./gems-details.component.scss'],\r\n})\r\nexport class GemsDetailsComponent implements OnInit, OnChanges {\r\n @Input() selectedGem: RivaGems;\r\n @Input() gems: RivaGems[];\r\n @Input() editMode: boolean = false;\r\n @Output() onSetEditMode = new EventEmitter();\r\n @Output() onSelectGem = new EventEmitter();\r\n\r\n @ViewChild('confirmationDuplicateStone')\r\n public readonly confirmationDuplicateStone!: SwalComponent;\r\n\r\n stoneSizes: StoneSize[];\r\n stoneTypes: StoneType[];\r\n stoneCuts: StoneCut[];\r\n stoneClarities: StoneClarity[];\r\n suppliers: Suppliers[];\r\n imageFiles: FileList | null = null;\r\n stoneFeatureKey = STONE_FEATURE_KEY;\r\n stoneStockTracking: StoneMovementStockTracking;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private stoneService: StoneService,\r\n private sanitizer: DomSanitizer,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n ngOnChanges(): void {\r\n if (this.selectedGem.stonesID) {\r\n this.stoneStockTracking = { ...this.selectedGem.stoneTracking };\r\n }\r\n }\r\n\r\n getStoneMovementDetails() {\r\n this.stoneService\r\n .getStoneMovementStockTracking(this.selectedGem.stonesID)\r\n .subscribe((detail) => {\r\n this.stoneStockTracking = detail;\r\n });\r\n }\r\n\r\n onSaveStone() {\r\n this.stoneService.setStone(this.selectedGem).subscribe(({ stonesID }) => {\r\n this.stoneService.reloadStones(stonesID);\r\n this.onSetEditMode.emit(false);\r\n });\r\n }\r\n onEdit() {\r\n this.onSetEditMode.emit(true);\r\n }\r\n onCancel() {\r\n this.stoneService.reSelectStone(this.selectedGem.stonesID);\r\n this.onSetEditMode.emit(false);\r\n }\r\n newGem() {\r\n const dialogRef = this.dialog.open(StoneDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1000px',\r\n width: '100%',\r\n data: {},\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((result: boolean) => {});\r\n }\r\n\r\n updateStone() {\r\n const dialogRef = this.dialog.open(StoneUpdaterDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n data: {\r\n stone: this.selectedGem,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((result: boolean) => {});\r\n }\r\n\r\n onOpenStoneImageDialog() {\r\n const dialogRef = this.dialog.open(StoneImagesDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n data: {},\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((result: boolean) => {\r\n this.stoneService.reloadStones(this.selectedGem.stonesID);\r\n });\r\n }\r\n\r\n uploadImage() {\r\n const formData = new FormData();\r\n for (let i = 0; i < this.imageFiles.length; i++) {\r\n formData.append('file[]', this.imageFiles[i]);\r\n }\r\n formData.append('stoneId', this.selectedGem.stonesID.toString());\r\n this.stoneService.uploadPicture(formData).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' + Math.round((100 * event.loaded) / event.total) + '%',\r\n );\r\n } else if (event.type === HttpEventType.ResponseHeader) {\r\n this.stoneService.reloadStones(this.selectedGem.stonesID);\r\n }\r\n });\r\n }\r\n\r\n newSize() {\r\n const dialogRef = this.dialog.open(StoneSizeDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n data: {},\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((result: boolean) => {\r\n if (result) {\r\n this.stoneService.getSizes().subscribe((sizes) => {\r\n this.stoneSizes = sizes;\r\n });\r\n }\r\n });\r\n }\r\n\r\n onUploadChange(files: FileList) {\r\n this.imageFiles = files;\r\n this.selectedGem.picturePath = URL.createObjectURL(files[0]);\r\n this.uploadImage();\r\n }\r\n get currentImage() {\r\n return this.selectedGem.picturePath\r\n ? this.sanitizer.bypassSecurityTrustUrl(this.selectedGem.picturePath)\r\n : '';\r\n }\r\n\r\n createOppositeLabVersion() {\r\n const {\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneSizesID,\r\n stoneColorsID,\r\n avgCarat,\r\n labGrown,\r\n traceable,\r\n caratsPerUnit,\r\n stockQTY,\r\n } = this.selectedGem;\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Copy a stone?',\r\n content: `Are you sure you want to create a copy of this stone with a ${\r\n labGrown ? 'nat version' : 'lab version'\r\n }?`,\r\n confirmLabel: labGrown ? 'Make Nat Version' : 'Make Lab Version',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n const isExist = this.gems.some(\r\n (gem) =>\r\n gem.stoneTypesID === stoneTypesID &&\r\n gem.stoneCutsID === stoneCutsID &&\r\n gem.stoneClaritiesID === stoneClaritiesID &&\r\n gem.stoneSizesID === stoneSizesID &&\r\n gem.stoneColorsID === stoneColorsID &&\r\n gem.avgCarat === avgCarat &&\r\n gem.labGrown === !labGrown &&\r\n gem.traceable === traceable,\r\n );\r\n if (isExist) {\r\n this.confirmationDuplicateStone.fire();\r\n return;\r\n }\r\n this.stoneService\r\n .setStone({\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneSizesID,\r\n stoneColorsID,\r\n caratsPerUnit,\r\n stockQTY,\r\n labGrown: !labGrown,\r\n traceable,\r\n })\r\n .subscribe(({ stonesID }) => {\r\n this.stoneService.reloadStones(stonesID);\r\n });\r\n });\r\n }\r\n\r\n onStoneInventoryAdjustmentDialogOpen() {\r\n if (!this.selectedGem.stonesID) return;\r\n this.dialog.open(StoneInventoryAdjustmentDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n data: {\r\n stone: this.selectedGem,\r\n },\r\n autoFocus: false,\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Custom\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Type
    \r\n
    \r\n {{ selectedGem.stoneType?.name || '–' }}\r\n
    \r\n
    \r\n
    \r\n
    Cut
    \r\n
    \r\n {{ selectedGem.stoneCut?.name || '–' }}\r\n
    \r\n
    \r\n
    \r\n
    Clarity
    \r\n
    \r\n {{ selectedGem.stoneClarity?.name || '–' }}\r\n
    \r\n
    \r\n
    \r\n
    Color
    \r\n
    \r\n {{ selectedGem.stoneColor?.colorName || '–' }}\r\n
    \r\n
    \r\n \r\n
    Carat Per Stone
    \r\n
    \r\n {{ selectedGem.caratsPerUnit || '–' }}\r\n
    \r\n
    \r\n \r\n
    \r\n Lab Grown\r\n
    \r\n
    \r\n
    Size
    \r\n
    \r\n
    \r\n {{ selectedGem.stoneSize.dimension_1 }}mm\r\n
    \r\n
    \r\n X\r\n
    \r\n
    \r\n {{ selectedGem.stoneSize.dimension_2 }}mm\r\n
    \r\n
    \r\n X\r\n
    \r\n
    \r\n {{ selectedGem.stoneSize.dimension_3 }}mm\r\n
    \r\n
    \r\n
    \r\n
    \r\n Traceable\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Carats in Stock
    \r\n
    \r\n {{ stoneStockTracking?.caratsInStock || '–' }}\r\n
    \r\n
    \r\n
    \r\n
    Qty in stock
    \r\n
    \r\n {{ stoneStockTracking?.qtyInSTock || '–' }}\r\n
    \r\n
    \r\n
    \r\n
    Price per stone
    \r\n
    \r\n \r\n {{\r\n stoneStockTracking?.lastPurchasePricePerCarat *\r\n selectedGem.caratsPerUnit | currency\r\n }}\r\n \r\n \r\n –\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Last Purchased Supplier
    \r\n
    \r\n {{ stoneStockTracking?.lastPurchaseSupplier || '–' }}\r\n
    \r\n
    \r\n
    \r\n
    Last Purchase Price Per Carat
    \r\n
    \r\n {{\r\n stoneStockTracking?.lastPurchasePricePerCarat | currency\r\n }}\r\n –\r\n
    \r\n
    \r\n
    \r\n
    Last Purchase Date
    \r\n
    \r\n {{\r\n (stoneStockTracking?.lastPurchaseDate | date : 'MM/dd/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 New Stone\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Photo Defaults\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ selectedGem.labGrown ? 'Make Nat Version' : 'Make Lab Version' }}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Inventory Adjustment\r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { forkJoin } from 'rxjs';\r\nimport {\r\n RivaGems,\r\n StoneClarity,\r\n StoneColor,\r\n StoneCut,\r\n StoneType,\r\n} from '../riva-gems.model';\r\nimport { StoneService } from '../stone.service';\r\n\r\n@Component({\r\n selector: 'gems-list',\r\n templateUrl: './gems-list.component.html',\r\n styleUrls: ['./gems-list.component.scss'],\r\n})\r\nexport class GemsListComponent implements OnInit, OnChanges, AfterViewInit {\r\n @Input() selectedGem: RivaGems;\r\n @Input() list: RivaGems[];\r\n @Input() editMode: boolean;\r\n @Output() onSelectGem = new EventEmitter();\r\n @Output() onSetEditMode = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n gems = new MatTableDataSource([]);\r\n displayedColumns = [\r\n 'stonesID',\r\n 'pic',\r\n 'type',\r\n 'cut',\r\n 'clarity',\r\n 'color',\r\n 'caratsPerUnit',\r\n 'sizeD1',\r\n 'pricePerUnit',\r\n 'qtyInSTock',\r\n 'labGrown',\r\n 'traceable',\r\n ];\r\n search = '';\r\n stoneTypes: StoneType[] = [\r\n {\r\n stoneTypesID: 0,\r\n name: 'All',\r\n },\r\n ];\r\n stoneCuts: StoneCut[] = [\r\n {\r\n stoneCutsID: 0,\r\n name: 'All',\r\n custom: false,\r\n },\r\n ];\r\n stoneClarities: StoneClarity[] = [\r\n {\r\n stoneClaritiesID: 0,\r\n name: 'All',\r\n },\r\n ];\r\n stoneColors: StoneColor[] = [\r\n {\r\n stoneColorsID: 0,\r\n colorName: 'All',\r\n },\r\n ];\r\n filter = {\r\n stoneTypesID: 0,\r\n stoneCutsID: 0,\r\n stoneClaritiesID: 0,\r\n stoneColorsID: 0,\r\n labGrown: -1,\r\n traceable: -1,\r\n hideOutOfStock: false,\r\n };\r\n searchText = '';\r\n isExportingFile = false;\r\n\r\n constructor(private stoneService: StoneService) {}\r\n\r\n ngOnInit(): void {\r\n forkJoin([\r\n this.stoneService.getTypes(),\r\n this.stoneService.getCuts(),\r\n this.stoneService.getClarities(),\r\n this.stoneService.getColors(),\r\n ]).subscribe(([types, cuts, clarities, colors]) => {\r\n this.stoneTypes = [...this.stoneTypes, ...types];\r\n this.stoneCuts = [...this.stoneCuts, ...cuts];\r\n this.stoneClarities = [...this.stoneClarities, ...clarities];\r\n this.stoneColors = [...this.stoneColors, ...colors];\r\n });\r\n this.stoneService.reSelectStone = (id) => {\r\n const [stone] = this.gems.data ?? [];\r\n const selected =\r\n id > 0 ? this.gems.data.find((s) => s.stonesID === id) : stone ?? {};\r\n this.onSelectGem.emit({ ...selected });\r\n };\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.gems.data = this.list;\r\n }\r\n ngAfterViewInit() {\r\n this.gems.sort = this.sort;\r\n this.gems.paginator = this.paginator;\r\n this.gems.filterPredicate = (data: RivaGems, filterValue: string) => {\r\n const {\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneColorsID,\r\n labGrown,\r\n traceable,\r\n hideOutOfStock,\r\n } = JSON.parse(filterValue);\r\n const typeFilter =\r\n stoneTypesID === 0 || data.stoneTypesID === stoneTypesID;\r\n const cutFilter = stoneCutsID === 0 || data.stoneCutsID === stoneCutsID;\r\n const clarityFilter =\r\n stoneClaritiesID === 0 || data.stoneClaritiesID === stoneClaritiesID;\r\n const colorFilter =\r\n stoneColorsID === 0 || data.stoneColorsID === stoneColorsID;\r\n const labGrownFilter =\r\n labGrown === -1 || data.labGrown === (labGrown > 0 ? true : false);\r\n const traceableFilter =\r\n traceable === -1 || data.traceable === (traceable > 0 ? true : false);\r\n const sizeSearch =\r\n !this.searchText ||\r\n (data.size ?? data.stoneSize.displayText)\r\n .toString()\r\n .toLowerCase()\r\n .includes(this.searchText.toLowerCase());\r\n const inStock =\r\n !hideOutOfStock || (hideOutOfStock && (data.qtyInSTock ?? 0) > 0);\r\n\r\n return (\r\n typeFilter &&\r\n cutFilter &&\r\n clarityFilter &&\r\n colorFilter &&\r\n labGrownFilter &&\r\n traceableFilter &&\r\n sizeSearch &&\r\n inStock\r\n );\r\n };\r\n this.gems.sortingDataAccessor = (data: any, sortHeaderId: string): any => {\r\n if (sortHeaderId === 'size') {\r\n return (\r\n (data.stoneSize?.dimension_1 ?? 0) * 1000 +\r\n (data.stoneSize?.dimension_2 ?? 0) * 100 +\r\n (data.stoneSize?.dimension_3 ?? 0) * 1\r\n );\r\n } else if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId]?.toLocaleLowerCase();\r\n }\r\n return data[sortHeaderId];\r\n };\r\n }\r\n\r\n onFilter() {\r\n const {\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneColorsID,\r\n labGrown,\r\n traceable,\r\n hideOutOfStock,\r\n } = this.filter;\r\n this.gems.filter = JSON.stringify({\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneColorsID,\r\n labGrown,\r\n traceable,\r\n hideOutOfStock,\r\n });\r\n }\r\n\r\n onTableRowClick(gem) {\r\n if (this.editMode) return;\r\n this.onSelectGem.emit({ ...gem });\r\n }\r\n\r\n onDownloadExcelFile() {\r\n this.isExportingFile = true;\r\n this.stoneService\r\n .getStoneExcel()\r\n .subscribe((response) => {\r\n const blob = new Blob([response], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'riva-stone-list.xlsx'\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n this.isExportingFile = false;\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n Search by size\r\n \r\n \r\n \r\n Filter by type\r\n \r\n \r\n {{ type.name }}\r\n \r\n \r\n \r\n \r\n Filter by cut\r\n \r\n \r\n {{ cut.name }}\r\n \r\n \r\n \r\n \r\n Filter by clarity\r\n \r\n \r\n {{ clarity.name }}\r\n \r\n \r\n \r\n \r\n Filter by color\r\n \r\n \r\n {{ color.colorName }}\r\n \r\n \r\n \r\n \r\n Filter by lab grown\r\n \r\n All \r\n Yes \r\n No \r\n \r\n \r\n \r\n Filter by traceable\r\n \r\n All \r\n Yes \r\n No \r\n \r\n \r\n Hide Zero Inventory\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n Stone ID\r\n \r\n \r\n {{ element.stonesID }}\r\n \r\n \r\n \r\n Pic\r\n \r\n \r\n \r\n CUSTOM\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Type\r\n \r\n \r\n {{ element.type ?? element.stoneType?.name }}\r\n \r\n \r\n \r\n \r\n Cut\r\n \r\n \r\n {{ element.cut ?? element.stoneCut?.name }}\r\n \r\n \r\n \r\n \r\n Clarity\r\n \r\n \r\n {{ element.clarity ?? element.stoneClarity?.name }}\r\n \r\n \r\n \r\n \r\n Color\r\n \r\n \r\n {{ element.color ?? element.stoneColor?.colorName }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ element.size ?? element.stoneSize.displayText }}\r\n \r\n \r\n \r\n \r\n Carat Per Stone\r\n \r\n \r\n {{ element.caratsPerUnit }}\r\n \r\n \r\n \r\n \r\n PPU\r\n \r\n \r\n {{ element.pricePerUnit | currency }}\r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n \r\n {{ element.qtyInSTock }}\r\n \r\n \r\n \r\n \r\n Lab Grown\r\n \r\n \r\n {{ element.labGrown ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n \r\n Traceable\r\n \r\n \r\n {{ element.traceable ? 'Yes' : 'No' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { RivaGems } from './riva-gems.model';\r\nimport { StoneService } from './stone.service';\r\n\r\n@Component({\r\n selector: 'riva-gems',\r\n templateUrl: './riva-gems.component.html',\r\n styleUrls: ['./riva-gems.component.scss'],\r\n})\r\nexport class RivaGemsComponent implements OnInit {\r\n selectedGem: RivaGems = {\r\n stonesID: 0,\r\n stoneType: {},\r\n stoneCut: {},\r\n stoneClarity: {},\r\n stoneSize: {},\r\n supplier: {},\r\n } as RivaGems;\r\n editMode = false;\r\n gems: RivaGems[] = [];\r\n\r\n constructor(private userPermissionService: UserPermissionService, private stoneService: StoneService) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.stone);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getStones();\r\n this.stoneService.reloadStones = (id) => {\r\n this.getStones(id);\r\n };\r\n }\r\n\r\n onSelectGem(selectedGem) {\r\n this.selectedGem = { ...selectedGem };\r\n }\r\n onSetEditMode(value = !this.editMode) {\r\n this.editMode = value;\r\n }\r\n\r\n getStones(id = 0) {\r\n this.stoneService.getStones().subscribe((stones) => {\r\n this.gems = orderBy(stones, ['stonesID'], ['desc']);\r\n if (stones.length > 0) {\r\n const selected =\r\n id > 0\r\n ? this.gems.find((s) => s.stonesID === id)\r\n : this.gems[0];\r\n this.selectedGem = { ...selected };\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport {\r\n ProductStone,\r\n StoneOverride,\r\n} from 'src/app/components/riva-gems/riva-gems.model';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\n\r\ninterface OverrideValue {\r\n productSizeId: number;\r\n qty: number;\r\n size: string;\r\n tempId?: number;\r\n}\r\n\r\n@Component({\r\n templateUrl: './stone-override-size-dialog.component.html',\r\n styleUrls: ['./stone-override-size-dialog.component.scss'],\r\n})\r\nexport class StoneOverrideSizeDialogComponent implements OnInit {\r\n displayColumns = ['size', 'qty'];\r\n isSaving = false;\r\n overrideSizes: StoneOverride[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: { productId: number; stone: ProductStone },\r\n public dialogRef: MatDialogRef,\r\n private productBomService: ProductBomService,\r\n private productService: ProductService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n forkJoin([\r\n this.productBomService.getStoneOverride(\r\n this.data.stone.productsBOMStonesID,\r\n ),\r\n this.productService.getProduct(this.data.productId),\r\n ]).subscribe(([overrides, product]) => {\r\n const { productSizes } = product?.responseObject ?? {};\r\n this.overrideSizes = productSizes?.map((p) => {\r\n const overrideValue =\r\n overrides.find((o) => o.productsSizesID === p.productsSizesID) ??\r\n ({} as StoneOverride);\r\n return {\r\n ...overrideValue,\r\n productsBOMStonesID: this.data.stone.productsBOMStonesID,\r\n productsSizesID: p.productsSizesID,\r\n size: p.size,\r\n qty: overrideValue.qty || '',\r\n };\r\n });\r\n });\r\n }\r\n\r\n onOverrideSize() {\r\n const data = this.overrideSizes.reduce(\r\n (overrides, overrideSize) => {\r\n if (overrideSize.qty) {\r\n overrides.insert = [...overrides.insert, overrideSize];\r\n } else if (overrideSize.productsBOMStonesQTYsID && !overrideSize.qty) {\r\n overrides.delete = [...overrides.delete, overrideSize];\r\n }\r\n return overrides;\r\n },\r\n {\r\n delete: [] as StoneOverride[],\r\n insert: [] as StoneOverride[],\r\n },\r\n );\r\n if (data.insert.length === 0 && data.delete.length === 0) {\r\n this.dialogRef.close();\r\n return;\r\n }\r\n this.isSaving = true;\r\n const insertRequests =\r\n data.insert.length > 0\r\n ? [this.productBomService.setStoneOverride(data.insert)]\r\n : [];\r\n const deleteRequests = data.delete.map((d) =>\r\n this.productBomService.deleteStoneOverride(d.productsBOMStonesQTYsID),\r\n );\r\n forkJoin([...insertRequests, ...deleteRequests]).subscribe(() => {\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n}\r\n","
    \r\n

    Override Stone Size

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Size{{ element.size }}Qty\r\n \r\n
    No Available Size
    \r\n
    \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Override\r\n \r\n
    \r\n \r\n
    \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport {\r\n ProductStone,\r\n StoneOverride,\r\n StoneOverrideMultiple,\r\n} from 'src/app/components/riva-gems/riva-gems.model';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\n\r\ninterface OverrideValue {\r\n productSizeId: number;\r\n qty: number;\r\n size: string;\r\n tempId?: number;\r\n}\r\n\r\n@Component({\r\n templateUrl: './stone-override-size-multiple-dialog.component.html',\r\n styleUrls: ['./stone-override-size-multiple-dialog.component.scss'],\r\n})\r\nexport class StoneOverrideSizeMultipleDialogComponent implements OnInit {\r\n displayColumns = ['size', 'qty'];\r\n isSaving = false;\r\n overrideSizes: StoneOverrideMultiple[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: { productId: number; stones: ProductStone[] },\r\n public dialogRef: MatDialogRef,\r\n private productBomService: ProductBomService,\r\n private productService: ProductService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.productService.getProduct(this.data.productId).subscribe((product) => {\r\n const { productSizes } = product?.responseObject ?? {};\r\n const requests = this.data.stones.map((stone) =>\r\n this.productBomService.getStoneOverride(stone.productsBOMStonesID),\r\n );\r\n forkJoin(requests).subscribe((overrides) => {\r\n const flattenOverrides = overrides.reduce((accum, o) => [\r\n ...accum,\r\n ...o,\r\n ]);\r\n\r\n this.overrideSizes = productSizes?.map((p) => {\r\n const overrideValue = flattenOverrides.filter(\r\n (o) => o.productsSizesID === p.productsSizesID,\r\n );\r\n const overrides = this.data.stones.reduce((accum, s) => {\r\n const { productsBOMStonesQTYsID = 0 } =\r\n overrideValue.find(\r\n (o) => o.productsBOMStonesID === s.productsBOMStonesID,\r\n ) ?? {};\r\n return [\r\n ...accum,\r\n {\r\n productsBOMStonesQTYsID,\r\n productsBOMStonesID: s.productsBOMStonesID,\r\n },\r\n ];\r\n }, []);\r\n const [item] = overrideValue ?? [];\r\n return {\r\n overrides,\r\n productsSizesID: p.productsSizesID,\r\n size: p.size,\r\n qty: item?.qty || '',\r\n };\r\n });\r\n });\r\n });\r\n }\r\n\r\n onOverrideSize() {\r\n const data = this.overrideSizes.reduce(\r\n (overrides, overrideSize) => {\r\n const items = overrideSize.overrides.map((o) => ({\r\n ...o,\r\n productsSizesID: overrideSize.productsSizesID,\r\n qty: overrideSize.qty,\r\n size: overrideSize.size,\r\n }));\r\n if (overrideSize.qty) { \r\n overrides.insert = [...overrides.insert, ...items];\r\n } else if (overrideSize.overrides.some((o) => o.productsBOMStonesQTYsID) && !overrideSize.qty) {\r\n overrides.delete = [...overrides.delete, ...items];\r\n }\r\n return overrides;\r\n },\r\n {\r\n delete: [] as StoneOverride[],\r\n insert: [] as StoneOverride[],\r\n },\r\n );\r\n if (data.insert.length === 0 && data.delete.length === 0) {\r\n this.dialogRef.close();\r\n return;\r\n }\r\n this.isSaving = true;\r\n const insertRequests =\r\n data.insert.length > 0\r\n ? [this.productBomService.setStoneOverride(data.insert)]\r\n : [];\r\n const deleteRequests = data.delete.map((d) =>\r\n this.productBomService.deleteStoneOverride(d.productsBOMStonesQTYsID),\r\n );\r\n forkJoin([...insertRequests, ...deleteRequests]).subscribe(() => {\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n}\r\n","
    \r\n

    Override Stone Size

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Size{{ element.size }}Qty\r\n \r\n
    No Available Size
    \r\n
    \r\n \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Override\r\n \r\n
    \r\n \r\n
    \r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ConfirmationService } from 'src/app/components/riva-confirmation/riva-confirmation.service';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { ProductSizes } from 'src/app/models/product';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport {\r\n ProductStone,\r\n RivaGems,\r\n StoneClarity,\r\n StoneColor,\r\n StoneCut,\r\n StoneType,\r\n} from '../riva-gems.model';\r\nimport { StoneService } from '../stone.service';\r\nimport { StoneOverrideSizeDialogComponent } from './stone-override-size-dialog/stone-override-size-dialog.component';\r\nimport { StoneOverrideSizeMultipleDialogComponent } from './stone-override-size-multiple-dialog/stone-override-size-multiple-dialog.component';\r\n\r\n@Component({\r\n selector: 'stone-product',\r\n templateUrl: './stone-product.component.html',\r\n styleUrls: ['./stone-product.component.scss'],\r\n})\r\nexport class StoneProductComponent implements OnInit, OnChanges {\r\n @Input() productId: number;\r\n @Input() isVariation?: boolean;\r\n @Input() tableOnly: boolean = false;\r\n @Input() editMode: boolean = false;\r\n @Input() tableTitle: string = '';\r\n @Output() onCloseDialog = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n stones = new MatTableDataSource([]);\r\n\r\n selectedStone: RivaGems;\r\n isStoneSaving = false;\r\n\r\n stoneTypes: StoneType[] = [\r\n {\r\n stoneTypesID: 0,\r\n name: 'All',\r\n },\r\n ];\r\n stoneCuts: StoneCut[] = [\r\n {\r\n stoneCutsID: 0,\r\n name: 'All',\r\n custom: false,\r\n },\r\n ];\r\n stoneClarities: StoneClarity[] = [\r\n {\r\n stoneClaritiesID: 0,\r\n name: 'All',\r\n },\r\n ];\r\n stoneColors: StoneColor[] = [\r\n {\r\n stoneColorsID: 0,\r\n colorName: 'All',\r\n },\r\n ];\r\n filter = {\r\n stoneTypesID: 0,\r\n stoneCutsID: 0,\r\n stoneClaritiesID: 0,\r\n stoneColorsID: 0,\r\n labGrown: 0,\r\n traceable: 0,\r\n };\r\n displayedColumns: string[] = [\r\n 'pic',\r\n 'type',\r\n 'cut',\r\n 'clarity',\r\n 'color',\r\n 'size',\r\n 'labGrown',\r\n 'traceable',\r\n 'customerProvided',\r\n 'qty',\r\n ];\r\n\r\n displayedStoneColumns: string[] = [\r\n 'pic',\r\n 'type',\r\n 'cut',\r\n 'clarity',\r\n 'color',\r\n 'size',\r\n 'labGrown',\r\n 'traceable',\r\n 'add',\r\n ];\r\n stoneControl = new FormControl();\r\n filteredStones: Observable;\r\n productStones: ProductStone[] = [];\r\n productSizes: ProductSizes[] = [];\r\n searchText = '';\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private stoneService: StoneService,\r\n private productBomService: ProductBomService,\r\n private productService: ProductService,\r\n private loadService: LoadService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.displayedColumns = this.tableOnly\r\n ? !this.isVariation\r\n ? [...this.displayedColumns, 'override']\r\n : this.displayedColumns\r\n : ['variation', ...this.displayedColumns, 'delete'];\r\n if (!this.tableOnly) {\r\n forkJoin([\r\n this.stoneService.getTypes(),\r\n this.stoneService.getCuts(),\r\n this.stoneService.getClarities(),\r\n this.stoneService.getColors(),\r\n ]).subscribe(([types, cuts, clarities, colors]) => {\r\n this.stoneTypes = [...this.stoneTypes, ...types];\r\n this.stoneCuts = [...this.stoneCuts, ...cuts];\r\n this.stoneClarities = [...this.stoneClarities, ...clarities];\r\n this.stoneColors = [...this.stoneColors, ...colors];\r\n });\r\n this.getStones();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.productId?.currentValue === changes.productId?.previousValue)\r\n return;\r\n if (this.productId) {\r\n this.getProductStones();\r\n }\r\n }\r\n ngAfterViewInit() {\r\n this.stones.sort = this.sort;\r\n this.stones.paginator = this.paginator;\r\n this.stones.filterPredicate = (s: RivaGems, filterValue: string) => {\r\n const {\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneColorsID,\r\n labGrown,\r\n traceable,\r\n } = JSON.parse(filterValue);\r\n const labGrownFilter =\r\n labGrown === -1 || s.labGrown === (labGrown > 0 ? true : false);\r\n const traceableFilter =\r\n traceable === -1 || s.traceable === (traceable > 0 ? true : false);\r\n return (\r\n (stoneTypesID === 0 || s.stoneTypesID === stoneTypesID) &&\r\n (stoneCutsID === 0 || s.stoneCutsID === stoneCutsID) &&\r\n (stoneClaritiesID === 0 || s.stoneClaritiesID === stoneClaritiesID) &&\r\n (stoneColorsID === 0 || s.stoneColorsID === stoneColorsID) &&\r\n !this.productStones.some((p) => p.stonesID === s.stonesID) &&\r\n labGrownFilter &&\r\n traceableFilter &&\r\n (!this.searchText ||\r\n s.stoneSize.displayText\r\n .toLowerCase()\r\n .includes(this.searchText.toLowerCase()))\r\n );\r\n };\r\n this.stones.sortingDataAccessor = (\r\n data: any,\r\n sortHeaderId: string,\r\n ): any => {\r\n if (sortHeaderId === 'size') {\r\n return (\r\n (data.stoneSize?.dimension_1 ?? 0) * 1000 +\r\n (data.stoneSize?.dimension_2 ?? 0) * 100 +\r\n (data.stoneSize?.dimension_3 ?? 0) * 1\r\n );\r\n } else if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId]?.toLocaleLowerCase();\r\n }\r\n return data[sortHeaderId];\r\n };\r\n }\r\n\r\n getProductDetails() {\r\n this.productService\r\n .getProduct(this.productId)\r\n .subscribe(({ responseObject = {} }) => {\r\n this.productSizes = responseObject.productSizes ?? [];\r\n });\r\n }\r\n\r\n onSetOverride(stone: ProductStone) {\r\n stone.isOverride = !stone.isOverride;\r\n if (!stone.isOverride) {\r\n stone.overrideStoneSize = null;\r\n }\r\n }\r\n\r\n initiateFilters() {\r\n this.filteredStones = this.stoneControl.valueChanges.pipe(\r\n startWith(this.selectedStone?.stoneType.name),\r\n map((value) => this._filterStones(value)),\r\n );\r\n }\r\n\r\n private _filterStones(name: string): RivaGems[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return (\r\n this.stones.data.filter(\r\n (option) =>\r\n option.stoneType?.name?.toLowerCase().includes(filterValue) ||\r\n option.stoneClarity?.name?.toLowerCase().includes(filterValue) ||\r\n option.stoneCut?.name?.toLowerCase().includes(filterValue) ||\r\n option.stoneColor?.colorName?.toLowerCase().includes(filterValue) ||\r\n option.stoneSize.displayText?.toLowerCase().includes(filterValue),\r\n ) ?? []\r\n );\r\n }\r\n return this.stones.data ?? [];\r\n }\r\n\r\n getStones() {\r\n this.stoneService.getStones().subscribe((stones) => {\r\n this.stones.data = stones;\r\n this.onFilter();\r\n });\r\n }\r\n\r\n getProductStones() {\r\n this.productBomService\r\n .getProductStones(this.productId)\r\n .subscribe((productStones) => {\r\n if (this.isVariation == null) {\r\n this.productStones = productStones;\r\n } else {\r\n this.productStones = productStones.filter(\r\n (s) => s.variation === this.isVariation,\r\n );\r\n }\r\n this.onFilter();\r\n });\r\n }\r\n\r\n displayFn(item: RivaGems): string {\r\n return item?.stoneType?.name ?? '';\r\n }\r\n\r\n onFilter() {\r\n const {\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneColorsID,\r\n labGrown,\r\n traceable,\r\n } = this.filter;\r\n this.stones.filter = JSON.stringify({\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneColorsID,\r\n labGrown,\r\n traceable,\r\n });\r\n }\r\n onSelectStone(stone: RivaGems) {\r\n const newProductStone = {\r\n productsBOMStonesID: 0,\r\n productsID: this.productId,\r\n stonesID: stone.stonesID,\r\n qty: 1,\r\n variation: this.isVariation,\r\n stone,\r\n customerProvided: false,\r\n };\r\n this.productStones = [newProductStone, ...this.productStones];\r\n this.onFilter();\r\n }\r\n onDeleteStone(stone: ProductStone) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Product Stone',\r\n content: 'Are you sure you want to delete this stone?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.productStones = this.productStones.filter(\r\n (p) => p.stonesID !== stone.stonesID,\r\n );\r\n if (stone.productsBOMStonesID) {\r\n this.productBomService\r\n .deleteProductStones(stone.productsBOMStonesID)\r\n .subscribe(() => {\r\n this.loadService.reloadStoneProduct();\r\n });\r\n }\r\n this.onFilter();\r\n });\r\n }\r\n onSave() {\r\n if (this.isInvalid) return;\r\n this.isStoneSaving = true;\r\n const newProductStones = this.productStones.reduce((stones, stone) => {\r\n const {\r\n productsBOMStonesID,\r\n productsID,\r\n stonesID,\r\n qty,\r\n variation,\r\n customerProvided,\r\n } = stone;\r\n return [\r\n ...stones,\r\n {\r\n productsBOMStonesID,\r\n productsID,\r\n stonesID,\r\n qty,\r\n variation,\r\n customerProvided,\r\n },\r\n ];\r\n }, []);\r\n if (!newProductStones.length) {\r\n this.isStoneSaving = false;\r\n this.onCloseDialog.emit();\r\n return;\r\n }\r\n this.productBomService.setProductStone(newProductStones).subscribe(() => {\r\n const hasNewVariation = newProductStones.some(\r\n (s) => !s.productsBOMStonesID && s.variation,\r\n );\r\n const variationOverride =\r\n this.productStones.find(\r\n (s) =>\r\n s.productsBOMStonesID &&\r\n s.variation &&\r\n (s.overrides?.length ?? 0) > 0,\r\n )?.overrides ?? [];\r\n if (hasNewVariation && variationOverride.length > 0) {\r\n this.productBomService\r\n .getProductStones(this.productId)\r\n .subscribe((productStones) => {\r\n const stones = productStones.filter(\r\n (s) => s.variation && (s.overrides?.length ?? 0) === 0,\r\n );\r\n const requestsPayload = stones.reduce((accum, s) => {\r\n const overrideData = variationOverride.map((o) => ({\r\n productsBOMStonesQTYsID: 0,\r\n productsBOMStonesID: s.productsBOMStonesID,\r\n productsSizesID: o.productsSizesID,\r\n size: o.size,\r\n qty: o.qty || '',\r\n }));\r\n return [...accum, ...overrideData];\r\n }, []);\r\n if (requestsPayload.length > 0) {\r\n this.productBomService\r\n .setStoneOverride(requestsPayload)\r\n .subscribe(() => {\r\n this.isStoneSaving = false;\r\n this.loadService.reloadStoneProduct();\r\n this.onCloseDialog.emit();\r\n });\r\n } else {\r\n this.isStoneSaving = false;\r\n this.loadService.reloadStoneProduct();\r\n this.onCloseDialog.emit();\r\n }\r\n });\r\n } else {\r\n this.isStoneSaving = false;\r\n this.loadService.reloadStoneProduct();\r\n this.onCloseDialog.emit();\r\n }\r\n });\r\n }\r\n\r\n get isInvalid() {\r\n return (\r\n this.productStones.length > 0 && this.productStones.some((s) => !s.qty)\r\n );\r\n }\r\n\r\n onOverrideStoneSize(stone: RivaGems) {\r\n const dialogRef = this.dialog.open(StoneOverrideSizeDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n data: {\r\n productId: this.productId,\r\n stone,\r\n },\r\n autoFocus: false,\r\n });\r\n dialogRef.afterClosed().subscribe((isReloadStones: boolean) => {\r\n if (isReloadStones) {\r\n this.loadService.reloadStoneProduct();\r\n }\r\n });\r\n }\r\n\r\n onOverrideMultipleStoneSize() {\r\n const dialogRef = this.dialog.open(\r\n StoneOverrideSizeMultipleDialogComponent,\r\n {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n data: {\r\n productId: this.productId,\r\n stones: [...this.productStones],\r\n },\r\n autoFocus: false,\r\n },\r\n );\r\n dialogRef.afterClosed().subscribe((isReloadStones: boolean) => {\r\n if (isReloadStones) {\r\n this.loadService.reloadStoneProduct();\r\n }\r\n });\r\n }\r\n}\r\n"," 0\"\r\n>\r\n \r\n {{ tableTitle }}\r\n \r\n Per Size Override\r\n \r\n \r\n\r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n \r\n Search by size\r\n \r\n \r\n \r\n Filter by type\r\n \r\n \r\n {{ type.name }}\r\n \r\n \r\n \r\n \r\n Filter by cut\r\n \r\n \r\n {{ cut.name }}\r\n \r\n \r\n \r\n \r\n Filter by clarity\r\n \r\n \r\n {{ clarity.name }}\r\n \r\n \r\n \r\n \r\n Filter by color\r\n \r\n \r\n {{ color.colorName }}\r\n \r\n \r\n \r\n \r\n Filter by lab grown\r\n \r\n Yes \r\n No \r\n \r\n \r\n \r\n Filter by traceable\r\n \r\n Yes \r\n No \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n CUSTOM\r\n
    \r\n \r\n \r\n \r\n \r\n Type\r\n \r\n \r\n {{ element.stoneType?.name }}\r\n \r\n \r\n \r\n \r\n Cut\r\n \r\n \r\n {{ element.stoneCut?.name }}\r\n \r\n \r\n \r\n \r\n Clarity\r\n \r\n \r\n {{ element.stoneClarity?.name }}\r\n \r\n \r\n \r\n \r\n Color\r\n \r\n \r\n {{ element.stoneColor?.colorName }}\r\n \r\n \r\n \r\n \r\n Size\r\n \r\n \r\n {{ element.stoneSize?.displayText }}\r\n \r\n \r\n \r\n \r\n Lab Grown\r\n \r\n \r\n {{ element.labGrown ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n \r\n Traceable\r\n \r\n \r\n {{ element.traceable ? 'Yes' : 'No' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    Variation\r\n \r\n \r\n \r\n \r\n CUSTOM\r\n \r\n Type\r\n {{ element.stone.stoneType.name }}\r\n Cut\r\n {{ element.stone.stoneCut.name }}\r\n Clarity\r\n {{ element.stone.stoneClarity.name }}\r\n Color\r\n {{ element.stone.stoneColor.colorName }}\r\n Size\r\n \r\n {{ element.stone.stoneSize.displayText }}\r\n \r\n Qty\r\n \r\n \r\n
    DEFAULT
    \r\n
    {{ element.qty }}
    \r\n \r\n \r\n \r\n
    Size: {{ item.size }}
    \r\n
    {{ item.qty }}
    \r\n \r\n
    \r\n \r\n \r\n \r\n Per Size Override\r\n \r\n Lab Grown\r\n {{ element.stone.labGrown ? 'Yes' : 'No' }}\r\n Traceable\r\n {{ element.stone.traceable ? 'Yes' : 'No' }}\r\n Customer Provided\r\n \r\n \r\n {{ element.customerProvided ? 'Yes' : 'No' }}\r\n \r\n
    No Available Data
    \r\n \r\n \r\n \r\n\r\n","import { StoneSize } from './riva-gems.model';\r\n\r\nexport const getDisplayText = ({\r\n dimension_1,\r\n dimension_2,\r\n dimension_3,\r\n}: StoneSize) => {\r\n const dimensions = [];\r\n if (dimension_1) dimensions.push(`${dimension_1}mm`);\r\n if (dimension_2) dimensions.push(`${dimension_2}mm`);\r\n if (dimension_3) dimensions.push(`${dimension_3}mm`);\r\n return dimensions.join(' x ');\r\n};\r\n\r\nexport const setStoneMapper = ({\r\n stonesID,\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneSizesID,\r\n stoneColorsID,\r\n caratsPerUnit,\r\n supplierID,\r\n stockQTY,\r\n pricePerUnit,\r\n labGrown,\r\n traceable,\r\n}) => ({\r\n stonesID,\r\n stoneTypesID,\r\n stoneCutsID,\r\n stoneClaritiesID,\r\n stoneSizesID,\r\n stoneColorsID,\r\n caratsPerUnit,\r\n stockQTY,\r\n pricePerUnit,\r\n suppliersID: supplierID,\r\n labGrown,\r\n traceable,\r\n});\r\n\r\nexport const setStoneSizeMapper = ({\r\n stoneSizesID,\r\n dimension_1,\r\n dimension_2,\r\n dimension_3,\r\n}) => ({\r\n stoneSizesID,\r\n dimension_1,\r\n dimension_2,\r\n dimension_3,\r\n});\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nimport { map } from 'rxjs/operators';\r\nimport { GenericService } from '../../services/generic.service';\r\nimport {\r\n RivaGems,\r\n StoneClarity,\r\n StoneColor,\r\n StoneCut,\r\n StoneDefaultImage,\r\n StoneMovementStockTracking,\r\n StoneSize,\r\n StoneType,\r\n} from './riva-gems.model';\r\nimport {\r\n getDisplayText,\r\n setStoneMapper,\r\n setStoneSizeMapper,\r\n} from './stone.mapper';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StoneService extends GenericService {\r\n baseUrl = environment.apiUrl + 'stones';\r\n stoneMovementUrl = environment.apiUrl + 'stone-movements';\r\n\r\n public reloadStones = (stonesID?: number) => {};\r\n public reSelectStone = (stonesID?: number) => {};\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getStones(): Observable {\r\n return this.http\r\n .get(this.baseUrl, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((stones) =>\r\n stones.map((s) => ({\r\n ...s,\r\n type: s.stoneType?.name,\r\n cut: s.stoneCut?.name,\r\n clarity: s.stoneClarity?.name,\r\n color: s.stoneColor?.colorName,\r\n size: getDisplayText(s.stoneSize),\r\n sizeD1: s.stoneSize.dimension_1,\r\n stoneSize: {\r\n ...s.stoneSize,\r\n displayText: getDisplayText(s.stoneSize),\r\n },\r\n pricePerUnit:\r\n s.caratsPerUnit *\r\n (s.stoneTracking.lastPurchasePricePerCarat ?? 0),\r\n qtyInSTock: s.stoneTracking.qtyInSTock,\r\n })),\r\n ),\r\n );\r\n }\r\n setStone(data): Observable {\r\n return this.http.post(this.baseUrl, setStoneMapper(data), {\r\n headers: this.headers,\r\n });\r\n }\r\n getSizes(): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/sizes`, { headers: this.headers })\r\n .pipe(\r\n map((stones) =>\r\n stones.map((s) => ({ ...s, displayText: getDisplayText(s) })),\r\n ),\r\n );\r\n }\r\n setStoneSize(data) {\r\n return this.http.post(`${this.baseUrl}/sizes`, setStoneSizeMapper(data), {\r\n headers: this.headers,\r\n });\r\n }\r\n getTypes(): Observable {\r\n return this.http.get(`${this.baseUrl}/types`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setStoneType(data) {\r\n return this.http.post(`${this.baseUrl}/types`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getCuts(): Observable {\r\n return this.http.get(`${this.baseUrl}/cuts`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setStoneCut(data) {\r\n return this.http.post(`${this.baseUrl}/cuts`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getClarities(): Observable {\r\n return this.http.get(`${this.baseUrl}/clarities`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setStoneClarity(data) {\r\n return this.http.post(`${this.baseUrl}/clarities`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getColors(): Observable {\r\n return this.http.get(`${this.baseUrl}/colors`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setStoneColor(data) {\r\n return this.http.post(`${this.baseUrl}/colors`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n setDefaultPicture(data): Observable {\r\n return this.http.post(\r\n `${this.baseUrl}/default-pictures`,\r\n data,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n getStoneDefaultPicture({\r\n stoneTypesID = 0,\r\n stoneCutsID = 0,\r\n stoneColorsID = 0,\r\n }): Observable {\r\n return this.http.get(\r\n `${this.baseUrl}/default-pictures`,\r\n {\r\n headers: this.headers,\r\n params: { stoneTypesID, stoneCutsID, colorsID: stoneColorsID },\r\n },\r\n );\r\n }\r\n uploadDefaultPicture(data) {\r\n return this.http.post(`${this.baseUrl}/upload-default-picture`, data, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n uploadPicture(data) {\r\n return this.http.post(`${this.baseUrl}/upload-picture`, data, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n getStoneMovementStockTracking(stoneId) {\r\n return this.http.get(\r\n `${this.stoneMovementUrl}/stock-tracking/${stoneId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setStoneMovementAppends(data) {\r\n return this.http.post(`${this.stoneMovementUrl}/appends`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n setStoneMovement(data) {\r\n return this.http.post(this.stoneMovementUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getStoneExcel() {\r\n return this.http.get(`${this.baseUrl}/export`, {\r\n headers: this.headers,\r\n responseType: 'arraybuffer',\r\n });\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SubItemService } from 'src/app/services/sub-item.service';\r\nimport * as THREE from 'three';\r\n\r\ninterface RivaStlViewerDialogComponentProps {\r\n subItemsInfoID?: number;\r\n stlUrl?: string;\r\n stlFileName?: string;\r\n}\r\n@Component({\r\n templateUrl: './riva-stl-viewer-dialog.component.html',\r\n styleUrls: ['./riva-stl-viewer-dialog.component.scss'],\r\n})\r\nexport class RivaStlViewerDialogComponent implements OnInit {\r\n stlUrls: string[] = [];\r\n isLoading = false;\r\n light: THREE.Light = new THREE.PointLight(0xffffff);\r\n material: THREE.Material = new THREE.MeshPhongMaterial({\r\n color: 0xb993c1,\r\n shininess: 1000,\r\n specular: 0xffffff,\r\n });\r\n scene: THREE.Scene = new THREE.Scene();\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: RivaStlViewerDialogComponentProps = {},\r\n public dialogRef: MatDialogRef,\r\n public subItemService: SubItemService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.scene.background = new THREE.Color(0xefeceb);\r\n if (this.props.stlUrl) {\r\n this.stlUrls = [this.props.stlUrl];\r\n } else if (this.props.subItemsInfoID) {\r\n this.getStlImageUrl(this.props.subItemsInfoID);\r\n }\r\n }\r\n dataURItoBlob(dataURI) {\r\n var byteString = atob(dataURI.split(',')[1]);\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n var arrayBuffer = new ArrayBuffer(byteString.length);\r\n var _ia = new Uint8Array(arrayBuffer);\r\n for (var i = 0; i < byteString.length; i++) {\r\n _ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n var dataView = new DataView(arrayBuffer);\r\n var blob = new Blob([dataView], {\r\n type: mimeString,\r\n });\r\n return blob;\r\n }\r\n getStlImageUrl(id) {\r\n this.isLoading = true;\r\n this.subItemService.getSubItemsStlImage(id).subscribe((data) => {\r\n const stlUrl = URL.createObjectURL(this.dataURItoBlob(data));\r\n this.stlUrls = [stlUrl];\r\n this.isLoading = false;\r\n });\r\n }\r\n downloadStl() {\r\n const a = document.createElement('a');\r\n document.body.appendChild(a);\r\n a.setAttribute('style', 'display: none');\r\n a.href = this.stlUrls[0];\r\n a.download = `${this.props.stlFileName}.stl` || 'riva-stl-file.stl';\r\n a.click();\r\n }\r\n}\r\n","
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n

    Loading STL...

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Download STL File\r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n","import { Component, ViewChild } from '@angular/core';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { AuthenticationService } from 'src/app/core/authentication/authentication.service';\r\nimport { ConfirmationService } from '../riva-confirmation/riva-confirmation.service';\r\n\r\n@Component({\r\n selector: 'riva-super-admin-tools',\r\n templateUrl: './riva-super-admin-tools.component.html',\r\n styleUrls: ['./riva-super-admin-tools.component.scss'],\r\n})\r\nexport class RivaSuperAdminToolsComponent {\r\n constructor(\r\n private authenticationService: AuthenticationService,\r\n private _confirmationService: ConfirmationService,\r\n ) {}\r\n\r\n @ViewChild('confirmationRevoke')\r\n public readonly confirmationRevoke!: SwalComponent;\r\n\r\n onRevokeToken() {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Force Revoke All Sessions',\r\n content:\r\n 'Are you sure you want to revoke all sessions? This will invalidate all generated token.',\r\n confirmLabel: 'Revoke All',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.authenticationService.revokeToken().subscribe(() => {\r\n setTimeout(() => {\r\n this.confirmationRevoke.fire();\r\n }, 100);\r\n });\r\n });\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'riva-text-avatar',\r\n templateUrl: './riva-text-avatar.component.html',\r\n styleUrls: ['./riva-text-avatar.component.scss'],\r\n})\r\nexport class RivaTextAvatarComponent implements OnInit {\r\n @Input() text: string;\r\n @Input() size?: number = 35;\r\n randomColor: string = '#68516d';\r\n initial: string;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.randomColor = this.getRandomDarkColor();\r\n this.initial = this.getInitial();\r\n }\r\n\r\n getRandomDarkColor() {\r\n let color = '#';\r\n for (var i = 0; i < 6; i++) {\r\n color += Math.floor(Math.random() * 10);\r\n }\r\n return color;\r\n }\r\n\r\n getInitial() {\r\n return this.text\r\n .match(/(\\b\\S)?/g)\r\n .join('')\r\n .match(/(^\\S|\\S$)?/g)\r\n .join('')\r\n .toUpperCase();\r\n }\r\n}\r\n","\r\n {{ initial }}\r\n\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { DEFAULT_INTERRUPTSOURCES, Idle } from '@ng-idle/core';\r\nimport { Keepalive } from '@ng-idle/keepalive';\r\nimport { interval, Subscription } from 'rxjs';\r\nimport { fadeAnimation } from 'src/app/animations/fade-animation';\r\nimport { AuthenticationService } from 'src/app/core/authentication/authentication.service';\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\n\r\nconst formatCountdown = (seconds) => {\r\n var minutes = Math.floor(seconds / 60) ?? 0;\r\n var remainingSeconds = seconds % 60;\r\n const minutesLabel = minutes > 0 ? `${minutes} minutes and ` : '';\r\n return `${minutesLabel}${remainingSeconds} seconds`;\r\n};\r\n\r\n@Component({\r\n selector: 'riva-timeout',\r\n templateUrl: './riva-timeout.component.html',\r\n styleUrls: ['./riva-timeout.component.scss'],\r\n animations: [fadeAnimation],\r\n})\r\nexport class RivaTimeoutComponent implements OnInit, OnDestroy {\r\n idleState = 'NOT_STARTED';\r\n countdown?: number = null;\r\n lastPing?: Date = null;\r\n isRefreshing = false;\r\n remainingTimeSeconds: number;\r\n remainingTimeLabel: string;\r\n private countdownSubscription: Subscription = new Subscription();\r\n\r\n constructor(\r\n private tokenStorageService: TokenStorageService,\r\n private authenticationService: AuthenticationService,\r\n private idle: Idle,\r\n keepalive: Keepalive,\r\n cd: ChangeDetectorRef,\r\n ) {\r\n // set idle parameters\r\n idle.setIdle(120 * 60); // how long can they be inactive before considered idle, in seconds\r\n idle.setTimeout(1); // how long can they be idle before considered timed out, in seconds\r\n idle.setInterrupts(DEFAULT_INTERRUPTSOURCES); // provide sources that will \"interrupt\" aka provide events indicating the user is active\r\n\r\n // do something when the user becomes idle\r\n idle.onIdleStart.subscribe(() => {\r\n this.idleState = 'IDLE';\r\n });\r\n // do something when the user is no longer idle\r\n idle.onIdleEnd.subscribe(() => {\r\n this.idleState = 'NOT_IDLE';\r\n console.log(`${this.idleState} ${new Date()}`);\r\n this.countdown = null;\r\n cd.detectChanges(); // how do i avoid this kludge?\r\n });\r\n // do something when the user has timed out\r\n idle.onTimeout.subscribe(() => {\r\n this.idleState = 'TIMED_OUT';\r\n console.log(`TIMED_OUT ${new Date()}`);\r\n this.startCountdown();\r\n });\r\n // do something as the timeout countdown does its thing\r\n idle.onTimeoutWarning.subscribe((seconds) => {\r\n this.countdown = seconds;\r\n // this.remainingTime = formatCountdown(seconds);\r\n });\r\n\r\n // set keepalive parameters, omit if not using keepalive\r\n keepalive.interval(15); // will ping at this interval while not idle, in seconds\r\n keepalive.onPing.subscribe(() => (this.lastPing = new Date())); // do something when it pings\r\n }\r\n\r\n reset() {\r\n // we'll call this method when we want to start/reset the idle process\r\n // reset any component state and be sure to call idle.watch()\r\n this.idle.watch();\r\n this.idleState = 'NOT_IDLE';\r\n this.countdown = null;\r\n this.lastPing = null;\r\n this.countdownSubscription.unsubscribe();\r\n this.resetCountdown();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.countdownSubscription.unsubscribe();\r\n this.resetCountdown();\r\n this.authenticationService.isLoggedIn.subscribe((isLoggedIn) => {\r\n if (isLoggedIn) {\r\n if (this.tokenStorageService.currentUser.infiniteAuthTokenTimeOut) {\r\n this.idle.setIdle(1000*60*60);\r\n } else if ((this.tokenStorageService.currentUser.tokenTimeout || 0) > 0) {\r\n this.idle.setIdle(\r\n this.tokenStorageService.currentUser.tokenTimeout * 60,\r\n );\r\n }\r\n this.reset();\r\n }\r\n });\r\n }\r\n\r\n private startCountdown(): void {\r\n const source = interval(1000);\r\n this.countdownSubscription = source.subscribe(() => {\r\n if (this.remainingTimeSeconds > 0) {\r\n this.remainingTimeLabel = formatCountdown(this.remainingTimeSeconds);\r\n this.remainingTimeSeconds--;\r\n } else {\r\n this.logout();\r\n }\r\n });\r\n }\r\n\r\n logout() {\r\n this.idleState = 'NOT_IDLE';\r\n this.countdown = null;\r\n this.lastPing = null;\r\n this.countdownSubscription.unsubscribe();\r\n this.resetCountdown();\r\n this.authenticationService.signOut();\r\n }\r\n\r\n resetCountdown() {\r\n this.remainingTimeSeconds = 15 * 60;\r\n this.remainingTimeLabel = formatCountdown(this.remainingTimeSeconds);\r\n }\r\n\r\n refreshToken() {\r\n this.countdownSubscription.unsubscribe();\r\n const token = this.tokenStorageService.getRefreshToken();\r\n const user = this.tokenStorageService.currentUser;\r\n if (user.usersID && token) this.isRefreshing = true;\r\n return this.authenticationService\r\n .refreshToken(user.usersID, token)\r\n .subscribe(\r\n (newToken: { accessToken: string; refreshToken: string }) => {\r\n this.resetCountdown();\r\n this.isRefreshing = false;\r\n this.tokenStorageService.saveToken(newToken.accessToken);\r\n this.tokenStorageService.saveRefreshToken(newToken.refreshToken);\r\n this.reset();\r\n },\r\n () => {\r\n this.resetCountdown();\r\n this.isRefreshing = false;\r\n this.reset();\r\n this.authenticationService.signOut();\r\n },\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.countdownSubscription.unsubscribe();\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n

    Session Timeout

    \r\n

    \r\n You're taking a timeout due to inactivity. This means that your\r\n token is about to expire in {{ remainingTimeLabel }}. Please\r\n choose 'Keep Me Logged In' to continue using the app or 'Log Out'\r\n to log off.\r\n

    \r\n
    \r\n \r\n Log Out\r\n \r\n \r\n Keep Me Logged In\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sub-items-confirmation',\r\n templateUrl: './sub-items-confirmation.component.html',\r\n})\r\nexport class SubItemsConfirmationComponent {}\r\n","

    Delete Sub Item

    \r\n\r\n
    Are you sure you want to delete this sub item?
    \r\n
    \r\n\r\n\r\n \r\n Cancel\r\n \r\n \r\n Delete\r\n \r\n\r\n","import { formatDate } from '@angular/common';\r\nimport { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { SubItem, SubItemInfo } from 'src/app/models/sub-item.model';\r\n\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { FileSystemFileEntry, NgxFileDropEntry } from 'ngx-file-drop';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { ProductSizes } from 'src/app/models/product';\r\nimport { UnitOfMeasure } from 'src/app/models/unit-of-measure';\r\nimport { SubItemService } from 'src/app/services/sub-item.service';\r\nimport { UnitOfMeasureService } from 'src/app/services/unit-of-measurement.service';\r\nimport { RivaStlViewerDialogComponent } from '../riva-stl-viewer/riva-stl-viewer-dialog.component';\r\n\r\n@Component({\r\n selector: 'sub-items-dialog',\r\n templateUrl: './sub-items-dialog.component.html',\r\n styleUrls: ['./sub-items.component.scss'],\r\n})\r\nexport class SubItemsDialogComponent implements OnInit {\r\n isSaving: boolean = false;\r\n imageFiles: FileList | null = null;\r\n uomOptions$: Observable;\r\n data: SubItem;\r\n selectedSubItemIndex: number | null;\r\n selectedSize: number;\r\n hasStlFile: boolean = false;\r\n prodSizeList: string[];\r\n isUploadingImage = false;\r\n isUploadingStl = false;\r\n moldingOptions = [\r\n {\r\n value: 1,\r\n label: 'Casting - Wax Injection',\r\n },\r\n {\r\n value: 2,\r\n label: 'Casting - Plastic Injection',\r\n },\r\n {\r\n value: 3,\r\n label: 'Casting - 3D Printed',\r\n },\r\n {\r\n value: 4,\r\n label: 'Stamping',\r\n },\r\n {\r\n value: 5,\r\n label: 'CNC Milling',\r\n },\r\n {\r\n value: 6,\r\n label: 'Tool & Die',\r\n },\r\n ];\r\n @ViewChild('errorSubItem')\r\n public readonly errorSubItem!: SwalComponent;\r\n\r\n code: string = '';\r\n isScanning = false;\r\n error: { title: string; description: string } = {\r\n title: '',\r\n description: '',\r\n };\r\n stlUploadingProgress = 0;\r\n stlUploadStatus: 'active' | 'exception' = 'active';\r\n\r\n constructor(\r\n private tokenStorageService: TokenStorageService,\r\n private subItemService: SubItemService,\r\n private uomService: UnitOfMeasureService,\r\n private sanitizer: DomSanitizer,\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { subItem: SubItem; sizes: ProductSizes },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.data = this.props.subItem;\r\n this.selectedSubItemIndex = this.data.subItemsInfo?.length ? 0 : null;\r\n this.selectedSize = this.data.subItemsInfo?.length\r\n ? this.data.subItemsInfo[0].productsSizeID\r\n : null;\r\n this.uomOptions$ = this.uomService\r\n .getList()\r\n .pipe(map((data) => data.responseObject));\r\n }\r\n\r\n onChangeSize() {\r\n this.selectedSubItemIndex =\r\n this.data.subItemsInfo?.findIndex(\r\n (item) => item.productsSizeID === this.selectedSize,\r\n ) ?? -1;\r\n if (this.selectedSubItemIndex < 0) {\r\n const newSubItem: SubItemInfo = {\r\n subItemsInfoID: 0,\r\n productsSizeID: this.selectedSize,\r\n qty: 1,\r\n };\r\n this.data.subItemsInfo = [...(this.data.subItemsInfo ?? []), newSubItem];\r\n this.selectedSubItemIndex = this.data.subItemsInfo.length - 1;\r\n }\r\n }\r\n\r\n // onUploadChange(files: FileList) {\r\n // this.imageFiles = files;\r\n // this.data.picPath = URL.createObjectURL(files[0]);\r\n // }\r\n // onUploadStlChange(files: FileList) {\r\n // if (this.selectedSubItemIndex < 0) return;\r\n // this.data.subItemsInfo[this.selectedSubItemIndex].stlFile = files;\r\n // this.data.subItemsInfo[this.selectedSubItemIndex].stlPath =\r\n // URL.createObjectURL(files[0]);\r\n // this.data.subItemsInfo[this.selectedSubItemIndex].tempStlPath =\r\n // URL.createObjectURL(files[0]);\r\n // }\r\n sanitize(url: string) {\r\n return this.sanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n uploadImage(subItemId) {\r\n if (!subItemId || !this.imageFiles.length) return;\r\n const formData = new FormData();\r\n\r\n for (let i = 0; i < this.imageFiles.length; i++) {\r\n formData.append('file[]', this.imageFiles[i]);\r\n }\r\n\r\n formData.append('subItemID', subItemId);\r\n this.isUploadingImage = true;\r\n this.subItemService.upload(formData).subscribe(\r\n (event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * event.loaded) / event.total) +\r\n '%',\r\n );\r\n } else if (event.type === HttpEventType.ResponseHeader) {\r\n this.data.picPath = event.url;\r\n if (!this.isUploadingStl) {\r\n this.dialogRef.close(this.data);\r\n this.isSaving = false;\r\n }\r\n this.isUploadingImage = false;\r\n }\r\n },\r\n ({ error }) => {\r\n this.error = {\r\n title: 'Upload Image Failed',\r\n description: `Error: ${error ?? 'Unknown error'}`,\r\n };\r\n this.showErrorMessage();\r\n },\r\n );\r\n }\r\n\r\n uploadStl(subItemInfoID, stlFile) {\r\n if (!subItemInfoID || !stlFile.length) return;\r\n this.hasStlFile = true;\r\n const formData = new FormData();\r\n\r\n for (let i = 0; i < stlFile.length; i++) {\r\n formData.append('file[]', stlFile[i]);\r\n }\r\n\r\n formData.append('subItemInfoID', subItemInfoID);\r\n this.isUploadingStl = true;\r\n this.subItemService.uploadStl(formData).subscribe(\r\n (event) => {\r\n console.log(event.type);\r\n if (event.type === HttpEventType.UploadProgress) {\r\n this.stlUploadingProgress = Math.round(\r\n (100 * event.loaded) / event.total,\r\n );\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * event.loaded) / event.total) +\r\n '%',\r\n );\r\n } else if (event.type === HttpEventType.ResponseHeader) {\r\n if (!this.isUploadingImage) {\r\n this.isUploadingStl && this.dialogRef.close(this.data);\r\n this.isSaving = false;\r\n }\r\n this.isUploadingStl = false;\r\n }\r\n },\r\n () => {\r\n this.stlUploadStatus = 'exception';\r\n setTimeout(() => {\r\n this.isSaving = false;\r\n this.isUploadingStl = false;\r\n }, 4000);\r\n },\r\n );\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n if (!this.data.subItemsID) {\r\n this.data.createdBy =\r\n this.tokenStorageService.currentUser?.userName ?? '';\r\n this.data.createdDate = formatDate(\r\n new Date(),\r\n 'yyyy-MM-ddThh:mm:ssZZZZZ',\r\n 'en',\r\n );\r\n }\r\n\r\n this.data.subItemsInfo =\r\n this.data.subItemsInfo?.reduce((items, subItem) => {\r\n if (!subItem.mfgMethod) return items;\r\n return [\r\n ...items,\r\n {\r\n ...subItem,\r\n mfgMethodDetails:\r\n subItem.mfgMethod === 3 ? '' : subItem.mfgMethodDetails,\r\n },\r\n ];\r\n }, []) ?? null;\r\n\r\n this.subItemService\r\n .setSubItem({ ...this.data, picPath: '' })\r\n .subscribe((data) => {\r\n this.data.subItemsID = data.subItemsID;\r\n this.data.subItemsInfo =\r\n this.data.subItemsInfo?.map((subItem) => {\r\n const subItemsInfoID =\r\n data.subItemsInfo.find(\r\n (s) => s.productsSizeID === subItem.productsSizeID,\r\n )?.subItemsInfoID ?? 0;\r\n return {\r\n ...subItem,\r\n subItemsInfoID,\r\n };\r\n }) ?? null;\r\n if (this.imageFiles?.length) {\r\n this.uploadImage(this.data.subItemsID);\r\n }\r\n this.data.subItemsInfo?.forEach((info) => {\r\n if (info.stlFile?.length) {\r\n this.uploadStl(info.subItemsInfoID, info.stlFile);\r\n }\r\n });\r\n\r\n if (!this.imageFiles?.length && !this.hasStlFile) {\r\n this.dialogRef.close(this.data);\r\n this.isSaving = false;\r\n }\r\n });\r\n }\r\n\r\n dataURItoBlob(dataURI) {\r\n var byteString = atob(dataURI.split(',')[1]);\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n var arrayBuffer = new ArrayBuffer(byteString.length);\r\n var _ia = new Uint8Array(arrayBuffer);\r\n for (var i = 0; i < byteString.length; i++) {\r\n _ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n var dataView = new DataView(arrayBuffer);\r\n var blob = new Blob([dataView], { type: mimeString }); //data:application/vnd.ms-pki.stl\r\n return blob;\r\n }\r\n\r\n onViewStlFile() {\r\n this.dialog.open(RivaStlViewerDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1000px',\r\n width: '100%',\r\n data: {\r\n subItemsInfoID:\r\n this.data.subItemsInfo[this.selectedSubItemIndex].subItemsInfoID,\r\n stlUrl: this.data.subItemsInfo[this.selectedSubItemIndex].tempStlPath,\r\n stlFileName: `${this.data.name\r\n ?.split(' ')\r\n .join('-')\r\n .toLowerCase()}-size-${\r\n this.data.subItemsInfo[this.selectedSubItemIndex].size\r\n }`,\r\n },\r\n });\r\n }\r\n\r\n showErrorMessage() {\r\n setTimeout(() => {\r\n this.errorSubItem.fire();\r\n }, 100);\r\n }\r\n\r\n droppedImage(files: NgxFileDropEntry[]) {\r\n const acceptedImages = ['jpg', 'jpeg', 'png'];\r\n for (const droppedFile of files) {\r\n if (droppedFile.fileEntry.isFile) {\r\n const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;\r\n const dataTransfer = new DataTransfer();\r\n fileEntry.file((file: File) => {\r\n const currentFileExt = this.getFileExtension(\r\n file.name,\r\n )?.toLocaleLowerCase();\r\n const isImageType = acceptedImages.includes(currentFileExt);\r\n\r\n if (!isImageType) {\r\n this.error = {\r\n title: 'Upload Image Failed',\r\n description:\r\n 'Invalid file type. Please upload valid image file only. Accepted format for now are .jpg, .jpeg and .png',\r\n };\r\n this.showErrorMessage();\r\n return;\r\n }\r\n dataTransfer.items.add(file);\r\n this.data.picPath = URL.createObjectURL(file);\r\n this.imageFiles = dataTransfer.files;\r\n });\r\n }\r\n }\r\n }\r\n\r\n droppedStl(files: NgxFileDropEntry[]) {\r\n for (const droppedFile of files) {\r\n if (droppedFile.fileEntry.isFile) {\r\n const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;\r\n const dataTransfer = new DataTransfer();\r\n fileEntry.file((file: File) => {\r\n const isSTLFile =\r\n this.getFileExtension(file.name)?.toLocaleLowerCase() === 'stl';\r\n\r\n if (!isSTLFile) {\r\n this.error = {\r\n title: 'Upload STL Failed',\r\n description: 'Invalid file type. Please upload STL File only',\r\n };\r\n this.showErrorMessage();\r\n return;\r\n }\r\n dataTransfer.items.add(file);\r\n if (this.selectedSubItemIndex < 0) return;\r\n this.data.subItemsInfo[this.selectedSubItemIndex].stlFile =\r\n dataTransfer.files;\r\n this.data.subItemsInfo[this.selectedSubItemIndex].stlPath =\r\n URL.createObjectURL(file);\r\n this.data.subItemsInfo[this.selectedSubItemIndex].tempStlPath =\r\n URL.createObjectURL(file);\r\n });\r\n }\r\n }\r\n }\r\n\r\n getFileExtension(filename = '') {\r\n return filename.split('.').pop();\r\n }\r\n}\r\n","

    Custom Component

    \r\n\r\n\r\n
    \r\n
    \r\n \r\n Name\r\n \r\n \r\n
    \r\n
    \r\n \r\n UOM\r\n \r\n \r\n {{ unit.uom }}\r\n \r\n \r\n \r\n \r\n Batch Qty\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {{ data.description?.length ?? 0 }}/150\r\n \r\n Description\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Sizes\r\n \r\n All\r\n \r\n {{ size.size }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Qty\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n MFG Method\r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n
    \r\n \r\n MFG 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 No Image\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Upload\r\n \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No STL File\r\n \r\n View STL File\r\n \r\n
    \r\n
    \r\n \r\n

    \r\n There is an error while uploading the STL File.\r\n

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Upload STL File\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n\r\n\r\n\r\n\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { PRODUCT_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/product-permission';\r\nimport { ProductDetail } from 'src/app/models/product';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { SubItemService } from 'src/app/services/sub-item.service';\r\nimport { RivaStlViewerDialogComponent } from '../riva-stl-viewer/riva-stl-viewer-dialog.component';\r\nimport { SubItem } from './../../models/sub-item.model';\r\nimport { SubItemsConfirmationComponent } from './sub-items-confirmation.component';\r\nimport { SubItemsDialogComponent } from './sub-items-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-sub-items',\r\n templateUrl: './sub-items.component.html',\r\n styleUrls: ['./sub-items.component.scss'],\r\n})\r\nexport class SubItemsComponent implements OnChanges, AfterViewInit {\r\n @Input() productId: number;\r\n @Input() editMode: boolean;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n subItems = new MatTableDataSource([]);\r\n productFeatureKey = PRODUCT_FEATURE_KEY;\r\n productDetail: ProductDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n search = '';\r\n\r\n displayedColumns: string[];\r\n\r\n constructor(\r\n private subItemService: SubItemService,\r\n private productService: ProductService,\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.subItems.data = [];\r\n this.productDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n if (this.productId) {\r\n this.getSubItems();\r\n this.getProductDetail();\r\n }\r\n const dataColumn = [\r\n 'picPath',\r\n 'name',\r\n 'description',\r\n 'uom',\r\n 'batchQTY',\r\n 'moldingOptionText',\r\n ];\r\n const actionColumn = ['edit', 'delete'];\r\n this.displayedColumns = this.editMode\r\n ? [...dataColumn, ...actionColumn]\r\n : dataColumn;\r\n }\r\n ngAfterViewInit() {\r\n this.subItems.sort = this.sort;\r\n this.subItems.paginator = this.paginator;\r\n this.subItems.filterPredicate = (data: SubItem, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.name.toString().toLowerCase().includes(search?.toLowerCase()) ||\r\n data.description.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.uom.toString().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n }\r\n\r\n getSubItems() {\r\n this.subItemService.getSubItems(this.productId).subscribe((data) => {\r\n this.subItems.data = data?.map((item) => ({\r\n ...item,\r\n subItemsInfo: item.subItemsInfo.length\r\n ? item.subItemsInfo?.map((subItemInfo) => ({\r\n ...subItemInfo,\r\n size: subItemInfo.productsSizeID === 0 ? 'All' : subItemInfo.size,\r\n mfgMethodDetails:\r\n subItemInfo?.mfgMethod === 3\r\n ? ''\r\n : subItemInfo?.mfgMethodDetails,\r\n stlPath:\r\n subItemInfo?.mfgMethod === 3 &&\r\n subItemInfo?.mfgMethodDetails != null &&\r\n subItemInfo?.mfgMethodDetails != 'null'\r\n ? encodeURI(subItemInfo?.mfgMethodDetails)\r\n : '',\r\n }))\r\n : null,\r\n }));\r\n });\r\n }\r\n\r\n onDialogOpen(\r\n subItem: Partial = {\r\n subItemsID: 0,\r\n productsID: this.productId,\r\n batchQTY: 1,\r\n },\r\n ) {\r\n const dialogRef = this.dialog.open(SubItemsDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '500px',\r\n width: '100%',\r\n data: {\r\n sizes: this.productDetail.productSizes,\r\n subItem: { ...subItem },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result: SubItem) => {\r\n if (result.subItemsID) {\r\n this.getSubItems();\r\n }\r\n });\r\n }\r\n\r\n onDelete(id: number) {\r\n const dialogRef = this.dialog.open(SubItemsConfirmationComponent, {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n });\r\n dialogRef.afterClosed().subscribe((isDelete: boolean) => {\r\n if (isDelete) {\r\n this.subItemService.deleteSubItem(id).subscribe((result) => {\r\n result && this.getSubItems();\r\n });\r\n }\r\n });\r\n }\r\n\r\n onFilterChange() {\r\n this.subItems.filter = JSON.stringify({ search: this.search });\r\n }\r\n onViewStlFile(subItem, subItemInfo) {\r\n this.dialog.open(RivaStlViewerDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '1000px',\r\n width: '100%',\r\n data: {\r\n subItemsInfoID: subItemInfo.subItemsInfoID,\r\n stlFileName: `${subItem.name\r\n ?.split(' ')\r\n .join('-')\r\n .toLowerCase()}-size-${subItemInfo.size}`,\r\n },\r\n });\r\n }\r\n getProductDetail() {\r\n this.productDetail = {\r\n materials: [],\r\n productSizes: [],\r\n } as ProductDetail;\r\n this.productService.getProductDetail(this.productId).subscribe((data) => {\r\n this.productDetail = data;\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n New Custom Component\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n {{ element.name }}\r\n \r\n \r\n \r\n Description\r\n \r\n {{ element.description }}\r\n \r\n \r\n \r\n UOM\r\n \r\n \r\n {{ element.unitOfMeasure?.description }}\r\n \r\n \r\n \r\n \r\n Batch QTY\r\n \r\n \r\n {{ element.batchQTY }}\r\n \r\n \r\n \r\n \r\n Size & MFG Method\r\n \r\n \r\n
    4 }\">\r\n \r\n
    \r\n {{ subItem.size }}\r\n
    \r\n \r\n
    {{ subItem.mfgMethodText }}
    \r\n View STL File\r\n {{\r\n subItem.mfgMethodDetails\r\n }}\r\n 0\r\n \"\r\n style=\"padding: 4px\"\r\n >\r\n |\r\n \r\n 0\"\r\n >Qty: {{ subItem.qty }}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Created By\r\n \r\n {{ element.createdBy }}\r\n \r\n \r\n \r\n Created Date\r\n \r\n \r\n {{ element.createdDate | date : 'MM/dd/yyyy' }}\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 Delete\r\n \r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n\r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from '@angular/material/dialog';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { Guid } from '../../generic/generic.component';\r\n\r\n@Component({\r\n selector: 'supplier-dialog',\r\n templateUrl: './supplier-dialog.component.html',\r\n styleUrls: ['./supplier-dialog.component.scss'],\r\n})\r\nexport class SupplierDialogComponent implements OnInit {\r\n supplier: Suppliers;\r\n imageFiles: FileList | null = null;\r\n isSaving: boolean = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n private sanitizer: DomSanitizer,\r\n private supplierService: SupplierService,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { supplier: Suppliers },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.supplier = { ...this.props.supplier };\r\n }\r\n\r\n sanitize(url: string) {\r\n return this.sanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n onUploadChange(files: FileList) {\r\n this.imageFiles = files;\r\n this.supplier.picPath = URL.createObjectURL(files[0]);\r\n }\r\n\r\n uploadImage() {\r\n const formData = new FormData();\r\n for (var i = 0; i < this.imageFiles.length; i++) {\r\n formData.append('file[]', this.imageFiles[i]);\r\n }\r\n const fileId = Guid.newGuid();\r\n formData.append('id', fileId);\r\n this.isSaving = true;\r\n this.supplierService.uploadTempPhoto(formData).subscribe((response) => {\r\n if (response.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * response.loaded) / response.total) +\r\n '%',\r\n );\r\n } else if (response.type === HttpEventType.Response) {\r\n this.supplierService\r\n .moveTemp(this.supplier.suppliersId, fileId)\r\n .subscribe((upload) => {\r\n this.supplier.picPath = upload.responseObject;\r\n this.supplierService.post(this.supplier, '').subscribe((result) => {\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n uploadPicture() {\r\n const formData = new FormData();\r\n for (var i = 0; i < this.imageFiles.length; i++) {\r\n formData.append('file[]', this.imageFiles[i]);\r\n }\r\n\r\n formData.append('supplierId', this.supplier.suppliersId.toString());\r\n this.isSaving = true;\r\n this.supplierService.uploadPicture(formData).subscribe((response) => {\r\n if (response.type === HttpEventType.UploadProgress) {\r\n console.log(\r\n 'Uploading: ' +\r\n Math.round((100 * response.loaded) / response.total) +\r\n '%',\r\n );\r\n } else if (response.type === HttpEventType.Response) {\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n }\r\n });\r\n }\r\n\r\n onSave() {\r\n this.isSaving = true;\r\n this.supplierService.post(this.supplier, '').subscribe((result) => {\r\n this.supplier.suppliersId = result.suppliersId;\r\n if (this.imageFiles?.length) {\r\n this.uploadPicture();\r\n return;\r\n }\r\n this.isSaving = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n}\r\n","

    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 No Image\r\n
    \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\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Supplier ID\r\n \r\n \r\n
    \r\n
    \r\n \r\n Company Name\r\n \r\n \r\n
    \r\n
    \r\n \r\n Contact Name\r\n \r\n \r\n
    \r\n
    \r\n \r\n Email Address\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n Shipping Method\r\n \r\n \r\n
    \r\n
    \r\n \r\n Lead Time (Days)\r\n \r\n \r\n
    \r\n
    \r\n \r\n Payment Terms\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Address 1\r\n \r\n \r\n
    \r\n
    \r\n \r\n Address 2\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n City\r\n \r\n \r\n
    \r\n
    \r\n \r\n Region\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Postal Code\r\n \r\n \r\n
    \r\n
    \r\n \r\n Country\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Phone\r\n \r\n \r\n
    \r\n
    \r\n \r\n Fax\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { SUPPLIER_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/supplier-permission';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { Suppliers } from 'src/app/models/suppliers.model';\r\nimport { SupplierService } from 'src/app/services/supplier.service';\r\nimport { SupplierDialogComponent } from './supplier-dialog/supplier-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-supplier-page',\r\n templateUrl: './supplier-page.component.html',\r\n styleUrls: ['./supplier-page.component.scss'],\r\n})\r\nexport class SupplierPageComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n suppliers = new MatTableDataSource([]);\r\n search = '';\r\n featureKey = SUPPLIER_FEATURE_KEY;\r\n\r\n displayedColumns: string[] = [\r\n 'picPath',\r\n 'supplier',\r\n 'company',\r\n 'contact',\r\n 'email',\r\n 'shippingMethod',\r\n 'leadTime',\r\n 'paymentTerms',\r\n 'edit',\r\n ];\r\n\r\n constructor(\r\n private supplierService: SupplierService,\r\n private userPermissionService: UserPermissionService,\r\n public dialog: MatDialog,\r\n ) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.supplier);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getSuppliers();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.suppliers.sort = this.sort;\r\n this.suppliers.paginator = this.paginator;\r\n this.suppliers.filterPredicate = (data: Suppliers, filterValue: string) => {\r\n const { search } = JSON.parse(filterValue) ?? {};\r\n const searchFilter =\r\n data.companyName\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(search?.toLowerCase()) ||\r\n data.contactName?.toLowerCase().includes(search?.toLowerCase()) ||\r\n data.emailAddress?.toString().includes(search?.toLowerCase());\r\n return searchFilter;\r\n };\r\n }\r\n\r\n getSuppliers() {\r\n this.supplierService.getList().subscribe((result) => {\r\n this.suppliers.data = result;\r\n });\r\n }\r\n\r\n onFilterChange() {\r\n this.suppliers.filter = JSON.stringify({ search: this.search });\r\n }\r\n\r\n onOpenDialog(supplier = new Suppliers()) {\r\n const dialogRef = this.dialog.open(SupplierDialogComponent, {\r\n disableClose: true,\r\n maxWidth: '600px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: { supplier },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.getSuppliers();\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n

    Suppliers

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n New Supplier\r\n \r\n
    \r\n \r\n Search by company, contact or 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 Supplier ID\r\n \r\n {{ element.supplierId }}\r\n \r\n \r\n \r\n Company\r\n \r\n {{ element.companyName }}\r\n \r\n \r\n \r\n Contact\r\n \r\n {{ element.contactName }}\r\n \r\n \r\n \r\n Email\r\n \r\n {{ element.emailAddress }}\r\n \r\n \r\n \r\n Shipping Method\r\n \r\n {{ element.shippingMethod }}\r\n \r\n \r\n \r\n Lead Time (Days)\r\n \r\n {{ element.leadtimeDays }}\r\n \r\n \r\n \r\n Payment Terms\r\n \r\n {{ element.paymentTerms }}\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 No Available Data\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { fadeAnimation } from 'src/app/animations/fade-animation';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { PrintService } from 'src/app/services/print.service';\r\n\r\n@Component({\r\n selector: 'app-work-order-label-printing',\r\n templateUrl: './work-order-label-printing.component.html',\r\n styleUrls: ['./work-order-label-printing.component.scss'],\r\n animations: [fadeAnimation],\r\n})\r\nexport class WorkOrderLabelPrintingComponent implements OnInit {\r\n isScanning = false;\r\n hasError = false;\r\n successPrinting = false;\r\n code = '';\r\n workOrderId: number;\r\n errorMessage = '';\r\n\r\n constructor(\r\n private userPermissionService: UserPermissionService,\r\n private printService: PrintService,\r\n ) {\r\n this.userPermissionService.checkPagePermission(\r\n PAGE_NAME.workOrderLabelPrinting,\r\n );\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n handleKeydown(event: KeyboardEvent) {\r\n if (this.isScanning) return;\r\n const isAlphanumeric = /^[a-zA-Z0-9-]$/.test(event.key);\r\n const isValidKey = event.key === 'Enter' || isAlphanumeric;\r\n if (!isValidKey) return;\r\n\r\n if (event.key === 'Enter') {\r\n this.processingRequest();\r\n } else {\r\n this.code = `${this.code}${event.key}`;\r\n }\r\n }\r\n\r\n processingRequest() {\r\n if (!isNaN(Number(this.code)) && !this.workOrderId) {\r\n const workOrderId = parseInt(this.code);\r\n this.onScanWorkOrder(workOrderId);\r\n }\r\n }\r\n\r\n onScanWorkOrder(workOrderId) {\r\n this.isScanning = true;\r\n this.errorMessage = '';\r\n this.printService.printLabel(workOrderId).subscribe((data) => {\r\n this.successPrinting = true;\r\n setTimeout(() => {\r\n this.code = '';\r\n this.isScanning = false;\r\n this.workOrderId = 0;\r\n this.successPrinting = false;\r\n }, 1200);\r\n }, (res) => {\r\n this.hasError = true;\r\n this.errorMessage = res?.error ?? '';\r\n })\r\n }\r\n\r\n onCloseErrorMessage() {\r\n this.code = '';\r\n this.isScanning = false;\r\n this.workOrderId = 0;\r\n this.errorMessage = '';\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    Scan Work Order
    \r\n
    Package Label Printing
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    Scanning
    \r\n
    \r\n
    Oops! Something Went Wrong
    \r\n

    \r\n Unable to print labels. {{ errorMessage }}\r\n

    \r\n \r\n Close\r\n \r\n
    \r\n
    \r\n
    \r\n Successfully moved to printing.\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { forkJoin, Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { fadeAnimation } from 'src/app/animations/fade-animation';\r\nimport { User } from 'src/app/core/authentication/user';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { ProductRoutingCodes } from 'src/app/models/product';\r\nimport { JiraService } from 'src/app/services/jira.service';\r\nimport { sizeMapper } from 'src/app/services/product-bom.service';\r\nimport { ProductsRoutingService } from 'src/app/services/products-routing.service';\r\nimport { ScanService } from 'src/app/services/scan.service';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { WorkOrderMovementService } from 'src/app/services/work-order-movement.service';\r\nimport { getDisplayText } from '../riva-gems/stone.mapper';\r\nimport { getOrderDetailsSizeDisplayText } from '../work-order-view/work-order-view.component';\r\nimport {\r\n WorkOrderJiraDetail,\r\n WorkOrderMovementHistory,\r\n WorkOrderTracking,\r\n} from './model';\r\n\r\n@Component({\r\n selector: 'app-work-order-tracking',\r\n templateUrl: './work-order-tracking.component.html',\r\n styleUrls: ['./work-order-tracking.component.scss'],\r\n animations: [fadeAnimation],\r\n})\r\nexport class WorkOrderTrackingComponent implements OnInit {\r\n isScanning = false;\r\n hasWorkOrderError = false;\r\n hasEmployeeError = false;\r\n hasRoutingError = false;\r\n successMovement = false;\r\n hasMovementError = false;\r\n hasJiraScanError = false;\r\n jiraScanErrorMessage = '';\r\n movementErrorMessage = '';\r\n employeeInProgressWorkOrderId = 0;\r\n code = '';\r\n workOrderTracking: WorkOrderTracking | null = null;\r\n trackingDetails: {\r\n workOrderId: number;\r\n customerId: string;\r\n };\r\n materialLabels = Array.from({ length: 20 }, (_, i) => i + 1);\r\n productMaterialStyle: string = '';\r\n employees: User[];\r\n routings: ProductRoutingCodes[];\r\n selectedRouting: ProductRoutingCodes;\r\n selectedEmployee: User;\r\n workOrderId: number = 0;\r\n jiraId: string = '';\r\n pdWorkOrderMovementHistory: WorkOrderMovementHistory[];\r\n sizeMapperInstance = sizeMapper;\r\n stoneMapperInstance = getDisplayText;\r\n stoneVariationSizeMapperInstance = getOrderDetailsSizeDisplayText;\r\n workOrderMovementHistory: WorkOrderMovementHistory[] = [];\r\n unclosedWorkOrder: WorkOrderMovementHistory | null = null;\r\n scanMovementStatus: 'ScanIn' | 'ScanOut' | null = null;\r\n employeeScannedSuccess = false;\r\n bannerMessage = 'SCAN EMPLOYEE ID';\r\n filteredProductRoutingCodes: Observable;\r\n productRoutingControl = new FormControl();\r\n selectedProductRouting: ProductRoutingCodes;\r\n jiraDetail: WorkOrderJiraDetail | null = null;\r\n\r\n constructor(\r\n private scanService: ScanService,\r\n private userService: UserService,\r\n private productsRoutingService: ProductsRoutingService,\r\n private workOrderMovementService: WorkOrderMovementService,\r\n private userPermissionService: UserPermissionService,\r\n private jiraService: JiraService,\r\n ) {\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.workOrderTracking);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService.getUsers().subscribe((data) => {\r\n this.employees = data;\r\n });\r\n this.productsRoutingService.getProductRoutingCodes().subscribe((data) => {\r\n this.routings = data;\r\n this.initiateFilters();\r\n });\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n handleKeydown(event: KeyboardEvent) {\r\n if (this.isScanning) return;\r\n const isAlphanumeric = /^[a-zA-Z0-9-]$/.test(event.key);\r\n const isValidKey = event.key === 'Enter' || isAlphanumeric;\r\n if (!isValidKey) return;\r\n\r\n if (event.key === 'Enter') {\r\n this.processingRequest();\r\n } else {\r\n this.code = `${this.code}${event.key}`;\r\n }\r\n }\r\n\r\n processingRequest() {\r\n if (this.code.toLowerCase().indexOf('pd-') >= 0) {\r\n this.onScanJira(this.code);\r\n } else if (!isNaN(Number(this.code)) && !this.workOrderId) {\r\n const workOrderId = parseInt(this.code);\r\n this.onScanWorkOrder(workOrderId);\r\n } else if (\r\n this.bannerMessage === 'SCAN CLOSE TO FINISH' &&\r\n this.code?.toLocaleLowerCase() === 'close' &&\r\n this.workOrderId > 0\r\n ) {\r\n this.onScanCloseTracing();\r\n } else if (\r\n this.bannerMessage === 'SCAN CLOSE TO FINISH' &&\r\n this.code?.toLocaleLowerCase() === 'close' &&\r\n (this.jiraId ?? '') !== '' &&\r\n this.jiraId.toLowerCase().indexOf('pd-') >= 0\r\n ) {\r\n this.onScanCloseJiraTracing();\r\n } else if (\r\n this.code &&\r\n isNaN(Number(this.code)) &&\r\n (this.workOrderId > 0 || this.jiraId !== '') &&\r\n this.unclosedWorkOrder == null\r\n ) {\r\n const code = this.code.toLowerCase();\r\n const isEmployee = code.indexOf('riva') >= 0;\r\n const isRouting = code.indexOf('rout') >= 0;\r\n if (isEmployee && this.selectedEmployee == null) {\r\n this.onScanEmployee(code);\r\n } else if (isRouting && this.selectedEmployee?.usersID > 0) {\r\n if (this.jiraId !== '') {\r\n this.onScanRoutingJira(code);\r\n } else {\r\n this.onScanRouting(code);\r\n }\r\n } else {\r\n this.code = '';\r\n }\r\n } else {\r\n this.code = '';\r\n }\r\n }\r\n\r\n onScanWorkOrder(workOrderId) {\r\n this.workOrderId = workOrderId;\r\n this.isScanning = true;\r\n this.selectedRouting = null;\r\n this.selectedEmployee = null;\r\n this.unclosedWorkOrder = null;\r\n this.scanMovementStatus = null;\r\n forkJoin([\r\n this.scanService.scanWorkOrder(workOrderId),\r\n this.workOrderMovementService.getWorkOrderMovement(workOrderId),\r\n ]).subscribe(\r\n ([data, history]) => {\r\n if (!data) {\r\n this.hasWorkOrderError = true;\r\n return;\r\n }\r\n this.workOrderMovementHistory = orderBy(\r\n history,\r\n 'workOrdersMovementID',\r\n 'asc',\r\n );\r\n\r\n if (history.length > 0) {\r\n const lastWorkOrderScanned = history[history.length - 1] ?? null;\r\n if (\r\n lastWorkOrderScanned?.workOrdersMovementID > 0 &&\r\n !lastWorkOrderScanned?.scanInTime\r\n ) {\r\n this.unclosedWorkOrder = lastWorkOrderScanned;\r\n const currentUserId = lastWorkOrderScanned?.usersID;\r\n this.selectedEmployee = this.employees.find(\r\n (e) => e.usersID === currentUserId,\r\n );\r\n this.bannerMessage = 'SCAN CLOSE TO FINISH';\r\n } else {\r\n this.bannerMessage = 'SCAN EMPLOYEE ID';\r\n }\r\n } else {\r\n this.bannerMessage = 'SCAN EMPLOYEE ID';\r\n }\r\n\r\n this.code = '';\r\n this.workOrderTracking = data;\r\n this.workOrderTracking.qty = data.workOrderDetails.reduce(\r\n (total, w) => total + w.qty,\r\n 0,\r\n );\r\n this.workOrderTracking.enamels =\r\n data.enamels?.filter((e) => !e.variation) ?? [];\r\n const enamelVariations =\r\n data.workOrderDetails?.reduce((accum, detail) => {\r\n if (\r\n detail.orderDetails.enamel?.colorHex &&\r\n !this.workOrderTracking.enamels.some(\r\n (e) => e.enamelSku === detail.orderDetails.enamel?.enamelSku,\r\n )\r\n ) {\r\n return [...accum, detail.orderDetails.enamel];\r\n }\r\n return accum;\r\n }, []) ?? [];\r\n this.workOrderTracking.enamels = [\r\n ...this.workOrderTracking.enamels,\r\n ...enamelVariations,\r\n ];\r\n const primaryColor =\r\n data.primaryMaterial?.printColor1 ?? data.material?.printColor1;\r\n this.productMaterialStyle = `repeating-linear-gradient(\r\n 90deg,\r\n #${primaryColor},\r\n #${primaryColor} 200px,\r\n #${data.secondaryMaterial?.printColor1 ?? primaryColor} 200px,\r\n #${data.secondaryMaterial?.printColor1 ?? primaryColor} 400px\r\n )`;\r\n this.isScanning = false;\r\n this.workOrderTracking.stoneVariations = data.workOrderDetails.reduce(\r\n (stones, w) => {\r\n if (\r\n w.orderDetails.stone == null ||\r\n stones.some((s) => s.stonesId === w.orderDetails.stone?.stonesId)\r\n )\r\n return stones;\r\n return [...stones, w.orderDetails.stone];\r\n },\r\n [],\r\n );\r\n },\r\n ({ error }) => {\r\n this.hasWorkOrderError = true;\r\n this.movementErrorMessage = error;\r\n throw new Error(error);\r\n },\r\n );\r\n }\r\n\r\n onScanEmployee(employeeId) {\r\n this.isScanning = true;\r\n this.employeeInProgressWorkOrderId = 0;\r\n const selectedEmployee = this.employees.find(\r\n (e) => e.employeeID?.toLowerCase() === employeeId,\r\n );\r\n if (selectedEmployee == null) {\r\n this.hasEmployeeError = true;\r\n } else {\r\n this.workOrderMovementService\r\n .getWorkOrderMovementInProgressByUser(selectedEmployee.usersID)\r\n .subscribe((workOrderId) => {\r\n this.selectedEmployee = selectedEmployee;\r\n if (workOrderId > 0) {\r\n this.hasEmployeeError = true;\r\n this.employeeInProgressWorkOrderId = workOrderId;\r\n return;\r\n }\r\n this.isScanning = false;\r\n this.code = '';\r\n this.bannerMessage = 'SCAN ROUTING CODE';\r\n this.employeeScannedSuccess = true;\r\n setTimeout(() => {\r\n this.employeeScannedSuccess = false;\r\n }, 2000);\r\n });\r\n }\r\n }\r\n\r\n onScanJira(code) {\r\n this.isScanning = true;\r\n this.jiraService.scan(code).subscribe(\r\n (data = {}) => {\r\n this.jiraDetail = {\r\n name: data.summary ?? '[No Title]',\r\n picPath: data.defaultImage ?? 'assets/images/no-image.png',\r\n status: data.status ?? '[No Status]',\r\n description: data.description ?? { content: [] },\r\n };\r\n this.jiraId = code;\r\n this.code = '';\r\n this.getPdWorkOrderMovement();\r\n },\r\n (response) => {\r\n this.hasJiraScanError = true;\r\n this.jiraScanErrorMessage = response?.error?.errorMessages?.join(' ');\r\n },\r\n );\r\n }\r\n getPdWorkOrderMovement() {\r\n this.workOrderMovementService\r\n .getPdWorkOrderMovement(this.jiraId)\r\n .subscribe((data) => {\r\n if (!data) {\r\n this.hasWorkOrderError = true;\r\n return;\r\n }\r\n this.isScanning = false;\r\n this.pdWorkOrderMovementHistory = orderBy(\r\n data,\r\n 'pdWorkMovementID',\r\n 'asc',\r\n );\r\n if (data.length > 0) {\r\n const lastWorkOrderScanned = data[data.length - 1] ?? null;\r\n if (\r\n lastWorkOrderScanned?.pdWorkMovementID > 0 &&\r\n !lastWorkOrderScanned?.scanInTime\r\n ) {\r\n this.unclosedWorkOrder = lastWorkOrderScanned;\r\n const currentUserId = lastWorkOrderScanned?.usersID;\r\n this.selectedEmployee = this.employees.find(\r\n (e) => e.usersID === currentUserId,\r\n );\r\n this.bannerMessage = 'SCAN CLOSE TO FINISH';\r\n } else {\r\n this.bannerMessage = 'SCAN EMPLOYEE ID';\r\n }\r\n } else {\r\n this.bannerMessage = 'SCAN EMPLOYEE ID';\r\n }\r\n });\r\n }\r\n\r\n onScanRouting(code) {\r\n const routingCodesId = Number.parseInt(code.replace('rout', ''));\r\n this.selectedRouting = this.routings.find(\r\n (r) => r.routingCodesId === routingCodesId,\r\n );\r\n this.isScanning = true;\r\n if (this.selectedRouting == null) {\r\n this.hasRoutingError = true;\r\n } else {\r\n this.code = '';\r\n this.workOrderMovementService\r\n .setWorkOrderMovement({\r\n workOrdersID: this.workOrderId,\r\n routingCodesID: this.selectedRouting.routingCodesId,\r\n userId: this.selectedEmployee.usersID,\r\n })\r\n .subscribe(\r\n () => {\r\n this.successMovement = true;\r\n this.selectedEmployee = null;\r\n this.selectedRouting = null;\r\n this.workOrderTracking = null;\r\n this.scanMovementStatus = 'ScanOut';\r\n setTimeout(() => {\r\n this.resetScan();\r\n }, 1000);\r\n },\r\n ({ error }) => {\r\n this.hasMovementError = true;\r\n this.movementErrorMessage = error;\r\n throw new Error(error);\r\n },\r\n );\r\n }\r\n }\r\n onScanRoutingJira(code) {\r\n const routingCodesId = Number.parseInt(code.replace('rout', ''));\r\n this.selectedRouting = this.routings.find(\r\n (r) => r.routingCodesId === routingCodesId,\r\n );\r\n this.isScanning = true;\r\n if (this.selectedRouting == null) {\r\n this.hasRoutingError = true;\r\n } else {\r\n this.code = '';\r\n this.workOrderMovementService\r\n .setPdWorkOrderMovement({\r\n jirA_ID: this.jiraId,\r\n usersID: this.selectedEmployee.usersID,\r\n routingCodesID: this.selectedRouting.routingCodesId,\r\n })\r\n .subscribe(\r\n () => {\r\n this.successMovement = true;\r\n this.selectedEmployee = null;\r\n this.selectedRouting = null;\r\n this.jiraDetail = null;\r\n this.scanMovementStatus = 'ScanOut';\r\n setTimeout(() => {\r\n this.resetScan();\r\n }, 1000);\r\n },\r\n ({ error }) => {\r\n this.hasMovementError = true;\r\n this.movementErrorMessage = error;\r\n throw new Error(error);\r\n },\r\n );\r\n }\r\n }\r\n onScanCloseJiraTracing() {\r\n this.isScanning = true;\r\n this.code = '';\r\n this.workOrderMovementService\r\n .setPdWorkOrderMovement({\r\n jirA_ID: this.jiraId,\r\n })\r\n .subscribe(\r\n () => {\r\n this.successMovement = true;\r\n this.selectedEmployee = null;\r\n this.selectedRouting = null;\r\n this.workOrderTracking = null;\r\n this.scanMovementStatus = 'ScanIn';\r\n setTimeout(() => {\r\n this.resetScan();\r\n }, 1000);\r\n },\r\n ({ error }) => {\r\n this.hasMovementError = true;\r\n this.movementErrorMessage = error;\r\n throw new Error(error);\r\n },\r\n );\r\n }\r\n\r\n onScanCloseTracing() {\r\n this.isScanning = true;\r\n this.code = '';\r\n this.workOrderMovementService\r\n .setWorkOrderMovement({\r\n workOrdersID: this.workOrderId,\r\n })\r\n .subscribe(\r\n () => {\r\n this.successMovement = true;\r\n this.selectedEmployee = null;\r\n this.selectedRouting = null;\r\n this.workOrderTracking = null;\r\n this.scanMovementStatus = 'ScanIn';\r\n setTimeout(() => {\r\n this.resetScan();\r\n }, 1000);\r\n },\r\n ({ error }) => {\r\n this.hasMovementError = true;\r\n this.movementErrorMessage = error;\r\n throw new Error(error);\r\n },\r\n );\r\n }\r\n\r\n onCloseErrorMessage() {\r\n if (this.hasEmployeeError) {\r\n this.selectedEmployee = null;\r\n this.employeeScannedSuccess = false;\r\n }\r\n this.code = '';\r\n this.isScanning = false;\r\n this.hasWorkOrderError = false;\r\n this.hasEmployeeError = false;\r\n this.hasRoutingError = false;\r\n this.hasMovementError = false;\r\n this.movementErrorMessage = '';\r\n this.successMovement = false;\r\n this.scanMovementStatus = null;\r\n this.employeeInProgressWorkOrderId = 0;\r\n this.hasJiraScanError = false;\r\n this.jiraScanErrorMessage = '';\r\n }\r\n resetScan() {\r\n this.selectedEmployee = null;\r\n this.selectedRouting = null;\r\n this.workOrderTracking = null;\r\n this.workOrderId = 0;\r\n this.jiraId = '';\r\n this.jiraDetail = null;\r\n this.bannerMessage = '';\r\n this.onCloseErrorMessage();\r\n }\r\n onSelectProductRoutingCode(productRoutingCode: ProductRoutingCodes) {\r\n this.selectedRouting = productRoutingCode;\r\n this.isScanning = true;\r\n this.code = '';\r\n this.workOrderMovementService\r\n .setWorkOrderMovement({\r\n workOrdersID: this.workOrderId,\r\n routingCodesID: this.selectedRouting.routingCodesId,\r\n userId: this.selectedEmployee.usersID,\r\n })\r\n .subscribe(\r\n () => {\r\n this.successMovement = true;\r\n this.selectedEmployee = null;\r\n this.selectedRouting = null;\r\n this.workOrderTracking = null;\r\n this.scanMovementStatus = 'ScanOut';\r\n setTimeout(() => {\r\n this.resetScan();\r\n }, 1000);\r\n },\r\n ({ error }) => {\r\n this.hasMovementError = true;\r\n this.movementErrorMessage = error;\r\n throw new Error(error);\r\n },\r\n );\r\n }\r\n onSelectProductRoutingCodeForJira(productRoutingCode: ProductRoutingCodes) {\r\n this.selectedRouting = productRoutingCode;\r\n this.isScanning = true;\r\n this.code = '';\r\n this.workOrderMovementService\r\n .setPdWorkOrderMovement({\r\n jirA_ID: this.jiraId,\r\n usersID: this.selectedEmployee.usersID,\r\n routingCodesID: this.selectedRouting.routingCodesId,\r\n })\r\n .subscribe(\r\n () => {\r\n this.successMovement = true;\r\n this.selectedEmployee = null;\r\n this.selectedRouting = null;\r\n this.jiraDetail = null;\r\n this.scanMovementStatus = 'ScanOut';\r\n setTimeout(() => {\r\n this.resetScan();\r\n }, 1000);\r\n },\r\n ({ error }) => {\r\n this.hasMovementError = true;\r\n this.movementErrorMessage = error;\r\n throw new Error(error);\r\n },\r\n );\r\n }\r\n displayFn(item: ProductRoutingCodes): string {\r\n return item?.activityCode ?? '';\r\n }\r\n initiateFilters() {\r\n this.filteredProductRoutingCodes =\r\n this.productRoutingControl.valueChanges.pipe(\r\n startWith(this.selectedProductRouting?.activityCode),\r\n map((value) => this._filterProductRoutingCode(value)),\r\n );\r\n }\r\n private _filterProductRoutingCode(name: string): ProductRoutingCodes[] {\r\n if (name !== undefined && typeof name === 'string') {\r\n const filterValue = name.toLowerCase();\r\n return this.routings.filter(\r\n (option) =>\r\n option.activityCode.toLowerCase().includes(filterValue) ||\r\n option.department.toLowerCase().includes(filterValue) ||\r\n option.activityDesc.toLowerCase().includes(filterValue),\r\n );\r\n }\r\n return this.routings;\r\n }\r\n}\r\n","\r\n {{ bannerMessage }}\r\n \r\n\r\n
    \r\n \r\n
    \r\n
    Scan Work Order
    \r\n
    Work Order Tracking
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n {{\r\n i % 2 === 0\r\n ? workOrderTracking?.primaryMaterial?.code ??\r\n workOrderTracking?.material?.code\r\n : workOrderTracking?.secondaryMaterial?.code ??\r\n workOrderTracking?.material?.code\r\n }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n WKO# {{ workOrderId }}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n

    \r\n {{ workOrderTracking?.product.productName }}\r\n

    \r\n

    \r\n {{ workOrderTracking?.product.description }}\r\n

    \r\n
    \r\n
    \r\n
    Qty
    \r\n
    \r\n {{ workOrderTracking?.qty || 0 }}\r\n
    \r\n
    \r\n
    \r\n
    PO
    \r\n
    \r\n {{\r\n workOrderTracking?.purchaseOrder.poExternal ||\r\n workOrderTracking?.purchaseOrder.poInternal\r\n }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Sub SKU & Quantities

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    IndexCI-POQTY\r\n {{ workOrderTracking?.itemType === 2 ? 'Length' : 'Size' }}\r\n LengthEnamel ColorComment
    \r\n {{ item.index }}\r\n {{ item.orderDetails.cipo }}{{ item.qty }}\r\n {{ item.orderDetails.size\r\n }}\"\r\n \r\n {{ item.orderDetails?.chainRawLength || ''\r\n }}\"\r\n \r\n
    \r\n
    \r\n
    {{ item.orderDetails.enamel?.enamelName }}
    \r\n \r\n
    {{ item.orderDetails.comment }}
    \r\n\r\n
    \r\n 0\">\r\n

    Bill of Materials

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    NameDescriptionUOMBatch QtySize & MFG Method
    \r\n \r\n \r\n \r\n {{ item.name }}{{ item.description }}{{ item.unitOfMeasure.description }}{{ item.batchQTY }}\r\n 4\r\n }\"\r\n >\r\n \r\n
    \r\n {{ subItem.size }}\r\n
    \r\n \r\n
    {{ subItem.mfgMethodText }}
    \r\n {{ subItem.mfgMethodDetails }}\r\n 0\r\n \"\r\n style=\"padding: 4px\"\r\n >\r\n |\r\n \r\n 0\"\r\n >Qty: {{ subItem.qty }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n 0\">\r\n

    Findings

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    QtyNameMaterialSize
    \r\n \r\n \r\n \r\n {{ item.qty }}\r\n {{ item.findings.name ?? item.size.findingsTypeName }}\r\n {{ item.material.description }}{{ sizeMapperInstance(item.size) }}
    \r\n
    \r\n\r\n 0\">\r\n

    Chain

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    IndexNameStyle NameSKUSize/Length
    \r\n \r\n \r\n \r\n {{ item.index }}{{ item.name }}{{ item.styleName }}{{ item.sku }}{{ item.lengthOrSize }}
    \r\n
    \r\n\r\n 0 ||\r\n workOrderTracking?.stoneConstants?.length > 0\r\n \"\r\n >\r\n

    Stones

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    IndexQtyTypeCutClarityColorSizeLabTraceCut
    \r\n \r\n \r\n \r\n {{ item.index }}{{ item.qty }}{{ item.type }}{{ item.cut }}{{ item.clarity }}{{ item.color }}{{ stoneVariationSizeMapperInstance(item.size) }}{{ item.labGrown ? 'Yes' : 'No' }}{{ item.traceable ? 'Yes' : 'No' }}{{ item.customerProvided ? 'Yes' : 'No' }}
    \r\n \r\n \r\n \r\n {{ item.index }}\r\n \r\n
    \r\n {{ override.size }}\r\n
    \r\n \r\n {{ override.qty }}\r\n \r\n \r\n {{\r\n item.qty\r\n }}\r\n
    {{ item.stone.stoneType.name }}{{ item.stone.stoneCut.name }}{{ item.stone.stoneClarity.name }}{{ item.stone.stoneColor.colorName }}{{ stoneMapperInstance(item.stone.stoneSize) }}{{ item.stone.labGrown ? 'Yes' : 'No' }}{{ item.stone.traceable ? 'Yes' : 'No' }}{{ item.stone.customerProvided ? 'Yes' : 'No' }}
    \r\n
    \r\n 0\"\r\n >\r\n

    Enamels

    \r\n \r\n
    \r\n
    {{ item.enamelName }}
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    Employee
    \r\n
    \r\n \r\n {{ selectedEmployee?.firstName }} {{ selectedEmployee?.lastName }}\r\n \r\n - \r\n
    \r\n
    \r\n \r\n \r\n Search routing\r\n \r\n \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ productRoutingCode.activityCode }}\r\n
    \r\n
    \r\n {{ productRoutingCode.department }}\r\n
    \r\n
    \r\n {{ productRoutingCode.activityDesc }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n \r\n \r\n \r\n \r\n
    \r\n

    Movement 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
    RoutingScan OutScan In
    \r\n {{ item.routingCode.activityDesc }}\r\n {{ item.scanOutTime }}{{ item.scanInTime }}
    \r\n No Movement Available\r\n
    \r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n {{ jiraId?.toUpperCase() }}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    Name
    \r\n
    \r\n {{ jiraDetail?.name || '–' }}\r\n
    \r\n
    \r\n
    \r\n
    Status
    \r\n
    \r\n {{ jiraDetail?.status || '–' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Description

    \r\n
    \r\n

    0\">\r\n {{ i.text }}\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    Employee
    \r\n
    \r\n \r\n {{ selectedEmployee?.firstName }} {{ selectedEmployee?.lastName }}\r\n \r\n - \r\n
    \r\n
    \r\n \r\n \r\n Search routing\r\n \r\n \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Activity Code
    \r\n
    Department
    \r\n
    Description
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ productRoutingCode.activityCode }}\r\n
    \r\n
    \r\n {{ productRoutingCode.department }}\r\n
    \r\n
    \r\n {{ productRoutingCode.activityDesc }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n

    PD Movement 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
    RoutingScan OutScan In
    \r\n {{ item.routingCode.activityDesc }}\r\n {{ item.scanOutTime }}{{ item.scanInTime }}
    \r\n No Movement Available\r\n
    \r\n
    \r\n \r\n \r\n\r\n\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Scanning\r\n
    \r\n
    \r\n
    Oops! Something Went Wrong
    \r\n

    \r\n {{ jiraScanErrorMessage }}\r\n

    \r\n \r\n Close\r\n \r\n
    \r\n
    \r\n
    Oops! Something Went Wrong
    \r\n

    \r\n We’re sorry, but we’re experiencing an issue. You scanned this\r\n work order number '{{ workOrderId }}'. Please verify that the work\r\n order number is correct.\r\n

    \r\n \r\n Close\r\n \r\n
    \r\n
    \r\n
    \r\n
    Employee Not Found
    \r\n

    \r\n We’re sorry, but we can't find the Employee ID :\r\n {{ this.code }}.\r\n

    \r\n
    \r\n
    0\">\r\n
    Employee Has Check Out
    \r\n

    \r\n User\r\n {{ selectedEmployee.firstName }}\r\n \r\n {{ selectedEmployee.lastName }}\r\n \r\n still has Work Order '{{ employeeInProgressWorkOrderId }}'\r\n checked out, please close it before checking out any others.\r\n

    \r\n
    \r\n \r\n Close\r\n \r\n
    \r\n
    \r\n
    Routing Code Not Found
    \r\n

    \r\n We’re sorry, but we can't find the Routing Code : {{ this.code }}.\r\n

    \r\n \r\n Close\r\n \r\n
    \r\n
    \r\n
    Unable to move work order
    \r\n

    \r\n We’re sorry, but we can't proceed the movement request for work\r\n order # '{{ this.workOrderId }}'. Please try again.\r\n

    \r\n \r\n

    \r\n Exception Message\r\n

    \r\n

    {{ movementErrorMessage }}

    \r\n
    \r\n \r\n Close\r\n \r\n
    \r\n
    \r\n
    \r\n Scanned In\r\n Scanned Out\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n","import {\r\n AfterViewInit,\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { WorkOrderUI } from 'src/app/models/work-order';\r\nimport { WorkOrderService } from 'src/app/services/work-order.service';\r\nimport { WorkOrderPrintDialogComponent } from '../work-order-print/work-order-print-dialog.component';\r\nimport { OrphanWorkOrder } from './orphan-work-order';\r\n\r\n@Component({\r\n selector: 'orphan-work-order-dialog',\r\n templateUrl: './orphan-work-order-dialog.component.html',\r\n styleUrls: ['./orphan-work-order-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class OrphanWorkOrderDialogComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n displayedColumns: string[] = [\r\n 'workOrdersId',\r\n 'sku',\r\n 'totalQty',\r\n 'unShippedQty',\r\n 'unInvoicedQty',\r\n 'closedDate',\r\n ];\r\n\r\n workOrders = new MatTableDataSource([]);\r\n allWorkOrders: WorkOrderUI[];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n private workOrderService: WorkOrderService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.workOrderService.getOrphanedWorkOrder().subscribe((data) => {\r\n this.workOrders.data = data;\r\n });\r\n this.workOrderService.getWorkOrders().subscribe((data) => {\r\n this.allWorkOrders = data;\r\n });\r\n }\r\n ngAfterViewInit(): void {\r\n this.workOrders.sort = this.sort;\r\n }\r\n onOpenWorkOrder(selectedWorkOrder: OrphanWorkOrder) {\r\n const workOrder: Partial = {\r\n workOrdersId: selectedWorkOrder.workOrdersId,\r\n dueDate: new Date(selectedWorkOrder.dueDate),\r\n releasedDate: new Date(selectedWorkOrder.releasedDate),\r\n printedDate: new Date(selectedWorkOrder.printedDate),\r\n dateClosed: new Date(selectedWorkOrder.closedDate),\r\n };\r\n this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder,\r\n },\r\n });\r\n }\r\n}\r\n","

    Orphan Work Orders

    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n WKO #\r\n \r\n \r\n \r\n {{ element.workOrdersId }}\r\n \r\n \r\n \r\n \r\n \r\n Item SKU\r\n \r\n {{ element.sku }}\r\n \r\n \r\n \r\n QTY Total\r\n \r\n \r\n {{ element.totalQty }}\r\n \r\n \r\n \r\n \r\n Shipped\r\n \r\n \r\n 0 &&\r\n element.totalQty !== element.unShippedQty\r\n \"\r\n >{{ element.totalQty - element.unShippedQty }}\r\n \r\n \r\n \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\r\n \r\n \r\n 0 &&\r\n element.totalQty !== element.unInvoicedQty\r\n \"\r\n >{{ element.totalQty - element.unInvoicedQty }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Close Date\r\n \r\n \r\n {{ element.closedDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n Close\r\n \r\n\r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { WorkOrderService } from 'src/app/services/work-order.service';\r\nimport { ReceivingItem } from './receiving-item';\r\n\r\n@Component({\r\n selector: 'receiving-item-dialog',\r\n templateUrl: './receiving-item-dialog.component.html',\r\n styleUrls: ['./receiving-item-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ReceivingItemDialogComponent implements OnInit {\r\n displayedColumns: string[] = [\r\n 'selection',\r\n 'index',\r\n 'cipo',\r\n 'picturePath',\r\n 'sku',\r\n 'materialCode',\r\n 'size',\r\n 'weight',\r\n 'weightSecondary',\r\n 'qty',\r\n ];\r\n receivedItems: ReceivingItem[] = [];\r\n isSelectedAll = true;\r\n isSomeSelected = false;\r\n isReceiving = false;\r\n requiredWeight = true;\r\n focusItemIndex = 0;\r\n hasSecondaryWeight = true;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { items: ReceivingItem[]; workOrderId: number },\r\n\r\n private workOrderService: WorkOrderService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.hasSecondaryWeight = this.props.items.some(\r\n (i) => (i.ordersDetailsChainId ?? 0) > 0,\r\n );\r\n if (!this.hasSecondaryWeight) {\r\n this.displayedColumns = this.displayedColumns.filter(\r\n (c) => c !== 'weightSecondary',\r\n );\r\n }\r\n this.receivedItems = this.props.items.map((item, index) => ({\r\n ...item,\r\n isFullyReceived: item.qty === item.qtyClose,\r\n maxQty: item.qty - item.qtyClose,\r\n qty: item.qty - item.qtyClose,\r\n weightInputId: `weightInput${index}`,\r\n }));\r\n this.selectAll(true);\r\n }\r\n\r\n onSelect() {\r\n const selected = this.receivedItems.filter((i) => i.selected);\r\n this.isSelectedAll = selected.length === this.receivedItems.length;\r\n this.isSomeSelected = selected.length > 0 && !this.isSelectedAll;\r\n }\r\n\r\n selectAll(checked) {\r\n this.receivedItems = this.receivedItems.map((i) => ({\r\n ...i,\r\n selected: checked,\r\n }));\r\n this.onSelect();\r\n }\r\n\r\n onWeightKeyDown(currentIndex) {\r\n const nextIndex = currentIndex + 1;\r\n if (this.receivedItems[nextIndex] !== undefined) {\r\n document.getElementById(`weightInput${nextIndex}`).focus();\r\n }\r\n const invalidForm =\r\n !(this.isSelectedAll || this.isSomeSelected) ||\r\n this.isReceiving ||\r\n !this.isValidSelection;\r\n if (!invalidForm) {\r\n this.onReceived();\r\n }\r\n }\r\n\r\n onReceived() {\r\n const [workOrderItem] = this.receivedItems ?? [];\r\n const items = this.receivedItems\r\n .filter((i) => i.selected)\r\n .map((i) => ({\r\n workOrdersDetailsID: i.workOrderDetailsID,\r\n qtyToClose: i.qty,\r\n wghtGrms: i.weight ?? 0,\r\n weightGSecondary: i.weightSecondary ?? 0,\r\n }));\r\n\r\n this.isReceiving = true;\r\n this.workOrderService\r\n .receiveWorkOrderItems({\r\n workOrdersID: workOrderItem.workOrdersID,\r\n items,\r\n })\r\n .subscribe(\r\n () => {\r\n this.dialogRef.close({\r\n isSuccessful: true,\r\n received: items.length,\r\n total: this.receivedItems.length,\r\n });\r\n },\r\n () => {\r\n this.dialogRef.close({ hasError: true });\r\n },\r\n );\r\n }\r\n checkWeightEntered(item: ReceivingItem) {\r\n if (item.weight === +this.props.workOrderId) {\r\n item.weight = null;\r\n }\r\n }\r\n get isValidSelection() {\r\n return !this.receivedItems.some(\r\n (i) =>\r\n i.selected &&\r\n ((i.weight || 0) === 0 || i.weight === +this.props.workOrderId),\r\n );\r\n }\r\n}\r\n","

    Select Work Order Items

    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Index{{ element.index }}CIPO{{ element.cipo }}Picture\r\n \r\n \r\n \r\n SKU{{ element.sku }}Size{{ element.size }}Metal\r\n {{ element.materialCode }}\r\n Due Date\r\n {{ element.duaDate | date : 'MM/dd/yyyy' }}\r\n Qty\r\n
    \r\n \r\n {{ element.maxQty }}\r\n
    \r\n
    \r\n {{ hasSecondaryWeight ? 'Primary Weight' : 'Weight' }}\r\n Secondary Weight
    No Available Data
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n Receive\r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { cloneDeep } from 'lodash';\r\nimport { DateTime } from 'luxon';\r\nimport { PDFDocumentProxy } from 'ng2-pdf-viewer';\r\nimport { forkJoin } from 'rxjs';\r\nimport { WORK_ORDER_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/work-order-permission';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport {\r\n ClosingDetail,\r\n WorkOrderDetailForPDF,\r\n WorkOrderUI,\r\n} from 'src/app/models/work-order';\r\nimport { OrderdetailsService } from 'src/app/services/orderdetails.service';\r\nimport { WorkOrderService } from 'src/app/services/work-order.service';\r\nimport { ConfirmationService } from '../../riva-confirmation/riva-confirmation.service';\r\n\r\n@Component({\r\n selector: 'work-order-print-dialog',\r\n templateUrl: './work-order-print-dialog.component.html',\r\n styleUrls: ['./work-order-print-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class WorkOrderPrintDialogComponent implements OnInit {\r\n private pdf: PDFDocumentProxy;\r\n\r\n pdfUrl: string;\r\n isLoading = false;\r\n isPrintedReport = false;\r\n closingDetails: ClosingDetail[] = [];\r\n rawClosingDetails: ClosingDetail[] = [];\r\n workOrderDetails: WorkOrderDetailForPDF[] = [];\r\n rawWorkOrderDetails: WorkOrderDetailForPDF[] = [];\r\n workOrderFeatureKey = WORK_ORDER_FEATURE_KEY;\r\n\r\n selectedWorkOrder: {\r\n dueDate: string;\r\n printedDate: string;\r\n releasedDate: string;\r\n receivedDate: string;\r\n workOrderId?: number;\r\n };\r\n isEditWeight = false;\r\n isSavingWeight = false;\r\n\r\n isEditDetails = false;\r\n isSavingDetails = false;\r\n reloadCaller = false;\r\n hasSecondaryWeight = false;\r\n\r\n constructor(\r\n private workOrderService: WorkOrderService,\r\n private orderdetailsService: OrderdetailsService,\r\n private loadService: LoadService,\r\n private _confirmationService: ConfirmationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public props: { workOrder: WorkOrderUI },\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.isLoading = true;\r\n const { workOrder } = this.props;\r\n this.selectedWorkOrder = {\r\n dueDate: workOrder.dueDate\r\n ? DateTime.fromJSDate(new Date(workOrder.dueDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n printedDate: workOrder.printedDate\r\n ? DateTime.fromJSDate(new Date(workOrder.printedDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n releasedDate: workOrder.releasedDate\r\n ? DateTime.fromJSDate(new Date(workOrder.releasedDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n receivedDate: workOrder.dateClosed\r\n ? DateTime.fromJSDate(new Date(workOrder.dateClosed)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n workOrderId:\r\n this.props.workOrder.workOrdersId ?? this.props.workOrder.workOrderId,\r\n };\r\n this.isPrintedReport = !!workOrder.printedDate;\r\n this.workOrderService\r\n .getWorkOrderDates(this.selectedWorkOrder.workOrderId)\r\n .subscribe((workOrderDates) => {\r\n this.selectedWorkOrder.receivedDate =\r\n workOrderDates.closedDate != null\r\n ? DateTime.fromJSDate(new Date(workOrderDates.closedDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ';\r\n this.selectedWorkOrder.printedDate =\r\n workOrderDates.printedDate != null\r\n ? DateTime.fromJSDate(\r\n new Date(workOrderDates.printedDate),\r\n ).toFormat('MM/dd/yyyy')\r\n : ' ';\r\n this.selectedWorkOrder.releasedDate =\r\n workOrderDates.releasedDate != null\r\n ? DateTime.fromJSDate(\r\n new Date(workOrderDates.releasedDate),\r\n ).toFormat('MM/dd/yyyy')\r\n : ' ';\r\n this.selectedWorkOrder.dueDate =\r\n workOrderDates.dueDate != null\r\n ? DateTime.fromJSDate(new Date(workOrderDates.dueDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ';\r\n });\r\n forkJoin([\r\n this.workOrderService.getClosingDetails(\r\n this.selectedWorkOrder.workOrderId,\r\n ),\r\n this.workOrderService.getWorkOrderDetails(\r\n this.selectedWorkOrder.workOrderId,\r\n ),\r\n this.workOrderService.generateWorkOrderPdf(\r\n this.selectedWorkOrder.workOrderId,\r\n ),\r\n ]).subscribe(([closingDetails, details, pdfData]) => {\r\n this.hasSecondaryWeight = closingDetails.some(\r\n (c) => (c.weightGSecondary ?? 0) > 0,\r\n );\r\n this.rawClosingDetails = cloneDeep(closingDetails);\r\n this.closingDetails = cloneDeep(closingDetails);\r\n this.workOrderDetails = cloneDeep(details);\r\n this.rawWorkOrderDetails = cloneDeep(details);\r\n this.pdfUrl = URL.createObjectURL(this.dataURItoBlob(pdfData));\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n dataURItoBlob(dataURI) {\r\n var byteString = atob(dataURI.split(',')[1]);\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n var arrayBuffer = new ArrayBuffer(byteString.length);\r\n var _ia = new Uint8Array(arrayBuffer);\r\n for (var i = 0; i < byteString.length; i++) {\r\n _ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n var dataView = new DataView(arrayBuffer);\r\n var blob = new Blob([dataView], {\r\n type: mimeString,\r\n });\r\n return blob;\r\n }\r\n\r\n onLoaded(pdf: PDFDocumentProxy) {\r\n this.pdf = pdf;\r\n }\r\n\r\n print() {\r\n this.pdf.getData().then((u8) => {\r\n let blob = new Blob([u8.buffer], {\r\n type: 'application/pdf',\r\n });\r\n\r\n const blobUrl = window.URL.createObjectURL(blob);\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = blobUrl;\r\n document.body.appendChild(iframe);\r\n iframe.contentWindow.print();\r\n\r\n if (!this.selectedWorkOrder.workOrderId) return;\r\n this.workOrderService\r\n .setWorkOrderPrint(this.selectedWorkOrder.workOrderId)\r\n .subscribe(() => {\r\n this.loadService.reloadWorkOrders();\r\n this.loadService.reloadOrderDetails();\r\n });\r\n });\r\n }\r\n\r\n onSetNotPrinted() {\r\n if (!this.selectedWorkOrder.workOrderId) return;\r\n this.workOrderService\r\n .setWorkOrderNotPrint(this.selectedWorkOrder.workOrderId)\r\n .subscribe(() => {\r\n this.loadService.reloadWorkOrders();\r\n this.loadService.reloadOrderDetails();\r\n this.isPrintedReport = false;\r\n this.selectedWorkOrder.printedDate = '';\r\n });\r\n }\r\n onDeleteWorkOrder() {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Work Order',\r\n content: 'Are you sure you want to delete this work order?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.workOrderService\r\n .deleteWorkOrder(this.selectedWorkOrder.workOrderId)\r\n .subscribe(() => {\r\n this.loadService.reloadWorkOrders();\r\n this.loadService.reloadOrderDetails();\r\n this.dialogRef.close();\r\n });\r\n });\r\n }\r\n onSetEditMode() {\r\n this.isEditWeight = !this.isEditWeight;\r\n }\r\n onCancel() {\r\n this.closingDetails = cloneDeep(this.rawClosingDetails);\r\n this.onSetEditMode();\r\n }\r\n onSetDetailEditMode() {\r\n this.isEditDetails = !this.isEditDetails;\r\n }\r\n onCancelDetail() {\r\n this.workOrderDetails = cloneDeep(this.rawWorkOrderDetails);\r\n this.onSetDetailEditMode();\r\n }\r\n onSaveWorkOrderDetail() {\r\n this.isSavingDetails = true;\r\n const requests = this.workOrderDetails.map((d) => {\r\n if (d.ordersDetailsAltId != null) {\r\n return this.orderdetailsService.patchOrderDetailsAlt(\r\n d.ordersDetailsAltId,\r\n {\r\n qty: d.qty,\r\n workOrdersDetailsid: d.workOrdersDetailsId,\r\n },\r\n );\r\n } else {\r\n return this.orderdetailsService.patchOrderDetails(d.ordersDetailsId, {\r\n qty: d.qty,\r\n workOrdersDetailsid: d.workOrdersDetailsId,\r\n });\r\n }\r\n });\r\n forkJoin(requests).subscribe(() => {\r\n this.onSetDetailEditMode();\r\n this.isSavingWeight = false;\r\n this.rawWorkOrderDetails = cloneDeep(this.workOrderDetails);\r\n this.reloadCaller = true;\r\n });\r\n }\r\n onSaveDetail() {\r\n this.isSavingWeight = true;\r\n const requests = this.closingDetails.map((d) =>\r\n this.workOrderService.updateClosingDetail(d.workOrdersClosingID, {\r\n wghtGrms: d.weightGrams,\r\n weightGSecondary: d.weightGSecondary,\r\n }),\r\n );\r\n forkJoin(requests).subscribe(() => {\r\n this.onSetEditMode();\r\n this.isSavingWeight = false;\r\n });\r\n }\r\n\r\n onDeleteWorkOrderDetails(workOrderDetailsId) {\r\n this._confirmationService\r\n .showConfirmation({\r\n title: 'Delete Work Order Details',\r\n content: 'Are you sure you want to delete this work order detail?',\r\n confirmLabel: 'Delete',\r\n })\r\n .subscribe((isConfirmed) => {\r\n if (!isConfirmed) return;\r\n this.workOrderService\r\n .deleteWorkOrderDetail(workOrderDetailsId)\r\n .subscribe(() => {\r\n this.workOrderDetails = this.workOrderDetails.filter(\r\n (w) => w.workOrdersDetailsId !== workOrderDetailsId,\r\n );\r\n this.rawWorkOrderDetails = cloneDeep(this.workOrderDetails);\r\n this.reloadCaller = true;\r\n });\r\n });\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close(this.reloadCaller);\r\n }\r\n}\r\n","\r\n
    \r\n
    \r\n
    \r\n \r\n Print WKO\r\n \r\n \r\n Mark as Unprinted\r\n \r\n \r\n Delete WKO\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n Due Date\r\n \r\n \r\n \r\n Printed Date\r\n \r\n \r\n \r\n Released Date\r\n \r\n \r\n \r\n Received Date\r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n

    Generating Work Order

    \r\n
    \r\n
    \r\n 0\"\r\n >\r\n
    \r\n
    Sub SKU & Quantities Details
    \r\n
    \r\n \r\n Edit\r\n \r\n \r\n Cancel\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    IndexQtyWeight\r\n Secondary Weight\r\n Closed Date
    {{ detail.index }}{{ detail.qtyClosed }}\r\n \r\n \r\n {{ detail.weightGrams }}\r\n \r\n \r\n
    \r\n \r\n \r\n {{ detail.weightGSecondary }}\r\n \r\n
    \r\n
    \r\n {{ detail.dateClosed | date : 'MM/dd/yyyy' }}\r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    Order 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
    IndexQty
    {{ detail.index }}\r\n \r\n \r\n {{ detail.qty }}\r\n \r\n \r\n 1\"\r\n (click)=\"onDeleteWorkOrderDetails(detail.workOrdersDetailsId)\"\r\n >\r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n","export enum WorkOrderType {\r\n Product,\r\n Chain,\r\n Finding,\r\n}\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport uniqBy from 'lodash/uniqBy';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { MaterialCode } from 'src/app/models/material-code';\r\nimport { Orders, OrdersDetails } from 'src/app/models/orders.model';\r\nimport {\r\n Product,\r\n ProductEnamel,\r\n ProductVariation,\r\n ProductsRouting,\r\n WorkOrderEnamel,\r\n} from 'src/app/models/product';\r\nimport {\r\n WorkOrder,\r\n WorkOrderDetail,\r\n WorkOrderDetailDisplay,\r\n WorkOrderDetailPrint,\r\n WorkOrderDetailsForPrint,\r\n WorkOrderPrintReport,\r\n WorkOrderReport,\r\n WorkOrderUI,\r\n} from 'src/app/models/work-order';\r\n\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { WORK_ORDER_FEATURE_KEY } from 'src/app/core/user-permission/user-permission-rules/work-order-permission';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { Customers } from 'src/app/models/customer';\r\nimport { ProductFindings } from 'src/app/models/findings.model';\r\nimport { SubItem } from 'src/app/models/sub-item.model';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { EnamelService } from 'src/app/services/enamel.service';\r\nimport { OrderService } from 'src/app/services/order.service';\r\nimport { ProductBomService } from 'src/app/services/product-bom.service';\r\nimport { ProductsRoutingService } from 'src/app/services/products-routing.service';\r\nimport { SubItemService } from 'src/app/services/sub-item.service';\r\nimport { WorkOrderService } from 'src/app/services/work-order.service';\r\nimport { GenericComponent, Guid } from '../generic/generic.component';\r\nimport { ProductService } from './../../services/product.service';\r\nimport {\r\n ProductStone,\r\n StoneSizeOrderDetails,\r\n} from './../riva-gems/riva-gems.model';\r\nimport { ReceivingItemDialogComponent } from './receiving-item-dialog/receiving-item-dialog.component';\r\nimport { WorkOrderPrintDialogComponent } from './work-order-print/work-order-print-dialog.component';\r\nimport { WorkOrdersReleaseComponent } from './work-orders-release.component';\r\n\r\nexport const getOrderDetailsSizeDisplayText = ({\r\n dimension1,\r\n dimension2,\r\n dimension3,\r\n}: StoneSizeOrderDetails) => {\r\n const dimensions = [];\r\n if (dimension1) dimensions.push(`${dimension1}mm`);\r\n if (dimension2) dimensions.push(`${dimension2}mm`);\r\n if (dimension3) dimensions.push(`${dimension3}mm`);\r\n return dimensions.join(' x ');\r\n};\r\n\r\n@Component({\r\n selector: 'app-work-order-view',\r\n templateUrl: './work-order-view.component.html',\r\n styleUrls: ['./work-order-view.component.scss'],\r\n})\r\nexport class WorkOrderViewComponent\r\n extends GenericComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n public dialog: MatDialog,\r\n private enamelService: EnamelService,\r\n private productBomService: ProductBomService,\r\n private orderService: OrderService,\r\n private workOrderService: WorkOrderService,\r\n private subItemService: SubItemService,\r\n private productService: ProductService,\r\n private productsRoutingService: ProductsRoutingService,\r\n private userPermissionService: UserPermissionService,\r\n private modalService: NgbModal,\r\n private customerService: CustomerService,\r\n ) {\r\n super(loadService, alertService);\r\n this.userPermissionService.checkPagePermission(PAGE_NAME.workOrder);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadWorkOrders();\r\n this.loadService.reloadWorkOrders = () => {\r\n this.loadWorkOrders();\r\n };\r\n this.customerService.getList().subscribe((data) => {\r\n this.customers = orderBy(data, 'companyName');\r\n });\r\n }\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild('confirmationWorkOrder')\r\n public readonly confirmationWorkOrder!: SwalComponent;\r\n\r\n ngAfterViewInit() {\r\n this.workOrders.sort = this.sort;\r\n this.workOrders.paginator = this.paginator;\r\n }\r\n workOrderFeatureKey = WORK_ORDER_FEATURE_KEY;\r\n\r\n workOrderReports: WorkOrderReport[] = [];\r\n filtered_workOrderReports: WorkOrderReport[] = [];\r\n select_wko: number = 1;\r\n\r\n orders: Orders[] = [];\r\n selectedOrderId: number = 0;\r\n selectedOrderItem: number = 0;\r\n selectedOrderDetail: OrdersDetails = new OrdersDetails();\r\n workOrder: WorkOrder = new WorkOrder();\r\n workOrderDetail: WorkOrderDetail = new WorkOrderDetail();\r\n materialCodes: MaterialCode[] = [];\r\n workOrderDetailDisplay: WorkOrderDetailDisplay = new WorkOrderDetailDisplay();\r\n detailDisplays: WorkOrderDetailDisplay[] = [];\r\n searchOrder: string = '';\r\n filteredOrders: Orders[] = [];\r\n enamelVariations: ProductVariation[] = [];\r\n productEnamels: ProductEnamel[] = [];\r\n productFindings: ProductFindings[] = [];\r\n enamels: WorkOrderEnamel[] = [];\r\n displayedColumns: string[] = [\r\n 'workOrdersId',\r\n 'orderType',\r\n 'qtyTotal',\r\n 'picturePath',\r\n 'materialCode',\r\n 'productSku',\r\n 'poInternal',\r\n 'customerName',\r\n 'createdDate',\r\n 'dueDate',\r\n 'printedDate',\r\n 'releasedDate',\r\n 'dateClosed',\r\n 'printAction',\r\n ];\r\n filterBy: string = '';\r\n filterByStatus: string = 'open';\r\n filterByReleaseStatus: string = 'all';\r\n filterByPrintStatus: string = 'all';\r\n filterByCustomer: number = 0;\r\n workOrders = new MatTableDataSource([]);\r\n currentFilter: string = 'status';\r\n karatItems = [...Array(6).keys()];\r\n isPrintedReport = false;\r\n selectedWorkOrder: {\r\n dueDate: string;\r\n printedDate: string;\r\n releasedDate: string;\r\n receivedDate: string;\r\n };\r\n\r\n workOrderForPrint: WorkOrderDetailsForPrint = {} as WorkOrderDetailsForPrint;\r\n subItems: SubItem[] = [];\r\n productRoutings: ProductsRouting[] = [];\r\n productStonesConstants: ProductStone[] = [];\r\n productStonesVariations: ProductStone[] = [];\r\n customers: Customers[] = [];\r\n\r\n confirmation: {\r\n icon: string;\r\n title: string;\r\n description: string;\r\n timer?: number;\r\n } = {\r\n icon: 'question',\r\n title: '',\r\n description: '',\r\n };\r\n workOrderDueDate: Date | null;\r\n isLoadingWorkOrder = false;\r\n\r\n loadWorkOrders() {\r\n // this.isLoadingWorkOrder = true;\r\n this.workOrderService.getWorkOrders().subscribe((result) => {\r\n this.workOrders.data = result;\r\n this.isLoadingWorkOrder = false;\r\n });\r\n this.onFilter(this.currentFilter);\r\n this.workOrders.filterPredicate = (\r\n data: WorkOrderUI,\r\n filterValue: string,\r\n ) => {\r\n const { status, printStatus, releaseStatus, search, customer } =\r\n JSON.parse(filterValue) ?? {};\r\n\r\n const statusFilter =\r\n status === 'all' ||\r\n (status === 'closed' &&\r\n data.isFullyClosed &&\r\n data.dateClosed != null) ||\r\n (status === 'open' &&\r\n (data.isPartiallyClosed || data.dateClosed == null));\r\n const printStatusFilter =\r\n printStatus === 'all' ||\r\n (printStatus === 'printed' && data.printedDate !== null) ||\r\n (printStatus === 'not-printed' && data.printedDate == null);\r\n const releaseStatusFilter =\r\n releaseStatus === 'all' ||\r\n (releaseStatus === 'released' && data.releasedDate !== null) ||\r\n (releaseStatus === 'unreleased' && data.releasedDate == null);\r\n const searchText = search?.trim()?.toLowerCase();\r\n const searchFilter =\r\n data.workOrdersId.toString().toLowerCase().includes(searchText) ||\r\n data.poInternal?.toLowerCase().includes(searchText) ||\r\n data.qtyTotal.toString()?.toLowerCase().includes(searchText) ||\r\n data.productSku?.toLowerCase().includes(searchText) ||\r\n data.materialCode?.toLowerCase().includes(searchText) ||\r\n data.materialDescription?.toLowerCase().includes(searchText);\r\n const customerFilter = customer === 0 || data.customerId === customer;\r\n\r\n return (\r\n statusFilter &&\r\n printStatusFilter &&\r\n releaseStatusFilter &&\r\n searchFilter &&\r\n customerFilter\r\n );\r\n };\r\n this.workOrders.sortingDataAccessor = (\r\n data: any,\r\n sortHeaderId: string,\r\n ): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n\r\n return data[sortHeaderId];\r\n };\r\n }\r\n\r\n onFilter(filter: string) {\r\n this.currentFilter = filter;\r\n this.workOrders.filter = JSON.stringify({\r\n search: this.searchOrder,\r\n status: this.filterByStatus,\r\n releaseStatus: this.filterByReleaseStatus,\r\n printStatus: this.filterByPrintStatus,\r\n customer: this.filterByCustomer,\r\n });\r\n }\r\n\r\n onScanWorkOrder(action: string) {\r\n const dialogRef = this.dialog.open(WorkOrdersReleaseComponent, {\r\n disableClose: true,\r\n maxWidth: '350px',\r\n width: '100%',\r\n data: {\r\n workOrders: [...this.workOrders.data],\r\n action,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (action === 'release') {\r\n this.workOrderService.setWorkOrderRelease(result).subscribe(\r\n () => {\r\n this.loadWorkOrders();\r\n this.confirmation = {\r\n title: 'Work Order Released',\r\n description: `Successfully released work order number '${result}'`,\r\n icon: 'success',\r\n timer: 1000,\r\n };\r\n setTimeout(() => {\r\n this.confirmationWorkOrder.fire();\r\n }, 100);\r\n },\r\n () => {\r\n this.confirmation = {\r\n title: 'Release Failed',\r\n description: `Unable to release work order number '${result}'. Please contact the administration`,\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.confirmationWorkOrder.fire();\r\n }, 100);\r\n },\r\n );\r\n }\r\n if (action === 'close') {\r\n this.workOrderService\r\n .getUnClosedWorkOrderItems(result)\r\n .subscribe((response) => {\r\n var data = orderBy(response, 'index');\r\n if (data.length === 0) {\r\n this.confirmation = {\r\n title: 'Received Work Order',\r\n description: `Work order number ${result} already received.`,\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.confirmationWorkOrder.fire();\r\n }, 100);\r\n return;\r\n }\r\n\r\n const dialogResponse = this.dialog.open(\r\n ReceivingItemDialogComponent,\r\n {\r\n disableClose: true,\r\n maxWidth: '1000px',\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n items: data,\r\n workOrderId: result,\r\n },\r\n },\r\n );\r\n\r\n dialogResponse.afterClosed().subscribe((res) => {\r\n this.receivedWorkOrderResponse({ ...res, workOrderId: result });\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n receivedWorkOrderResponse({\r\n isSuccessful,\r\n hasError,\r\n received,\r\n total,\r\n workOrderId,\r\n }) {\r\n if (isSuccessful) {\r\n this.loadWorkOrders();\r\n const description =\r\n received === total\r\n ? `Successfully received work order number '${workOrderId}'`\r\n : `Successfully received ${received} out of ${total} items from work order number '${workOrderId}'`;\r\n this.confirmation = {\r\n title: 'Work Order Received',\r\n description,\r\n icon: 'success',\r\n timer: 1000,\r\n };\r\n setTimeout(() => {\r\n this.confirmationWorkOrder.fire();\r\n }, 100);\r\n return;\r\n }\r\n\r\n if (hasError) {\r\n this.confirmation = {\r\n title: 'Close Failed',\r\n description: `Unable to close work order number '${workOrderId}'. Please contact the administration`,\r\n icon: 'error',\r\n };\r\n setTimeout(() => {\r\n this.confirmationWorkOrder.fire();\r\n }, 100);\r\n }\r\n }\r\n\r\n onSelectOrder(order: Orders) {\r\n this.selectedOrderId = order.ordersId;\r\n this.selectedOrderItem = 0;\r\n }\r\n\r\n filterWKO() {\r\n if (this.select_wko == 0) {\r\n this.filtered_workOrderReports = this.workOrderReports;\r\n } else if (this.select_wko == 1) {\r\n this.filtered_workOrderReports = this.workOrderReports.filter(\r\n (x) => x.closedDate == null,\r\n );\r\n } else if (this.select_wko == 2) {\r\n this.filtered_workOrderReports = this.workOrderReports.filter(\r\n (x) => x.closedDate != null,\r\n );\r\n }\r\n }\r\n\r\n addToWorkOrder() {\r\n this.selectedOrderItem = 0;\r\n this.workOrder.workOrderDetails.push(\r\n this.workOrderDetailDisplay.workOrderDetail,\r\n );\r\n let map = new WorkOrderDetailDisplay();\r\n map.productName = this.workOrderDetailDisplay.productName;\r\n map.photo = this.workOrderDetailDisplay.photo;\r\n map.material = this.workOrderDetailDisplay.material;\r\n map.size = this.workOrderDetailDisplay.size;\r\n map.workOrderDetail = this.workOrderDetailDisplay.workOrderDetail;\r\n this.detailDisplays.push(map);\r\n this.showOrderDetail();\r\n }\r\n\r\n removeDetail(\r\n detailDisplay: WorkOrderDetailDisplay,\r\n orderDetail: WorkOrderDetail,\r\n ) {\r\n this.workOrder.workOrderDetails = this.workOrder.workOrderDetails.filter(\r\n (x) => x != orderDetail,\r\n );\r\n this.detailDisplays = this.detailDisplays.filter((x) => x != detailDisplay);\r\n }\r\n\r\n saveWorkOrder() {\r\n this.workOrderService.post(this.workOrder, '').subscribe(\r\n (result) => {\r\n this.alertService.success('Created work order');\r\n this.revertWorkOrder();\r\n this.workOrderService.getListReport().subscribe((result) => {\r\n this.workOrderReports = result;\r\n });\r\n },\r\n (error) => {\r\n this.alertService.error('Unable to save work order.');\r\n },\r\n );\r\n }\r\n\r\n revertWorkOrder() {\r\n this.selectedOrderId = 0;\r\n this.selectedOrderItem = 0;\r\n this.detailDisplays = [];\r\n this.workOrder = new WorkOrder();\r\n this.workOrderDetailDisplay = new WorkOrderDetailDisplay();\r\n }\r\n\r\n get orderItems() {\r\n let orderItems = [];\r\n if (this.selectedOrderId != 0) {\r\n orderItems = this.orders.find(\r\n (x) => x.ordersId == this.selectedOrderId,\r\n ).ordersDetails;\r\n this.detailDisplays.forEach((element) => {\r\n orderItems = orderItems.filter(\r\n (x) => x.ordersDetailsId != element.workOrderDetail.ordersDetailsId,\r\n );\r\n });\r\n }\r\n return orderItems;\r\n }\r\n\r\n getMaterial() {\r\n let x = this.materialCodes.find(\r\n (x) =>\r\n x.materialCodeId ==\r\n this.selectedOrderDetail.productsInfo.materialCodeId,\r\n );\r\n if (x !== undefined) {\r\n return x.description;\r\n }\r\n return '';\r\n }\r\n\r\n showOrderDetail() {\r\n this.workOrderDetailDisplay = new WorkOrderDetailDisplay();\r\n this.selectedOrderDetail = new OrdersDetails();\r\n this.selectedOrderDetail.products = new Product();\r\n if (this.selectedOrderId != 0) {\r\n if (\r\n this.orders.find((x) => x.ordersId == this.selectedOrderId)\r\n .ordersDetails.length != 0\r\n ) {\r\n let x = this.orders.find((x) => x.ordersId == this.selectedOrderId);\r\n this.selectedOrderDetail = x.ordersDetails.find(\r\n (x) => x.ordersDetailsId == this.selectedOrderItem,\r\n );\r\n this.workOrderDetailDisplay.workOrderDetail.ordersDetailsId =\r\n this.selectedOrderDetail.ordersDetailsId;\r\n this.workOrderDetailDisplay.workOrderDetail.wgtpitem =\r\n this.selectedOrderDetail.productsInfo.weight;\r\n this.workOrderDetailDisplay.material = this.getMaterial();\r\n this.workOrderDetailDisplay.size =\r\n this.selectedOrderDetail.productsInfo.size;\r\n this.workOrderDetailDisplay.productName =\r\n this.selectedOrderDetail.products.productName;\r\n this.workOrderDetailDisplay.photo =\r\n this.selectedOrderDetail.products.picPath;\r\n }\r\n }\r\n }\r\n\r\n openWKOs: WorkOrderReport[] = [];\r\n openWKO: WorkOrderReport = new WorkOrderReport();\r\n openWKO_details: WorkOrderPrintReport[] = [];\r\n\r\n setOpenWorkOrders() {\r\n this.openWKOs = this.workOrderReports.filter((x) => x.closedDate == null);\r\n this.filterOpenWKOs();\r\n }\r\n\r\n selectOpenWKO(wko: WorkOrderReport) {\r\n this.openWKO = wko;\r\n this.openWKO_details = wko.workOrderPrintReports;\r\n }\r\n\r\n searchText: number = 0;\r\n filtered_openWKOs: WorkOrderReport[] = [];\r\n filterOpenWKOs() {\r\n this.searchText = Number(this.searchText);\r\n this.filtered_openWKOs = this.openWKOs.filter((x) =>\r\n x.workOrdersId.toString().includes(this.searchText.toString()),\r\n );\r\n if (this.searchText == 0) {\r\n this.filtered_openWKOs = this.openWKOs;\r\n }\r\n }\r\n\r\n resetOpenWKO() {\r\n this.openWKO = new WorkOrderReport();\r\n this.openWKO_details = [];\r\n }\r\n\r\n order: Orders = new Orders();\r\n workOrderPrintReport: WorkOrderPrintReport = new WorkOrderPrintReport();\r\n\r\n selectPrintReport(reportItem: WorkOrderPrintReport) {\r\n this.workOrderPrintReport = reportItem;\r\n this.workOrderPrintReport.guid = Guid.newGuid();\r\n this.orderService\r\n .getByOrderDetailsId(reportItem.workOrderDetailsId)\r\n .subscribe((result) => {\r\n this.order = new Orders();\r\n this.order = result;\r\n });\r\n }\r\n\r\n onPrint(workOrderId: number) {\r\n this.workOrderService\r\n .getWorkOrderPrintDetail(workOrderId)\r\n .subscribe((data: { workOrderPrintReports: WorkOrderPrintReport[] }) => {\r\n const [reportItem] = data.workOrderPrintReports;\r\n this.selectPrintReport(reportItem);\r\n });\r\n }\r\n\r\n onPrintSelectedWorkOrder(workOrder, content) {\r\n const { workOrdersId, printedDate } = workOrder;\r\n this.selectedWorkOrder = {\r\n dueDate: workOrder.dueDate\r\n ? DateTime.fromJSDate(new Date(workOrder.dueDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n printedDate: workOrder.printedDate\r\n ? DateTime.fromJSDate(new Date(workOrder.printedDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n releasedDate: workOrder.releasedDate\r\n ? DateTime.fromJSDate(new Date(workOrder.releasedDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n receivedDate: workOrder.dateClosed\r\n ? DateTime.fromJSDate(new Date(workOrder.dateClosed)).toFormat(\r\n 'MM/dd/yyyy',\r\n )\r\n : ' ',\r\n };\r\n this.isPrintedReport = !!printedDate;\r\n this.modalOpen(content);\r\n this.workOrderService\r\n .getWorkOrderForPrint(workOrdersId)\r\n .subscribe((data) => {\r\n const sizes = data.workOrderDetails.reduce(\r\n (accum, details) => {\r\n const isNumber = !Number.isNaN(Number(details.orderDetails?.size));\r\n if (isNumber) {\r\n accum.numeric = [...accum.numeric, details];\r\n } else {\r\n accum.alpha = [...accum.alpha, details];\r\n }\r\n return accum;\r\n },\r\n {\r\n alpha: [],\r\n numeric: [],\r\n },\r\n );\r\n\r\n this.workOrderForPrint = {\r\n ...data,\r\n workOrderDetails: [\r\n ...orderBy(\r\n sizes.numeric,\r\n (s: WorkOrderDetailPrint) => s.orderDetails.size,\r\n ),\r\n ...orderBy(\r\n sizes.alpha,\r\n (s: WorkOrderDetailPrint) => s.orderDetails.size,\r\n ),\r\n ],\r\n };\r\n\r\n if (this.workOrderForPrint.workOrderDetails.length > 1) {\r\n const workOrdersForDueDate =\r\n this.workOrderForPrint.workOrderDetails.map((w) => ({\r\n ...w,\r\n dueDate: DateTime.fromJSDate(\r\n new Date(w.orderDetails.dueDate),\r\n ).toJSDate(),\r\n }));\r\n const [workOrderItem] = orderBy(workOrdersForDueDate, ['dueDate']);\r\n this.workOrderDueDate = workOrderItem.dueDate;\r\n } else {\r\n const [workOrderItem] = this.workOrderForPrint.workOrderDetails;\r\n this.workOrderDueDate = workOrderItem?.orderDetails.dueDate\r\n ? new Date(workOrderItem?.orderDetails.dueDate)\r\n : null;\r\n }\r\n\r\n this.productStonesVariations =\r\n this.workOrderForPrint.workOrderDetails.reduce(\r\n (variations, detail) => {\r\n if (!detail.orderDetails.stone?.ordersDetailsStonesID)\r\n return variations;\r\n const stone = {\r\n ...(detail.orderDetails.stone ?? {}),\r\n size: detail.orderDetails.stone?.size\r\n ? getOrderDetailsSizeDisplayText(\r\n detail.orderDetails.stone?.size as StoneSizeOrderDetails,\r\n )\r\n : '',\r\n };\r\n return [...variations, stone];\r\n },\r\n [],\r\n );\r\n\r\n this.getSubItems(data.product.productId);\r\n this.getProductRouting(data.product.productId);\r\n this.getProductEnamels(data.product.productId);\r\n this.getProductFindings(data.product.productId);\r\n this.getProductPictures(data.product.productId);\r\n this.getProductStones(data.product.productId);\r\n });\r\n }\r\n\r\n onPrintWorkOrder(workOrder) {\r\n const ref = this.dialog.open(WorkOrderPrintDialogComponent, {\r\n disableClose: true,\r\n minWidth: '100vw',\r\n minHeight: '100vh',\r\n autoFocus: false,\r\n panelClass: 'work-order-print-dialog-container',\r\n data: {\r\n workOrder,\r\n },\r\n });\r\n\r\n ref.afterClosed().subscribe((isReload) => {\r\n if (isReload) {\r\n this.loadWorkOrders();\r\n }\r\n });\r\n }\r\n\r\n getProductStones(productId) {\r\n this.productBomService\r\n .getProductStones(productId)\r\n .subscribe((productStones) => {\r\n this.productStonesConstants = productStones.filter((s) => !s.variation);\r\n });\r\n }\r\n\r\n getProductPictures(productId) {\r\n this.productService\r\n .getProductImageList(productId)\r\n .subscribe((data = []) => {\r\n this.workOrderForPrint.product.picture = data[0]?.fileName;\r\n });\r\n }\r\n\r\n getProductFindings(productId) {\r\n this.productBomService.getProductFindings(productId).subscribe((data) => {\r\n this.productFindings = data;\r\n });\r\n }\r\n\r\n getSubItems(productId) {\r\n this.subItemService.getSubItems(productId).subscribe((data) => {\r\n const availableSize = this.workOrderForPrint.workOrderDetails.map(\r\n (detail) => detail.orderDetails.size,\r\n );\r\n this.subItems = data?.map((item) => ({\r\n ...item,\r\n subItemsInfo: item.subItemsInfo\r\n ?.filter((s) => availableSize.includes(s.size))\r\n ?.map((subItemInfo) => ({\r\n ...subItemInfo,\r\n mfgMethodDetails:\r\n subItemInfo?.mfgMethod === 3 ? '' : subItemInfo?.mfgMethodDetails,\r\n stlPath:\r\n subItemInfo?.mfgMethod === 3\r\n ? encodeURI(subItemInfo?.mfgMethodDetails)\r\n : '',\r\n })),\r\n }));\r\n });\r\n }\r\n\r\n getEnamelVariations(productId) {\r\n this.productService.getProductVariations(productId).subscribe((data) => {\r\n this.enamelVariations = data.filter((variation) =>\r\n this.workOrderForPrint.workOrderDetails.some(\r\n (workOrder) =>\r\n workOrder.orderDetails?.enamel?.enamelSku === variation.enamelSKU,\r\n ),\r\n );\r\n });\r\n }\r\n\r\n getProductEnamels(productId) {\r\n forkJoin([\r\n this.enamelService.getList(),\r\n this.productBomService.getProductEnamel(productId),\r\n ])\r\n .pipe(\r\n map(([enamels, enamelList]) => {\r\n const enamelVariations = enamelList\r\n .filter((e) => e.variation)\r\n .map((v) => {\r\n const enamel =\r\n enamels.find((e) => e.enamelId === v.enamelID) ?? {};\r\n return { ...enamel, ...v };\r\n });\r\n const productEnamels = enamelList\r\n .filter((e) => !e.variation)\r\n .map((p) => {\r\n const enamel =\r\n enamels.find((e) => e.enamelId === p.enamelID) ?? {};\r\n return { ...enamel, ...p };\r\n });\r\n return { productEnamels, enamelVariations };\r\n }),\r\n )\r\n .subscribe(({ productEnamels, enamelVariations }) => {\r\n this.productEnamels = productEnamels.filter((enamel) =>\r\n this.workOrderForPrint.workOrderDetails.some(\r\n (workOrder) =>\r\n workOrder.orderDetails?.enamel?.enamelSku === enamel.enamelSku,\r\n ),\r\n );\r\n const variations = enamelVariations.filter((enamel) =>\r\n this.workOrderForPrint.workOrderDetails.some(\r\n (workOrder) =>\r\n workOrder.orderDetails?.enamel?.enamelSku === enamel.enamelSku,\r\n ),\r\n );\r\n\r\n this.enamels = uniqBy(\r\n [...productEnamels, ...variations].map(\r\n ({ enamelName, colorHex, enamelSKU, enamelSku }) => ({\r\n enamelName,\r\n colorHex,\r\n enamelSKU: enamelSKU ?? enamelSku,\r\n }),\r\n ),\r\n 'enamelSKU',\r\n );\r\n });\r\n }\r\n\r\n getProductRouting(productId) {\r\n this.productsRoutingService\r\n .getProductRoutings(productId)\r\n .subscribe((data) => {\r\n this.productRoutings = data;\r\n });\r\n }\r\n\r\n onSetPrintedDate() {\r\n if (!this.workOrderForPrint.workOrder.workOrdersId) return;\r\n this.workOrderService\r\n .setWorkOrderPrint(this.workOrderForPrint.workOrder.workOrdersId)\r\n .subscribe(() => {\r\n this.loadWorkOrders();\r\n });\r\n }\r\n onSetNotPrinted() {\r\n if (!this.workOrderForPrint.workOrder.workOrdersId) return;\r\n this.workOrderService\r\n .setWorkOrderNotPrint(this.workOrderForPrint.workOrder.workOrdersId)\r\n .subscribe(() => {\r\n this.loadWorkOrders();\r\n this.isPrintedReport = false;\r\n this.selectedWorkOrder.printedDate = '';\r\n });\r\n }\r\n\r\n closeWko(wkoId: number) {\r\n this.workOrderService.closeWorkOrder(wkoId).subscribe((result) => {\r\n this.workOrderService.getListReport().subscribe((result) => {\r\n this.workOrderReports = result;\r\n this.setOpenWorkOrders();\r\n this.resetOpenWKO();\r\n });\r\n });\r\n }\r\n\r\n closeWkoDetail(wkoDetail: WorkOrderPrintReport) {\r\n this.workOrderService\r\n .closeWorkOrderDetail(wkoDetail.workOrderDetailsId)\r\n .subscribe((result) => {\r\n wkoDetail.qtyclosed = wkoDetail.qtyinit;\r\n this.workOrderService.getListReport().subscribe((result) => {\r\n this.workOrderReports = result;\r\n this.setOpenWorkOrders();\r\n let x = this.openWKOs.find(\r\n (x) => x.workOrdersId == this.openWKO.workOrdersId,\r\n );\r\n if (x != undefined) {\r\n this.selectOpenWKO(x);\r\n } else {\r\n this.resetOpenWKO();\r\n }\r\n });\r\n });\r\n }\r\n\r\n routingList(routing: string) {\r\n let list = [];\r\n if (!this.checkStringIfEmpty(routing)) {\r\n list = JSON.parse(routing);\r\n }\r\n return list;\r\n }\r\n\r\n bomList(bom: string) {\r\n let list = [];\r\n if (!this.checkStringIfEmpty(bom)) {\r\n list = JSON.parse(bom);\r\n }\r\n return list;\r\n }\r\n\r\n // Modal section\r\n closeResult = '';\r\n\r\n modalActive: boolean = false;\r\n\r\n return(value) {\r\n return value;\r\n }\r\n\r\n modalOpen(content) {\r\n this.modalActive = true;\r\n this.modalService\r\n .open(content, { ariaLabelledBy: 'modal-basic-title' })\r\n .result.then(\r\n (result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n },\r\n (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n },\r\n );\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n this.modalActive = false;\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n filterOrders(search) {\r\n if (!search) {\r\n this.filteredOrders = [...this.orders];\r\n return;\r\n }\r\n this.filteredOrders = this.orders.filter(\r\n (order) => order.pointernal?.toLocaleLowerCase().indexOf(search) > -1,\r\n );\r\n }\r\n getFontSize(text = '') {\r\n let fontSize = 45;\r\n if (!text) return `${fontSize}px`;\r\n switch (true) {\r\n case text.length <= 25:\r\n fontSize = 45;\r\n break;\r\n case text.length <= 45:\r\n const size = text.length - 25;\r\n fontSize = 45 - size;\r\n break;\r\n case text.length <= 65:\r\n fontSize = Math.abs((text.length - 45) * 0.35 - 25);\r\n break;\r\n default:\r\n fontSize = 14;\r\n break;\r\n }\r\n return `${fontSize}px`;\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    Work Orders
    \r\n
    \r\n
    \r\n \r\n Release\r\n \r\n \r\n Receive\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Status\r\n \r\n All\r\n Open \r\n Closed \r\n \r\n \r\n\r\n \r\n Print Status\r\n \r\n All\r\n Printed \r\n Not Printed \r\n \r\n \r\n\r\n \r\n Release Status\r\n \r\n All\r\n Released \r\n Unreleased \r\n \r\n \r\n \r\n Customer\r\n \r\n All\r\n {{ item.companyName }}\r\n \r\n \r\n
    \r\n
    \r\n \r\n Search by WKO Number and PO Number (Internal)\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n Pic\r\n \r\n \r\n \r\n CUSTOM\r\n
    \r\n \r\n \r\n \r\n \r\n WKO #\r\n \r\n {{ element.workOrdersId }}\r\n \r\n \r\n \r\n Order Type\r\n \r\n {{ element.orderType }}\r\n \r\n \r\n \r\n Short Name\r\n \r\n {{ element.productSku }}\r\n \r\n \r\n \r\n Metal\r\n \r\n \r\n \r\n {{ element.materialCode }}\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ element.primaryMaterial.materialCode }}\r\n
    \r\n
    \r\n {{ element.secondaryMaterial.materialCode }}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n {{ element.qtyTotal }}\r\n \r\n \r\n \r\n Customer\r\n \r\n {{ element.customerName }}\r\n \r\n \r\n \r\n Created Date\r\n \r\n \r\n {{ element.createdDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n PO Number\r\n \r\n \r\n \r\n {{ element.poInternal || element.poExternal }}\r\n \r\n \r\n \r\n \r\n \r\n Due Date\r\n \r\n \r\n \r\n {{ element.dueDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Released Date\r\n \r\n \r\n \r\n {{ element.releasedDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Printed Date\r\n \r\n \r\n \r\n {{ element.printedDate | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n Received Date\r\n \r\n \r\n Partial\r\n \r\n {{ element.dateClosed | date : 'MM/dd/yyyy' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Print\r\n \r\n \r\n View\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n No Available Data\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n

    \r\n Loading Work Orders...\r\n

    \r\n
    \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 as Unprinted\r\n \r\n
    \r\n
    \r\n \r\n Due Date\r\n \r\n \r\n \r\n Printed Date\r\n \r\n \r\n \r\n Released Date\r\n \r\n \r\n \r\n Received Date\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n
    {{ workOrderForPrint.material?.code }}
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Product Name
    \r\n
    \r\n \r\n {{ workOrderForPrint.product?.productName ?? '' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Description
    \r\n
    \r\n {{ workOrderForPrint.product?.description ?? '' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    SKU
    \r\n
    \r\n {{ workOrderForPrint.product?.sku ?? '' }}\r\n
    \r\n
    \r\n
    \r\n
    QTY
    \r\n
    \r\n {{ workOrderForPrint.quantity ?? 0 }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    PO External / Internal
    \r\n
    \r\n {{ workOrderForPrint.purchaseOrder?.poExternal ?? '-' }}\r\n /\r\n {{ workOrderForPrint.purchaseOrder?.poInternal ?? '-' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Due Date
    \r\n
    \r\n {{ workOrderDueDate | date : 'MM/dd/yyyy' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Created Date
    \r\n
    \r\n {{\r\n workOrderForPrint.workOrder?.createdDate\r\n | date : 'MM/dd/yyyy'\r\n }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Release Date
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Released By
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n CUSTOM\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n {{ workOrderForPrint.workOrder?.workOrdersId | idPipe }}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Sub SKU & Quantities
    \r\n
    \r\n \r\n \r\n \r\n CI-PO\r\n QTY\r\n Size\r\n Enamel Color\r\n Comment\r\n \r\n \r\n \r\n \r\n {{ workOrder.orderDetails?.cipo }}\r\n {{ workOrder.orderDetails?.qtyOrdered }}\r\n {{ workOrder.orderDetails?.size }}\r\n \r\n
    \r\n
    \r\n
    \r\n {{ workOrder.orderDetails?.enamel?.enamelName }}\r\n
    \r\n
    \r\n \r\n \r\n {{ workOrder.orderDetails?.comment }}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Comment\r\n
    \r\n
    \r\n {{\r\n workOrderForPrint.workOrderDetails[0]?.orderDetails\r\n ?.comment\r\n }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    Bill of Materials
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    NameDescriptionUOMSize & MFG Method
    \r\n \r\n \r\n \r\n {{ subItem.name }}{{ subItem.description }}{{ subItem.unitOfMeasure?.description }}\r\n 4\r\n }\"\r\n >\r\n \r\n
    \r\n {{ subItemInfo.size }}\r\n
    \r\n
    \r\n
    {{ subItemInfo.mfgMethodText }}
    \r\n {{ subItemInfo.mfgMethodDetails }}\r\n
    \r\n \r\n \r\n
    \r\n \r\n Findings\r\n
    \r\n \r\n \r\n \r\n \r\n Qty\r\n SKU\r\n Material\r\n Size\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n {{ productFinding.qty }}\r\n \r\n {{ productFinding.findings.sku }}\r\n {{ productFinding.material.description }}\r\n {{ productFinding.size }}\r\n \r\n \r\n \r\n \r\n
    Stones
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    QtyTypeCutClarityColorSize
    \r\n \r\n \r\n \r\n \r\n {{ stoneVariation.qty }}\r\n \r\n {{ stoneVariation.type }}\r\n {{ stoneVariation.cut }}{{ stoneVariation.clarity }}{{ stoneVariation.color }}{{ stoneVariation.size }}
    \r\n \r\n \r\n \r\n \r\n {{ stoneConstant.qty }}\r\n \r\n {{ stoneConstant.stone.stoneType.name }}\r\n {{ stoneConstant.stone.stoneCut.name }}{{ stoneConstant.stone.stoneClarity.name }}{{ stoneConstant.stone.stoneColor.colorName }}{{ stoneConstant.stone.stoneSize.displayText }}
    \r\n
    \r\n\r\n \r\n
    Enamel
    \r\n \r\n \r\n
    \r\n
    {{ enamel.enamelName }}
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n Our Mission is to honor God through our Service, Process, and\r\n Product Excellence.\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Product Routing
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Activity CodeDepartmentDescriptionStandard TimeComment
    {{ routing.routingCode?.activityCode }}{{ routing.routingCode?.department }}{{ routing.routingCode?.activityDesc }}\r\n {{ routing.standardTime }}\r\n \r\n {{ routing.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 Create Work 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 Orders\r\n \r\n {{\r\n orderSelect.value\r\n }}\r\n \r\n \r\n \r\n \r\n
    \r\n
    PO Internal
    \r\n
    Customer Code
    \r\n
    Entry Date
    \r\n
    \r\n \r\n \r\n
    \r\n
    {{ order.pointernal }}
    \r\n
    \r\n {{ order.customer?.customerId ?? '' }}\r\n
    \r\n
    \r\n {{ order.entryDate | date : 'MM/dd/yyyy' }}\r\n
    \r\n
    \r\n \r\n \r\n
    Not Found
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{ item.products.productName }}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n QUANTITY\r\n \r\n \r\n \r\n ORDER QUANTITY\r\n \r\n \r\n \r\n METAL TYPE: \r\n \r\n \r\n \r\n SIZE: \r\n \r\n \r\n
    \r\n
    \r\n \r\n Add to Work 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
    {{ item.productName }}
    \r\n
    {{ item.material }}
    \r\n
    Size {{ item.size }}
    \r\n
    \r\n
    \r\n x {{ item.workOrderDetail.qtyinit }}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n Create Work 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 Close Work Orders\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n SEARCH WKO#\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    WKOCreatedLocation
    {{ item.workOrdersId | idPipe }}{{ item.createdDate | date : 'MM/dd/yyyy' }}{{ item.location }}
    \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
    NameMSInitClosed
    \r\n \r\n {{ item.itemName }}{{ item.metal }}{{ item.size }}{{ item.qtyinit }}{{ item.qtyclosed }}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Close Work 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","import { Component, Inject, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { WorkOrderUI } from 'src/app/models/work-order';\r\nimport { WorkOrderService } from 'src/app/services/work-order.service';\r\n\r\nconst getOrderType = (orderType: number) => {\r\n switch (orderType) {\r\n case 1:\r\n return 'Internal';\r\n case 2:\r\n return 'Online';\r\n case 3:\r\n return 'Repair';\r\n default:\r\n return 'Standard';\r\n }\r\n};\r\n\r\n@Component({\r\n selector: 'dialog-work-orders-release',\r\n templateUrl: './work-orders-release.component.html',\r\n styleUrls: ['./work-orders-release.component.scss'],\r\n})\r\nexport class WorkOrdersReleaseComponent {\r\n @ViewChild('errorWorkOrder')\r\n public readonly errorWorkOrder!: SwalComponent;\r\n\r\n code: string = '';\r\n isScanning = false;\r\n error: { title: string; description: string } = {\r\n title: '',\r\n description: '',\r\n };\r\n\r\n constructor(\r\n private workOrderService: WorkOrderService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: { workOrders: WorkOrderUI[]; action: string; title?: string },\r\n ) {}\r\n\r\n onScanning($event) {\r\n if (this.isScanning) return;\r\n const code = parseInt($event.key);\r\n if ($event.key === 'Enter') {\r\n this.onCheckWorkOrder();\r\n } else if (!Number.isNaN(code)) {\r\n this.code = `${this.code}${$event.key}`;\r\n }\r\n }\r\n\r\n showErrorMessage() {\r\n setTimeout(() => {\r\n this.errorWorkOrder.fire();\r\n }, 100);\r\n }\r\n\r\n onCheckShipping() {\r\n this.workOrderService\r\n .validateWorkOrderForShipment(Number(this.code))\r\n .subscribe(\r\n (data) => {\r\n if (!(data.closed || data.partiallyClose)) {\r\n this.error = {\r\n title: 'Unclosed Work Order',\r\n description: `Work order number ${this.code} is not yet closed.`,\r\n };\r\n this.showErrorMessage();\r\n this.code = '';\r\n return;\r\n } else if (data.orderType === 1 || data.orderType === 3) {\r\n this.error = {\r\n title: 'Invalid work order for shipping',\r\n description: `Unable to ship this work order number ${\r\n this.code\r\n }. Order type is ${getOrderType(data.orderType)}`,\r\n };\r\n this.showErrorMessage();\r\n this.code = '';\r\n return;\r\n }\r\n this.dialogRef.close({\r\n code: this.code,\r\n workOrderType: data.workOrderType,\r\n });\r\n },\r\n () => {\r\n this.error = {\r\n title: 'Data Not Found',\r\n description: `Work order number ${this.code} not found.`,\r\n };\r\n this.showErrorMessage();\r\n this.code = '';\r\n },\r\n );\r\n }\r\n onCheckInvoicing() {\r\n this.workOrderService\r\n .validateWorkOrderForInvoices(Number(this.code))\r\n .subscribe(\r\n (data) => {\r\n if (!(data.closed || data.partiallyClose)) {\r\n this.error = {\r\n title: 'Unclosed Work Order',\r\n description: `Work order number ${this.code} is not yet closed.`,\r\n };\r\n this.showErrorMessage();\r\n this.code = '';\r\n return;\r\n } else if (\r\n data.orderType === 1 ||\r\n data.orderType === 2 ||\r\n data.orderType === 3\r\n ) {\r\n this.error = {\r\n title: 'Invalid work order for invoicing',\r\n description: `Unable to invoice this work order number ${\r\n this.code\r\n }. Order type is ${getOrderType(data.orderType)}`,\r\n };\r\n this.showErrorMessage();\r\n this.code = '';\r\n return;\r\n }\r\n this.dialogRef.close({\r\n code: this.code,\r\n workOrderType: data.workOrderType,\r\n });\r\n },\r\n () => {\r\n this.error = {\r\n title: 'Data Not Found',\r\n description: `Work order number ${this.code} not found.`,\r\n };\r\n this.showErrorMessage();\r\n this.code = '';\r\n },\r\n );\r\n }\r\n\r\n onReleaseWorkOrder() {\r\n this.workOrderService\r\n .getWorkOrderStatus(+this.code)\r\n .subscribe(({ isPrinted, isReleased }) => {\r\n if (!isPrinted) {\r\n this.error = {\r\n title: 'Unprinted Work Order',\r\n description: `Work order number ${this.code} needs to be printed before releasing.`,\r\n };\r\n this.showErrorMessage();\r\n this.code = '';\r\n return;\r\n } else if (isReleased) {\r\n this.error = {\r\n title: 'Released Work Order',\r\n description: `Work order number ${this.code} already released.`,\r\n };\r\n this.showErrorMessage();\r\n this.code = '';\r\n return;\r\n } else {\r\n this.dialogRef.close(this.code);\r\n }\r\n });\r\n }\r\n\r\n onCloseWorkOrder() {\r\n this.workOrderService\r\n .getWorkOrderStatus(+this.code)\r\n .subscribe(({ isReleased }) => {\r\n if (!isReleased) {\r\n this.error = {\r\n title: 'Unreleased Work Order',\r\n description: `Work order number ${this.code} needs to be released before receiving.`,\r\n };\r\n this.showErrorMessage();\r\n this.code = '';\r\n return;\r\n } else {\r\n this.dialogRef.close(this.code);\r\n }\r\n });\r\n }\r\n\r\n onCheckWorkOrder() {\r\n if (this.data.action === 'get-work-order-id') {\r\n this.dialogRef.close(this.code);\r\n return;\r\n }\r\n if (this.data.action === 'shipped') {\r\n this.onCheckShipping();\r\n return;\r\n }\r\n if (this.data.action === 'invoiced') {\r\n this.onCheckInvoicing();\r\n return;\r\n }\r\n const scannedWorkOrder = this.data.workOrders.find(\r\n (wo) => wo.workOrdersId === Number(this.code),\r\n );\r\n if (!scannedWorkOrder) {\r\n this.error = {\r\n title: 'Data Not Found',\r\n description: `Work order number ${this.code} not found.`,\r\n };\r\n this.showErrorMessage();\r\n this.code = '';\r\n return;\r\n }\r\n if (this.data.action === 'release') {\r\n this.onReleaseWorkOrder();\r\n return;\r\n }\r\n if (this.data.action === 'close') {\r\n this.onCloseWorkOrder();\r\n return;\r\n }\r\n // if (this.data.action === 'release' && !scannedWorkOrder.printedDate) {\r\n // this.error = {\r\n // title: 'Unprinted Work Order',\r\n // description: `Work order number ${this.code} needs to be printed before releasing.`,\r\n // };\r\n // this.showErrorMessage();\r\n // this.code = '';\r\n // return;\r\n // }\r\n // if (this.data.action === 'release' && scannedWorkOrder.releasedDate) {\r\n // this.error = {\r\n // title: 'Released Work Order',\r\n // description: `Work order number ${this.code} already released.`,\r\n // };\r\n // this.showErrorMessage();\r\n // this.code = '';\r\n // return;\r\n // }\r\n // if (this.data.action === 'close' && !scannedWorkOrder.releasedDate) {\r\n // this.error = {\r\n // title: 'Unreleased Work Order',\r\n // description: `Work order number ${this.code} needs to be released before receiving.`,\r\n // };\r\n // this.showErrorMessage();\r\n // this.code = '';\r\n // return;\r\n // }\r\n this.dialogRef.close(this.code);\r\n }\r\n}\r\n","

    \r\n Scan {{ data.title ?? 'Work Order' }} QR Code\r\n

    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Scanning...
    \r\n
    \r\n \r\n Cancel\r\n \r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { AlertService } from 'src/app/custom/_alert';\r\nimport { Orders } from 'src/app/models/orders.model';\r\nimport { WorkOrderPrintReport } from 'src/app/models/work-order';\r\nimport { OrderService } from 'src/app/services/order.service';\r\nimport { ReportService } from 'src/app/services/report.service';\r\nimport { GenericComponent } from '../generic/generic.component';\r\n\r\n@Component({\r\n selector: 'app-work-order',\r\n templateUrl: './work-order.component.html',\r\n styleUrls: ['./work-order.component.scss'],\r\n})\r\nexport class WorkOrderComponent extends GenericComponent implements OnInit {\r\n constructor(\r\n loadService: LoadService,\r\n alertService: AlertService,\r\n private reportService: ReportService,\r\n private orderService: OrderService,\r\n ) {\r\n super(loadService, alertService);\r\n this.load();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n selectedOrderId: number = 0;\r\n orders: Orders[] = [];\r\n\r\n load() {\r\n this.orderService.getList().subscribe((result) => {\r\n this.orders = result;\r\n });\r\n }\r\n\r\n order: Orders = new Orders();\r\n workOrders: WorkOrderPrintReport[] = [];\r\n test_workOrder: WorkOrderPrintReport = new WorkOrderPrintReport();\r\n\r\n generateReport() {\r\n if (this.selectedOrderId > 0) {\r\n this.workOrders = [];\r\n this.loadService.loadContent(true);\r\n\r\n this.orderService\r\n .getOrderById(this.selectedOrderId)\r\n .subscribe((result) => {\r\n this.order = result;\r\n this.reportService.generateWorkOrder(this.selectedOrderId).subscribe(\r\n (result) => {\r\n this.loadService.loadContent(false);\r\n this.workOrders = result;\r\n this.test_workOrder = this.workOrders[0];\r\n },\r\n (error) => {\r\n this.loadService.loadContent(false);\r\n this.alertService.error(\r\n 'Error generating report. (' + error + ')',\r\n );\r\n },\r\n );\r\n });\r\n }\r\n }\r\n\r\n routingList(routing: string) {\r\n let list = [];\r\n if (!this.checkStringIfEmpty(routing)) {\r\n list = JSON.parse(routing);\r\n }\r\n return list;\r\n }\r\n\r\n bomList(bom: string) {\r\n let list = [];\r\n if (!this.checkStringIfEmpty(bom)) {\r\n list = JSON.parse(bom);\r\n }\r\n return list;\r\n }\r\n}\r\n","
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n GENERATE REPORT\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

    WKO 0000001

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    PO INTERNAL:
    \r\n
    {{ order.pointernal }}
    \r\n
    \r\n
    \r\n
    \r\n
    PO EXTERNAL:
    \r\n
    {{ order.poexternal }}
    \r\n
    \r\n
    \r\n
    \r\n
    ENTRY DATE:
    \r\n
    \r\n {{ order.entryDate | date : 'mediumDate' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    RECIEVED:
    \r\n
    \r\n {{ order.receivedDate | date : 'mediumDate' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    REQUIRED:
    \r\n
    \r\n {{ order.requiredDate | date : 'mediumDate' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    SIZE:
    \r\n
    \r\n

    {{ test_workOrder.size }}

    \r\n
    \r\n
    \r\n
    \r\n
    METAL:
    \r\n
    \r\n

    {{ test_workOrder.metal }}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    BILL OF MATERIALS
    \r\n
    \r\n
    \r\n\r\n 0\"\r\n >\r\n \r\n \r\n Type\r\n Name\r\n Quantity\r\n \r\n \r\n \r\n \r\n {{ item.ItemType }}\r\n {{ item.Material }}\r\n {{ item.BOM.QTY }}\r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    ROUTING
    \r\n
    \r\n
    \r\n\r\n 0\"\r\n >\r\n \r\n \r\n Code\r\n Name\r\n Time (Seconds)\r\n \r\n \r\n \r\n \r\n {{ item.ActivityCode }}\r\n {{ item.ActivityDesc }}\r\n {{ item.R.StandardTime }}\r\n \r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HTTP_INTERCEPTORS,\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { catchError, filter, switchMap, take } from 'rxjs/operators';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { TokenStorageService } from './token-storage.service';\r\nconst TOKEN_HEADER_KEY = 'Authorization';\r\n@Injectable()\r\nexport class AuthenticationInterceptor implements HttpInterceptor {\r\n private isRefreshing = false;\r\n private refreshTokenSubject: BehaviorSubject = new BehaviorSubject(\r\n null,\r\n );\r\n constructor(\r\n private tokenStorageService: TokenStorageService,\r\n private authenticationService: AuthenticationService,\r\n ) {}\r\n intercept(\r\n req: HttpRequest,\r\n next: HttpHandler,\r\n ): Observable> {\r\n let authReq = req;\r\n const token = this.tokenStorageService.getToken();\r\n if (token != null) {\r\n authReq = this.addTokenHeader(req, token);\r\n }\r\n return next.handle(authReq).pipe(\r\n catchError((error) => {\r\n if (\r\n error instanceof HttpErrorResponse &&\r\n !authReq.url.includes('auth/signin') &&\r\n error.status === 401\r\n ) {\r\n return this.handle401Error(authReq, next);\r\n }\r\n return throwError(error);\r\n }),\r\n );\r\n }\r\n private handle401Error(request: HttpRequest, next: HttpHandler) {\r\n if (!this.isRefreshing) {\r\n this.isRefreshing = true;\r\n this.refreshTokenSubject.next(null);\r\n const token = this.tokenStorageService.getRefreshToken();\r\n const user = this.tokenStorageService.currentUser;\r\n if (user.usersID && token)\r\n return this.authenticationService\r\n .refreshToken(user.usersID, token)\r\n .pipe(\r\n switchMap((token: any) => {\r\n this.isRefreshing = false;\r\n this.tokenStorageService.saveToken(token.accessToken);\r\n this.tokenStorageService.saveRefreshToken(token.refreshToken);\r\n this.refreshTokenSubject.next(token.accessToken);\r\n\r\n return next.handle(\r\n this.addTokenHeader(request, token.accessToken),\r\n );\r\n }),\r\n catchError((err) => {\r\n this.isRefreshing = false;\r\n\r\n this.authenticationService.signOut();\r\n return throwError(err);\r\n }),\r\n );\r\n }\r\n return this.refreshTokenSubject.pipe(\r\n filter((token) => token !== null),\r\n take(1),\r\n switchMap((token) => next.handle(this.addTokenHeader(request, token))),\r\n );\r\n }\r\n private addTokenHeader(request: HttpRequest, token: string) {\r\n return request.clone({\r\n headers: request.headers.set(TOKEN_HEADER_KEY, `Bearer ${token}`),\r\n });\r\n }\r\n}\r\nexport const authenticationInterceptorProviders = [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthenticationInterceptor,\r\n multi: true,\r\n },\r\n];\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { Router } from '@angular/router';\r\nimport { environment } from './../../../environments/environment';\r\nimport { Login } from './../../models/login';\r\nimport { GenericService } from './../../services/generic.service';\r\n\r\n@Injectable()\r\nexport class AuthenticationService extends GenericService {\r\n baseUrl = environment.apiUrl + 'auth';\r\n public loggedIn: BehaviorSubject = new BehaviorSubject(\r\n false,\r\n );\r\n constructor(public http: HttpClient, private router: Router) {\r\n super(http);\r\n }\r\n\r\n refreshToken(userId: number, token: string) {\r\n return this.http.post(\r\n `${this.baseUrl}/refresh-token`,\r\n {\r\n userId,\r\n refreshToken: token,\r\n },\r\n { headers: this.headers },\r\n );\r\n }\r\n\r\n login({ userName, password }: Login) {\r\n return this.http.post(\r\n `${this.baseUrl}/signin`,\r\n {\r\n userName,\r\n password,\r\n },\r\n { headers: this.headers },\r\n );\r\n }\r\n\r\n revokeToken() {\r\n return this.http.post(\r\n `${this.baseUrl}/revoke-token`,\r\n {},\r\n { headers: this.headers },\r\n );\r\n }\r\n\r\n signOut(): void {\r\n window.localStorage.clear();\r\n this.loggedIn.next(false);\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n public get isLoggedIn() {\r\n return this.loggedIn.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { User } from './user';\r\n\r\nconst TOKEN_KEY = 'auth-token';\r\nconst REFRESHTOKEN_KEY = 'auth-refreshtoken';\r\nconst USER_KEY = 'auth-user';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TokenStorageService {\r\n public saveToken(token: string): void {\r\n window.localStorage.removeItem(TOKEN_KEY);\r\n window.localStorage.setItem(TOKEN_KEY, token);\r\n const user = this.getUser();\r\n if (user.usersID) {\r\n this.saveUser({ ...user, accessToken: token });\r\n }\r\n }\r\n public getToken(): string | null {\r\n return window.localStorage.getItem(TOKEN_KEY);\r\n }\r\n public saveRefreshToken(token: string): void {\r\n window.localStorage.removeItem(REFRESHTOKEN_KEY);\r\n window.localStorage.setItem(REFRESHTOKEN_KEY, token);\r\n }\r\n public getRefreshToken(): string | null {\r\n return window.localStorage.getItem(REFRESHTOKEN_KEY);\r\n }\r\n public saveUser(user: User): void {\r\n window.localStorage.removeItem(USER_KEY);\r\n window.localStorage.setItem(USER_KEY, JSON.stringify(user));\r\n }\r\n public getUser(): User {\r\n const user = window.localStorage.getItem(USER_KEY);\r\n if (user) {\r\n return JSON.parse(user) as User;\r\n }\r\n return {} as User;\r\n }\r\n public get currentUser(): User {\r\n return this.getUser();\r\n }\r\n}\r\n","import { PAGE_NAME } from './pages';\r\n\r\nexport const CUSTOMER_FEATURE_KEY = {\r\n create: 'CUSTOMER_CREATE',\r\n edit: 'CUSTOMER_EDIT',\r\n view: 'CUSTOMER_VIEW',\r\n};\r\n\r\nexport const customerPermission = {\r\n [PAGE_NAME.customer]: {\r\n SuperUser: {\r\n [CUSTOMER_FEATURE_KEY.create]: 'access',\r\n [CUSTOMER_FEATURE_KEY.edit]: 'access',\r\n [CUSTOMER_FEATURE_KEY.view]: 'hidden',\r\n },\r\n User: {\r\n [CUSTOMER_FEATURE_KEY.create]: 'access',\r\n [CUSTOMER_FEATURE_KEY.edit]: 'access',\r\n [CUSTOMER_FEATURE_KEY.view]: 'hidden',\r\n },\r\n Viewer: {\r\n [CUSTOMER_FEATURE_KEY.create]: 'disabled',\r\n [CUSTOMER_FEATURE_KEY.edit]: 'hidden',\r\n [CUSTOMER_FEATURE_KEY.view]: 'access',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\n\r\nexport const ENAMEL_FEATURE_KEY = {\r\n create: 'ENAMEL_CREATE',\r\n edit: 'ENAMEL_EDIT',\r\n};\r\n\r\nexport const enamelPermission = {\r\n [PAGE_NAME.enamel]: {\r\n SuperUser: {\r\n [ENAMEL_FEATURE_KEY.create]: 'access',\r\n [ENAMEL_FEATURE_KEY.edit]: 'access',\r\n },\r\n User: {\r\n [ENAMEL_FEATURE_KEY.create]: 'access',\r\n [ENAMEL_FEATURE_KEY.edit]: 'access',\r\n },\r\n Viewer: {\r\n [ENAMEL_FEATURE_KEY.create]: 'disabled',\r\n [ENAMEL_FEATURE_KEY.edit]: 'disabled',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\n\r\nexport const FINDINGS_FEATURE_KEY = {\r\n create: 'FINDINGS_CREATE',\r\n edit: 'FINDINGS_EDIT',\r\n setting: 'FINDINGS_SETTING',\r\n addRouting: 'FINDINGS_ADD_ROUTING',\r\n};\r\n\r\nexport const findingsPermission = {\r\n [PAGE_NAME.finding]: {\r\n SuperUser: {\r\n [FINDINGS_FEATURE_KEY.create]: 'access',\r\n [FINDINGS_FEATURE_KEY.setting]: 'access',\r\n [FINDINGS_FEATURE_KEY.edit]: 'access',\r\n [FINDINGS_FEATURE_KEY.addRouting]: 'access',\r\n },\r\n User: {\r\n [FINDINGS_FEATURE_KEY.create]: 'access',\r\n [FINDINGS_FEATURE_KEY.setting]: 'access',\r\n [FINDINGS_FEATURE_KEY.edit]: 'access',\r\n [FINDINGS_FEATURE_KEY.addRouting]: 'access',\r\n },\r\n Viewer: {\r\n [FINDINGS_FEATURE_KEY.create]: 'disabled',\r\n [FINDINGS_FEATURE_KEY.setting]: 'disabled',\r\n [FINDINGS_FEATURE_KEY.edit]: 'disabled',\r\n [FINDINGS_FEATURE_KEY.addRouting]: 'hidden',\r\n },\r\n },\r\n};\r\n","import { customerPermission } from './customer-permission';\r\nimport { enamelPermission } from './enamel-permission';\r\nimport { findingsPermission } from './findings-permission';\r\nimport { invoicingShippingPermission } from './invoicing-shipping-permission';\r\nimport { orderDetailsPermission } from './order-details-permission';\r\nimport { otherComponentPermission } from './other-component-permission';\r\nimport { productPermission } from './product-permission';\r\nimport { purchaseOrderPermission } from './purchase-order-permission';\r\nimport { reportingPermission } from './reporting-permission';\r\nimport { stoneOpenOrderReportPermission } from './stone-open-order-report-permission';\r\nimport { stonePermission } from './stone-permission';\r\nimport { supplierPermission } from './supplier-permission';\r\nimport { workOrderMovementPermission } from './work-order-movement-permission';\r\nimport { workOrderPermission } from './work-order-permission';\r\n\r\nexport const USER_PERMISSIONS = {\r\n ...productPermission,\r\n ...workOrderPermission,\r\n ...purchaseOrderPermission,\r\n ...orderDetailsPermission,\r\n ...stonePermission,\r\n ...invoicingShippingPermission,\r\n ...reportingPermission,\r\n ...findingsPermission,\r\n ...enamelPermission,\r\n ...otherComponentPermission,\r\n ...supplierPermission,\r\n ...customerPermission,\r\n ...stoneOpenOrderReportPermission,\r\n ...workOrderMovementPermission,\r\n};\r\n","import { PAGE_NAME } from './pages';\r\n\r\nexport const INVOICING_SHIPPING_FEATURE_KEY = {\r\n create: 'INVOICING_SHIPPING_CREATE',\r\n edit: 'INVOICING_SHIPPING_EDIT',\r\n markAsPaid: 'INVOICING_SHIPPING_PAID',\r\n};\r\n\r\nexport const invoicingShippingPermission = {\r\n [PAGE_NAME.invoicingAndShipping]: {\r\n SuperUser: {\r\n [INVOICING_SHIPPING_FEATURE_KEY.create]: 'access',\r\n [INVOICING_SHIPPING_FEATURE_KEY.markAsPaid]: 'access',\r\n [INVOICING_SHIPPING_FEATURE_KEY.edit]: 'access',\r\n },\r\n User: {\r\n [INVOICING_SHIPPING_FEATURE_KEY.create]: 'access',\r\n [INVOICING_SHIPPING_FEATURE_KEY.markAsPaid]: 'access',\r\n [INVOICING_SHIPPING_FEATURE_KEY.edit]: 'hidden',\r\n },\r\n Viewer: {\r\n [INVOICING_SHIPPING_FEATURE_KEY.create]: 'disabled',\r\n [INVOICING_SHIPPING_FEATURE_KEY.edit]: 'hidden',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\n\r\nexport const ORDER_DETAILS_FEATURE_KEY = {\r\n saveButton: 'ORDER_DETAILS_SAVE_BUTTON',\r\n commentField: 'ORDER_DETAILS_COMMENT_FIELD',\r\n shippingField: 'ORDER_DETAILS_SHIPPING_FIELD',\r\n billingField: 'ORDER_DETAILS_BILLING_FIELD',\r\n internalPoField: 'ORDER_DETAILS_INTERNAL_PO_FIELD',\r\n customerField: 'ORDER_DETAILS_CUSTOMER_FIELD',\r\n receivedDateField: 'ORDER_DETAILS_RECEIVED_DATE_FIELD',\r\n entryDateField: 'ORDER_DETAILS_ENTRY_DATE_FIELD',\r\n dueDateField: 'ORDER_DETAILS_DUE_DATE_FIELD',\r\n externalPoField: 'ORDER_DETAILS_EXTERNAL_PO_FIELD',\r\n generateWorkOrder: 'ORDER_DETAILS_GENERATE_WORK_ORDER_FIELD',\r\n addOrderDetail: 'ORDER_DETAILS_ADD_ORDER_DETAIL_FIELD',\r\n updateDetail: 'ORDER_DETAILS_UPDATE_DETAIL_FIELD',\r\n deleteDetail: 'ORDER_DETAILS_DELETE_DETAIL_FIELD',\r\n printDetail: 'ORDER_DETAILS_PRINT_DETAIL_FIELD',\r\n clearDetail: 'ORDER_DETAILS_CLEAR_DETAIL',\r\n byPassWorkOrder: 'ORDER_DETAILS_BY_PASS_WORK_ORDER',\r\n deleteOrder: 'ORDER_DETAILS_DELETE',\r\n};\r\n\r\nexport const orderDetailsPermission = {\r\n [PAGE_NAME.orderDetails]: {\r\n SuperUser: {\r\n [ORDER_DETAILS_FEATURE_KEY.saveButton]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.commentField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.shippingField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.billingField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.internalPoField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.customerField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.receivedDateField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.entryDateField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.dueDateField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.externalPoField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.generateWorkOrder]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.addOrderDetail]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.updateDetail]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.deleteDetail]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.printDetail]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.clearDetail]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.byPassWorkOrder]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.deleteOrder]: 'access',\r\n },\r\n User: {\r\n [ORDER_DETAILS_FEATURE_KEY.saveButton]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.commentField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.shippingField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.billingField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.internalPoField]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.customerField]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.receivedDateField]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.entryDateField]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.dueDateField]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.externalPoField]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.generateWorkOrder]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.addOrderDetail]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.updateDetail]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.deleteDetail]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.printDetail]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.clearDetail]: 'hidden',\r\n [ORDER_DETAILS_FEATURE_KEY.byPassWorkOrder]: 'access',\r\n [ORDER_DETAILS_FEATURE_KEY.deleteOrder]: 'access',\r\n },\r\n Viewer: {\r\n [ORDER_DETAILS_FEATURE_KEY.saveButton]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.commentField]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.shippingField]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.billingField]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.internalPoField]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.generateWorkOrder]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.addOrderDetail]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.updateDetail]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.deleteDetail]: 'hidden',\r\n [ORDER_DETAILS_FEATURE_KEY.printDetail]: 'disabled',\r\n [ORDER_DETAILS_FEATURE_KEY.clearDetail]: 'hidden',\r\n [ORDER_DETAILS_FEATURE_KEY.byPassWorkOrder]: 'hidden',\r\n [ORDER_DETAILS_FEATURE_KEY.deleteOrder]: 'hidden',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\n\r\nexport const OTHER_COMPONENT_FEATURE_KEY = {\r\n create: 'OTHER_COMPONENT_CREATE',\r\n edit: 'OTHER_COMPONENT_EDIT',\r\n};\r\n\r\nexport const otherComponentPermission = {\r\n [PAGE_NAME.otherComponents]: {\r\n SuperUser: {\r\n [OTHER_COMPONENT_FEATURE_KEY.create]: 'access',\r\n [OTHER_COMPONENT_FEATURE_KEY.edit]: 'access',\r\n },\r\n User: {\r\n [OTHER_COMPONENT_FEATURE_KEY.create]: 'access',\r\n [OTHER_COMPONENT_FEATURE_KEY.edit]: 'access',\r\n },\r\n Viewer: {\r\n [OTHER_COMPONENT_FEATURE_KEY.create]: 'disabled',\r\n [OTHER_COMPONENT_FEATURE_KEY.edit]: 'disabled',\r\n },\r\n },\r\n};\r\n","export const PAGE_NAME = {\r\n account: 'ACCOUNT_PAGE',\r\n product: 'PRODUCT_PAGE',\r\n order: 'ORDER_VIEW_PAGE',\r\n orderDetails: 'ORDER_DETAILS_PAGE',\r\n workOrder: 'WORK_ORDER_PAGE',\r\n openOrderReport: 'OPEN_ORDER_REPORT_PAGE',\r\n stoneOpenOrderReport: 'STONE_OPEN_ORDER_REPORT_PAGE',\r\n stone: 'STONE_PAGE',\r\n chain: 'CHAIN_PAGE',\r\n finding: 'FINDING_PAGE',\r\n metalGrain: 'METAL_GRAIN_PAGE',\r\n enamel: 'ENAMEL_PAGE',\r\n otherComponents: 'OTHER_COMPONENTS_PAGE',\r\n nonPrecious: 'NON_PRECIOUS_PAGE',\r\n manufacturedMaterial: 'MANUFACTURED_MATERIAL_PAGE',\r\n supplier: 'SUPPLIER_PAGE',\r\n customer: 'CUSTOMER_PAGE',\r\n inventory: 'INVENTORY_LOG_PAGE',\r\n invoicingAndShipping: 'INVOICING_AND_SHIPPING_PAGE',\r\n reporting: 'REPORTING_PAGE',\r\n itemWeights: 'REPORTING_ITEM_WEIGHTS_PAGE',\r\n workOrderTracking: 'WORK_ORDER_TRACKING_PAGE',\r\n workOrderMovement: 'WORK_ORDER_MOVEMENT_PAGE',\r\n workOrderLabelPrinting: 'WORK_ORDER_LABEL_PRINTING_PAGE',\r\n productQuery: 'PRODUCT_QUERY_PAGE',\r\n equation: 'EQUATION_PAGE',\r\n priceDefaults: 'PRICE_DEFAULTS_PAGE',\r\n metalOverheadEquations: 'METAL_OVERHEAD_EQUATIONS_PAGE',\r\n reports: 'REPORTS_PAGE',\r\n productPricing: 'PRODUCT_PRICING_PAGE',\r\n superAdminTools: 'SUPER_ADMIN_TOOLS',\r\n chainPricing: 'CHAIN_PRICING_PAGE',\r\n};\r\n\r\nexport const PAGES = [\r\n {\r\n pageName: PAGE_NAME.account,\r\n label: 'Accounts',\r\n disabled: false,\r\n customAccessLevel: ['SuperUser'],\r\n },\r\n {\r\n pageName: PAGE_NAME.product,\r\n label: 'Products',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.order,\r\n label: 'Purchase Orders',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.workOrder,\r\n label: 'Work Orders',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.reporting,\r\n label: 'Reporting',\r\n disabled: false,\r\n customAccessLevel: ['SuperUser', 'User'],\r\n },\r\n {\r\n pageName: PAGE_NAME.openOrderReport,\r\n label: 'Open Order Report',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.orderDetails,\r\n label: 'Order Details',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.invoicingAndShipping,\r\n label: 'Invoicing And Shipping',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.stone,\r\n label: 'Stones',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.finding,\r\n label: 'Findings',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.enamel,\r\n label: 'Enamel',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.otherComponents,\r\n label: 'Other Components',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.supplier,\r\n label: 'Supplier',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.customer,\r\n label: 'Customer',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.workOrderTracking,\r\n label: 'Work Order Tracking',\r\n disabled: false,\r\n customAccessLevel: ['SuperUser', 'User'],\r\n },\r\n {\r\n pageName: PAGE_NAME.stoneOpenOrderReport,\r\n label: 'Stone Open Order Report',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.workOrderMovement,\r\n label: 'Work Order Movement',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.workOrderLabelPrinting,\r\n label: 'Package Label Printing',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.productQuery,\r\n label: 'Product Query',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.chain,\r\n label: 'Chain',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.itemWeights,\r\n label: 'Item Weights',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.equation,\r\n label: 'Equations',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.priceDefaults,\r\n label: 'Price Defaults',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.productPricing,\r\n label: 'Product Pricing',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.metalOverheadEquations,\r\n label: 'Metal Overhead Equations',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.reports,\r\n label: 'Reports',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.superAdminTools,\r\n label: 'Super Admin Tools',\r\n disabled: false,\r\n },\r\n {\r\n pageName: PAGE_NAME.chainPricing,\r\n label: 'Chain Pricing',\r\n disabled: false,\r\n },\r\n];\r\n","import { PAGE_NAME } from './pages';\r\nexport const PRODUCT_FEATURE_KEY = {\r\n newProductButton: 'PRODUCT_NEW_BUTTON',\r\n editProductButton: 'PRODUCT_EDIT_BUTTON',\r\n deleteNonCustom: 'PRODUCT_DELETE_NON_CUSTOM',\r\n deleteCustom: 'PRODUCT_DELETE_CUSTOM',\r\n deleteMaterial: 'PRODUCT_DELETE_MATERIAL',\r\n deleteSize: 'PRODUCT_DELETE_SIZES',\r\n viewProductRouting: 'PRODUCT_VIEW_PRODUCT_ROUTING',\r\n addProductRouting: 'PRODUCT_ADD_PRODUCT_ROUTING',\r\n editProductRouting: 'PRODUCT_EDIT_PRODUCT_ROUTING',\r\n deleteProductRouting: 'PRODUCT_DELETE_PRODUCT_ROUTING',\r\n productSetting: 'PRODUCT_SETTINGS',\r\n};\r\n\r\nexport const productPermission = {\r\n [PAGE_NAME.product]: {\r\n SuperUser: {\r\n [PRODUCT_FEATURE_KEY.newProductButton]: 'access',\r\n [PRODUCT_FEATURE_KEY.editProductButton]: 'access',\r\n [PRODUCT_FEATURE_KEY.deleteNonCustom]: 'access',\r\n [PRODUCT_FEATURE_KEY.deleteCustom]: 'access',\r\n [PRODUCT_FEATURE_KEY.deleteMaterial]: 'access',\r\n [PRODUCT_FEATURE_KEY.deleteSize]: 'access',\r\n [PRODUCT_FEATURE_KEY.viewProductRouting]: 'access',\r\n [PRODUCT_FEATURE_KEY.addProductRouting]: 'access',\r\n [PRODUCT_FEATURE_KEY.editProductRouting]: 'access',\r\n [PRODUCT_FEATURE_KEY.deleteProductRouting]: 'access',\r\n [PRODUCT_FEATURE_KEY.productSetting]: 'access',\r\n },\r\n User: {\r\n [PRODUCT_FEATURE_KEY.newProductButton]: 'access',\r\n [PRODUCT_FEATURE_KEY.editProductButton]: 'access',\r\n [PRODUCT_FEATURE_KEY.deleteNonCustom]: 'access',\r\n [PRODUCT_FEATURE_KEY.deleteCustom]: 'access',\r\n [PRODUCT_FEATURE_KEY.deleteMaterial]: 'hidden',\r\n [PRODUCT_FEATURE_KEY.deleteSize]: 'hidden',\r\n [PRODUCT_FEATURE_KEY.viewProductRouting]: 'access',\r\n [PRODUCT_FEATURE_KEY.addProductRouting]: 'access',\r\n [PRODUCT_FEATURE_KEY.editProductRouting]: 'access',\r\n [PRODUCT_FEATURE_KEY.deleteProductRouting]: 'access',\r\n [PRODUCT_FEATURE_KEY.productSetting]: 'hidden',\r\n },\r\n Viewer: {\r\n [PRODUCT_FEATURE_KEY.viewProductRouting]: 'access',\r\n [PRODUCT_FEATURE_KEY.addProductRouting]: 'disabled',\r\n [PRODUCT_FEATURE_KEY.editProductRouting]: 'hidden',\r\n [PRODUCT_FEATURE_KEY.deleteProductRouting]: 'hidden',\r\n [PRODUCT_FEATURE_KEY.productSetting]: 'hidden',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\n\r\nexport const PURCHASE_ORDER_FEATURE_KEY = {\r\n newOrder: 'PURCHASE_ORDER_NEW_ORDER',\r\n};\r\n\r\nexport const purchaseOrderPermission = {\r\n [PAGE_NAME.order]: {\r\n SuperUser: {\r\n [PURCHASE_ORDER_FEATURE_KEY.newOrder]: 'access',\r\n },\r\n User: {\r\n [PURCHASE_ORDER_FEATURE_KEY.newOrder]: 'access',\r\n },\r\n Viewer: {\r\n [PURCHASE_ORDER_FEATURE_KEY.newOrder]: 'disabled',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\nexport const REPORTING_FEATURE_KEY = {\r\n page: 'REPORTING_PAGE',\r\n edit: 'STONE_EDIT',\r\n customImage: 'STONE_CUSTOM_IMAGE',\r\n};\r\n\r\nexport const reportingPermission = {\r\n [PAGE_NAME.reporting]: {\r\n SuperUser: {\r\n [REPORTING_FEATURE_KEY.page]: 'access',\r\n },\r\n User: {\r\n [REPORTING_FEATURE_KEY.page]: 'access',\r\n },\r\n Viewer: {\r\n [REPORTING_FEATURE_KEY.page]: 'hidden',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\n\r\nexport const STONE_OPEN_ORDER_FEATURE_KEY = {\r\n release: 'STONE_OPEN_ORDER_RELEASE',\r\n};\r\n\r\nexport const stoneOpenOrderReportPermission = {\r\n [PAGE_NAME.stoneOpenOrderReport]: {\r\n SuperUser: {\r\n [STONE_OPEN_ORDER_FEATURE_KEY.release]: 'access',\r\n },\r\n User: {\r\n [STONE_OPEN_ORDER_FEATURE_KEY.release]: 'access',\r\n },\r\n Viewer: {\r\n [STONE_OPEN_ORDER_FEATURE_KEY.release]: 'disabled',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\nexport const STONE_FEATURE_KEY = {\r\n add: 'STONE_ADD',\r\n edit: 'STONE_EDIT',\r\n customImage: 'STONE_CUSTOM_IMAGE',\r\n inventoryAdjustment: 'STONE_INVENTORY_ADJUSTMENT',\r\n};\r\n\r\nexport const stonePermission = {\r\n [PAGE_NAME.stone]: {\r\n SuperUser: {\r\n [STONE_FEATURE_KEY.add]: 'access',\r\n [STONE_FEATURE_KEY.edit]: 'access',\r\n [STONE_FEATURE_KEY.customImage]: 'access',\r\n [STONE_FEATURE_KEY.inventoryAdjustment]: 'access',\r\n },\r\n User: {\r\n [STONE_FEATURE_KEY.add]: 'access',\r\n [STONE_FEATURE_KEY.edit]: 'access',\r\n [STONE_FEATURE_KEY.customImage]: 'hidden',\r\n [STONE_FEATURE_KEY.inventoryAdjustment]: 'access',\r\n },\r\n Viewer: {\r\n [STONE_FEATURE_KEY.add]: 'disabled',\r\n [STONE_FEATURE_KEY.edit]: 'disabled',\r\n [STONE_FEATURE_KEY.customImage]: 'hidden',\r\n [STONE_FEATURE_KEY.inventoryAdjustment]: 'hidden',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\n\r\nexport const SUPPLIER_FEATURE_KEY = {\r\n create: 'SUPPLIER_CREATE',\r\n edit: 'SUPPLIER_EDIT',\r\n};\r\n\r\nexport const supplierPermission = {\r\n [PAGE_NAME.supplier]: {\r\n SuperUser: {\r\n [SUPPLIER_FEATURE_KEY.create]: 'access',\r\n [SUPPLIER_FEATURE_KEY.edit]: 'access',\r\n },\r\n User: {\r\n [SUPPLIER_FEATURE_KEY.create]: 'access',\r\n [SUPPLIER_FEATURE_KEY.edit]: 'access',\r\n },\r\n Viewer: {\r\n [SUPPLIER_FEATURE_KEY.create]: 'disabled',\r\n [SUPPLIER_FEATURE_KEY.edit]: 'disabled',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\n\r\nexport const WORK_ORDER_MOVEMENT_FEATURE_KEY = {\r\n cancelOpenWorkOrder: 'CANCEL_WORK_ORDER',\r\n};\r\n\r\nexport const workOrderMovementPermission = {\r\n [PAGE_NAME.workOrderMovement]: {\r\n SuperUser: {\r\n [WORK_ORDER_MOVEMENT_FEATURE_KEY.cancelOpenWorkOrder]: 'access',\r\n },\r\n User: {\r\n [WORK_ORDER_MOVEMENT_FEATURE_KEY.cancelOpenWorkOrder]: 'hidden',\r\n },\r\n Viewer: {\r\n [WORK_ORDER_MOVEMENT_FEATURE_KEY.cancelOpenWorkOrder]: 'hidden',\r\n },\r\n },\r\n};\r\n","import { PAGE_NAME } from './pages';\r\nexport const WORK_ORDER_FEATURE_KEY = {\r\n release: 'WORK_ORDER_RELEASE',\r\n receive: 'WORK_ORDER_RECEIVE',\r\n print: 'WORK_ORDER_PRINT',\r\n notPrinted: 'WORK_ORDER_NOT_PRINTED',\r\n delete: 'WORK_ORDER_DELETE',\r\n weightEdit: 'WORK_ORDER_WEIGHT_EDIT'\r\n};\r\n\r\nexport const workOrderPermission = {\r\n [PAGE_NAME.workOrder]: {\r\n SuperUser: {\r\n [WORK_ORDER_FEATURE_KEY.release]: 'access',\r\n [WORK_ORDER_FEATURE_KEY.receive]: 'access',\r\n [WORK_ORDER_FEATURE_KEY.print]: 'access',\r\n [WORK_ORDER_FEATURE_KEY.notPrinted]: 'access',\r\n [WORK_ORDER_FEATURE_KEY.delete]: 'access',\r\n [WORK_ORDER_FEATURE_KEY.weightEdit]: 'access',\r\n },\r\n User: {\r\n [WORK_ORDER_FEATURE_KEY.release]: 'access',\r\n [WORK_ORDER_FEATURE_KEY.receive]: 'access',\r\n [WORK_ORDER_FEATURE_KEY.print]: 'access',\r\n [WORK_ORDER_FEATURE_KEY.notPrinted]: 'hidden',\r\n [WORK_ORDER_FEATURE_KEY.delete]: 'hidden',\r\n [WORK_ORDER_FEATURE_KEY.weightEdit]: 'hidden',\r\n },\r\n Viewer: {\r\n [WORK_ORDER_FEATURE_KEY.release]: 'disabled',\r\n [WORK_ORDER_FEATURE_KEY.receive]: 'disabled',\r\n [WORK_ORDER_FEATURE_KEY.print]: 'disabled',\r\n [WORK_ORDER_FEATURE_KEY.notPrinted]: 'hidden',\r\n [WORK_ORDER_FEATURE_KEY.delete]: 'hidden',\r\n [WORK_ORDER_FEATURE_KEY.weightEdit]: 'hidden',\r\n },\r\n },\r\n};\r\n","import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { UserPermissionService } from './user-permission.service';\r\n\r\n@Directive({\r\n selector: '[userPermission]',\r\n})\r\nexport class UserPermissionDirective implements OnInit, OnDestroy {\r\n @Input('elementKey') elementKey: string;\r\n @Input('disabled') disabled?: boolean;\r\n @Input('overrideDisable') overrideDisable?: boolean;\r\n @Input('hidden') hidden?: boolean;\r\n\r\n hasAccess: boolean = true;\r\n\r\n intervalId;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private userPermissionService: UserPermissionService,\r\n private tokenStorageService: TokenStorageService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.elementRef.nativeElement.disabled = true;\r\n this.checkAccess();\r\n\r\n fromEvent(this.elementRef.nativeElement, 'click', {\r\n capture: true,\r\n }).subscribe((e: MouseEvent) => {\r\n if (!this.hasAccess) {\r\n e.stopImmediatePropagation();\r\n }\r\n });\r\n }\r\n checkAccess() {\r\n const user = this.tokenStorageService.getUser();\r\n if (\r\n user.isAdmin ||\r\n this.userPermissionService.userFeaturesPermission != null\r\n ) {\r\n this.checkPermissions(this.userPermissionService.userFeaturesPermission);\r\n } else {\r\n this.intervalId = setInterval(() => {\r\n this.checkPermissions(\r\n this.userPermissionService.userFeaturesPermission,\r\n );\r\n }, 200);\r\n }\r\n }\r\n checkPermissions(permissions) {\r\n const user = this.tokenStorageService.getUser();\r\n const control = permissions?.[this.elementKey];\r\n\r\n if (user.isAdmin || control === 'access') {\r\n this.elementRef.nativeElement.style.display = 'block';\r\n this.elementRef.nativeElement.disabled = this.overrideDisable ?? false;\r\n this.hasAccess = true;\r\n } else if (control === 'hidden') {\r\n const isHidden = this.hidden ?? true;\r\n this.elementRef.nativeElement.style.display = isHidden ? 'none' : 'block';\r\n this.hasAccess = false;\r\n } else {\r\n this.elementRef.nativeElement.disabled = true;\r\n this.hasAccess = false;\r\n }\r\n if (permissions != null || user.isAdmin) {\r\n this.onDestroyIntervals();\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.onDestroyIntervals();\r\n }\r\n\r\n onDestroyIntervals() {\r\n if (!this.intervalId) return;\r\n for (let i = 1; i <= this.intervalId; i++) {\r\n clearInterval(i);\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AuthenticationService } from 'src/app/core/authentication/authentication.service';\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { PAGES } from 'src/app/core/user-permission/user-permission-rules/pages';\r\nimport { LoadService } from 'src/app/custom/load-overlay/load-overlay.service';\r\nimport { environment } from '../../../environments/environment';\r\nimport { GenericService } from '../../services/generic.service';\r\nimport { UserPermission } from './user-permission';\r\nimport { USER_PERMISSIONS } from './user-permission-rules';\r\n\r\n@Injectable()\r\nexport class UserPermissionService extends GenericService {\r\n baseUrl = environment.apiUrl + 'user-permissions';\r\n userFeaturesPermission = null;\r\n userPagePermission = null;\r\n constructor(\r\n public http: HttpClient,\r\n public router: Router,\r\n public loadService: LoadService,\r\n public tokenStorageService: TokenStorageService,\r\n public authenticationService: AuthenticationService,\r\n ) {\r\n super(http);\r\n }\r\n\r\n getCurrentUserPermissions(userId: number): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/${userId}`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((userPermissions: UserPermission[]) => {\r\n this.userPagePermission = userPermissions.reduce(\r\n (normalized, pagePermission) => {\r\n const permission = PAGES.find(\r\n (p) => p.pageName === pagePermission.pageName,\r\n );\r\n if (!permission) return normalized;\r\n const { customAccessLevel, disabled } = permission;\r\n return {\r\n ...normalized,\r\n [pagePermission.pageName]: {\r\n ...pagePermission,\r\n disabled,\r\n hasCustomAccess:\r\n !customAccessLevel?.length ||\r\n customAccessLevel?.includes(pagePermission.accessLevel),\r\n },\r\n };\r\n },\r\n {},\r\n );\r\n this.userFeaturesPermission = userPermissions.reduce(\r\n (permissions, userPermission) => {\r\n const pagePermissions =\r\n USER_PERMISSIONS[userPermission.pageName]?.[\r\n userPermission.accessLevel\r\n ] ?? {};\r\n return { ...permissions, ...pagePermissions };\r\n },\r\n {},\r\n );\r\n this.loadService.reloadNavigation();\r\n return userPermissions;\r\n }),\r\n );\r\n }\r\n\r\n getUserPermissions(userId: number): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/${userId}`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((userPermissions: UserPermission[]) => {\r\n return userPermissions.reduce((normalized, pagePermission) => {\r\n return {\r\n ...normalized,\r\n [pagePermission.pageName]: pagePermission,\r\n };\r\n }, {});\r\n }),\r\n );\r\n }\r\n\r\n setUserPermissions(permissions: UserPermission[]) {\r\n return this.http.post(this.baseUrl, permissions, { headers: this.headers });\r\n }\r\n\r\n checkPagePermission(pageName) {\r\n const { usersID, isAdmin } = this.tokenStorageService.currentUser;\r\n if (!usersID) {\r\n this.authenticationService.signOut();\r\n return;\r\n }\r\n if (isAdmin) return;\r\n if (!this.userPagePermission) {\r\n this.loadService.load(true);\r\n this.getCurrentUserPermissions(usersID).subscribe(() => {\r\n this.checkDisabledPermission(pageName);\r\n this.loadService.load(false);\r\n });\r\n return;\r\n }\r\n this.checkDisabledPermission(pageName);\r\n }\r\n\r\n checkDisabledPermission(pageName) {\r\n const { accessLevel, disabled, hasCustomAccess } =\r\n this.userPagePermission?.[pageName] ?? {\r\n accessLevel: 'Disabled',\r\n disabled: false,\r\n };\r\n const hasAccess =\r\n disabled == null || (accessLevel !== 'Disabled' && hasCustomAccess);\r\n\r\n if (!hasAccess) {\r\n this.router.navigate(['/forbidden']);\r\n }\r\n }\r\n\r\n hasAccess(key) {\r\n const user = this.tokenStorageService.getUser();\r\n return user.isAdmin || this.userFeaturesPermission?.[key] === 'access';\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { Alert, AlertType } from './alert.model';\r\nimport { AlertService } from './alert.service';\r\n\r\n@Component({\r\n selector: 'q-alert',\r\n templateUrl: 'alert.component.html',\r\n styleUrls: ['./alert.component.scss'],\r\n})\r\nexport class AlertComponent implements OnInit, OnDestroy {\r\n @Input() id: string;\r\n\r\n alerts: Alert[] = [];\r\n subscription: Subscription;\r\n\r\n constructor(private alertService: AlertService) {}\r\n\r\n ngOnInit() {\r\n this.subscription = this.alertService\r\n .onAlert(this.id)\r\n .subscribe((alert) => {\r\n if (!alert.message) {\r\n // clear alerts when an empty alert is received\r\n this.alerts = [];\r\n return;\r\n }\r\n\r\n // add alert to array\r\n this.alerts.push(alert);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n // unsubscribe to avoid memory leaks\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n removeAlert(alert: Alert) {\r\n // remove specified alert from array\r\n this.alerts = this.alerts.filter((x) => x !== alert);\r\n }\r\n\r\n cssClass(alert: Alert) {\r\n if (!alert) {\r\n return;\r\n }\r\n\r\n // return css class based on alert type\r\n switch (alert.type) {\r\n case AlertType.Success:\r\n return 'alert alert-success';\r\n case AlertType.Error:\r\n return 'alert alert-danger';\r\n case AlertType.Info:\r\n return 'alert alert-info';\r\n case AlertType.Warning:\r\n return 'alert alert-warning';\r\n }\r\n }\r\n}\r\n","\r\n {{ alert.message }}\r\n ×\r\n\r\n","export class Alert {\r\n type: AlertType;\r\n message: string;\r\n alertId: string;\r\n keepAfterRouteChange: boolean;\r\n\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport enum AlertType {\r\n Success,\r\n Error,\r\n Info,\r\n Warning,\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AlertComponent } from './alert.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [AlertComponent],\r\n exports: [AlertComponent],\r\n})\r\nexport class AlertModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { Alert, AlertType } from './alert.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AlertService {\r\n private subject = new Subject();\r\n private keepAfterRouteChange = false;\r\n\r\n constructor(private router: Router) {\r\n // clear alert messages on route change unless 'keepAfterRouteChange' flag is true\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationStart) {\r\n if (this.keepAfterRouteChange) {\r\n // only keep for a single route change\r\n this.keepAfterRouteChange = false;\r\n } else {\r\n // clear alert messages\r\n this.clear();\r\n }\r\n }\r\n });\r\n }\r\n\r\n // enable subscribing to alerts observable\r\n onAlert(alertId?: string): Observable {\r\n return this.subject\r\n .asObservable()\r\n .pipe(filter((x) => x && x.alertId === alertId));\r\n }\r\n\r\n // convenience methods\r\n success(message: string, alertId?: string) {\r\n this.alert(new Alert({ message, type: AlertType.Success, alertId }));\r\n }\r\n\r\n error(message: string, alertId?: string) {\r\n this.alert(new Alert({ message, type: AlertType.Error, alertId }));\r\n }\r\n\r\n info(message: string, alertId?: string) {\r\n this.alert(new Alert({ message, type: AlertType.Info, alertId }));\r\n }\r\n\r\n warn(message: string, alertId?: string) {\r\n this.alert(new Alert({ message, type: AlertType.Warning, alertId }));\r\n }\r\n\r\n // main alert method\r\n alert(alert: Alert) {\r\n this.keepAfterRouteChange = alert.keepAfterRouteChange;\r\n this.subject.next(alert);\r\n setTimeout(() => {\r\n let element = document.getElementById('alert');\r\n if (element != null) {\r\n element.classList.add('hide-alert');\r\n }\r\n }, 5000);\r\n setTimeout(() => {\r\n this.clear();\r\n }, 8000);\r\n }\r\n\r\n // clear alerts\r\n clear(alertId?: string) {\r\n this.subject.next(new Alert({ alertId }));\r\n }\r\n}\r\n","export * from './alert.model';\r\nexport * from './alert.module';\r\nexport * from './alert.service';\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivate,\r\n Router,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\n\r\nimport { TokenStorageService } from '../core/authentication/token-storage.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private tokenStorageService: TokenStorageService,\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const currentUser = this.tokenStorageService.currentUser;\r\n if (currentUser?.usersID || currentUser?.isAdmin) {\r\n return true;\r\n } else {\r\n this.router.navigate(['/login'], {\r\n queryParams: { returnUrl: state.url },\r\n });\r\n return false;\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[autofocus]',\r\n})\r\nexport class AutofocusDirective {\r\n constructor(private host: ElementRef) {}\r\n\r\n ngAfterViewInit() {\r\n this.host.nativeElement.focus();\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n Optional,\r\n} from '@angular/core';\r\nimport { NgModel } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[appNumberOnly]',\r\n})\r\nexport class NumberOnlyDirective {\r\n @Input() allowNegative: boolean = false;\r\n @Input() minValue: number;\r\n @Input() maxValue: number;\r\n\r\n constructor(private el: ElementRef, @Optional() private ngModel: NgModel) {}\r\n\r\n @HostListener('input', ['$event']) onInputChange(event: Event) {\r\n const initialValue = this.el.nativeElement.value;\r\n let value = this.allowNegative\r\n ? initialValue.replace(/[^-0-9]/g, '')\r\n : initialValue.replace(/[^0-9]/g, '');\r\n\r\n const parsedValue = parseInt(value);\r\n\r\n if (!isNaN(parsedValue)) {\r\n if (this.minValue !== undefined && parsedValue < this.minValue) {\r\n value = String(this.minValue);\r\n } else if (this.maxValue !== undefined && parsedValue > this.maxValue) {\r\n value = String(this.maxValue);\r\n }\r\n }\r\n\r\n this.el.nativeElement.value = value;\r\n\r\n if (this.ngModel) {\r\n this.ngModel.update.emit(value);\r\n }\r\n\r\n if (initialValue !== this.el.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { LoadService } from './load-overlay.service';\r\n\r\n@Component({\r\n selector: 'riva-load-overlay',\r\n templateUrl: './load-overlay.component.html',\r\n styleUrls: ['./load-overlay.component.scss'],\r\n})\r\nexport class LoadOverlayComponent implements OnInit, OnDestroy {\r\n subscription: Subscription;\r\n loading: boolean = false;\r\n\r\n constructor(private loadService: LoadService) {}\r\n\r\n ngOnInit() {\r\n this.subscription = this.loadService.onLoad().subscribe((result) => {\r\n this.loading = result;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'riva-load-content-overlay',\r\n templateUrl: './load-content-overlay.component.html',\r\n styleUrls: ['./load-overlay.component.scss'],\r\n})\r\nexport class LoadContentOverlayComponent implements OnInit, OnDestroy {\r\n subscription: Subscription;\r\n loadingContent: boolean = false;\r\n\r\n constructor(private loadService: LoadService) {}\r\n\r\n ngOnInit() {\r\n this.subscription = this.loadService.onContentLoad().subscribe((result) => {\r\n this.loadingContent = result;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LoadService {\r\n private subject = new Subject();\r\n private subjectContent = new Subject();\r\n public reloadNavigation = () => {};\r\n public reloadOrderDetails = () => {};\r\n public reloadProductFindings = () => {};\r\n public reloadStoneProduct = () => {};\r\n public reloadWorkOrders = () => {};\r\n public reloadProductChainUnfinished = () => {};\r\n public reloadProductChainFinished = () => {};\r\n public isSavingProductRouting = false;\r\n public isSavingChainRouting = false;\r\n public isSavingFindingRouting = false;\r\n public isSavingOtherComponentRouting = false;\r\n\r\n onLoad(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n onContentLoad(): Observable {\r\n return this.subjectContent.asObservable();\r\n }\r\n\r\n load(load: boolean) {\r\n this.subject.next(load);\r\n }\r\n\r\n loadContent(load: boolean) {\r\n this.subjectContent.next(load);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'riva-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss'],\r\n})\r\nexport class NotificationComponent {}\r\n","
    \r\n \r\n
    \r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'rivaEnumArray' })\r\nexport class EnumToArrayPipe implements PipeTransform {\r\n transform(value): Object {\r\n return Object.keys(value)\r\n .filter((e) => !isNaN(+e))\r\n .map((o) => {\r\n return { value: o, text: value[o] };\r\n });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'idPipe' })\r\nexport class IdPipe implements PipeTransform {\r\n transform(value) {\r\n let x = '0000000';\r\n let x_split = x.split('');\r\n let value_split = (value + '').split('');\r\n let x_length = x_split.length;\r\n let value_length = value_split.length;\r\n let starting_index = x_length - value_length;\r\n let index = 0;\r\n for (starting_index; starting_index < x_length; starting_index++) {\r\n if (index < value_length) {\r\n x_split[starting_index] = value_split[index];\r\n index++;\r\n }\r\n }\r\n\r\n return x_split.join('');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'noComma',\r\n})\r\nexport class NoCommaPipe implements PipeTransform {\r\n transform(val: string): string {\r\n if (val !== undefined && val !== null) {\r\n return val.replace(/,/g, '');\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { UserPermission } from 'src/app/core/user-permission/user-permission';\r\nimport { PAGE_NAME } from 'src/app/core/user-permission/user-permission-rules/pages';\r\ninterface SubMenu {\r\n name: string;\r\n url: string;\r\n permissionName?: string;\r\n pageName?: string;\r\n permission?: UserPermission | null;\r\n isDefaultPage?: boolean;\r\n hidden?: boolean;\r\n}\r\n\r\ninterface Menu {\r\n name: string;\r\n url?: string;\r\n icon: string;\r\n subMenu?: SubMenu[];\r\n permissionName?: string;\r\n pageName?: string;\r\n permission?: UserPermission | null;\r\n isDefaultPage?: boolean;\r\n hidden?: boolean;\r\n}\r\n\r\nexport const DEFAULT_ROUTE_PAGE = '/main/ordersview';\r\n\r\nexport const menus: Menu[] = [\r\n {\r\n name: 'Super Admin Tools',\r\n url: '/admin/tools',\r\n icon: 'code',\r\n permissionName: 'Super Admin Tools',\r\n pageName: PAGE_NAME.superAdminTools,\r\n },\r\n {\r\n name: 'Administration',\r\n icon: 'setting',\r\n subMenu: [\r\n {\r\n name: 'Accounts & Permissions',\r\n url: '/admin/accounts',\r\n permissionName: 'Accounts',\r\n pageName: PAGE_NAME.account,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'Product & Materials',\r\n icon: 'shop',\r\n subMenu: [\r\n {\r\n name: 'Products',\r\n url: '/main/products',\r\n pageName: PAGE_NAME.product,\r\n },\r\n {\r\n name: 'Stones',\r\n url: '/main/stones',\r\n pageName: PAGE_NAME.stone,\r\n },\r\n {\r\n name: 'Findings',\r\n url: '/items/findings/jumprings',\r\n pageName: PAGE_NAME.finding,\r\n },\r\n {\r\n name: 'Chain',\r\n url: '/items/chain/chain-raw',\r\n pageName: PAGE_NAME.chain,\r\n },\r\n {\r\n name: 'Enamel',\r\n url: '/items/enamel',\r\n pageName: PAGE_NAME.enamel,\r\n },\r\n {\r\n name: 'Other Components',\r\n url: '/items/other-components',\r\n pageName: PAGE_NAME.otherComponents,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'Pricing',\r\n icon: 'dollar-circle',\r\n subMenu: [\r\n {\r\n name: 'Customer Pricing Reference',\r\n url: '/pricing/price-defaults',\r\n permissionName: 'Price Defaults',\r\n pageName: PAGE_NAME.priceDefaults,\r\n },\r\n {\r\n name: 'Metal Price Equations',\r\n url: '/pricing/metal-overhead-equations',\r\n permissionName: 'Metal Overhead Equations',\r\n pageName: PAGE_NAME.metalOverheadEquations,\r\n },\r\n {\r\n name: 'Pricing (Products)',\r\n url: '/pricing/product-pricing',\r\n permissionName: 'Product Pricing',\r\n pageName: PAGE_NAME.productPricing,\r\n },\r\n {\r\n name: 'Pricing (Chain)',\r\n url: '/pricing/chain-pricing',\r\n permissionName: 'Chain Pricing',\r\n pageName: PAGE_NAME.chainPricing,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'Control Office',\r\n icon: 'control',\r\n subMenu: [\r\n {\r\n name: 'Purchase Orders',\r\n url: '/main/ordersview',\r\n permissionName: 'Orders View',\r\n pageName: PAGE_NAME.order,\r\n },\r\n {\r\n name: 'Work Orders',\r\n url: '/reports/work-order',\r\n permissionName: 'Work Order',\r\n pageName: PAGE_NAME.workOrder,\r\n },\r\n {\r\n name: 'Open Order Report',\r\n url: '/main/open-order-report',\r\n permissionName: 'Open Order Report',\r\n pageName: PAGE_NAME.openOrderReport,\r\n },\r\n {\r\n name: 'Stone Open Order Report',\r\n url: '/main/stone-open-order-report',\r\n permissionName: 'Stone Open Order Report',\r\n pageName: PAGE_NAME.stoneOpenOrderReport,\r\n },\r\n {\r\n name: 'Order Details',\r\n url: '',\r\n permissionName: 'Order Details',\r\n pageName: PAGE_NAME.orderDetails,\r\n hidden: true,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'Reporting',\r\n icon: 'line-chart',\r\n subMenu: [\r\n {\r\n name: 'Graphs',\r\n url: '/reporting/graph',\r\n pageName: PAGE_NAME.reporting,\r\n },\r\n {\r\n name: 'Item Weights',\r\n url: '/reporting/item-weights',\r\n pageName: PAGE_NAME.itemWeights,\r\n },\r\n {\r\n name: 'Work Order Movement',\r\n url: '/reporting/work-order-movement',\r\n pageName: PAGE_NAME.workOrderMovement,\r\n },\r\n {\r\n name: 'Reports',\r\n url: '/reporting/reports',\r\n pageName: PAGE_NAME.reports,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'Invoicing & Shipping',\r\n icon: 'credit-card',\r\n url: 'invoicing-and-shipping/invoicing',\r\n pageName: PAGE_NAME.invoicingAndShipping,\r\n },\r\n {\r\n name: 'Product Development',\r\n icon: 'rocket',\r\n subMenu: [\r\n {\r\n name: 'Suppliers',\r\n url: '/admin/suppliers',\r\n permissionName: 'Supplier/Customer',\r\n pageName: PAGE_NAME.supplier,\r\n },\r\n {\r\n name: 'Customers',\r\n url: '/admin/customers',\r\n permissionName: 'Supplier/Customer',\r\n pageName: PAGE_NAME.customer,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'Product Query',\r\n icon: 'file-search',\r\n pageName: PAGE_NAME.productQuery,\r\n url: '/product-query',\r\n },\r\n {\r\n name: 'Work Order Scanning',\r\n icon: 'qrcode',\r\n subMenu: [\r\n {\r\n name: 'Work Order Tracking',\r\n pageName: PAGE_NAME.workOrderTracking,\r\n url: '/work-order-tracking',\r\n },\r\n {\r\n name: 'Package Label Printing',\r\n url: '/package-label-printing',\r\n pageName: PAGE_NAME.workOrderLabelPrinting,\r\n },\r\n ],\r\n },\r\n];\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { LoadService } from '../load-overlay/load-overlay.service';\r\n\r\nimport { forkJoin, Observable } from 'rxjs';\r\nimport { AuthenticationService } from 'src/app/core/authentication/authentication.service';\r\nimport { TokenStorageService } from 'src/app/core/authentication/token-storage.service';\r\nimport { UserPermissionService } from 'src/app/core/user-permission/user-permission.service';\r\nimport { MetalMarket, MetalMarketPremiums } from 'src/app/models/metal-market';\r\nimport { MetalMarketService } from 'src/app/services/metal-market.service';\r\nimport { menus } from './menu';\r\n\r\n@Component({\r\n selector: 'riva-side-nav',\r\n templateUrl: './riva-side-nav.component.html',\r\n styleUrls: ['riva-side-nav.component.scss'],\r\n})\r\nexport class RivaSideNavComponent implements OnInit {\r\n isCollapsed = true;\r\n menus = menus;\r\n menuWithPermission = [];\r\n\r\n isLoggedIn$: Observable;\r\n showSideNav = true;\r\n metalMarket: MetalMarket;\r\n metalMarketPremiums: MetalMarketPremiums;\r\n isLoadingMetalMarket = false;\r\n popoverTrigger = null;\r\n\r\n constructor(\r\n private authenticationService: AuthenticationService,\r\n private loadService: LoadService,\r\n private userPermissionService: UserPermissionService,\r\n private metalMarketService: MetalMarketService,\r\n public tokenStorageService: TokenStorageService,\r\n ) {\r\n if (tokenStorageService.currentUser.usersID) {\r\n this.authenticationService.loggedIn.next(true);\r\n }\r\n this.isLoggedIn$ = this.authenticationService.isLoggedIn;\r\n }\r\n\r\n get loggedUser(): string {\r\n if (this.isLoggedIn$) return this.tokenStorageService.currentUser.userName;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadService.reloadNavigation = () => {\r\n this.menuWithPermission = this.getMenuWithPermission();\r\n };\r\n this.menuWithPermission = this.getMenuWithPermission();\r\n this.isLoadingMetalMarket = true;\r\n }\r\n\r\n getMenuWithPermission() {\r\n const currentUser = this.tokenStorageService.currentUser;\r\n if (!currentUser || !currentUser.usersID) return [];\r\n forkJoin([\r\n this.metalMarketService.getLatestMetalMarket(),\r\n this.metalMarketService.getMetalMarketPremiums(),\r\n ]).subscribe(([metalMarket, [premiums]]) => {\r\n this.metalMarket = metalMarket;\r\n this.metalMarketPremiums = premiums;\r\n this.popoverTrigger = 'hover';\r\n this.isLoadingMetalMarket = false;\r\n });\r\n if (currentUser.isAdmin) return [...menus];\r\n\r\n if (!this.userPermissionService.userPagePermission) return;\r\n return this.menus.reduce((menuWithPermission, menu) => {\r\n if (!menu.subMenu) {\r\n const { pageName } = menu;\r\n const { accessLevel, hasCustomAccess, disabled } = this\r\n .userPermissionService.userPagePermission[pageName] ?? {\r\n accessLevel: 'Disabled',\r\n disabled: false,\r\n };\r\n const hasAccess =\r\n accessLevel && accessLevel !== 'Disabled' && hasCustomAccess;\r\n return disabled == null || hasAccess\r\n ? [...menuWithPermission, menu]\r\n : menuWithPermission;\r\n }\r\n const subMenu = menu.subMenu.reduce((subMenuWithPermissions, subMenu) => {\r\n const { pageName } = subMenu;\r\n const { accessLevel, disabled, hasCustomAccess } = this\r\n .userPermissionService.userPagePermission[pageName] ?? {\r\n accessLevel: 'Disabled',\r\n disabled: false,\r\n };\r\n\r\n const hasAccess =\r\n accessLevel && accessLevel !== 'Disabled' && hasCustomAccess;\r\n return disabled == null || hasAccess\r\n ? [...subMenuWithPermissions, subMenu]\r\n : subMenuWithPermissions;\r\n }, []);\r\n return [...menuWithPermission, { ...menu, subMenu }];\r\n }, []);\r\n }\r\n\r\n logout() {\r\n this.authenticationService.signOut();\r\n }\r\n}\r\n","\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n {{\r\n tokenStorageService.currentUser.userName\r\n }}\r\n
    \r\n \r\n \r\n Logout\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    Date
    \r\n
    {{ metalMarket.marketDate }}
    \r\n
    Fairmined
    \r\n
    \r\n
    \r\n
    Silver
    \r\n
    {{ metalMarket.ldpmSilver | currency }}
    \r\n
    -
    \r\n
    \r\n
    \r\n
    Gold
    \r\n
    {{ metalMarket.ldpmGold | currency }}
    \r\n
    \r\n {{\r\n metalMarket.ldpmGold + metalMarketPremiums.fairminedGold | currency\r\n }}\r\n
    \r\n
    \r\n
    \r\n
    Platinum
    \r\n
    {{ metalMarket.ldpmPlatinum | currency }}
    \r\n
    -
    \r\n
    \r\n
    \r\n
    Palladium
    \r\n
    {{ metalMarket.ldpmPalladium | currency }}
    \r\n
    -
    \r\n
    \r\n
    \r\n
    \r\n","import { MaterialCode } from './../models/material-code';\r\nimport { Suppliers } from './../models/suppliers.model';\r\n\r\nexport class Chain {\r\n chainId: number = 0;\r\n chainTypeId: number = 1;\r\n chainLinkSizeId: number = 1;\r\n materialCode: number = 2;\r\n pricePerInch: number = 0;\r\n stockQty: number = 0;\r\n suppliersId: number = 1;\r\n chainLinkSize: ChainLinkSize;\r\n chainType: ChainType;\r\n materialCodeNavigation: MaterialCode;\r\n suppliers: Suppliers;\r\n}\r\n\r\nexport class ChainLinkSize {\r\n chainLinkSizeId: number = 0;\r\n linkSize: string = '';\r\n}\r\n\r\nexport class ChainType {\r\n chainTypeId: number = 0;\r\n chainTypeName: string = '';\r\n}\r\n\r\nexport interface RivaChain {\r\n chainsID: number;\r\n picPath: string;\r\n sku: string;\r\n linkSTYLE: string;\r\n linkSIZE: string;\r\n}\r\n\r\nexport interface RivaChainMaterial {\r\n chainsMaterialsID: number;\r\n chainsID: number;\r\n materialsCodeID: number;\r\n description?: string;\r\n}\r\n\r\nexport interface RivaChainLength {\r\n chainsLengthsID: number;\r\n chainsID: number;\r\n length: number;\r\n oum?: number;\r\n uom?: number;\r\n uomDescription?: string;\r\n}\r\n","import { NumberValueAccessor } from '@angular/forms';\r\nimport { MaterialCode } from './../models/material-code';\r\nimport { Suppliers } from './suppliers.model';\r\n\r\nexport class Chainfinished {\r\n chainFinishedId: number;\r\n name: string;\r\n sku: string;\r\n suppliersId: number = 1;\r\n commentBox: string;\r\n picPath: string = '../../../assets/images/no-image.png';\r\n createdBy: string;\r\n createdDate: Date;\r\n suppliers: Suppliers;\r\n chainFinishedInfo: ChainfinishedInfo[];\r\n}\r\n\r\nexport class ChainFinishedColumns {\r\n 'ID': number = 0;\r\n 'Name': string = '';\r\n 'SKU': string = '';\r\n}\r\n\r\nexport class ChainfinishedInfo {\r\n chainFinishedInfoId: number;\r\n chainFinishedId: number;\r\n materialCodeId: number;\r\n size: string = '';\r\n stockQty: number = 0;\r\n supplierSku: string = '';\r\n supplierPrice: number = 0;\r\n materialCode: MaterialCode;\r\n}\r\n\r\n// export class OptionSizes{\r\n// id: number = 0;\r\n// parentId: number = 0;\r\n// materialCodeId: number = 0;\r\n// size: string = '';\r\n// }\r\n","export class Customers {\r\n custIdno: number;\r\n customerId: string = '';\r\n companyName: string = '';\r\n contactName: string = '';\r\n emailAddress: string = '';\r\n paymentTerms: string = '';\r\n leadtimeDays: number;\r\n addresses: CustomerAddress[];\r\n picPath: string = '';\r\n shippingMethod: string = '';\r\n hwDisclaimFlag?: boolean = false;\r\n dontAllowMixedInvoices?: boolean = false;\r\n lockInvoiceGoldPrice?: boolean = false;\r\n defaultBillAddress: number;\r\n defaultDevShipAddress: number;\r\n defaultProdShipAddress: number;\r\n shippingAccountNumber: string;\r\n preferredShipping: string;\r\n billingAddresses: CustomerAddress[];\r\n developmentAddresses: CustomerAddress[];\r\n productionAddresses: CustomerAddress[];\r\n}\r\n\r\nexport interface CustomerAddress {\r\n customersAddressesId: number;\r\n custIdno: number;\r\n addressType: number;\r\n addressTypeLabel?: string;\r\n address1: string;\r\n address2: string;\r\n city: string;\r\n region: string;\r\n postalCode: string;\r\n country: string;\r\n phone: string;\r\n fullAddress?: string;\r\n tempCustomersAddressesId?: number;\r\n isDefault?: boolean;\r\n}\r\n\r\nexport interface CustomerAddOns {\r\n key?: number;\r\n customerAddOnID: number;\r\n customerId: number;\r\n name: string;\r\n description: string;\r\n price: number;\r\n}\r\n","export class Enamel {\r\n enamelId: number = 0;\r\n enamelSku: string = '';\r\n enamelName: string = '';\r\n pantoneColor: string = '';\r\n hardness: boolean = false;\r\n hardnessDisplayText?: string = '';\r\n supplierId: number = 0;\r\n supplierDisplayName?: string = '';\r\n colorHex: string = '';\r\n variation?: boolean;\r\n}\r\n\r\nexport class EnamelColumns {\r\n 'ID': number = 0;\r\n 'SKU': string = '';\r\n 'Name': string = '';\r\n 'Pantone Color': string = '';\r\n 'Hardness': boolean = false;\r\n 'Supplier': string = '';\r\n 'Color': string = '';\r\n}\r\n","export enum BomItemType {\r\n Products = 1,\r\n Subassemblies = 2,\r\n Chain = 3,\r\n Enamel = 4,\r\n Findings = 5,\r\n Gems = 6,\r\n ManufacturedMats = 7,\r\n MetalGrains = 8,\r\n Nonprecious = 9,\r\n}\r\n","export enum Customer {\r\n HOF = 1,\r\n HOFFullfilment = 2,\r\n Ringware = 3,\r\n Mizuki = 4,\r\n BaubleBar = 5,\r\n}\r\n\r\nexport enum CustomerCode {\r\n RGW = 1,\r\n RIVA = 2,\r\n TRY = 3,\r\n}\r\n","import { Guid } from '../components/generic/generic.component';\r\nimport { FindingsTypeSize } from '../components/riva-findings/model';\r\n\r\nexport class Findings {\r\n findingsId: number;\r\n name: string = 'Test';\r\n sku: string = 'Test SKU';\r\n suppliersId: number = 1;\r\n commentBox: string;\r\n unitsOfMeasureId: number = 1;\r\n picPath: string = '../../../assets/images/no-image.png';\r\n createdBy: string;\r\n createdDate: Date;\r\n findingsInfo: FindingsInfo[];\r\n}\r\n\r\nexport class FindingsColumn {\r\n 'ID': number = 0;\r\n 'Name': string = '';\r\n 'SKU': string = '';\r\n 'Supplier': string = '';\r\n 'Unit': string = '';\r\n}\r\n\r\nexport class FindingsInfo {\r\n findingsInfoId: number;\r\n findingsId: number;\r\n materialCodeId: number;\r\n size: string;\r\n weight: number = 0;\r\n stockQty: number = 0;\r\n supplierSku: string;\r\n supplierPrice: number = 0;\r\n}\r\n\r\nexport interface Supplier {\r\n suppliersId: number;\r\n supplierId: string;\r\n companyName: string;\r\n}\r\ninterface UnitsOfMeasure {\r\n unitsOfMeasureId: number;\r\n uom: string;\r\n}\r\nexport interface FindingsSize {\r\n findingSizesID: number;\r\n findingsID: number;\r\n size: string;\r\n}\r\nexport interface FindingsMaterial {\r\n findingsMaterialsCodeId: number;\r\n materialCodeId: number;\r\n code: string;\r\n karat: string;\r\n color: string;\r\n description: string;\r\n printColor1?: string;\r\n printColor2?: string;\r\n}\r\nexport interface RivaFindings {\r\n findingsId: number;\r\n name: string;\r\n sku: string;\r\n suppliersId: number;\r\n suppliersName?: string;\r\n commentBox: string;\r\n unitsOfMeasureId: number;\r\n picPath: string;\r\n createdBy: string;\r\n createdDate: string;\r\n source: true;\r\n supplier: Supplier;\r\n unitsOfMeasure: UnitsOfMeasure;\r\n sizes: FindingsSize[];\r\n materials: FindingsMaterial[];\r\n}\r\n\r\nexport interface ProductFindings {\r\n tempProductsBOMFindingsID?: Guid;\r\n findings: {\r\n findingsId: number;\r\n name: string;\r\n sku: string;\r\n picPath: string | null;\r\n };\r\n productsBOMFindingsID: number;\r\n productsID: number;\r\n findingsID: number;\r\n findingsSizesID: number;\r\n findingsMaterialsID: number;\r\n qty: number;\r\n comment: string;\r\n size: string | FindingsTypeSize;\r\n sizeLabel?: string;\r\n material: FindingsMaterial;\r\n}\r\n\r\nexport interface RivaFindingsDto {\r\n findingsId: number;\r\n name: string;\r\n sku: string;\r\n suppliersId: number;\r\n commentBox: string;\r\n unitsOfMeasureId: number;\r\n picPath: string;\r\n createdBy: string;\r\n source: boolean;\r\n}\r\n\r\nexport interface ProductFindingsDto {\r\n productsBOMFindingsID: number;\r\n productsID: number;\r\n findingsID: number;\r\n findingsSizesID: number;\r\n findingsMaterialsID: number;\r\n qty: number;\r\n comment: string;\r\n}\r\n","export class Gems {\r\n gemsId: number;\r\n gemName: string = '';\r\n gemCutsId: number;\r\n picPath: string;\r\n gemCuts: GemCuts[];\r\n}\r\n\r\nexport class GemCuts {\r\n gemCutsId: number = 0;\r\n cutName: string = '';\r\n}\r\n\r\nexport class GemTypes {\r\n gemTypesId: number = 0;\r\n colorClarity: string = '';\r\n}\r\n\r\nexport class GemSizes {\r\n gemSizesId: number = 0;\r\n gemCutsId: number = 0;\r\n gemSizeDesc: string = '';\r\n}\r\n\r\nexport class GemInventory {\r\n gemInventoryId: number;\r\n gemTypesId: number;\r\n gemCutsId: number;\r\n gemSizesId: number;\r\n pricePerCarat: number = 0;\r\n pricePerUnit: number = 0;\r\n stockQty: number = 0;\r\n caratWeight: number = 0;\r\n suppliersId: number = 1;\r\n\r\n gemCuts: GemCuts = new GemCuts();\r\n gemTypes: GemTypes = new GemTypes();\r\n gemSizes: GemSizes = new GemSizes();\r\n}\r\n\r\nexport class GemsColumns {\r\n 'ID': number = 0;\r\n 'Name': string = '';\r\n 'Price Per Carat': number = 0;\r\n 'Price Per Unit': number = 0;\r\n 'Carat Weight': number = 0;\r\n 'Supplier': string = '';\r\n}\r\n","export class Historylogs {\r\n logIdx: number;\r\n userId: number;\r\n username: string;\r\n date: Date;\r\n table: string;\r\n tableIdx: number;\r\n field: string;\r\n oldFieldValue: string;\r\n newFieldValue: string;\r\n}\r\n","export class InventoryLog {\r\n id: number = 0;\r\n barcodeId: number;\r\n itemType: string;\r\n itemNo: string;\r\n karat: string;\r\n entryDate: Date;\r\n qtyOld: number;\r\n qtyNew: number;\r\n gramWgtOld: number;\r\n gramWgtNew: number;\r\n webUser: string;\r\n}\r\n\r\nexport class ProductInventory {\r\n productsId: number = 0;\r\n productName: string = '';\r\n sku: string = '';\r\n productType: string = '';\r\n customerId: string = '';\r\n companyName: string = '';\r\n status: string = '';\r\n jewelryType: string = '';\r\n materialInfoJson: string = '';\r\n}\r\n\r\nexport class MaterialInfoJSON {\r\n Code: string = '';\r\n Descriptino: string = '';\r\n PI: ProductInfoJSON[] = [];\r\n}\r\n\r\nexport class ProductInfoJSON {\r\n Size: string = '';\r\n Weight: string = '';\r\n Wholesale: string = '';\r\n Retail: string = '';\r\n}\r\n","export class Login {\r\n loginId: number = 0; // Probably needs JsonIgnore in backend\r\n userName: string = '';\r\n password: string = '';\r\n dateCreated: Date; // Probably needs JsonIgnore in backend\r\n lastLogin: Date;\r\n status: number; // Probably needs JsonIgnore in backend\r\n firstName: string = '';\r\n lastName: string = '';\r\n employeeId: string = '';\r\n}\r\n","export class ManufacturedMaterials {\r\n manufacturedMaterialsId: number;\r\n name: string;\r\n sku: string;\r\n suppliersId: number = 1;\r\n commentBox: string;\r\n unitsOfMeasureId: number = 1;\r\n picPath: string = '../../../assets/images/no-image.png';\r\n createdBy: string;\r\n createdDate: Date;\r\n manufacturedMaterialsInfo: ManufacturedMaterialsInfo[];\r\n}\r\n\r\nexport class ManufacturedMatsColumns {\r\n 'ID': number = 0;\r\n 'Name': string = '';\r\n 'SKU': string = '';\r\n 'Supplier': string = '';\r\n 'Unit': string = '';\r\n}\r\n\r\nexport class ManufacturedMaterialsInfo {\r\n manufacturedMaterialsInfoId: number;\r\n manufacturedMaterialsId: number;\r\n materialCodeId: number;\r\n size: string;\r\n weight: number = 0;\r\n stockQty: number = 0;\r\n supplierSku: string;\r\n supplierPrice: number = 0;\r\n}\r\n","export class MaterialCode {\r\n materialCodeId: number = 0;\r\n code: string = '';\r\n karat: string = '';\r\n color: string = '';\r\n description: string = '';\r\n printColor1?: string = '';\r\n multiMetal?: boolean;\r\n multiMetalPrimary?: number;\r\n multiMetalPrimaryMaterial?: MaterialCode;\r\n multiMetalSecondary?: number;\r\n multiMetalSecondaryMaterial?: MaterialCode;\r\n}\r\n\r\nexport class MatCodeSize {\r\n productID: number;\r\n matID: number;\r\n size: number;\r\n uom: number;\r\n qtyStock: number;\r\n wtgr: number;\r\n whlsprice: number;\r\n msrp: number;\r\n}\r\n\r\nexport class Sizes {\r\n size: number;\r\n}\r\n\r\nexport class SizeUpdate {\r\n materialCodeId: number;\r\n oldSize: number;\r\n newSize: number;\r\n}\r\n\r\nexport interface MaterialCodeCalculation {\r\n materialCodesCalculationsID: number;\r\n materialCodeID: number;\r\n baseMetal1: number;\r\n preciousPercentage1: number;\r\n baseMetal2: number;\r\n preciousPercentage2: number;\r\n alloyCost: number;\r\n lossFactor: number;\r\n otherLossFactor: number;\r\n castingFee: number;\r\n bottomCutOff: number;\r\n topCutOff: number;\r\n totalGrams: number;\r\n totalCastingFee: number;\r\n totalItemCost: number;\r\n}\r\n\r\nexport interface MaterialCalculation\r\n extends MaterialCode,\r\n MaterialCodeCalculation {}\r\n","export class MetalGrain {\r\n metalGrainsId: number = 0;\r\n name: string;\r\n sku: string;\r\n suppliersId: number;\r\n supplierSku: string;\r\n commentBox: string;\r\n picPath: string;\r\n materialCode: number;\r\n uom: number;\r\n qtyinStock: number;\r\n qtyinScrap: number;\r\n}\r\n","import { Suppliers } from '../models/suppliers.model';\r\nimport { UnitOfMeasure } from '../models/unit-of-measure';\r\n\r\nexport class Nonprecious {\r\n nonPreciousId: number;\r\n name: string;\r\n sku: string;\r\n suppliersId: number = 1;\r\n supplierSku: string = '';\r\n commentBox: string;\r\n unitsOfMeasureId: number = 2;\r\n picPath: string = '../../../assets/images/no-image.png';\r\n createdBy: string;\r\n createdDate: Date;\r\n stockQty: number = 0;\r\n supplierPrice: number = 0;\r\n suppliers: Suppliers;\r\n unitsOfMeasure: UnitOfMeasure;\r\n}\r\n\r\nexport class NonpreciousColumns {\r\n 'ID': number = 0;\r\n 'Name': string = '';\r\n 'SKU': string = '';\r\n 'Supplier': string = '';\r\n 'Unit': string = '';\r\n 'Stock QTY': string = '';\r\n 'Supplier Price': string = '';\r\n}\r\n","import { DateTime } from 'luxon';\r\nimport { MaterialDetail, Product, ProductsInfo } from './product';\r\n\r\nexport class Orders {\r\n ordersId: number = 0;\r\n pointernal: string = '';\r\n poexternal: string = '';\r\n receivedDate: Date;\r\n entryDate: Date = new Date();\r\n customerId: number = 1;\r\n requiredDate: Date;\r\n totalShippedDate: Date;\r\n orderStatusId: number = 1;\r\n comment: string = '';\r\n ordersDetails: OrdersDetails[];\r\n editflag = false;\r\n orderDetailsFlag = true;\r\n customerName?: string;\r\n isAlmostDue?: boolean;\r\n isAlreadyDue?: boolean;\r\n status?: string;\r\n billingAddressID: number;\r\n shippingAddressID: number;\r\n ordersType?: number;\r\n bypassWKOs?: boolean;\r\n}\r\n\r\nexport interface RivaOrderItem {\r\n productPic: string;\r\n productName: string;\r\n workOrderId: number;\r\n workOrderClosedDate: string;\r\n shipmentsID: number;\r\n orderedQuantity: number;\r\n shippedQuantity: number;\r\n}\r\nexport interface RivaOrders {\r\n ordersId: number;\r\n pointernal: string;\r\n poexternal: string;\r\n receivedDate: string;\r\n entryDate: string;\r\n customerId: number;\r\n requiredDate: string;\r\n totalShippedDate: string;\r\n status: string;\r\n customer: {\r\n id: number;\r\n companyName: string;\r\n };\r\n items: RivaOrderItem[];\r\n cipo: string[];\r\n cipoStr: string;\r\n link?: string;\r\n orderType: number;\r\n totalWorkOrderCreated: number;\r\n hasOpenOrder?: boolean;\r\n hasUnGeneratedWorkOrder?: boolean;\r\n}\r\n\r\nexport interface OrderDetailsEnamel {\r\n enamelID: number;\r\n orderDetailsEnamelID: number;\r\n orderDetailsID: number;\r\n colorHex?: string;\r\n enamelName?: string;\r\n ordersDetailsEnamelID?: number;\r\n}\r\n\r\nexport class OrdersDetails {\r\n ordersDetailsId?: number = 0;\r\n ordersId: number = 0;\r\n productsId: number = 0;\r\n productsInfoId: number = 0;\r\n qtyordered: number = 1;\r\n qtyshipped: number = 0;\r\n qtyinvoiced: number = 0;\r\n entryDate: Date = DateTime.local().toJSDate();\r\n dueDate: Date = new Date(Date.now());\r\n custAdrsId: number = 0;\r\n comment: string = '';\r\n products?: Product = new Product();\r\n productsInfo?: ProductsInfo = new ProductsInfo();\r\n orderDetailsEnamel?: OrderDetailsEnamel;\r\n materialCodeID: number;\r\n productsMaterialsID?: number;\r\n size: string;\r\n productSizesID?: number;\r\n material?: MaterialDetail;\r\n productName?: string;\r\n materialCode: string;\r\n cipo?: string;\r\n customized?: boolean;\r\n chainType?: boolean;\r\n chainRawLength?: number;\r\n enamel?: string;\r\n shipDate?: string;\r\n bypassWKOs?: boolean;\r\n isFindings?: boolean;\r\n workOrder?: {\r\n workOrderId: number;\r\n printedDate: string | null;\r\n dueDate?: string | null;\r\n releasedDate?: string | null;\r\n closedDate?: string | null;\r\n };\r\n stone?: {\r\n stoneId: number;\r\n color: string;\r\n ordersDetailsStoneId: number;\r\n type: string;\r\n size: {\r\n dimension1: number;\r\n dimension2: number;\r\n dimension3: number;\r\n };\r\n };\r\n productMaterial?: {\r\n materialCode1: string | null;\r\n materialCode2: string | null;\r\n materialCodeID1: number;\r\n materialCodeID2: number;\r\n };\r\n primaryMaterialColor?: string | null;\r\n secondaryMaterialColor?: string | null;\r\n findingsID?: number;\r\n findingsSizesID?: number;\r\n findingsTypesID?: number;\r\n picPath?: string;\r\n orderDetailsType?: OrderDetailsType;\r\n isOpened?: boolean;\r\n enamelId?: number;\r\n stoneId?: number;\r\n rawChainId?: number;\r\n finishChainId?: number;\r\n isInitialData?: boolean;\r\n addOns?: Record<\r\n number,\r\n { orderDetailsCustomPriceAddOnsID: number; checked: boolean }\r\n >;\r\n}\r\nexport enum OrderDetailsType {\r\n OrderDetails,\r\n OrderDetailsAlt,\r\n}\r\n\r\nexport interface OrderParams {\r\n SearchQuery?: string;\r\n CustomerId?: number;\r\n Status?: string;\r\n ReceivedFrom?: string;\r\n ReceivedTo?: string;\r\n SortBy?: string;\r\n SortDirection?: string;\r\n PageNumber?: number;\r\n PageSize?: number;\r\n OrderType?: number[];\r\n ungeneratedWorkOrderOnly?: boolean;\r\n}\r\n\r\nexport class OrderStatus {\r\n ordersStatusId: number;\r\n status: string;\r\n}\r\n\r\nexport class OpenOrder {\r\n ordersDetailsId: number;\r\n poInternal: string;\r\n poExternal: string;\r\n pictureFilename: string;\r\n picturePath: string;\r\n workOrdersId: number;\r\n ordersId: number;\r\n dueDate: string;\r\n multiMaterial: boolean;\r\n materialCode: string;\r\n materialColor: string;\r\n materialPrintColor1: string;\r\n materialPrintColor1Hex: string;\r\n multiPrimaryMaterialCode: string;\r\n multiPrimaryMaterialColor: string;\r\n multiSecondaryMaterialCode: string;\r\n multiSecondaryMaterialColor: string;\r\n size: string;\r\n enamelColor: string;\r\n stoneType: string;\r\n backOrder: number;\r\n customerId: number;\r\n customerName: string;\r\n productsId: number;\r\n type: string;\r\n link?: string;\r\n printedDate: string;\r\n releasedDate: string;\r\n dateClosed: string;\r\n productName: string;\r\n}\r\n\r\nexport interface StoneOpenOrder {\r\n ordersDetailsId: number;\r\n poInternal: string;\r\n poExternal: string;\r\n pictureFilename: string;\r\n picturePath: string;\r\n workOrdersId: number;\r\n ordersId: number;\r\n dueDate: string;\r\n receivedDate: string;\r\n multiMaterial: boolean;\r\n materialCode: string;\r\n materialColor: string;\r\n materialDescription: string;\r\n materialPrintColor1: string;\r\n materialPrintColor2: string;\r\n multiPrimaryMaterialCode: string;\r\n multiPrimaryMaterialColor: string;\r\n multiPrimaryMaterialDescription: string;\r\n multiPrimaryMaterialPrintColor1: string;\r\n multiPrimaryMaterialPrintColor2: string;\r\n multiSecondaryMaterialCode: string;\r\n multiSecondaryMaterialColor: string;\r\n multiSecondaryMaterialColorDescription: string;\r\n multiSecondaryMaterialPrintColor1: string;\r\n multiSecondaryMaterialPrintColor2: string;\r\n size: string;\r\n enamelColor: string;\r\n stoneType: string;\r\n backOrder: number;\r\n customerId: number;\r\n customerName: string;\r\n productsId: number;\r\n productName: string;\r\n type: string;\r\n closedDate: string;\r\n printedDate: string;\r\n releasedDate: string;\r\n link?: string;\r\n materialPrintColor1Hex?: string;\r\n dateClosed: string;\r\n stoneCut: string;\r\n stoneClarity: string;\r\n stoneColor: string;\r\n stoneSize: string;\r\n labGrown: boolean;\r\n traceable: boolean;\r\n stonereleasedate: string;\r\n stoneQty: number;\r\n workQty: number;\r\n totalStoneQty: number;\r\n qtyMoved: number;\r\n}\r\n","export class ProductDetails {\r\n productID: number;\r\n matID: number = 0;\r\n size: number = 0;\r\n uom: number = 1;\r\n qtyStock: number = 0;\r\n wtgr: number = 0;\r\n whlsprice: number = 0;\r\n msrp: number = 0;\r\n heightMm: number = 0;\r\n widthMm: number = 0;\r\n lengthMm: number = 0;\r\n}\r\n","import { ProductPricing, RhodiumPlating } from '../components/product-pricing/product-pricing';\r\nimport { MaterialCode } from './material-code';\r\n\r\nexport class Product {\r\n productsId: number;\r\n productName: string = '';\r\n sku: string = '';\r\n customerSku: string = '';\r\n productsTypeId: number = 1;\r\n productDesc: string = '';\r\n customerCode: number = 5;\r\n commentBox: string = '';\r\n status: number = 1;\r\n uom: number = 1;\r\n picPath: string = '';\r\n jewelryType: number = 1;\r\n createdBy: string = '';\r\n createdDate: Date;\r\n firstProductionDate: Date;\r\n productTypeName: string = '';\r\n jewelryTypeName: string = '';\r\n productsDmns: ProductsDMNS[];\r\n productsBom: ProductsBOM[];\r\n productsInfo: ProductsInfo[];\r\n productsStoreInfo: ProductsStoreInfo[];\r\n productstoreflag: Productstoreflag[];\r\n productsPrices: any[];\r\n productsStock: any[];\r\n productsWtg: any[];\r\n storePrices: any[];\r\n inStore: boolean;\r\n customerCodeNavigation: customerCodeNavigation;\r\n productsRouting: ProductsRouting[];\r\n sortOrder?: number;\r\n isRivaProduct?: boolean;\r\n}\r\n\r\nexport class ProductStatus {\r\n statusId: number;\r\n status: string;\r\n}\r\n\r\nexport class ProductsBOM {\r\n productsBomid: number;\r\n bomItemTypeId: number;\r\n productsId: number;\r\n subItemId: number = 0;\r\n itemQty: number;\r\n sizeLocked: boolean;\r\n custProvided: string = '';\r\n notes: string = '';\r\n productsInfoId: number = 0;\r\n subItemInfoId: number = 0;\r\n}\r\n\r\nexport class ProductsBOMResponse {\r\n productsBomid: number;\r\n productsId: number;\r\n subProductsId: number;\r\n qty: number;\r\n notes: string;\r\n // Extra field for display purpose\r\n productName: string;\r\n}\r\n\r\nexport class ProductsDMNS {\r\n productsDmnsId: number;\r\n productsId: number;\r\n heightMm: number = 0;\r\n widthMm: number = 0;\r\n lengthMm: number = 0;\r\n}\r\n\r\nexport class Productstoreflag {\r\n productStoreFlagId: number;\r\n productsId: number;\r\n storeFlag: Boolean;\r\n products: any;\r\n}\r\n\r\nexport class ProductDetailResponse {\r\n productsId: number;\r\n productName: string;\r\n productsTypeId: number;\r\n productDesc: string;\r\n commentBox: string;\r\n picPath: string;\r\n jewelryType: number;\r\n inStore: boolean;\r\n productDimensions: Dimension = new Dimension();\r\n materials: Material[];\r\n}\r\n\r\nexport class Dimension {\r\n heightMm: number = 0;\r\n widthMm: number = 0;\r\n lengthMm: number = 0;\r\n}\r\n\r\nexport class Material {\r\n materialCodeId: number;\r\n code: string;\r\n karat: string;\r\n color: string;\r\n description: string;\r\n sizeRetailPrices: SizeRetailPrice[] = [];\r\n}\r\n\r\nexport class SizeRetailPrice {\r\n size: number;\r\n price: number;\r\n weight: number;\r\n}\r\n\r\nexport class ProductsInfo {\r\n productsInfoId: number;\r\n productsId: number;\r\n materialCodeId: number;\r\n size: string;\r\n weight: number;\r\n stockQty: number;\r\n priceWhls: number;\r\n priceRetail: number;\r\n metalGrainsId: number;\r\n customerSKU?: string;\r\n}\r\n\r\nexport class ProductsStoreInfo {\r\n productsStoreInfoId: number;\r\n productsId: number;\r\n productsDesc: string;\r\n storeFlag: boolean;\r\n collectionsId: number;\r\n productsGroupId: number;\r\n productsGroupLevel: number;\r\n height: number;\r\n width: number;\r\n length: number;\r\n}\r\n\r\nexport class GroupItem {\r\n productsId: number;\r\n productsGroupId: number;\r\n productsGroupLevel: number;\r\n}\r\n\r\nexport class GroupItemRequest {\r\n groupItems: GroupItem[] = [];\r\n}\r\n\r\nexport class customerCodeNavigation {\r\n custIdno: number;\r\n customerId: string;\r\n companyName: string;\r\n contactName: string;\r\n emailAddress: string;\r\n address1: string;\r\n address2: string;\r\n city: string;\r\n region: string;\r\n postalCode: string;\r\n country: string;\r\n phone: string;\r\n fax: string;\r\n shippingMethod: string;\r\n paymentTerms: string;\r\n}\r\nexport class ProductRoutingCodes {\r\n activityCode: string;\r\n activityDesc: string;\r\n department: string;\r\n routingCodesId: number;\r\n}\r\nexport class ProductsRouting {\r\n productsRoutingId: number;\r\n productsId: number;\r\n routingCodesId: number;\r\n standardTime: number = 0;\r\n actualTimeS: number = 0;\r\n comment: string;\r\n routingOrder?: number;\r\n routingCode?: ProductRoutingCodes;\r\n tempRoutingId?: number;\r\n}\r\n\r\nexport class RoutingCodes {\r\n routingCodesId: number;\r\n activityCode: string;\r\n department: string;\r\n activityDesc: string;\r\n}\r\n\r\nexport interface ProductVariation {\r\n productEnamelsID?: number;\r\n productsID: number;\r\n enamelsID: number;\r\n enamelSKU: string;\r\n enamelName: string;\r\n pantoneColor: string;\r\n hardness: boolean;\r\n colorHex: string;\r\n supplierId?: number;\r\n supplierDisplayName?: string;\r\n displayText?: string;\r\n}\r\n\r\nexport interface ProductEnamel {\r\n productsBOMEnamelID?: number;\r\n productsID: number;\r\n enamelID: number;\r\n enamelSKU?: string;\r\n enamelName?: string;\r\n pantoneColor?: string;\r\n hardness?: boolean;\r\n colorHex?: string;\r\n displayText?: string;\r\n variation?: boolean;\r\n}\r\n\r\nexport interface WorkOrderEnamel {\r\n enamelName: string;\r\n colorHex: string;\r\n enamelSKU: string;\r\n}\r\n\r\nexport interface MaterialDetail {\r\n materialCodeId: number;\r\n code: string;\r\n karat: string;\r\n color: string;\r\n description: string;\r\n printColor1: string;\r\n printColor2: string;\r\n multiMetal?: boolean;\r\n multiMetalPrimary?: number;\r\n multiMetalPrimaryMaterial: MaterialCode | null;\r\n multiMetalSecondary?: number;\r\n multiMetalSecondaryMaterial?: MaterialCode | null;\r\n}\r\nexport interface ProductMaterial {\r\n productsMaterialsID: number;\r\n productsID: number;\r\n materialsCodeID: number;\r\n metalGrainsID: number;\r\n material: MaterialDetail;\r\n material2?: MaterialDetail | null;\r\n materialsCodesID2?: number;\r\n percentage1?: number;\r\n percentage2?: number;\r\n multiMetal?: boolean;\r\n multiMetalPrimary?: number;\r\n multiMetalPrimaryMaterial: MaterialCode | null;\r\n multiMetalSecondary?: number;\r\n multiMetalSecondaryMaterial?: MaterialCode | null;\r\n label?: string;\r\n}\r\n\r\nexport interface ProductSizes {\r\n productsSizesID: number;\r\n productsID: number;\r\n size: string;\r\n newSize?: string;\r\n}\r\nexport interface ProductDetail {\r\n materials: ProductMaterial[];\r\n productSizes: ProductSizes[];\r\n productsID: number;\r\n productName: string;\r\n picturePath: string;\r\n pricing?: ProductPricing[];\r\n}\r\n\r\nexport interface ProductImage {\r\n productsPicsID: number;\r\n picsOrder: number;\r\n fileName?: string;\r\n small?: string;\r\n medium?: string;\r\n big?: string;\r\n}\r\n\r\nexport interface ProductHistory {\r\n lastUpdated: string;\r\n lastUpdatedBy: string;\r\n}\r\n\r\nexport interface ProductWeight {\r\n productsWeightsID: number;\r\n productsID: number;\r\n productsSizesID: number;\r\n materialCodesID?: number;\r\n avgWeightGrams: number;\r\n productsMaterialsID?: number;\r\n}\r\n\r\nexport interface ProductsV2 {\r\n productsId: number;\r\n productName: string;\r\n sku: string;\r\n productDesc: string;\r\n customerCode: number;\r\n status: number;\r\n uom: number;\r\n jewelryType: number;\r\n wkoLimit: number;\r\n isBundled: boolean;\r\n}\r\n\r\ninterface ProductMaterialV2 {\r\n materialCodeId: number;\r\n code: string;\r\n primaryMaterial: string;\r\n secondaryMaterial: string;\r\n}\r\nexport interface ProductDetailV2 {\r\n productsId: number;\r\n productName: string;\r\n picture: string;\r\n materials: ProductMaterialV2[];\r\n productSizes: ProductSizes[];\r\n pricing: ProductPricing[];\r\n productSizeOptions?: ProductSizes[];\r\n rhodiumPlatings?: RhodiumPlating[];\r\n}\r\n","export class RawMaterials {\r\n rawMaterialsId: number = 0;\r\n name: string;\r\n sku: string;\r\n supplierSku: string;\r\n materialCodeId: number = 2;\r\n suppliersId: number = 1;\r\n commentBox: string;\r\n unitsOfMeasureId: number = 1;\r\n picPath: string = '../../../assets/images/no-image.png';\r\n createdBy: string;\r\n createdDate: Date;\r\n supplierPrice: number = 0;\r\n sellPrice: number = 0;\r\n qtyStock: number = 0;\r\n stockLocation: string;\r\n rawMaterialsInfo: Rawmaterialsinfo[];\r\n}\r\n\r\nexport class Rawmaterialsinfo {\r\n rawMaterialsInfoId: number;\r\n rawMaterialsId: number;\r\n materialCodeId: number;\r\n size: string;\r\n weight: number = 0;\r\n stockQty: number = 0;\r\n}\r\n","export class ProductSearch {\r\n searchString: string = '';\r\n customerCode: number;\r\n jewelryType: number;\r\n productTypeID: number;\r\n}\r\n","export class OrderImportResponse {\r\n invalidOrders: RGWInvalidOrder[] = [];\r\n succeedOrders: number = 0;\r\n failedOrders: number = 0;\r\n orderExists: boolean = false;\r\n}\r\n\r\nexport interface RGWInvalidOrder {\r\n orderNumber: string;\r\n orderCode: string;\r\n errorMessage: string;\r\n}\r\n","export class Suppliers {\r\n suppliersId: number = 0;\r\n supplierId: string = '';\r\n companyName: string = '';\r\n contactName: string = '';\r\n emailAddress: string = '';\r\n address1: string = '';\r\n address2: string = '';\r\n city: string = '';\r\n region: string = '';\r\n postalCode: string = '';\r\n country: string = '';\r\n phone: string = '';\r\n fax: string = '';\r\n shippingMethod: string = '';\r\n leadtimeDays: number = 0;\r\n paymentTerms: string = '';\r\n picPath: string = '';\r\n}\r\n","import { Enamel } from 'src/app/models/enamel';\r\nimport { RivaGems } from '../components/riva-gems/riva-gems.model';\r\n\r\nexport class WorkOrder {\r\n workOrdersId: number = 0;\r\n createdDate: Date;\r\n closedDate: Date;\r\n location: string = '';\r\n workOrderDetails: WorkOrderDetail[] = [];\r\n}\r\n\r\nexport class WorkOrderDetail {\r\n workOrderDetailsId: number = 0;\r\n workOrdersId: number = 0;\r\n ordersDetailsId: number = 0;\r\n qtyinit: number = 1;\r\n qtyclosed: number = 0;\r\n wgtpitem: number = 0;\r\n}\r\n\r\nexport class WorkOrderReport {\r\n workOrdersId: number = 0;\r\n createdDate: Date;\r\n closedDate: Date;\r\n location: string = '';\r\n workOrderPrintReports: WorkOrderPrintReport[] = [];\r\n}\r\n\r\nexport class WorkOrderPrintReport {\r\n workOrderId: number = 0;\r\n workOrderDetailsId: number = 0;\r\n qtyinit: number = 0;\r\n qtyclosed: number = 0;\r\n itemName: string = '';\r\n itemPhoto: string = '';\r\n routingJSON: string = '';\r\n bomjson: string = '';\r\n metal: string = '';\r\n size: string = '';\r\n guid: string = '';\r\n}\r\n\r\nexport class WorkOrderDetailDisplay {\r\n productName: string = '';\r\n photo: string = '';\r\n material: string = '';\r\n size: string = '';\r\n workOrderDetail: WorkOrderDetail = new WorkOrderDetail();\r\n}\r\n\r\nexport interface WorkOrderUI {\r\n orderId: number;\r\n poInternal: string;\r\n poExternal: string;\r\n ordersId: number;\r\n dueDate: Date;\r\n productId: number;\r\n productName: string;\r\n sku: string;\r\n picturePath: string;\r\n workOrdersId: number;\r\n workOrderId?: number;\r\n createdDate: Date;\r\n workOrderDetailsId: number;\r\n quantity: number;\r\n quantityClosed: number | null;\r\n printedDate: Date | null;\r\n releasedDate: Date | null;\r\n dateClosed: Date | null;\r\n isAlmostDue?: boolean;\r\n isAlreadyDue?: boolean;\r\n materialCode?: string;\r\n qtyTotal?: number;\r\n printColor1?: string;\r\n customized?: boolean;\r\n productSku?: string;\r\n materialDescription?: string;\r\n isFullyClosed?: boolean;\r\n isPartiallyClosed?: boolean;\r\n orderType?: string;\r\n primaryMaterial: MultiMaterial | null;\r\n secondaryMaterial: MultiMaterial | null;\r\n customerName: string;\r\n customerId?: number;\r\n}\r\ninterface MultiMaterial {\r\n materialCode: string;\r\n materialDescription: string;\r\n color: string;\r\n printColor1: string;\r\n}\r\ninterface ProductPrint {\r\n productId: number;\r\n productName: string;\r\n sku: string;\r\n description: string;\r\n customerCode: number;\r\n uom: number;\r\n picture: string;\r\n}\r\ninterface MaterialPrint {\r\n materialCodeId: number;\r\n code: string;\r\n karat: string;\r\n color: string;\r\n description: string;\r\n printColor1: string;\r\n printColor2: string;\r\n}\r\ninterface OrderDetailPrint {\r\n orderDetailsId: number;\r\n qtyOrdered: number;\r\n entryDate: string;\r\n dueDate: string;\r\n comment: string;\r\n}\r\n\r\ninterface PurchaseOrderPrint {\r\n orderId: number;\r\n poInternal: string;\r\n poExternal: string;\r\n receivedDate: string;\r\n entryDate: string;\r\n customerId: number;\r\n comment: string;\r\n requiredDate: string;\r\n}\r\ninterface WorkOrderPrint {\r\n workOrdersId: number;\r\n createdDate: string;\r\n closedDate: string;\r\n}\r\n\r\nexport interface WorkOrderDetailPrint {\r\n workOrderDetailsId: number;\r\n qty: number;\r\n qtyClosed: string | null;\r\n dateClosed: string | null;\r\n orderDetails: {\r\n orderDetailsId: number;\r\n qtyOrdered: number;\r\n entryDate: string;\r\n dueDate: string;\r\n comment: string;\r\n size: string;\r\n enamel: Enamel;\r\n cipo: string;\r\n stone: RivaGems;\r\n };\r\n}\r\n\r\nexport interface WorkOrderDetailsForPrint {\r\n customized?: boolean;\r\n product: ProductPrint;\r\n material: MaterialPrint;\r\n orderDetail: OrderDetailPrint;\r\n purchaseOrder: PurchaseOrderPrint;\r\n workOrder: WorkOrderPrint;\r\n workOrderDetails: WorkOrderDetailPrint[];\r\n quantity: number;\r\n}\r\n\r\nexport interface ClosingDetail {\r\n index: string;\r\n workOrdersClosingID: number;\r\n workOrdersDetailsId: number;\r\n qtyClosed: number;\r\n dateClosed: string;\r\n weightGrams: number;\r\n weightGSecondary: number;\r\n}\r\nexport interface ClosingDetailApi {\r\n index: string;\r\n details: Array>;\r\n}\r\n\r\nexport interface WorkOrderDates {\r\n createdDate: string;\r\n printedDate: string;\r\n releasedDate: string;\r\n stoneReleaseDate: string;\r\n closedDate: string;\r\n dueDate: string;\r\n}\r\n\r\nexport interface WorkOrderDetailForPDF {\r\n index: string;\r\n qty: number;\r\n workOrdersDetailsId: number;\r\n ordersDetailsAltId: number;\r\n ordersDetailsId: number;\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { InvoiceItemType } from '../components/invoicing-shipping/invoicing/models/invoice';\r\nimport { GenericService } from './generic.service';\r\n\r\nexport interface AnalyticsInvoice {\r\n invoicedDate: string;\r\n qtyTotal: number;\r\n totalDue: number;\r\n}\r\nexport interface AnalyticsCustomer {\r\n custIdNo: number;\r\n customer: string;\r\n invoices: AnalyticsInvoice[];\r\n}\r\n\r\nexport interface AnalyticsShipment {\r\n shipDate: string;\r\n totalQty: number;\r\n}\r\nexport interface AnalyticsCustomerShipment {\r\n custIdNo: number;\r\n customer: string;\r\n shipments: AnalyticsShipment[];\r\n}\r\n\r\nexport interface AnalyticsOrder {\r\n entryDate: string;\r\n totalQty: number;\r\n}\r\nexport interface AnalyticsCustomerOrder {\r\n custIdNo: number;\r\n customer: string;\r\n orders: AnalyticsOrder[];\r\n}\r\n\r\nexport interface AnalyticsProduct {\r\n entryDate: string;\r\n totalQty: number;\r\n metal: string;\r\n customerId: number;\r\n}\r\n\r\nexport interface AnalyticsProductOrder {\r\n productId: number;\r\n productName: string;\r\n picturePath: string;\r\n orderEntry: AnalyticsProduct[];\r\n materials?: AnalyticsProduct[];\r\n}\r\n\r\nexport interface AnalyticsMaterial {\r\n materialCodeId: number;\r\n code: string;\r\n description: string;\r\n totalWeightShipped: number;\r\n}\r\n\r\nexport interface InvoicedTimePeriod {\r\n totalInvoiced: number;\r\n}\r\n\r\nexport interface InvoicedStone {\r\n stoneId: number;\r\n stoneType: string;\r\n stoneCut: string;\r\n stoneClarity: string;\r\n stoneColor: string;\r\n stoneSize: string;\r\n labGrown: boolean;\r\n traceable: boolean;\r\n invoicedQty: number;\r\n customerProvided: boolean;\r\n}\r\n\r\nexport interface AnalyticsClosedItemWeight {\r\n workOrdersId: number;\r\n closedDate: string;\r\n workOrdersDetailsId: number;\r\n closedQty: number;\r\n individualClosedWeight: number;\r\n ordersDetailsId: number;\r\n ordersDetailsAltId: number;\r\n type: string;\r\n pictureFileName: string;\r\n picturePath: string;\r\n itemType: number;\r\n itemId: number;\r\n itemName: string;\r\n totalClosedWeight: number;\r\n metalDescription: string;\r\n size: string;\r\n}\r\n\r\ninterface RollingWeightAverageParams {\r\n type: InvoiceItemType;\r\n itemId: number; // productId, chainRawId, chainFinishId, findingsId\r\n sizeId?: number;\r\n materialCodeId: number;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AnalyticsService extends GenericService {\r\n baseUrl = environment.apiUrl + 'analytics';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getAnalyticsInvoices() {\r\n return this.http.get(`${this.baseUrl}/invoices`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getAnalyticsShipments() {\r\n return this.http.get(\r\n `${this.baseUrl}/shipments`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n getAnalyticsOrders() {\r\n return this.http.get(`${this.baseUrl}/orders`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getAnalyticsTopProduct() {\r\n return this.http.get(\r\n `${this.baseUrl}/popular-products`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n getAnalyticsTopUnfinishedChain() {\r\n return this.http.get(\r\n `${this.baseUrl}/popular-chain-raw`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n getAnalyticsTopFinishedChain() {\r\n return this.http.get(\r\n `${this.baseUrl}/popular-chain-finished`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n getAnalyticsTopFindings() {\r\n return this.http.get(\r\n `${this.baseUrl}/popular-findings`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n getAnalyticsTopOtherComponents() {\r\n return this.http.get(\r\n `${this.baseUrl}/popular-other-components`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n getAnalyticsClosedItemWeights() {\r\n return this.http\r\n .get(`${this.baseUrl}/closed-item-weights`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((data) =>\r\n data.map((d) => ({\r\n ...d,\r\n itemName: d.itemName ?? '',\r\n totalClosedWeight: d.individualClosedWeight,\r\n individualClosedWeight: d.individualClosedWeight / d.closedQty,\r\n })),\r\n ),\r\n );\r\n }\r\n getAnalyticsInvoicedWeights({ start, end }) {\r\n return this.http.get(\r\n `${this.baseUrl}/invoiced-weights-report`,\r\n {\r\n headers: this.headers,\r\n params: {\r\n start,\r\n end,\r\n },\r\n },\r\n );\r\n }\r\n getAnalyticsInvoicedTimePeriod({ start, end }) {\r\n return this.http.get(\r\n `${this.baseUrl}/invoiced-time-period`,\r\n {\r\n headers: this.headers,\r\n params: {\r\n start,\r\n end,\r\n },\r\n },\r\n );\r\n }\r\n getAnalyticsInvoicedStones({ start, end }) {\r\n return this.http.get(`${this.baseUrl}/invoiced-stones`, {\r\n headers: this.headers,\r\n params: {\r\n start,\r\n end,\r\n },\r\n });\r\n }\r\n getRollingWeightAverage(params: RollingWeightAverageParams) {\r\n return this.http.get(`${this.baseUrl}/rolling-weight-average`, {\r\n headers: this.headers,\r\n params: { ...params },\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n Chain,\r\n ChainLinkSize,\r\n ChainType,\r\n RivaChain,\r\n RivaChainLength,\r\n RivaChainMaterial,\r\n} from 'src/app/models/chain.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport {\r\n ChainFinish,\r\n ChainFinishBillOfMaterial,\r\n ChainFinishSize,\r\n ChainFinishStock,\r\n OrderDetailAlt,\r\n} from '../components/riva-chain/riva-chain-finish/models';\r\nimport {\r\n ChainRaw,\r\n ChainRawSize,\r\n ChainRawStock,\r\n ChainRouting,\r\n ChainStyle,\r\n} from '../components/riva-chain/riva-chain/models';\r\nimport { ChainFinishMaterial } from './../components/riva-chain/riva-chain-finish/models';\r\nimport { GenericService } from './generic.service';\r\nimport { sizeMapper } from './product-bom.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChainService extends GenericService {\r\n baseUrl = environment.apiUrl + 'chain';\r\n chainUrl = `${environment.apiUrl}chains`;\r\n chainRawUrl = `${environment.apiUrl}chains/raw`;\r\n chainRawSizeUrl = `${environment.apiUrl}chains/raw-sizes`;\r\n chainRawStockUrl = `${environment.apiUrl}chains/raw-stock`;\r\n chainMaterialUrl = `${environment.apiUrl}chains-materials`;\r\n chainLengthUrl = `${environment.apiUrl}chains-lengths`;\r\n chainFinishedUrl = `${environment.apiUrl}chain-finished`;\r\n chainOrderDetailUrl = `${environment.apiUrl}order-details-alt`;\r\n chainStyleUrl = `${environment.apiUrl}chains/styles`;\r\n chainRoutingUrl = `${environment.apiUrl}chain-routing`;\r\n\r\n reloadChains = (chainsId?: number) => {};\r\n reloadRawChainTypes = () => {};\r\n reloadFinishChainTypes = () => {};\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n addupdate(chain: Chain): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', chain, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getListType(): Observable {\r\n return this.http.get(this.baseUrl + '/listtype', { headers: this.headers });\r\n }\r\n\r\n addchaintype(chainType: ChainType): Observable {\r\n return this.http.post(this.baseUrl + '/addtype', chainType, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getListLinkSize(): Observable {\r\n return this.http.get(this.baseUrl + '/listlinksize', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n addlinksize(chainlinksize: ChainLinkSize): Observable {\r\n return this.http.post(this.baseUrl + '/addlinksize', chainlinksize, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n delete(findingsID: number): Observable {\r\n return this.http.delete(this.baseUrl + '/' + findingsID, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n uploadImage(object: FormData): Observable {\r\n return this.http.post(this.baseUrl + '/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n lastupdate(id: number): Observable {\r\n return this.http.get(this.baseUrl + '/lastupdate/' + id.toString(), {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getChain(item: Chain): Observable {\r\n return this.http.post(this.baseUrl + '/getchain', item, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getChains(): Observable {\r\n return this.http.get(this.chainUrl, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n setChain(chain: RivaChain) {\r\n return this.http.post(this.chainUrl, chain, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getChainRaws(): Observable {\r\n return this.http\r\n .get(this.chainRawUrl, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((data) =>\r\n data.map((c) => ({\r\n ...c,\r\n ...(c.chainStyle ?? {}),\r\n fromSupplier: !c.inHouse,\r\n })),\r\n ),\r\n );\r\n }\r\n getChainRawSizes(chainRawId): Observable {\r\n return this.http.get(\r\n `${this.chainRawSizeUrl}/${chainRawId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setChainRawSize(chainSize: ChainRawSize) {\r\n return this.http.post(this.chainRawSizeUrl, chainSize, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getChainRawStock(chainRawID): Observable {\r\n return this.http.get(\r\n `${this.chainRawStockUrl}/${chainRawID}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setChainRawStock(chainStock: ChainRawStock) {\r\n return this.http.post(this.chainRawStockUrl, chainStock, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n setChainRaw(chain: ChainRaw) {\r\n return this.http.post(this.chainRawUrl, chain, {\r\n headers: this.headers,\r\n });\r\n }\r\n chainRawUploadImage(object: FormData): Observable {\r\n return this.http.post(this.chainRawUrl + '/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n responseType: 'text' as 'json',\r\n });\r\n }\r\n\r\n chainUploadImage(object: FormData): Observable {\r\n return this.http.post(this.chainUrl + '/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n getChainMaterials(chainsID: number): Observable {\r\n return this.http.get(this.chainMaterialUrl, {\r\n headers: this.headers,\r\n params: {\r\n chainsID,\r\n },\r\n });\r\n }\r\n\r\n setChainMaterial(chainMaterial: RivaChainMaterial) {\r\n return this.http.post(this.chainMaterialUrl, chainMaterial, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getChainLengths(chainsID: number): Observable {\r\n return this.http.get(this.chainLengthUrl, {\r\n headers: this.headers,\r\n params: {\r\n chainsID,\r\n },\r\n });\r\n }\r\n\r\n setChainLength(chainLength: RivaChainLength) {\r\n return this.http.post(this.chainLengthUrl, chainLength, {\r\n headers: this.headers,\r\n });\r\n }\r\n getChainFinished(): Observable {\r\n return this.http\r\n .get(this.chainFinishedUrl, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((chains) =>\r\n chains.map((chain) => ({\r\n ...chain,\r\n styleName: chain.chainRaw?.chainStyle?.styleName ?? '',\r\n sku: chain.chainRaw?.sku ?? '',\r\n fromSupplier: !chain.inHouse,\r\n })),\r\n ),\r\n );\r\n }\r\n setChainFinished(chainFinished: ChainFinish) {\r\n return this.http.post(this.chainFinishedUrl, chainFinished, {\r\n headers: this.headers,\r\n });\r\n }\r\n uploadFinishedImage(object: FormData): Observable {\r\n return this.http.post(this.chainFinishedUrl + '/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n responseType: 'text' as 'json',\r\n });\r\n }\r\n getChainFinishedBom(id): Observable {\r\n return this.http\r\n .get(`${this.chainFinishedUrl}/bom/${id}`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((items) =>\r\n items.map((item) => ({\r\n ...item,\r\n name: item.findings.sizes.findingsTypeName,\r\n size: sizeMapper(item.findings.sizes),\r\n })),\r\n ),\r\n );\r\n }\r\n setChainFinishedBom(data: ChainFinishBillOfMaterial) {\r\n return this.http.post(`${this.chainFinishedUrl}/bom`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getChainFinishedSizes(chainFinishedId: number) {\r\n return this.http.get(\r\n `${this.chainFinishedUrl}/sizes/${chainFinishedId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setChainFinishedSizes(size: ChainFinishSize) {\r\n return this.http.post(`${this.chainFinishedUrl}/sizes`, size, {\r\n headers: this.headers,\r\n });\r\n }\r\n getChainFinishedMaterials(chainFinishedId: number) {\r\n return this.http.get(\r\n `${this.chainFinishedUrl}/materials/${chainFinishedId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setChainFinishedMaterial(material: ChainFinishMaterial) {\r\n return this.http.post(`${this.chainFinishedUrl}/materials`, material, {\r\n headers: this.headers,\r\n });\r\n }\r\n getChainFinishedStocks(chainFinishedSizeId: number) {\r\n return this.http.get(\r\n `${this.chainFinishedUrl}/stock/${chainFinishedSizeId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setChainFinishedStocks(stock: ChainFinishStock) {\r\n return this.http.post(`${this.chainFinishedUrl}/stock`, stock, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getChainOrderDetail(orderId: number) {\r\n return this.http.get(\r\n `${this.chainOrderDetailUrl}/${orderId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n setChainOrderDetail(order: OrderDetailAlt) {\r\n return this.http.post(this.chainOrderDetailUrl, order, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getChainStyles(): Observable {\r\n return this.http.get(this.chainStyleUrl, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n setChainStyles(chain: ChainStyle) {\r\n return this.http.post(this.chainStyleUrl, chain, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getChainRoutings(chainId, type): Observable {\r\n return this.http.get(this.chainRoutingUrl, {\r\n headers: this.headers,\r\n params: {\r\n chainId,\r\n type,\r\n },\r\n });\r\n }\r\n\r\n setChainRouting(chain: ChainRouting[]) {\r\n return this.http.post(this.chainRoutingUrl, chain, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deleteChainRouting(routingId) {\r\n return this.http.delete(`${this.chainRoutingUrl}/${routingId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Chainfinished } from './../models/chainfinished.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChainfinishedService extends GenericService {\r\n baseUrl = environment.apiUrl + 'chainfinished';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n addupdate(chainfinished: Chainfinished): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', chainfinished, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n delete(findingsID: number): Observable {\r\n return this.http.delete(this.baseUrl + '/' + findingsID, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n uploadImage(object: FormData): Observable {\r\n return this.http.post(this.baseUrl + '/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n lastupdate(id: number): Observable {\r\n return this.http.get(this.baseUrl + '/lastupdate/' + id.toString(), {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ChainfinishedInfo } from './../models/chainfinished.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChainfinishedinfoService extends GenericService {\r\n baseUrl = environment.apiUrl + 'chainfinishedinfo';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n addupdate(chainfinishedinfo: ChainfinishedInfo): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', chainfinishedinfo, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n delete(findingsID: number): Observable {\r\n return this.http.delete(this.baseUrl + '/' + findingsID, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n uploadImage(object: FormData): Observable {\r\n return this.http.post(this.baseUrl + '/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n lastupdate(id: number): Observable {\r\n return this.http.get(this.baseUrl + '/lastupdate/' + id.toString(), {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { CustomerAddress } from 'src/app/models/customer';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\nconst formatAddress = (address: CustomerAddress) => {\r\n const address1 = address.address1 ? `${address.address1} ` : '';\r\n const address2 = address.address2 ? `${address.address2} ` : '';\r\n const city = address.city ? `${address.city}, ` : '';\r\n const region = address.region ? `${address.region} ` : '';\r\n const postalCode = address.postalCode ? `${address.postalCode}, ` : '';\r\n const country = address.country ? `${address.country}` : '';\r\n\r\n return `${address1}${address2}${city}${region}${postalCode}${country}`;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CustomerAddressService extends GenericService {\r\n baseUrl = `${environment.apiUrl}customer-address`;\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n setCustomerAddress(address: CustomerAddress) {\r\n return this.http.post(this.baseUrl, address, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n setCustomerAddresses(custIdNo: number, addresses: CustomerAddress[]) {\r\n const request = addresses.reduce((requests, address) => {\r\n address.custIdno = custIdNo;\r\n return [...requests, this.setCustomerAddress(address)];\r\n }, []);\r\n return forkJoin(request);\r\n }\r\n\r\n setAddressDefault(data) {\r\n return this.http.put(`${this.baseUrl}/default`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getCustomerAddress(customerId) {\r\n return this.http\r\n .get(this.baseUrl, {\r\n headers: this.headers,\r\n params: {\r\n customerId,\r\n },\r\n })\r\n .pipe(\r\n map((addresses) =>\r\n addresses.map((address) => ({\r\n ...address,\r\n fullAddress: formatAddress(address),\r\n })),\r\n ),\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { CustomerAddOns, CustomerAddress } from 'src/app/models/customer';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Customers } from './../models/customer';\r\nimport { GenericService } from './generic.service';\r\n\r\nexport const formatAddress = (address: CustomerAddress) => {\r\n const address1 = address.address1 ? `${address.address1} ` : '';\r\n const address2 = address.address2 ? `${address.address2} ` : '';\r\n const city = address.city ? `${address.city}, ` : '';\r\n const region = address.region ? `${address.region} ` : '';\r\n const postalCode = address.postalCode ? `${address.postalCode}, ` : '';\r\n const country = address.country ? `${address.country}` : '';\r\n\r\n return `${address1}${address2}${city}${region}${postalCode}${country}`;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CustomerService extends GenericService {\r\n baseUrl = environment.apiUrl + 'customer';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n addupdate(customer: Customers): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', customer, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getCustomer(customerId) {\r\n return this.http\r\n .get(`${this.baseUrl}/${customerId}`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((customer) => ({\r\n ...customer,\r\n addresses: customer.addresses.map((address) => ({\r\n ...address,\r\n fullAddress: formatAddress(address),\r\n })),\r\n })),\r\n );\r\n }\r\n getCustomerAddOnsByCustomerId(customerId) {\r\n return this.http\r\n .get(`${this.baseUrl}/add-ons/${customerId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n getCustomerAddOns() {\r\n return this.http\r\n .get(`${this.baseUrl}/add-ons/all`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setCustomerAddOns(data) {\r\n return this.http.post(`${this.baseUrl}/add-ons`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteCustomerAddOns(id) {\r\n return this.http.delete(`${this.baseUrl}/add-ons/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EnamelService extends GenericService {\r\n baseUrl = environment.apiUrl + 'enamel';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { FindingRouting } from '../components/riva-findings/finding-routing/model';\r\nimport {\r\n Finding,\r\n FindingsStock,\r\n FindingsType,\r\n FindingsTypeSize,\r\n MeasurementUnit,\r\n} from './../components/riva-findings/model';\r\nimport {\r\n Findings,\r\n FindingsMaterial,\r\n FindingsSize,\r\n RivaFindings,\r\n RivaFindingsDto,\r\n} from './../models/findings.model';\r\nimport { GenericService } from './generic.service';\r\nimport { sizeMapper } from './product-bom.service';\r\n\r\nconst jumpringSizeMapper = (\r\n sizes: FindingsTypeSize,\r\n unit: MeasurementUnit = 'mm',\r\n) => {\r\n const { size_2, size_3 } = sizes;\r\n const jumpringSizes = [];\r\n if (size_2) jumpringSizes.push(size_2);\r\n if (size_3) jumpringSizes.push(size_3);\r\n\r\n return orderBy(jumpringSizes, [], ['desc'])\r\n .map((w) => {\r\n const value = unit === 'mm' ? w : w / 25.4;\r\n return `${Number(value.toFixed(3))}${unit}`;\r\n })\r\n .join(' x ');\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FindingsService extends GenericService {\r\n baseUrl = environment.apiUrl + 'findings';\r\n routingUrl = environment.apiUrl + 'findings-routing';\r\n\r\n public reloadFindingsList = (findingsId?: number) => {};\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n addupdate(findings: Findings): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', findings, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n delete(findingsID: number): Observable {\r\n return this.http.delete(this.baseUrl + '/' + findingsID, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n uploadImage(object: FormData): Observable {\r\n return this.http.post(this.baseUrl + '/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n responseType: 'text' as 'json',\r\n });\r\n }\r\n\r\n lastupdate(id: number): Observable {\r\n return this.http.get(this.baseUrl + '/lastupdate/' + id.toString(), {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getFindings(): Observable {\r\n return this.http.get(this.baseUrl, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n setFindings(findings: RivaFindingsDto) {\r\n return this.http.post(this.baseUrl, findings, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n setFindingsMaterials(findingsMaterial) {\r\n return this.http.post(`${this.baseUrl}/materials`, findingsMaterial, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteFindingsMaterials(findingsMaterialId) {\r\n return this.http.delete(`${this.baseUrl}/materials/${findingsMaterialId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n getFindingList() {\r\n return this.http\r\n .get(this.baseUrl, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((findings) =>\r\n findings.map((finding) => ({\r\n ...finding,\r\n ...finding.sizes,\r\n jumpringSize: jumpringSizeMapper(finding.sizes),\r\n jumpringSizeInches: jumpringSizeMapper(finding.sizes, 'in'),\r\n sizeLabel: sizeMapper(finding.sizes),\r\n sizeLabelInches: sizeMapper(finding.sizes, 'in'),\r\n customerId: finding.customer?.id,\r\n customerName: finding.customer.companyName ?? 'RIVA Precision MFG',\r\n })),\r\n ),\r\n );\r\n }\r\n getFindingsSizes() {\r\n return this.http.get(`${this.baseUrl}/sizes`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setFindingsSizes(findingsSize) {\r\n return this.http.post(`${this.baseUrl}/sizes`, findingsSize, {\r\n headers: this.headers,\r\n });\r\n }\r\n setFinding(finding) {\r\n return this.http.post(this.baseUrl, finding, {\r\n headers: this.headers,\r\n });\r\n }\r\n getFindingsStocks() {\r\n return this.http.get(`${this.baseUrl}/stock`, {\r\n headers: this.headers,\r\n });\r\n }\r\n getFindingsStockBySizeId(findingsSizeId) {\r\n return this.http.get(\r\n `${this.baseUrl}/stock/${findingsSizeId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setFindingsStock(stock) {\r\n return this.http.post(`${this.baseUrl}/stock`, stock, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteFindingsSizes(findingsSizesId) {\r\n return this.http.delete(`${this.baseUrl}/sizes/${findingsSizesId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n orderFindingsMaterialAndSize(findingsList: RivaFindings) {\r\n const sizes = findingsList.sizes.reduce(\r\n (accum, size) => {\r\n const isNumber = !Number.isNaN(Number(size.size));\r\n if (isNumber) {\r\n const value = Number(size.size);\r\n accum.numeric = [...accum.numeric, { ...size, size: value }];\r\n } else {\r\n accum.alpha = [...accum.alpha, size];\r\n }\r\n return accum;\r\n },\r\n {\r\n alpha: [],\r\n numeric: [],\r\n },\r\n );\r\n const sortedNumber = orderBy(\r\n sizes.numeric,\r\n (s: FindingsSize) => s.size,\r\n 'desc',\r\n );\r\n const convertedSizeToString = sortedNumber.map((s) => ({\r\n ...s,\r\n size: s.size?.toString(),\r\n }));\r\n findingsList.materials = orderBy(\r\n findingsList.materials,\r\n (m: FindingsMaterial) => m.description,\r\n 'desc',\r\n );\r\n findingsList.sizes = [\r\n ...convertedSizeToString,\r\n ...orderBy(sizes.alpha, (s: FindingsSize) => s.size, 'desc'),\r\n ];\r\n return findingsList;\r\n }\r\n\r\n setFindingsRouting(data) {\r\n return this.http.post(this.routingUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getFindingsRoutingByFindingsId(id) {\r\n return this.http.get(`${this.routingUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteFindingsRouting(id) {\r\n return this.http.delete(`${this.routingUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n getFindingsTypes() {\r\n return this.http\r\n .get(`${this.baseUrl}/types`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((data) => {\r\n return data.reduce>(\r\n (findingsType, type) => {\r\n return {\r\n ...findingsType,\r\n [type.findingsTypeId]: type,\r\n };\r\n },\r\n {},\r\n );\r\n }),\r\n );\r\n }\r\n setFindingsType(type: FindingsType) {\r\n return this.http.post(`${this.baseUrl}/types`, type, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { FindingsInfo } from './../models/findings.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FindingsinfoService extends GenericService {\r\n baseUrl = environment.apiUrl + 'findingsinfo';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n addupdate(findingsinfo: FindingsInfo): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', findingsinfo, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GemInventory, Gems, GemSizes } from './../models/gems.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GemService extends GenericService {\r\n baseUrl = environment.apiUrl + 'gems';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n getCutList(): Observable {\r\n return this.http.get(this.baseUrl + '/cutlist', { headers: this.headers });\r\n }\r\n\r\n getGemItemName(inventoryId: number): Observable {\r\n let url = this.baseUrl + '/gem-item-name/' + inventoryId;\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n update(gem: Gems): Observable {\r\n return this.http.post(this.baseUrl + '/update', gem, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getProductImages(id: number): Observable {\r\n return this.http.get(this.baseUrl + '/upload/' + id + '/list', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n uploadImage(object: FormData): Observable {\r\n return this.http.post(this.baseUrl + '/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n getTypeList(): Observable {\r\n return this.http.get(this.baseUrl + '/typelist', { headers: this.headers });\r\n }\r\n\r\n getSizeList(): Observable {\r\n return this.http.get(this.baseUrl + '/sizelist', { headers: this.headers });\r\n }\r\n\r\n getGemInventory(item: GemInventory): Observable {\r\n return this.http.post(this.baseUrl + '/getinventory', item, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n addupdate(item: GemInventory): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', item, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n addupdateSize(item: GemSizes): Observable {\r\n return this.http.post(this.baseUrl + '/addupdatesize', item, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nexport const getTypeLabel = (type: number) => {\r\n switch (type) {\r\n case 0:\r\n return 'Soft';\r\n case 1:\r\n return 'HyCeram';\r\n case 2:\r\n return 'Hard';\r\n default:\r\n return '';\r\n }\r\n};\r\n@Injectable()\r\nexport class GenericService {\r\n public baseUrl: string;\r\n public http: HttpClient;\r\n public ApiKey: string = environment.apiKey;\r\n public headers = new HttpHeaders()\r\n .set('Content-type', 'application/json')\r\n .set('X-ApiKey', this.ApiKey);\r\n\r\n public customHeader = new HttpHeaders().set('X-ApiKey', this.ApiKey);\r\n\r\n constructor(_http: HttpClient) {\r\n this.http = _http;\r\n }\r\n\r\n public get(id: number, endpoint: string): Observable {\r\n return this.http.get(this.baseUrl + endpoint + '/' + id, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getParamString(id: string, endpoint: string): Observable {\r\n return this.http.get(this.baseUrl + endpoint + '/' + id, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getAll(): Observable {\r\n return this.http.get(this.baseUrl, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public post(object: any, endpoint: string): Observable {\r\n return this.http.post(this.baseUrl + endpoint, JSON.stringify(object), {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public put(object: any, endpoint: string): Observable {\r\n return this.http.put(this.baseUrl + endpoint, JSON.stringify(object), {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public delete(id: number, endpoint: string): Observable {\r\n return this.http.delete(this.baseUrl + endpoint + '/' + id, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public uploadTempPhoto(object: FormData): Observable {\r\n return this.http.post(this.baseUrl + '/upload-temp', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n public moveTemp(id: number, fileID: string): Observable {\r\n return this.http.get(this.baseUrl + '/move-temp/' + id + '/' + fileID, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n uploadPicture(object: FormData): Observable {\r\n return this.http.post(`${this.baseUrl}/upload`, object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n responseType: 'text',\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ProductHistory } from '../models/product';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HistoryService extends GenericService {\r\n baseUrl = environment.apiUrl + 'history';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getProductHistory(id) {\r\n return this.http.get(this.baseUrl + `/product/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { InventoryLog } from '../models/inventory-log';\r\nimport { environment } from './../../environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InventoryLogService extends GenericService {\r\n baseUrl = environment.apiUrl + 'inventorylog';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n // generateWorkOrder(orderId: number){\r\n // return this.http.get(this.baseUrl + '/workorder-report/' + orderId, { headers: this.headers });\r\n // }\r\n\r\n // generateProductInventory(){\r\n // return this.http.get(this.baseUrl + '/productinventory-report', { headers: this.headers });\r\n // }\r\n\r\n getScannerData(barcodeId: number) {\r\n return this.get(barcodeId, '/GetScannerData');\r\n }\r\n\r\n //getScannerDataItemNo(itemNo: string){\r\n // return this.getParamString(itemNo, '/GetScannerDataItemNo');\r\n //}\r\n\r\n getScannerDataItemNo(object: InventoryLog) {\r\n return this.post(object, '/GetScannerDataItemNo');\r\n }\r\n\r\n getScannerDataWKO(wkoID: string) {\r\n return this.getParamString(wkoID, '/GetScannerDataWKO');\r\n }\r\n\r\n addInventoryLog(object: InventoryLog) {\r\n return this.put(object, '/update');\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n RivaGems,\r\n StoneSizeOrderDetails,\r\n} from 'src/app/components/riva-gems/riva-gems.model';\r\nimport { WorkOrderType } from 'src/app/components/work-order-view/work-order-type';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Invoice } from '../components/invoicing-shipping/invoicing/models/invoice';\r\nimport { InvoicingLookupItem } from '../components/invoicing-shipping/invoicing/models/invoicing-lookup-item';\r\nimport { ShipmentDetail } from '../components/invoicing-shipping/shipping/models/shipment';\r\nimport { RelatedShipment } from './../components/invoicing-shipping/invoicing/models/related-shipment';\r\nimport { getOrderDetailsSizeDisplayText } from './../components/work-order-view/work-order-view.component';\r\nimport { GenericService } from './generic.service';\r\n\r\nconst getStoneDetail = (stone: RivaGems) => {\r\n const detail = [];\r\n if (stone.type) detail.push(stone.type);\r\n if (stone.color) detail.push(stone.color);\r\n if ((stone.size as StoneSizeOrderDetails).dimension1)\r\n detail.push(\r\n getOrderDetailsSizeDisplayText(stone.size as StoneSizeOrderDetails),\r\n );\r\n return detail.join(' | ');\r\n};\r\n\r\nconst getChainName = (chain) => {\r\n if (chain == null) return '';\r\n const data = [];\r\n if (chain.sku) data.push(chain.sku);\r\n if (chain.styleName) data.push(chain.styleName);\r\n if (chain.lengthOrSize) data.push(chain.lengthOrSize);\r\n return data.join(' | ');\r\n};\r\n\r\nconst getLookupChainName = (data) => {\r\n if (data == null) return '';\r\n const values = [];\r\n if (data.ordersDetailsChainSKU) values.push(data.ordersDetailsChainSKU);\r\n if (data.ordersDetailsChainStyleName)\r\n values.push(data.ordersDetailsChainStyleName);\r\n if (data.ordersDetailsChainLengthOrSize)\r\n values.push(data.ordersDetailsChainLengthOrSize);\r\n return values.join(' | ');\r\n};\r\n\r\nconst processFindingsSize = (size = '') => {\r\n return size\r\n .split('x')\r\n .reduce((sz, val) => {\r\n const trimmedValue = val.trim();\r\n return trimmedValue !== '' ? [...sz, trimmedValue] : sz;\r\n }, [])\r\n .join(' x ');\r\n};\r\n\r\nconst getLookupProductName = (item, workOrderType) => {\r\n if (workOrderType === WorkOrderType.Finding) {\r\n return (\r\n item.productName ??\r\n `${item.findingsType} | ${processFindingsSize(item.size)}`\r\n );\r\n } else {\r\n return `${item.productName}${item.sku ? ` | ${item.sku}` : ''}`;\r\n }\r\n};\r\n\r\nexport const invoiceMapper = (i) => ({\r\n ...i,\r\n link: `/invoicing-and-shipping/invoicing/${i.invoicesID}`,\r\n invoicedDate: i.invoicedDate\r\n ? DateTime.fromJSDate(new Date(i.invoicedDate)).toFormat('MM/dd/yyyy')\r\n : '',\r\n invoicesDetails: i.invoicesDetails.map((d, index) => ({\r\n ...d,\r\n key: index,\r\n weight: (d.wghtGrms ?? 0) > 0 ? d.wghtGrms : d.unitWeightGrams,\r\n stoneType: d.stone?.type,\r\n stoneColor: d.stone?.color,\r\n stoneSize: d.stone?.size\r\n ? getOrderDetailsSizeDisplayText(d.stone?.size as StoneSizeOrderDetails)\r\n : '',\r\n chain: getChainName(d.ordersDetailsChain),\r\n productName:\r\n d.findingsType != null\r\n ? getLookupProductName(d, WorkOrderType.Finding)\r\n : d.productName,\r\n hasWeight: (d.wghtGrms ?? 0) > 0,\r\n hasSecondaryWeight: (d.wghtGrmsSecondary ?? 0) > 0,\r\n wghtgrmsSecondary:\r\n ((d.wghtGrmsSecondary ?? 0) > 0\r\n ? d.wghtGrmsSecondary\r\n : d.unitWeightG_Secondary) ?? 0,\r\n })),\r\n});\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InvoiceService extends GenericService {\r\n baseUrl = environment.apiUrl + 'invoices';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getInvoices() {\r\n return this.http\r\n .get(this.baseUrl, { headers: this.headers })\r\n .pipe(map((invoices) => invoices.map(invoiceMapper)));\r\n }\r\n\r\n getPagedInvoices(params) {\r\n return this.http.get(`${this.baseUrl}/paged`, {\r\n headers: this.headers,\r\n params: { ...params },\r\n observe: 'response',\r\n });\r\n }\r\n\r\n getShipmentByInvoiceId(invoiceId) {\r\n return this.http\r\n .get(`${this.baseUrl}/generate-shipment`, {\r\n headers: this.headers,\r\n params: {\r\n invoiceId,\r\n },\r\n })\r\n .pipe(\r\n map((data) =>\r\n data.map((item) => ({\r\n ...item,\r\n qty: item.qtyToShip,\r\n productName: getLookupProductName(\r\n item,\r\n item.findingsType != null\r\n ? WorkOrderType.Finding\r\n : WorkOrderType.Product,\r\n ),\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n getInvoiceById(id) {\r\n return this.http\r\n .get(`${this.baseUrl}/${id}`, { headers: this.headers })\r\n .pipe(map((invoice) => invoiceMapper(invoice)));\r\n }\r\n\r\n getInvoicesExcel(params) {\r\n return this.http.get(`${this.baseUrl}/export`, {\r\n headers: this.headers,\r\n params: { ...params },\r\n responseType: 'arraybuffer',\r\n });\r\n }\r\n\r\n setInvoices(data) {\r\n return this.http.post(this.baseUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n updateInvoices(data) {\r\n return this.http.put(this.baseUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getLookUpItems(workOrderId, workOrderType = WorkOrderType.Product) {\r\n return this.http\r\n .get(`${this.baseUrl}/lookup-items`, {\r\n headers: this.headers,\r\n params: {\r\n workOrderId,\r\n },\r\n })\r\n .pipe(\r\n map((items) =>\r\n items.map((item) => ({\r\n ...item,\r\n productName: getLookupProductName(item, workOrderType),\r\n qty: item.availableQtyToInvoice,\r\n chain: getLookupChainName(item),\r\n size:\r\n workOrderType === WorkOrderType.Finding\r\n ? processFindingsSize(item.size)\r\n : item.size,\r\n totalAddOns: item.pricingAddOns?.reduce(\r\n (total, a) => total + a.price,\r\n 0,\r\n ),\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n getOrderItems(orderId) {\r\n return this.http\r\n .get(`${this.baseUrl}/order-items`, {\r\n headers: this.headers,\r\n params: {\r\n orderId,\r\n },\r\n })\r\n .pipe(\r\n map((items) =>\r\n items.map((item) => ({\r\n ...item,\r\n qty: item.availableQtyToInvoice,\r\n chain: getLookupChainName(item),\r\n productName: getLookupProductName(\r\n item,\r\n item.findingsType != null\r\n ? WorkOrderType.Finding\r\n : WorkOrderType.Product,\r\n ),\r\n totalAddOns: item.pricingAddOns?.reduce(\r\n (total, a) => total + a.price,\r\n 0,\r\n ),\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n generatePdf(id) {\r\n return this.http.get(`${this.baseUrl}/generate-pdf`, {\r\n headers: this.headers,\r\n responseType: 'text' as 'json',\r\n params: {\r\n id,\r\n },\r\n });\r\n }\r\n\r\n getRelatedShipments(invoiceId) {\r\n return this.http.get(\r\n `${this.baseUrl}/shipments/${invoiceId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n byPassWorkOrder(data) {\r\n return this.http.put(`${this.baseUrl}/bypass-work-order`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deleteInvoiceCharge(invoicesDetailsChargesID) {\r\n return this.http.delete(\r\n `${this.baseUrl}/details-charges/${invoicesDetailsChargesID}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n updatedInvoiceCharge(data) {\r\n return this.http.post(`${this.baseUrl}/details-charges`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deleteLineItem(invoicesDetailsID) {\r\n return this.http.delete(`${this.baseUrl}/line-items/${invoicesDetailsID}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n updateLineItem(invoicesDetailsID, data) {\r\n return this.http.put(\r\n `${this.baseUrl}/line-items/${invoicesDetailsID}`,\r\n data,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class JewelryTypeService extends GenericService {\r\n baseUrl = environment.apiUrl + 'jewelrytype';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/jewelrytype-list', {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class JiraService extends GenericService {\r\n baseUrl = environment.apiUrl + 'jira';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n scan(issueKey: string): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/scan`, {\r\n headers: this.headers,\r\n params: {\r\n issueKey\r\n },\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ManufacturedMaterialsInfoService extends GenericService {\r\n baseUrl = environment.apiUrl + 'mfrmatinfo';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ManufacturedMaterialsService extends GenericService {\r\n baseUrl = environment.apiUrl + 'mfrmat';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n lastupdate(id: number): Observable {\r\n return this.http.get(this.baseUrl + '/lastupdate/' + id.toString(), {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n MatCodeSize,\r\n MaterialCode,\r\n MaterialCodeCalculation,\r\n Sizes,\r\n SizeUpdate,\r\n} from 'src/app/models/material-code';\r\nimport { ProductService } from 'src/app/services/product.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MaterialCodeService extends GenericService {\r\n baseUrl = environment.apiUrl + 'materialcode';\r\n materialCodeCalculationUrl =\r\n environment.apiUrl + 'material-code-calculations';\r\n\r\n //productID = 0;\r\n\r\n lstMaterialCode: MaterialCode[];\r\n lstSize: Sizes[];\r\n lstMatCodeSize: MatCodeSize[];\r\n\r\n constructor(http: HttpClient, private productService: ProductService) {\r\n super(http);\r\n }\r\n\r\n materialWithSize(productId: number, size: number): Observable {\r\n let url = this.baseUrl + '/' + productId + '/sizeinmaterial/' + size;\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n create(material: MaterialCode): Observable {\r\n return this.http.post(this.baseUrl, material, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n update(material: MaterialCode): Observable {\r\n return this.http.put(this.baseUrl, material, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n updateSize(sizeUpdate: SizeUpdate): Observable {\r\n return this.http.put(this.baseUrl + '/size-update', sizeUpdate, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n delete(materialCodeId: number): Observable {\r\n return this.http.delete(this.baseUrl + '/' + materialCodeId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deleteSize(\r\n productId: number,\r\n materialCodeId: number,\r\n size: number,\r\n ): Observable {\r\n return this.http.delete(\r\n this.baseUrl +\r\n '/size-delete/' +\r\n productId +\r\n '/' +\r\n materialCodeId +\r\n '/' +\r\n size,\r\n { headers: this.headers },\r\n );\r\n }\r\n\r\n // get material list\r\n getMaterialCodes(\r\n matList: MaterialCode[],\r\n matIDList: number[],\r\n ): MaterialCode[] {\r\n let lstTempMat: MaterialCode[] = [];\r\n\r\n for (let i = 0; i < matIDList.length; i++) {\r\n for (let j = 0; j < matList.length; j++) {\r\n if (matList[j].materialCodeId == matIDList[i]) {\r\n lstTempMat.push(matList[j]);\r\n }\r\n }\r\n }\r\n matList = [];\r\n if (lstTempMat.length > 0) {\r\n matList = lstTempMat;\r\n }\r\n\r\n return matList;\r\n }\r\n\r\n getProductMaterialSize(prodID: number): Observable {\r\n let url = this.productService.baseUrl + '/MatList/' + prodID;\r\n\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n getMaterialCodesView(\r\n prodID: number,\r\n matList: MaterialCode[] = null,\r\n outCB: (\r\n OmatList: MaterialCode[],\r\n sizeList: Sizes[],\r\n oMatSize: MatCodeSize[],\r\n ) => void,\r\n ) {\r\n let lstMatIds: number[] = [];\r\n let sizes: number[] = [];\r\n\r\n this.getProductMaterialSize(prodID).subscribe((res) => {\r\n this.lstMatCodeSize = res;\r\n for (let i = 0; i < this.lstMatCodeSize.length; i++) {\r\n lstMatIds.push(this.lstMatCodeSize[i].matID);\r\n sizes.push(this.lstMatCodeSize[i].size);\r\n\r\n lstMatIds = Array.from(new Set(lstMatIds));\r\n sizes = Array.from(new Set(sizes));\r\n }\r\n\r\n this.lstSize = [];\r\n\r\n for (let i = 0; i < sizes.length; i++) {\r\n let iSize: Sizes = new Sizes();\r\n\r\n iSize.size = sizes[i];\r\n\r\n this.lstSize.push(iSize);\r\n }\r\n\r\n this.lstMaterialCode = [];\r\n if (this.lstMatCodeSize.length > 0) {\r\n this.lstMaterialCode = this.getMaterialCodes(matList, lstMatIds);\r\n }\r\n\r\n outCB(this.lstMaterialCode, this.lstSize, this.lstMatCodeSize);\r\n });\r\n }\r\n\r\n getMaterialCodeCalculations() {\r\n return this.http.get(\r\n this.materialCodeCalculationUrl,\r\n { headers: this.headers },\r\n );\r\n }\r\n\r\n setMaterialCodeCalculation(data: Partial) {\r\n return this.http.post(this.materialCodeCalculationUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteMaterialCodeCalculation(id: number) {\r\n return this.http.delete(`${this.materialCodeCalculationUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MetalGrainService extends GenericService {\r\n baseUrl = environment.apiUrl + 'metalgrain';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { DateTime } from 'luxon';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { MetalMarket, MetalMarketPremiums } from 'src/app/models/metal-market';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MetalMarketService extends GenericService {\r\n baseUrl = environment.apiUrl + 'metal-market';\r\n premiumsUrl = environment.apiUrl + 'metal-market-premiums';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getMetalMarketDates() {\r\n return this.http\r\n .get(`${this.baseUrl}/dates`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((list) => {\r\n return list.map((value) => ({\r\n ...value,\r\n marketDate: DateTime.fromJSDate(\r\n new Date(value.marketDate),\r\n ).toFormat('yyyy-MM-dd'),\r\n }));\r\n }),\r\n );\r\n }\r\n\r\n getLatestMetalMarket() {\r\n return this.getMetalMarketDates().pipe(\r\n switchMap((dates = []) => {\r\n const [latest] = orderBy(dates, ['metalMarketID'], ['desc']);\r\n return this.getMetalMarketById(latest.metalMarketID);\r\n }),\r\n );\r\n }\r\n\r\n getMetalMarketById(metalMarketId) {\r\n return this.http\r\n .get(this.baseUrl, {\r\n headers: this.headers,\r\n params: {\r\n metalMarketId,\r\n },\r\n })\r\n .pipe(\r\n map((data) => ({\r\n ...data,\r\n marketDate: DateTime.fromJSDate(new Date(data.marketDate)).toFormat(\r\n 'MM/dd/yyyy',\r\n ),\r\n enteredDate: DateTime.fromJSDate(new Date(data.enteredDate)).toFormat(\r\n 'yyyy-MM-dd',\r\n ),\r\n })),\r\n );\r\n }\r\n\r\n getMetalMarket(entryDate) {\r\n return this.http\r\n .get(this.baseUrl, {\r\n headers: this.headers,\r\n params: {\r\n entryDate,\r\n },\r\n })\r\n .pipe(\r\n map((metalMarket) => {\r\n return {\r\n ...metalMarket,\r\n marketDate: DateTime.fromJSDate(\r\n new Date(metalMarket.marketDate),\r\n ).toFormat('yyyy-MM-dd'),\r\n enteredDate: DateTime.fromJSDate(\r\n new Date(metalMarket.enteredDate),\r\n ).toFormat('yyyy-MM-dd'),\r\n };\r\n }),\r\n );\r\n }\r\n\r\n getMetalMarketPremiums() {\r\n return this.http.get(this.premiumsUrl, {\r\n headers: this.headers,\r\n });\r\n }\r\n setMetalMarketPremiums(data: MetalMarketPremiums) {\r\n return this.http.post(this.premiumsUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getMetalMarketByReceivedDate(orderReceivedDate) {\r\n return this.http\r\n .get(`${this.baseUrl}/based-received-date`, {\r\n headers: this.headers,\r\n params: {\r\n orderReceivedDate,\r\n },\r\n })\r\n .pipe(\r\n map((metalMarket) => {\r\n return {\r\n ...metalMarket,\r\n marketDate: DateTime.fromJSDate(\r\n new Date(metalMarket.marketDate),\r\n ).toFormat('yyyy-MM-dd'),\r\n enteredDate: DateTime.fromJSDate(\r\n new Date(metalMarket.enteredDate),\r\n ).toFormat('yyyy-MM-dd'),\r\n };\r\n }),\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Nonprecious } from './../models/nonprecious.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NonPreciousService extends GenericService {\r\n baseUrl = environment.apiUrl + 'nonprecious';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n addupdate(nonPrecious: Nonprecious): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', nonPrecious, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n delete(findingsID: number): Observable {\r\n return this.http.delete(this.baseUrl + '/' + findingsID, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n uploadImage(object: FormData): Observable {\r\n return this.http.post(this.baseUrl + '/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n lastupdate(id: number): Observable {\r\n return this.http.get(this.baseUrl + '/lastupdate/' + id.toString(), {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Invoice } from '../components/invoicing-shipping/invoicing/models/invoice';\r\nimport {\r\n OpenOrder,\r\n OrderParams,\r\n Orders,\r\n RivaOrders,\r\n StoneOpenOrder,\r\n} from '../models/orders.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OrderService extends GenericService {\r\n baseUrl = environment.apiUrl + 'orders';\r\n ordersImportUrl = environment.apiUrl + 'orders-import';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getListOrders(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n getListOpenOrders(): Observable {\r\n return this.http.get(this.baseUrl + '/open-orders', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getOrderById(orderId: number): Observable {\r\n return this.http.get(this.baseUrl + '/get/' + orderId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getOrderByCustomerId(customerId: number): Observable {\r\n return this.http.get(this.baseUrl + '/GetByCustomerId/' + customerId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getByOrderDetailsId(orderDetailsId: number): Observable {\r\n return this.http.get(this.baseUrl + '/parent-order/' + orderDetailsId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getListOrderStatus(): Observable {\r\n return this.http.get(this.baseUrl + '/statuslist', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n addupdate(order: Orders | any): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', order, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n upload(formData: FormData, dueDate: Date, client: string): Observable {\r\n if (client === 'hoffulfill') {\r\n return this.http.post(\r\n this.baseUrl +\r\n '/' +\r\n client +\r\n '/upload?dueDate=' +\r\n dueDate.toLocaleString(),\r\n formData,\r\n { headers: this.customHeader, reportProgress: true, observe: 'events' },\r\n );\r\n } else {\r\n return this.http.post(this.baseUrl + '/' + client + '/upload', formData, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n }\r\n\r\n getOrders(): Observable {\r\n return this.http.get(this.baseUrl, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getOrdersWithPagination(params: OrderParams): Observable {\r\n return this.http.get(`${this.baseUrl}/paged`, {\r\n headers: this.headers,\r\n params: { ...params },\r\n observe: 'response',\r\n });\r\n }\r\n\r\n getOrdersPagedV2(params: OrderParams): Observable {\r\n return this.http.get(`${this.baseUrl}/paged-v2`, {\r\n headers: this.headers,\r\n params: { ...params },\r\n observe: 'response',\r\n });\r\n }\r\n\r\n getOrdersPagedV3({ ReceivedFrom, ReceivedTo }: OrderParams): Observable {\r\n return this.http.get(`${this.baseUrl}/paged-v3`, {\r\n headers: this.headers,\r\n params: { ReceivedFrom, ReceivedTo , Status: 'ALL' },\r\n observe: 'response',\r\n });\r\n }\r\n\r\n\r\n getRelatedInvoices(id: number) {\r\n return this.http.get(`${this.baseUrl}/invoices/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getOpenOrder(params: {\r\n CustomerId: number;\r\n FromDate: string;\r\n ToDate: string;\r\n OrderBy: string;\r\n SortDirection: string;\r\n ShowOverdueOnly: boolean;\r\n OrderType: number[];\r\n }) {\r\n if (params.OrderType.includes(-1)) {\r\n params.OrderType = [];\r\n }\r\n return this.http.get<{\r\n data: OpenOrder[];\r\n customers: Array<{ customerId: number; customerName: string }>;\r\n }>(`${this.baseUrl}/open`, {\r\n headers: this.headers,\r\n params,\r\n });\r\n }\r\n\r\n exportOpenOrderToExcel(params: {\r\n CustomerId: number;\r\n FromDate: string;\r\n ToDate: string;\r\n OrderBy: string;\r\n SortDirection: string;\r\n ShowOverdueOnly: boolean;\r\n OrderType: number[];\r\n }) {\r\n if (params.OrderType.includes(-1)) {\r\n params.OrderType = [];\r\n }\r\n return this.http.get(`${this.baseUrl}/open`, {\r\n headers: this.headers,\r\n params: {\r\n ...params,\r\n Export: true,\r\n },\r\n responseType: 'arraybuffer',\r\n });\r\n }\r\n\r\n getStoneOpenOrder(params: {\r\n CustomerId: number;\r\n Status: number;\r\n OrderBy: string;\r\n SortDirection: string;\r\n Take: number;\r\n }) {\r\n return this.http.get<{\r\n data: StoneOpenOrder[];\r\n customers: Array<{ customerId: number; customerName: string }>;\r\n }>(`${this.baseUrl}/open-stones`, {\r\n headers: this.headers,\r\n params,\r\n });\r\n }\r\n\r\n uploadOrders(formData, params) {\r\n return this.http.post(`${this.ordersImportUrl}/upload`, formData, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n params\r\n });\r\n }\r\n\r\n deleteOrder(orderId) {\r\n return this.http.delete(`${this.baseUrl}/${orderId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { OrderDetailsEnamel } from 'src/app/models/orders.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OrderdetailsService extends GenericService {\r\n baseUrl = environment.apiUrl + 'orderdetails';\r\n chainUrl = `${environment.apiUrl}order-details/chain`;\r\n orderDetailAltUrl = `${environment.apiUrl}order-details-alt`;\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n addupdate(orderDetails: any): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', orderDetails, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n delete(orderDetailsId: number): Observable {\r\n return this.http.delete(this.baseUrl + '/' + orderDetailsId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n setOrderDetailEnamel(orderDetailEnamel: Partial) {\r\n return this.http.post(\r\n `${environment.apiUrl}order-details-enamel`,\r\n orderDetailEnamel,\r\n { headers: this.headers },\r\n );\r\n }\r\n\r\n setOrderDetailsStone(stone: any): Observable {\r\n return this.http.post(this.baseUrl + '/stones', stone, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n setOrderDetailsChain(chain: any): Observable {\r\n return this.http.post(this.chainUrl, chain, {\r\n headers: this.headers,\r\n });\r\n }\r\n patchOrderDetails(id, params): Observable {\r\n return this.http.patch(`${this.baseUrl}/${id}`, {}, {\r\n headers: this.headers,\r\n params,\r\n });\r\n }\r\n patchOrderDetailsAlt(id, params): Observable {\r\n return this.http.patch(`${this.orderDetailAltUrl}/${id}`, {}, {\r\n headers: this.headers,\r\n params,\r\n });\r\n }\r\n exportOrderToExcel(ordersId) {\r\n return this.http.get(`${this.baseUrl}/export/${ordersId}`, {\r\n headers: this.headers,\r\n responseType: 'arraybuffer',\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport {\r\n OtherComponent,\r\n OtherComponentMaterial,\r\n OtherComponentRouting,\r\n OtherComponentSize,\r\n OtherComponentType,\r\n} from '../components/other-components/model';\r\nimport { OrderDetailAlt } from '../components/riva-chain/riva-chain-finish/models';\r\nimport { GenericService } from './generic.service';\r\n\r\nexport const getSizeLabel = ({\r\n dimension_1,\r\n dimension_2,\r\n dimension_3,\r\n dimension_4,\r\n dimension_5,\r\n}: OtherComponentSize) => {\r\n const dimensions = [];\r\n if (dimension_1) dimensions.push(`${dimension_1}mm`);\r\n if (dimension_2) dimensions.push(`${dimension_2}mm`);\r\n if (dimension_3) dimensions.push(`${dimension_3}mm`);\r\n if (dimension_4) dimensions.push(`${dimension_4}mm`);\r\n if (dimension_5) dimensions.push(`${dimension_5}mm`);\r\n return dimensions.join(' x ');\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OtherComponentsService extends GenericService {\r\n baseUrl = `${environment.apiUrl}other-components`;\r\n typeUrl = `${environment.apiUrl}other-components/types`;\r\n materialUrl = `${environment.apiUrl}other-components/materials`;\r\n routingUrl = `${environment.apiUrl}other-components/routing`;\r\n sizeUrl = `${environment.apiUrl}other-components/sizes`;\r\n orderDetailUrl = `${environment.apiUrl}order-details-alt`;\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getOtherComponents(typeId = 0) {\r\n return this.http\r\n .get(this.baseUrl, {\r\n headers: this.headers,\r\n params: {\r\n typeId,\r\n },\r\n })\r\n .pipe(\r\n map((data) =>\r\n data.map((d) => ({\r\n ...d,\r\n uom: d.unitOfMeasure?.uom,\r\n typeDisplay: d.types?.type,\r\n })),\r\n ),\r\n );\r\n }\r\n setOtherComponent(data) {\r\n return this.http.post(this.baseUrl, data, { headers: this.headers });\r\n }\r\n\r\n getOtherComponentsTypes() {\r\n return this.http.get(this.typeUrl, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getOtherComponentsMaterials(otherComponentId: number) {\r\n return this.http.get(\r\n `${this.materialUrl}/${otherComponentId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n setOtherComponentMaterial(data) {\r\n return this.http.post(this.materialUrl, data, { headers: this.headers });\r\n }\r\n\r\n deleteOtherComponentMaterial(otherComponentsMaterialsID) {\r\n return this.http.delete(\r\n `${this.materialUrl}/${otherComponentsMaterialsID}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n uploadImage(object: FormData): Observable {\r\n return this.http.post(`${this.baseUrl}/upload`, object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n responseType: 'text' as 'json',\r\n });\r\n }\r\n\r\n getOtherComponentsRoutings(otherComponentId: number) {\r\n return this.http.get(\r\n `${this.routingUrl}/${otherComponentId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setOtherComponentsRoutings(data) {\r\n return this.http.post(this.routingUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteOtherComponentsRoutings(otherComponentsRoutingId) {\r\n return this.http.delete(`${this.routingUrl}/${otherComponentsRoutingId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n getOtherComponentsSizes(otherComponentId) {\r\n return this.http\r\n .get(`${this.sizeUrl}/${otherComponentId}`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((sizes) =>\r\n sizes.map((size) => ({\r\n ...size,\r\n label: getSizeLabel(size),\r\n })),\r\n ),\r\n );\r\n }\r\n setOtherComponentsSizes(data) {\r\n return this.http.post(this.sizeUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteOtherComponentsSize(otherComponentsSizesID) {\r\n return this.http.delete(`${this.sizeUrl}/${otherComponentsSizesID}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setOrderDetail(order: OrderDetailAlt) {\r\n return this.http.post(this.orderDetailUrl, order, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PricingAddOnsService extends GenericService {\r\n baseUrl = `${environment.apiUrl}pricing-addons`;\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n setPricingAddOns(data) {\r\n return this.http.post(this.baseUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deletePricingAddOns(id) {\r\n return this.http.delete(`${this.baseUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getPricingAddOns(params) {\r\n return this.http.get<\r\n Array<{\r\n customerAddOnID: number;\r\n orderDetailsCustomPriceAddOnsID: number;\r\n }>\r\n >(this.baseUrl, {\r\n headers: this.headers,\r\n params,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CustomerPriceDefault } from '../components/price-defaults/customer-price-defaults/customer-price-default';\r\nimport {\r\n ProductPricing,\r\n RhodiumPlating,\r\n StandardWeight,\r\n} from '../components/product-pricing/product-pricing';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PricingEquationService extends GenericService {\r\n baseUrl = `${environment.apiUrl}pricing-equation`;\r\n productPricingUrl = `${environment.apiUrl}product-pricing`;\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getCustomerDefaults() {\r\n return this.http\r\n .get(`${this.baseUrl}/customer-defaults`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((data) =>\r\n data.map(\r\n ({\r\n stdLaborPerMinCost,\r\n settingLaborPerMinCost,\r\n ohPercent,\r\n profitPercent,\r\n ...priceDefaults\r\n }) => ({\r\n ...priceDefaults,\r\n stdLaborPerMinCost: stdLaborPerMinCost || null,\r\n settingLaborPerMinCost: settingLaborPerMinCost || null,\r\n ohPercent: ohPercent || null,\r\n profitPercent: profitPercent || null,\r\n }),\r\n ),\r\n ),\r\n );\r\n }\r\n setCustomerDefaults(data: CustomerPriceDefault) {\r\n return this.http.post(`${this.baseUrl}/customer-defaults`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deleteCustomerDefaults(id) {\r\n return this.http.delete(`${this.baseUrl}/customer-defaults/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getProductPricingByProductId(productsId) {\r\n return this.http.get(\r\n `${this.productPricingUrl}/${productsId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n setProductPricing(data) {\r\n return this.http.post(this.productPricingUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deleteProductPricing(id) {\r\n return this.http.delete(`${this.productPricingUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getStandardWeightByProductId(productsId) {\r\n return this.http.get(\r\n `${this.productPricingUrl}/standard-weight/${productsId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n setStandardWeight(data) {\r\n return this.http.post(`${this.productPricingUrl}/standard-weight`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getRhodiumPlatingByProductId(productsId) {\r\n return this.http\r\n .get(\r\n `${this.productPricingUrl}/rhodium-plating/${productsId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n )\r\n .pipe(map((data) => data.map((d) => ({ ...d, checked: true }))));\r\n }\r\n\r\n setRhodiumPlating(data) {\r\n return this.http.post(`${this.productPricingUrl}/rhodium-plating`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteRhodiumPlating(id) {\r\n return this.http.delete(`${this.productPricingUrl}/rhodium-plating/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PrintService extends GenericService {\r\n baseUrl = environment.apiUrl + 'print';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n printLabel(workOrderId: number) {\r\n return this.http\r\n .get(`${this.baseUrl}/label/${workOrderId}`, {\r\n headers: this.headers,\r\n })\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n ProductFindings,\r\n ProductFindingsDto,\r\n} from 'src/app/models/findings.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ProductLinkBom } from '../components/bill-of-material/product-link-bom/product-link-bom';\r\nimport {\r\n ProductChainFinished,\r\n ProductChainRaw,\r\n} from '../components/riva-chain/riva-chain-product/model';\r\nimport {\r\n FindingsTypeSize,\r\n MeasurementUnit,\r\n} from '../components/riva-findings/model';\r\nimport {\r\n ProductStone,\r\n StoneOverride,\r\n StoneSize,\r\n} from '../components/riva-gems/riva-gems.model';\r\nimport { getDisplayText } from '../components/riva-gems/stone.mapper';\r\nimport { ProductsBOM } from '../models/product';\r\nimport { RivaGems } from './../components/riva-gems/riva-gems.model';\r\nimport { GenericService } from './generic.service';\r\n\r\nexport const sizeMapper = (\r\n sizes: FindingsTypeSize,\r\n unit: MeasurementUnit = 'mm',\r\n) => {\r\n const { size_1, size_2, size_3, size_4, size_5, size_6 } = sizes;\r\n const findingsSizes = [];\r\n if (size_1) findingsSizes.push(size_1);\r\n if (size_2) findingsSizes.push(size_2);\r\n if (size_3) findingsSizes.push(size_3);\r\n if (size_4) findingsSizes.push(size_4);\r\n if (size_5) findingsSizes.push(size_5);\r\n if (size_6) findingsSizes.push(size_6);\r\n\r\n return orderBy(findingsSizes, [], ['desc'])\r\n .map((w) => {\r\n const value = unit === 'mm' ? w : w / 25.4;\r\n return `${Number(value.toFixed(3))}${unit}`;\r\n })\r\n .join(' x ');\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProductBomService extends GenericService {\r\n baseUrl = environment.apiUrl + 'products/bill-of-materials';\r\n enamelUrl = `${environment.apiUrl}product-bom/enamel`;\r\n findingsUrl = `${environment.apiUrl}products-bom-findings`;\r\n stonesUrl = `${environment.apiUrl}product-bom/stones`;\r\n stonesOrderDetailsUrl = `${environment.apiUrl}product-bom/order-details/stones`;\r\n stoneOverrideUrl = `${environment.apiUrl}product-bom/stone-override`;\r\n chainRawUrl = `${environment.apiUrl}product-bom-chain/raw`;\r\n chainFinishUrl = `${environment.apiUrl}product-bom-chain/finished`;\r\n productLinkUrl = `${environment.apiUrl}product-bom/product`;\r\n\r\n public reloadProductLinkBomList = (productId: number) => {};\r\n public reloadProductLinkBomListDisplay = (productId: number) => {};\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getProductBomList(productsId: number): Observable {\r\n let url = this.baseUrl + '/' + productsId + '/list';\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n getTableAList(productId: number) {\r\n let url = this.baseUrl + '/table-a-list/' + productId;\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n getTableAOptions() {\r\n let url = this.baseUrl + '/table-a-options/';\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n getFabMethods() {\r\n let url = this.baseUrl + '/fab-methods/';\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n getTableBList(productId: number) {\r\n let url = this.baseUrl + '/table-b-list/' + productId;\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n addUpdate(bom: ProductsBOM): Observable {\r\n let url = this.baseUrl;\r\n return this.http.post(url, bom, { headers: this.headers });\r\n }\r\n getProductEnamel(productId: number): Observable {\r\n return this.http.get(this.enamelUrl, {\r\n headers: this.headers,\r\n params: { productId },\r\n });\r\n }\r\n deleteProductEnamel(id: number): Observable {\r\n return this.http.delete(this.enamelUrl, {\r\n headers: this.headers,\r\n params: { id },\r\n });\r\n }\r\n setProductEnamel(data) {\r\n return this.http.post(this.enamelUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getProductFindings(productId: number): Observable {\r\n return this.http\r\n .get(this.findingsUrl, {\r\n headers: this.headers,\r\n params: { productId },\r\n })\r\n .pipe(\r\n map((findings) =>\r\n findings.map((f) => ({\r\n ...f,\r\n sizeLabel: sizeMapper(f.size as FindingsTypeSize),\r\n })),\r\n ),\r\n );\r\n }\r\n setProductFindings(findings: ProductFindingsDto) {\r\n return this.http.post(this.findingsUrl, findings, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteProductFindings(id: number): Observable {\r\n return this.http.delete(`${this.findingsUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n getProductStones(productId: number): Observable {\r\n return this.http\r\n .get(this.stonesUrl, {\r\n headers: this.headers,\r\n params: { productId },\r\n })\r\n .pipe(\r\n map((productStone) =>\r\n productStone.map((ps) => ({\r\n ...ps,\r\n stone: {\r\n ...(ps.stone ?? ({} as RivaGems)),\r\n stoneSize: {\r\n ...(ps.stone.stoneSize ?? ({} as StoneSize)),\r\n displayText: getDisplayText(ps.stone.stoneSize),\r\n },\r\n },\r\n })),\r\n ),\r\n );\r\n }\r\n setProductStone(data) {\r\n return this.http.post(this.stonesUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteProductStones(productsBOMStonesID: number): Observable {\r\n return this.http.delete(this.stonesUrl, {\r\n headers: this.headers,\r\n params: { productsBOMStonesID },\r\n });\r\n }\r\n getStoneByOrderDetailsId(orderDetailsId): Observable {\r\n return this.http\r\n .get(this.stonesOrderDetailsUrl, {\r\n headers: this.headers,\r\n params: {\r\n orderDetailsId,\r\n },\r\n })\r\n .pipe(\r\n map((productStone = {} as ProductStone) => ({\r\n ...productStone,\r\n stone: {\r\n ...(productStone?.stone ?? ({} as RivaGems)),\r\n stoneSize: {\r\n ...(productStone?.stone?.stoneSize ?? ({} as StoneSize)),\r\n displayText: productStone?.stone?.stoneSize\r\n ? getDisplayText(productStone?.stone?.stoneSize)\r\n : '',\r\n },\r\n },\r\n })),\r\n );\r\n }\r\n getStoneOverride(productsBomStoneId: number): Observable {\r\n return this.http.get(this.stoneOverrideUrl, {\r\n headers: this.headers,\r\n params: { productsBomStoneId },\r\n });\r\n }\r\n setStoneOverride(data) {\r\n return this.http.post(this.stoneOverrideUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteStoneOverride(id) {\r\n return this.http.delete(`${this.stoneOverrideUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n setProductChainRaw(data: ProductChainRaw) {\r\n return this.http.post(this.chainRawUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getProductChainRaw(productId: number) {\r\n return this.http.get(\r\n `${this.chainRawUrl}/${productId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n deleteProductChainRaw(productsBOMChainRawID: number) {\r\n return this.http.delete(`${this.chainRawUrl}/${productsBOMChainRawID}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setProductChainFinished(data: ProductChainFinished) {\r\n return this.http.post(this.chainFinishUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getProductChainFinished(productId: number) {\r\n return this.http.get(\r\n `${this.chainFinishUrl}/${productId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n deleteProductChainFinished(productsBOMChainFinishedID: number) {\r\n return this.http.delete(\r\n `${this.chainFinishUrl}/${productsBOMChainFinishedID}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n getProductLinkBom(productId: number) {\r\n return this.http.get(\r\n `${this.productLinkUrl}/${productId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setProductLinkBom(data: ProductLinkBom) {\r\n return this.http.post(this.productLinkUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteProductLinkBom(productsID_BOM: number) {\r\n return this.http.delete(`${this.productLinkUrl}/${productsID_BOM}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProductStoreInfoService extends GenericService {\r\n baseUrl = environment.apiUrl + 'productsstoreinfo';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getGroupParents(): Observable {\r\n let url = this.baseUrl + '/parents';\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n ProductDetailV2,\r\n ProductMaterial,\r\n ProductSizes,\r\n ProductsV2,\r\n ProductWeight,\r\n} from 'src/app/models/product';\r\nimport { environment } from 'src/environments/environment';\r\nimport {\r\n GroupItemRequest,\r\n Product,\r\n ProductDetail,\r\n ProductImage,\r\n ProductsStoreInfo,\r\n Productstoreflag,\r\n ProductVariation,\r\n} from '../models/product';\r\nimport { ProductDetails } from '../models/product-stock';\r\nimport { ProductSearch } from '../models/request/product-search-request';\r\nimport { BillOfMaterialSubItem } from './../models/bill-material-sub-item';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProductService extends GenericService {\r\n baseUrl = environment.apiUrl + 'products';\r\n productV2BaseUrl = environment.apiUrl + 'v2/products';\r\n reloadEnamelVariation = () => {};\r\n reloadEnamelConstant = () => {};\r\n reloadProductImages = () => {};\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n // Please don't remove\r\n getList(): Observable {\r\n let url = this.baseUrl + '/detail-list';\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n getSearchList(searchObject: ProductSearch): Observable {\r\n let url = this.baseUrl + '/list';\r\n return this.http.post(url, searchObject, {\r\n headers: this.headers,\r\n responseType: 'text' as 'json',\r\n });\r\n }\r\n\r\n getProduct(productsId: number): Observable {\r\n return this.get(productsId, '');\r\n }\r\n\r\n viewSubassembly(subassemblyId: number): Observable {\r\n let url = this.baseUrl + '/bom/' + subassemblyId;\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n getProductDetails(\r\n id: number,\r\n uom: number,\r\n matId: number,\r\n size: number,\r\n ): Observable {\r\n let url =\r\n this.baseUrl +\r\n '/details/' +\r\n id +\r\n '?uom=' +\r\n uom +\r\n '&matId=' +\r\n matId +\r\n '&size=' +\r\n size;\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n getProductStatuses(): Observable {\r\n return this.http.get(this.baseUrl + '/productstatuses', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getProductImages(id: number): Observable {\r\n return this.http.get(this.baseUrl + '/upload/' + id + '/list', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n saveProduct(object: Product): Observable {\r\n return this.post(object, '');\r\n }\r\n\r\n updateProduct(object: Product) {\r\n return this.put(object, '');\r\n }\r\n\r\n deleteProduct(productsId: number): Observable {\r\n return this.post(productsId, '/DeleteProduct/' + productsId.toString());\r\n }\r\n\r\n updatePrimaryImage(object: Product) {\r\n return this.put(object, '/upload/make-primary');\r\n }\r\n\r\n deleteImage(object: Product) {\r\n return this.put(object, '/upload/delete-image');\r\n }\r\n\r\n updateProductDetails(productStock: ProductDetails): Observable {\r\n let url = this.baseUrl + '/details';\r\n return this.http.put(url, productStock, { headers: this.headers });\r\n }\r\n\r\n uploadImage(object: FormData): Observable {\r\n return this.http.post(this.baseUrl + '/images/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n getProductStoreFlag(flagId: number): Observable {\r\n return this.get(flagId, '/getproductstoreflag');\r\n }\r\n\r\n saveProductStoreFlag(object: Productstoreflag): Observable {\r\n return this.post(object, '/inputproductflag');\r\n }\r\n\r\n getProductGroupItems(groupId: number): Observable {\r\n let url = environment.apiUrl + 'productsstoreinfo/product-group/' + groupId;\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n getNotInGroup(): Observable {\r\n let url = environment.apiUrl + 'productsstoreinfo/not-in-group';\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n createGroup(productId: number): Observable {\r\n let url = environment.apiUrl + 'productsstoreinfo/create-group/';\r\n return this.http.post(url, productId, { headers: this.headers });\r\n }\r\n\r\n addToGroup(storeInfo: ProductsStoreInfo): Observable {\r\n let url = environment.apiUrl + 'productsstoreinfo/add-to-group/';\r\n return this.http.post(url, storeInfo, { headers: this.headers });\r\n }\r\n\r\n updateGroupItems(groupItems: GroupItemRequest): Observable {\r\n let url = environment.apiUrl + 'productsstoreinfo/update-group-items/';\r\n return this.http.post(url, groupItems, { headers: this.headers });\r\n }\r\n\r\n reorderGroupItem(\r\n productId: number,\r\n groupId: number,\r\n groupLevel: number,\r\n ): Observable {\r\n let url =\r\n environment.apiUrl +\r\n 'productsstoreinfo/reorder-item/' +\r\n productId +\r\n '/' +\r\n groupId +\r\n '/' +\r\n groupLevel;\r\n return this.http.get(url, { headers: this.headers });\r\n }\r\n\r\n removeFromGroup(productId: number): Observable {\r\n let url =\r\n environment.apiUrl + 'productsstoreinfo/remove-from-group/' + productId;\r\n return this.http.delete(url, { headers: this.headers });\r\n }\r\n\r\n removeAllFromGroup(productId: number): Observable {\r\n let url =\r\n environment.apiUrl +\r\n 'productsstoreinfo/remove-all-from-group/' +\r\n productId;\r\n return this.http.delete(url, { headers: this.headers });\r\n }\r\n\r\n lastupdate(id: number): Observable {\r\n return this.http.get(this.baseUrl + '/lastupdate/' + id.toString(), {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getProductBillOfMaterial(\r\n productId: number,\r\n ): Observable {\r\n return this.http\r\n .get(`${environment.apiUrl}product-bom`, {\r\n headers: this.headers,\r\n params: { productId },\r\n })\r\n .pipe(\r\n map((data) =>\r\n data.map(({ produtsBOMID, ...item }) => ({\r\n ...item,\r\n productsBOMID: produtsBOMID,\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n setProductBillOfMaterial(\r\n data: Partial,\r\n ): Observable {\r\n return this.http.post(`${environment.apiUrl}product-bom`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deleteProductBillOfMaterial(id): Observable {\r\n return this.http.delete(`${environment.apiUrl}product-bom/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getProductVariations(productId) {\r\n return this.http.get(\r\n `${environment.apiUrl}product-variations/enamels`,\r\n {\r\n headers: this.headers,\r\n params: {\r\n productId,\r\n },\r\n },\r\n );\r\n }\r\n\r\n setProductVariations(data) {\r\n return this.http.post(\r\n `${environment.apiUrl}product-variations/enamels`,\r\n data,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n deleteProductVariations(productEnamelId) {\r\n return this.http.delete(\r\n `${environment.apiUrl}product-variations/enamels/${productEnamelId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n getProductDetail(productId): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/${productId}`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map(({ responseObject: data }) => {\r\n const sizes = data.productSizes.reduce(\r\n (accum, size) => {\r\n const isNumber = !Number.isNaN(Number(size.size));\r\n if (isNumber) {\r\n const value = Number(size.size);\r\n accum.numeric = [...accum.numeric, { ...size, size: value }];\r\n } else {\r\n accum.alpha = [...accum.alpha, size];\r\n }\r\n return accum;\r\n },\r\n {\r\n alpha: [],\r\n numeric: [],\r\n },\r\n );\r\n const sortedNumber = orderBy(\r\n sizes.numeric,\r\n (s: ProductSizes) => s.size,\r\n 'desc',\r\n );\r\n const convertedSizeToString = sortedNumber.map((s) => ({\r\n ...s,\r\n size: s.size?.toString(),\r\n }));\r\n return {\r\n materials: orderBy(\r\n data.materials,\r\n (d: ProductMaterial) => d.material.code,\r\n 'desc',\r\n ).map((m) => ({\r\n ...m,\r\n label:\r\n m.material2 != null\r\n ? `${m.material?.code} / ${m.material2?.code}`\r\n : m.material?.code,\r\n })),\r\n productSizes: [\r\n ...convertedSizeToString,\r\n ...orderBy(sizes.alpha, (s: ProductSizes) => s.size, 'desc'),\r\n ],\r\n productsID: productId,\r\n productName: data.productName,\r\n picturePath: data.picturePath,\r\n pricing: data.pricing,\r\n };\r\n }),\r\n );\r\n }\r\n\r\n setProductMaterial(data) {\r\n return this.http.post(`${environment.apiUrl}product-materials`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteProductMaterial(id) {\r\n return this.http.delete(`${environment.apiUrl}product-materials/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setProductSize(data) {\r\n return this.http.post(`${environment.apiUrl}product-sizes`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteProductSize(id) {\r\n return this.http.delete(`${environment.apiUrl}product-sizes/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n getProductImageList(id: number): Observable {\r\n return this.http.get(`${this.baseUrl}/images/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setProductImages(productId, images: ProductImage[]) {\r\n return this.http.put(`${this.baseUrl}/images/${productId}`, images, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteProductImages(productsPicsID) {\r\n return this.http.delete(`${this.baseUrl}/images/${productsPicsID}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getProductWeight(productId) {\r\n return this.http.get(\r\n `${environment.apiUrl}products-weight`,\r\n {\r\n headers: this.headers,\r\n params: {\r\n productId,\r\n },\r\n },\r\n );\r\n }\r\n\r\n setProductWeight(data) {\r\n return this.http.post(`${environment.apiUrl}products-weight`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getProductWorkOrderLimit(productId) {\r\n return this.http.get<{ workOrderLimit: number }>(\r\n `${this.baseUrl}/wko-limit/${productId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n updateProductWorkOrderLimit(data) {\r\n return this.http.put(`${this.baseUrl}/wko-limit`, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getProductBundled(productId) {\r\n return this.http.get<{ productId: number; isBundled: boolean }>(\r\n `${this.baseUrl}/bundled/${productId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n updateProductBundle(productId, isBundled) {\r\n return this.http.put(\r\n `${this.baseUrl}/bundled`,\r\n { productId, isBundled },\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n getProductsV2() {\r\n return this.http.get(this.productV2BaseUrl, {\r\n headers: this.headers,\r\n });\r\n }\r\n getProductDetailV2(id) {\r\n return this.http.get(`${this.productV2BaseUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ProductRoutingCodes, ProductsRouting } from '../models/product';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProductsRoutingService extends GenericService {\r\n baseUrl = environment.apiUrl + 'productsrouting';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getListCodes(): Observable {\r\n return this.http.get(this.baseUrl + '/listroutingcodes', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n addupdate(productsRouting: ProductsRouting): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', productsRouting, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n delete(findingsID: number): Observable {\r\n return this.http.delete(this.baseUrl + '/' + findingsID, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getRoutingListByProduct(productId: number): Observable {\r\n return this.http.get(this.baseUrl + '/getbyproduct/' + productId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getProductRoutings(productId: number): Observable {\r\n return this.http.get(\r\n `${environment.apiUrl}product-routing`,\r\n {\r\n headers: this.headers,\r\n params: { productId },\r\n },\r\n );\r\n }\r\n\r\n getProductRoutingCodes(): Observable {\r\n return this.http.get(\r\n `${environment.apiUrl}product-routing/codes`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n setProductRouting(productRouting: ProductsRouting[]) {\r\n return this.http.post(\r\n `${environment.apiUrl}product-routing`,\r\n productRouting,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n deleteProductRouting(id: number) {\r\n return this.http.delete(`${environment.apiUrl}product-routing/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { RawMaterials } from './../models/raw-materials.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RawMaterialsService extends GenericService {\r\n baseUrl = environment.apiUrl + 'rawmaterials';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n addupdate(rawmaterials: RawMaterials): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', rawmaterials, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n delete(rawmaterialsId: number): Observable {\r\n return this.http.post(this.baseUrl + '/delete/' + rawmaterialsId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n uploadImage(object: FormData): Observable {\r\n return this.http.post(this.baseUrl + '/upload', object, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n lastupdate(id: number): Observable {\r\n return this.http.get(this.baseUrl + '/lastupdate/' + id.toString(), {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Rawmaterialsinfo } from './../models/raw-materials.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RawmaterialsinfoService extends GenericService {\r\n baseUrl = environment.apiUrl + 'rawmaterialsinfo';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n\r\n addupdate(rawmaterialsinfo: Rawmaterialsinfo): Observable {\r\n return this.http.post(this.baseUrl + '/addupdate', rawmaterialsinfo, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { InvoiceFairmined } from '../components/reporting/general-reports/invoice-reports/invoice-fairmined';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ReportService extends GenericService {\r\n baseUrl = environment.apiUrl + 'report';\r\n reportsUrl = environment.apiUrl + 'reports';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n generateWorkOrder(orderId: number) {\r\n return this.http.get(this.baseUrl + '/workorder-report/' + orderId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n generateProductInventory() {\r\n return this.http.get(this.baseUrl + '/productinventory-report', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getInvoiceFairmined(start, end) {\r\n return this.http\r\n .get(`${this.reportsUrl}/invoice-fairmined`, {\r\n headers: this.headers,\r\n params: {\r\n start,\r\n end,\r\n },\r\n })\r\n .pipe(\r\n map((items) =>\r\n items.map((item) => ({\r\n ...item,\r\n link: `/invoicing-and-shipping/invoicing/${item.invoicesId}`,\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n getStoneMovementReports(params) {\r\n return this.http.get(\r\n this.reportsUrl + '/stone-movement',\r\n {\r\n headers: this.headers,\r\n responseType: 'arraybuffer',\r\n params\r\n },\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RoutingCodeService extends GenericService {\r\n baseUrl = environment.apiUrl + 'routing-codes';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { WorkOrderTracking } from '../components/work-order-tracking/model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ScanService extends GenericService {\r\n baseUrl = environment.apiUrl + 'scan';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n scanWorkOrder(workOrderId: number): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/${workOrderId}`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((data) => ({\r\n ...data,\r\n totalQty: data.workOrderDetails.reduce(\r\n (total, w) => total + w.qty,\r\n 0,\r\n ),\r\n })),\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ProductInvoice } from '../components/product-query/product-invoice/product-invoice';\r\nimport { ProductOrder } from '../components/product-query/product-order/product-order';\r\nimport { GenericService } from './generic.service';\r\n\r\nconst getOrderType = (type: number) => {\r\n switch (type) {\r\n case 1:\r\n return 'Internal';\r\n case 2:\r\n return 'Online';\r\n case 3:\r\n return 'Repair';\r\n default:\r\n return 'Standard';\r\n }\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SearchProductService extends GenericService {\r\n baseUrl = environment.apiUrl + 'search-product';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n getOrders({\r\n itemId,\r\n itemType,\r\n from,\r\n to,\r\n }: {\r\n itemId: number;\r\n itemType: number;\r\n from: string;\r\n to: string;\r\n }): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/orders`, {\r\n headers: this.headers,\r\n params: {\r\n itemId,\r\n itemType,\r\n from,\r\n to,\r\n },\r\n })\r\n .pipe(\r\n map((items) =>\r\n items.map((item) => ({\r\n ...item,\r\n ordersType: getOrderType(item.ordersTypeId),\r\n link: `/main/orders/${item.ordersId}`,\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n getOrdersDetails({\r\n itemId,\r\n itemType,\r\n from,\r\n to,\r\n }: {\r\n itemId: number;\r\n itemType: number;\r\n from: string;\r\n to: string;\r\n }): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/orders/details`, {\r\n headers: this.headers,\r\n params: {\r\n itemId,\r\n itemType,\r\n from,\r\n to,\r\n },\r\n })\r\n .pipe(\r\n map((items) =>\r\n items.map((item) => ({\r\n ...item,\r\n ordersType: getOrderType(item.ordersTypeId),\r\n link: `/main/orders/${item.ordersId}`,\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n getInvoices({\r\n itemId,\r\n itemType,\r\n from,\r\n to,\r\n }: {\r\n itemId: number;\r\n itemType: number;\r\n from: string;\r\n to: string;\r\n }): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/invoices`, {\r\n headers: this.headers,\r\n params: {\r\n itemId,\r\n itemType,\r\n from,\r\n to,\r\n },\r\n })\r\n .pipe(\r\n map((items) =>\r\n items.map((item) => ({\r\n ...item,\r\n link: `/invoicing-and-shipping/invoicing/${item.invoicesId}`,\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n getInvoicesDetails({\r\n itemId,\r\n itemType,\r\n from,\r\n to,\r\n }: {\r\n itemId: number;\r\n itemType: number;\r\n from: string;\r\n to: string;\r\n }): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/invoices/details`, {\r\n headers: this.headers,\r\n params: {\r\n itemId,\r\n itemType,\r\n from,\r\n to,\r\n },\r\n })\r\n .pipe(\r\n map((items) =>\r\n items.map((item) => ({\r\n ...item,\r\n link: `/invoicing-and-shipping/invoicing/${item.invoicesId}`,\r\n })),\r\n ),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SharedService {\r\n public showGenerateWorkOrderAndByPass = true;\r\n public byPassWorkOrder = () => {};\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { InvoiceDetail } from '../components/invoicing-shipping/invoicing/models/invoice';\r\nimport { Shipment } from '../components/invoicing-shipping/shipping/models/shipment';\r\nimport { ShipmentLookupItem } from '../components/invoicing-shipping/shipping/models/shipment-lookup-item';\r\nimport { ShipmentRelatedInvoice } from '../components/invoicing-shipping/shipping/models/shipment-related-invoice';\r\nimport { WorkOrderType } from '../components/work-order-view/work-order-type';\r\nimport { GenericService } from './generic.service';\r\n\r\nconst processFindingsSize = (size = '') => {\r\n return size\r\n .split('x')\r\n .reduce((sz, val) => {\r\n const trimmedValue = val.trim();\r\n return trimmedValue !== '' ? [...sz, trimmedValue] : sz;\r\n }, [])\r\n .join(' x ');\r\n};\r\n\r\nconst getLookupProductName = (item, workOrderType) => {\r\n if (workOrderType === WorkOrderType.Finding) {\r\n return (\r\n item.productName ??\r\n `${item.findingsType} | ${processFindingsSize(item.size)}`\r\n );\r\n } else {\r\n return item.productName;\r\n }\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ShipmentService extends GenericService {\r\n baseUrl = environment.apiUrl + 'shipments';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getShipments() {\r\n return this.http\r\n .get(this.baseUrl, { headers: this.headers })\r\n .pipe(\r\n map((invoices) =>\r\n invoices.map((i) => ({\r\n ...i,\r\n shipDate: i.shipDate\r\n ? DateTime.fromJSDate(new Date(i.shipDate)).toFormat(\r\n 'MM/dd/yyyy hh:mm a',\r\n )\r\n : '',\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n getPagedShipments(params) {\r\n return this.http.get(`${this.baseUrl}/paged`, {\r\n headers: this.headers,\r\n params: { ...params },\r\n observe: 'response',\r\n });\r\n }\r\n\r\n getShipmentById(id) {\r\n return this.http\r\n .get(`${this.baseUrl}/${id}`, { headers: this.headers })\r\n .pipe(\r\n map((shipment) => ({\r\n ...shipment,\r\n shipDate: shipment.shipDate\r\n ? DateTime.fromJSDate(new Date(shipment.shipDate)).toFormat(\r\n 'MM/dd/yyyy hh:mm a',\r\n )\r\n : '',\r\n shipmentsDetails: shipment.shipmentsDetails.map((s) => ({\r\n ...s,\r\n productName:\r\n s.findingsType != null\r\n ? getLookupProductName(s, WorkOrderType.Finding)\r\n : s.productName,\r\n })),\r\n })),\r\n );\r\n }\r\n\r\n setShipments(data) {\r\n return this.http.post(this.baseUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getLookUpItems(workOrderId, workOrderType = WorkOrderType.Product) {\r\n return this.http\r\n .get(`${this.baseUrl}/lookup-items`, {\r\n headers: this.headers,\r\n params: {\r\n workOrderId,\r\n },\r\n })\r\n .pipe(\r\n map((items) =>\r\n items.map((item) => ({\r\n ...item,\r\n qty: item.availableQtyToShip,\r\n productName: getLookupProductName(item, workOrderType),\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n generateInvoice(shipmentId) {\r\n return this.http\r\n .get(`${this.baseUrl}/generate-invoice`, {\r\n headers: this.headers,\r\n params: {\r\n shipmentId,\r\n },\r\n })\r\n .pipe(\r\n map((invoicesDetails) =>\r\n invoicesDetails.map((d) => ({\r\n ...d,\r\n price: 0,\r\n weight: d.avgWeightGrams ?? 0,\r\n poNumber: d.poExternal ?? d.poInternal,\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n getRelatedInvoices(shipmentId) {\r\n return this.http.get(\r\n `${this.baseUrl}/invoices/${shipmentId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ProductSku } from '../models/sku';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SkuService extends GenericService {\r\n baseUrl = environment.apiUrl + 'sku';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getProductSku(productId: number): Observable {\r\n return this.http.get(`${this.baseUrl}/product/${productId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setProductSku(payload: ProductSku): Observable {\r\n return this.http.post(`${this.baseUrl}/product`, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n searchSku(customerSku: string, customerId: number): Observable {\r\n return this.http.get(`${this.baseUrl}/search`, {\r\n headers: this.headers,\r\n params: {\r\n customerSku,\r\n customerId,\r\n },\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { StoneOpenOrder } from '../models/orders.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StoneReleaseService extends GenericService {\r\n baseUrl = environment.apiUrl + 'stone-release';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n getStoneReleaseHistory() {\r\n return this.http.get<{\r\n data: StoneOpenOrder[];\r\n customers: Array<{ customerId: number; customerName: string }>;\r\n }>(`${this.baseUrl}/history`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SubItem } from '../models/sub-item.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SubItemService extends GenericService {\r\n baseUrl = environment.apiUrl + 'subitems';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getSubItems(productId: number): Observable {\r\n return this.http.get(this.baseUrl, {\r\n headers: this.headers,\r\n params: { productId },\r\n });\r\n }\r\n getSubItem(id: number): Observable {\r\n return this.http.get(`${this.baseUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n setSubItem(subItem: SubItem): Observable {\r\n return this.http.post(this.baseUrl, subItem, {\r\n headers: this.headers,\r\n });\r\n }\r\n deleteSubItem(id: number): Observable {\r\n return this.http.delete(`${this.baseUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n upload(form): Observable {\r\n return this.http.post(`${this.baseUrl}/upload`, form, {\r\n headers: this.customHeader,\r\n responseType: 'text',\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n uploadStl(form): Observable {\r\n return this.http.post(`${this.baseUrl}/upload-stl`, form, {\r\n headers: this.customHeader,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n getSubItemsStlImage(subItemsInfoID: number): Observable {\r\n return this.http.get(`${this.baseUrl}/stl-image`, {\r\n headers: this.headers,\r\n responseType: 'text',\r\n params: { subItemsInfoID },\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SupplierService extends GenericService {\r\n baseUrl = environment.apiUrl + 'suppliers';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport {} from './../models/suppliers.model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SuppliersService extends GenericService {\r\n baseUrl = environment.apiUrl + 'suppliers';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/list', { headers: this.headers });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UnitOfMeasureService extends GenericService {\r\n baseUrl = environment.apiUrl + 'unitofmeasure';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n getList(): Observable {\r\n return this.http.get(this.baseUrl + '/unit-list', {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { User } from '../core/authentication/user';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserService extends GenericService {\r\n baseUrl = environment.apiUrl + 'users';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n getUsers(): Observable {\r\n return this.http\r\n .get(this.baseUrl, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((users) =>\r\n users.map((u) => ({\r\n ...u,\r\n inactive: !u.active,\r\n })),\r\n ),\r\n );\r\n }\r\n\r\n getUser(userId): Observable {\r\n return this.http\r\n .get(`${this.baseUrl}/${userId}`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((u) => ({\r\n ...u,\r\n inactive: !u.active,\r\n })),\r\n );\r\n }\r\n setUser(user: User) {\r\n debugger;\r\n return this.http.post(\r\n this.baseUrl,\r\n { ...user, active: !user.inactive },\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n updateUser(user: User) {\r\n debugger;\r\n return this.http.put(\r\n this.baseUrl,\r\n { ...user, active: !user.inactive },\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n resetUserPassword(userId: number, newPassword: string) {\r\n return this.http.put(\r\n `${this.baseUrl}/reset-password`,\r\n { userId, newPassword },\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport {\r\n ProductLookup,\r\n WorkOrderMovementEmployee,\r\n WorkOrderMovementEmployeeUI,\r\n} from '../components/reporting/work-order-movement/model';\r\nimport {\r\n WorkOrderMovementActivitySummary,\r\n WorkOrderMovementProductActivity,\r\n WorkOrderMovementReport,\r\n} from '../components/reporting/work-order-movement/work-order-moved-report';\r\nimport {\r\n EmployeeDownTime,\r\n WorkOrderMovementHistory,\r\n} from '../components/work-order-tracking/model';\r\nimport { GenericService } from './generic.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WorkOrderMovementService extends GenericService {\r\n baseUrl = environment.apiUrl + 'work-order-movement';\r\n pdMovementUrl = environment.apiUrl + 'pd-work-movement';\r\n dailyMetricsUrl = environment.apiUrl + 'daily-metrics';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n getWorkOrderMovement(workOrderId) {\r\n return this.http.get(\r\n `${this.baseUrl}/${workOrderId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setWorkOrderMovement(data) {\r\n return this.http.post(this.baseUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getWorkOrderMovementInProgressByUser(userId) {\r\n return this.http.get(`${this.baseUrl}/inprogress/${userId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n getWorkOrderMovementReportDateFilter(params) {\r\n return this.http\r\n .get(`${this.baseUrl}/report-date-filter`, {\r\n headers: this.headers,\r\n params,\r\n })\r\n .pipe(\r\n map((data) =>\r\n data.map((item) => ({\r\n ...item,\r\n valueDisplay:\r\n (item.jira_ID ?? '') !== ''\r\n ? item.jira_ID.toUpperCase()\r\n : item.workOrdersId.toString(),\r\n })),\r\n ),\r\n );\r\n }\r\n getPDMovementReportDateFilter() {\r\n return this.http.get(\r\n `${this.pdMovementUrl}/report-date-filter`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n getWorkOrderMovementReportSearch(productsId: number) {\r\n return this.http.get(\r\n `${this.baseUrl}/report-search`,\r\n {\r\n headers: this.headers,\r\n params: {\r\n productsId,\r\n },\r\n },\r\n );\r\n }\r\n getWorkOrderMovementProductActivity(productId: number, type: number) {\r\n return this.http.get(\r\n `${this.baseUrl}/product-activity`,\r\n {\r\n headers: this.headers,\r\n params: {\r\n productId,\r\n type,\r\n },\r\n },\r\n );\r\n }\r\n getWorkOrderMovementActivitySummary(\r\n routingCodesId: number,\r\n productId: number,\r\n type: number,\r\n ) {\r\n return this.http.get(\r\n `${this.baseUrl}/activity-summary`,\r\n {\r\n headers: this.headers,\r\n params: {\r\n routingCodesId,\r\n productId,\r\n type,\r\n },\r\n },\r\n );\r\n }\r\n getWorkOrderMovementActivitySummaryMedian(\r\n routingCodesId: number,\r\n productId: number,\r\n type: number,\r\n ) {\r\n return this.http.get(`${this.baseUrl}/activity-summary-median`, {\r\n headers: this.headers,\r\n params: {\r\n routingCodesId,\r\n productId,\r\n type,\r\n },\r\n });\r\n }\r\n\r\n getProductLookup() {\r\n return this.http.get(`${this.baseUrl}/lookup-product`, {\r\n headers: this.headers,\r\n });\r\n }\r\n getWorkOrderMovementReportIncomplete() {\r\n return this.http\r\n .get(`${this.baseUrl}/report-incomplete`, {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((data) =>\r\n data.map((item) => ({\r\n ...item,\r\n valueDisplay:\r\n (item.jira_ID ?? '') !== ''\r\n ? item.jira_ID.toUpperCase()\r\n : item.workOrdersId.toString(),\r\n })),\r\n ),\r\n );\r\n }\r\n getWorkOrderMovementReportByUserV1(\r\n userId: number,\r\n ): Observable {\r\n return this.http\r\n .get(\r\n `${this.baseUrl}/report-by-user/${userId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n )\r\n .pipe(\r\n map((data) =>\r\n data.reduce((accum, d) => {\r\n return [\r\n ...accum,\r\n ...d.movementsHistory?.map((h) => ({\r\n workOrdersId: d.workOrdersId,\r\n productName: d.productName,\r\n picturePath: d.picturePath,\r\n scanOutTime: h.scanOutTime,\r\n scanInTime: h.scanInTime,\r\n scanOutTimeRaw: h.scanOutTimeRaw,\r\n scanInTimeRaw: h.scanInTimeRaw,\r\n differenceInMinutes: h.differenceInMinutes,\r\n activityCode: h.routingCode.activityCode,\r\n activityDesc: h.routingCode.activityDesc,\r\n })),\r\n ];\r\n }, []),\r\n ),\r\n );\r\n }\r\n getWorkOrderMovementReportByUser(\r\n userId: number,\r\n ): Observable {\r\n return this.http.get(\r\n `${this.baseUrl}/v2/report-by-user/${userId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n getEmployeeDownTime(usersId) {\r\n return this.http.get(\r\n `${this.baseUrl}/employee-downtime`,\r\n {\r\n headers: this.headers,\r\n params: {\r\n usersId,\r\n },\r\n },\r\n );\r\n }\r\n\r\n getPdWorkOrderMovement(jiraId) {\r\n return this.http.get(\r\n `${this.pdMovementUrl}/${jiraId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n setPdWorkOrderMovement(data) {\r\n return this.http.post(this.pdMovementUrl, data, {\r\n headers: this.headers,\r\n });\r\n }\r\n getEmployeeDownTimeReport(usersid: number[], start: string, end: string) {\r\n return this.http\r\n .get(`${this.dailyMetricsUrl}/employee-downtime`, {\r\n headers: this.headers,\r\n params: { usersid, start, end },\r\n responseType: 'arraybuffer',\r\n })\r\n .pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n if (error.status === 400) {\r\n const decodedError = new TextDecoder('utf-8').decode(error.error);\r\n let employees = [];\r\n try {\r\n employees = JSON.parse(decodedError);\r\n } catch (e) {\r\n employees = [];\r\n }\r\n return throwError(employees);\r\n }\r\n return throwError([]);\r\n }),\r\n );\r\n }\r\n\r\n getDailyMetricsSummaryReport(start: string, end: string) {\r\n return this.http\r\n .get(`${this.dailyMetricsUrl}/summary`, {\r\n headers: this.headers,\r\n params: { start, end },\r\n responseType: 'arraybuffer',\r\n })\r\n .pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n if (error.status === 400) {\r\n const decodedError = new TextDecoder('utf-8').decode(error.error);\r\n let data = {};\r\n try {\r\n data = JSON.parse(decodedError);\r\n } catch (e) {\r\n data = {};\r\n }\r\n return throwError(data);\r\n }\r\n return throwError([]);\r\n }),\r\n );\r\n }\r\n deleteWorkOrderMovement(id) {\r\n return this.http.delete(`${this.baseUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n deletePdMovement(id) {\r\n return this.http.delete(`${this.pdMovementUrl}/${id}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { StoneItem } from '../components/open-order-stone-report/stone-receiving-dialog/stone-item';\r\nimport {\r\n ClosingDetail,\r\n ClosingDetailApi,\r\n WorkOrderDates,\r\n WorkOrderDetailForPDF,\r\n WorkOrderDetailsForPrint,\r\n WorkOrderUI,\r\n} from '../models/work-order';\r\nimport { GenericService } from './generic.service';\r\n\r\nconst getOrderType = (id) => {\r\n switch (id) {\r\n case 1:\r\n return 'Internal';\r\n case 2:\r\n return 'Online';\r\n default:\r\n return 'Standard';\r\n }\r\n};\r\n\r\nexport const buildWorkOrderForUI = (workOrder): WorkOrderUI => {\r\n const start = DateTime.fromISO(workOrder.dueDate);\r\n const end = DateTime.local();\r\n const diff = start.diff(end, 'days').days;\r\n const isAlmostDue = diff <= 4 && diff > 0 && !workOrder.closedDate;\r\n const isAlreadyDue = diff <= 0 && !workOrder.closedDate;\r\n\r\n return {\r\n ...workOrder,\r\n orderId: workOrder.orderId,\r\n poInternal: workOrder.poInternal?.toString(),\r\n dueDate: workOrder.dueDate ? new Date(workOrder.dueDate) : null,\r\n productId: workOrder.productId,\r\n productName: workOrder.productName,\r\n sku: workOrder.sku,\r\n picturePath: workOrder.productPicturePath,\r\n workOrdersId: workOrder.workOrdersId,\r\n createdDate: workOrder.createdDate ? new Date(workOrder.createdDate) : null,\r\n workOrderDetailsId: workOrder.workOrderDetailsId,\r\n quantity: workOrder.qty,\r\n quantityClosed: workOrder.qtyClosed,\r\n printedDate: workOrder.printedDate ? new Date(workOrder.printedDate) : null,\r\n releasedDate: workOrder.releasedDate\r\n ? new Date(workOrder.releasedDate)\r\n : null,\r\n dateClosed: workOrder.closedDate ? new Date(workOrder.closedDate) : null,\r\n isAlmostDue,\r\n isAlreadyDue,\r\n materialCode: workOrder.materialCode,\r\n qtyTotal: workOrder.qtyTotal,\r\n printColor1: workOrder.printColor1 ? `#${workOrder.printColor1}` : null,\r\n customized: workOrder.customized ?? false,\r\n productSku: workOrder.productSku ?? '',\r\n materialDescription: workOrder.materialDescription ?? '',\r\n orderType: getOrderType(workOrder.orderType),\r\n link: `/main/orders/${workOrder.ordersId}`,\r\n customerName: workOrder.customer?.companyName ?? '',\r\n customerId: workOrder.customer?.id,\r\n };\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WorkOrderService extends GenericService {\r\n baseUrl = environment.apiUrl + 'work-order';\r\n invoicesUrl = environment.apiUrl + 'invoices';\r\n shipmentsUrl = environment.apiUrl + 'shipments';\r\n receivingUrl = environment.apiUrl + 'receiving';\r\n workOrderDetailsUrl = environment.apiUrl + 'work-order-details';\r\n workOrdersUrl = environment.apiUrl + 'work-orders';\r\n\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n public getListReport(): Observable {\r\n return this.http.get(this.baseUrl + '/list-report', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public closeWorkOrder(wkoId: number): Observable {\r\n return this.http.put(\r\n this.baseUrl + '/close-wko/' + wkoId,\r\n {},\r\n { headers: this.headers },\r\n );\r\n }\r\n\r\n public closeWorkOrderDetail(wkoDetailId: number): Observable {\r\n return this.http.put(\r\n this.baseUrl + '/close-wko-detail/' + wkoDetailId,\r\n {},\r\n { headers: this.headers },\r\n );\r\n }\r\n\r\n public getWorkOrders(): Observable {\r\n return this.http\r\n .get(environment.apiUrl + 'work-orders', {\r\n headers: this.headers,\r\n })\r\n .pipe(map((data) => data.map(buildWorkOrderForUI)));\r\n }\r\n\r\n public getWorkOrdersByPage(params) {\r\n return this.http.get(environment.apiUrl + 'work-orders/paged', {\r\n headers: this.headers,\r\n params,\r\n observe: 'response',\r\n });\r\n }\r\n\r\n public generateWorkOrders(orderId: number): Observable {\r\n return this.http.post(\r\n environment.apiUrl + 'work-orders/generate',\r\n {},\r\n { headers: this.headers, params: { orderId } },\r\n );\r\n }\r\n\r\n public getWorkOrderPrintDetail(workOrderId: number): Observable {\r\n return this.http.get(this.baseUrl + '/print', {\r\n headers: this.headers,\r\n params: { workOrderId },\r\n });\r\n }\r\n\r\n public setWorkOrderPrint(orderId: number): Observable {\r\n return this.http.put(\r\n environment.apiUrl + 'work-orders/printed',\r\n {},\r\n { headers: this.headers, params: { orderId } },\r\n );\r\n }\r\n public setWorkOrderNotPrint(orderId: number): Observable {\r\n return this.http.put(\r\n environment.apiUrl + 'work-orders/not-printed',\r\n {},\r\n { headers: this.headers, params: { orderId } },\r\n );\r\n }\r\n public setWorkOrderRelease(orderId: number): Observable {\r\n return this.http.put(\r\n environment.apiUrl + 'work-orders/release',\r\n {},\r\n { headers: this.headers, params: { orderId } },\r\n );\r\n }\r\n public setWorkOrderClose(orderId: number): Observable {\r\n return this.http.put(\r\n environment.apiUrl + 'work-orders/close',\r\n {},\r\n { headers: this.headers, params: { orderId } },\r\n );\r\n }\r\n\r\n public getWorkOrderForPrint(\r\n workOrderId: number,\r\n ): Observable {\r\n return this.http\r\n .get(`${environment.apiUrl}print/work-order`, {\r\n headers: this.headers,\r\n params: { workOrderId },\r\n })\r\n .pipe(\r\n map((data) => ({\r\n customized: data?.customized ?? false,\r\n product: data?.product ?? {},\r\n material: data.material ?? {},\r\n orderDetail: data.orderDetails ?? {},\r\n purchaseOrder: data.purchaseOrder ?? {},\r\n workOrder: data.workOrder ?? {},\r\n workOrderDetails: data.workOrderDetails ?? {},\r\n quantity: data.workOrderDetails?.reduce((total, detail) => {\r\n return total + (detail.qty ?? 0);\r\n }, 0),\r\n })),\r\n );\r\n }\r\n\r\n public validateWorkOrderForInvoices(workOrderId: number) {\r\n return this.http.get(`${this.invoicesUrl}/validate-work-order`, {\r\n headers: this.headers,\r\n params: { workOrderId },\r\n });\r\n }\r\n public setWorkOrderInvoices(workOrderId: number) {\r\n return this.http.post(\r\n this.invoicesUrl,\r\n {},\r\n {\r\n headers: this.headers,\r\n params: { workOrderId },\r\n },\r\n );\r\n }\r\n public validateWorkOrderForShipment(workOrderId: number) {\r\n return this.http.get(`${this.shipmentsUrl}/validate-work-order`, {\r\n headers: this.headers,\r\n params: { workOrderId },\r\n });\r\n }\r\n public setWorkOrderShipments(workOrderId: number) {\r\n return this.http.post(\r\n this.shipmentsUrl,\r\n {},\r\n {\r\n headers: this.headers,\r\n params: { workOrderId },\r\n },\r\n );\r\n }\r\n\r\n public generateWorkOrderPdf(id): Observable {\r\n return this.http.get(`${environment.apiUrl}work-orders/generate-pdf`, {\r\n headers: this.headers,\r\n responseType: 'text',\r\n params: { id },\r\n });\r\n }\r\n\r\n public getUnClosedWorkOrderItems(workOrderId: number) {\r\n return this.http.get(`${this.receivingUrl}/work-order-items`, {\r\n headers: this.headers,\r\n params: { workOrderId },\r\n });\r\n }\r\n\r\n public receiveWorkOrderItems(items) {\r\n return this.http.put(this.receivingUrl, items, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getOrphanedWorkOrder() {\r\n return this.http.get(`${environment.apiUrl}work-orders/orphaned`, {\r\n headers: this.headers,\r\n });\r\n }\r\n public deleteWorkOrder(workOrderId) {\r\n return this.http.delete(\r\n `${environment.apiUrl}work-orders/${workOrderId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n public getClosingDetails(orderId: number): Observable {\r\n return this.http\r\n .get(\r\n `${environment.apiUrl}work-orders/closing-details/${orderId}`,\r\n { headers: this.headers },\r\n )\r\n .pipe(\r\n map((data) =>\r\n data.reduce((accum, d) => {\r\n return [\r\n ...accum,\r\n ...d.details.map((detail) => ({\r\n index: d.index,\r\n ...detail,\r\n })),\r\n ];\r\n }, []),\r\n ),\r\n );\r\n }\r\n\r\n public updateClosingDetail(closingId, update) {\r\n return this.http.put(\r\n `${environment.apiUrl}work-orders-closing/${closingId}`,\r\n update,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n public getWorkOrderStones(workOrderId) {\r\n return this.http\r\n .get(\r\n `${environment.apiUrl}work-orders/${workOrderId}/stones`,\r\n {\r\n headers: this.headers,\r\n },\r\n )\r\n .pipe(\r\n map((data) =>\r\n data.reduce((items, d) => {\r\n const stoneToRelease =\r\n d.totalStoneToRelease <= 0 ? 0 : d.totalStoneToRelease;\r\n return [\r\n ...items,\r\n {\r\n ...d,\r\n carat:\r\n d.caratsPerUnit > 0\r\n ? parseFloat((stoneToRelease * d.caratsPerUnit).toFixed(4))\r\n : 0,\r\n totalStoneToRelease: stoneToRelease,\r\n maxQty: stoneToRelease,\r\n maxCarat:\r\n d.caratsPerUnit > 0 ? stoneToRelease * d.caratsPerUnit : 0,\r\n },\r\n ];\r\n }, []),\r\n ),\r\n );\r\n }\r\n public releaseStoneByWorkOrderId(data) {\r\n return this.http.put(\r\n `${environment.apiUrl}work-orders/stone-release`,\r\n data,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n public validateStoneRelease(workOrderId) {\r\n return this.http.get<{ status: number }>(\r\n `${environment.apiUrl}work-orders/validate-stone-release/${workOrderId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n public getWorkOrderDates(workOrderId: number) {\r\n return this.http.get(\r\n `${environment.apiUrl}work-orders/dates/${workOrderId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n public getWorkOrderDetails(workOrderId: number) {\r\n return this.http.get(\r\n `${this.workOrderDetailsUrl}/${workOrderId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n public deleteWorkOrderDetail(workOrderDetailsId) {\r\n return this.http.delete(\r\n `${this.workOrderDetailsUrl}/${workOrderDetailsId}`,\r\n {\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n\r\n public getWorkOrderStatus(workOrderId: number) {\r\n return this.http.get<{\r\n workOrdersId: number;\r\n isPrinted: boolean;\r\n isReleased: boolean;\r\n isStoneReleased: boolean;\r\n isClosed: boolean;\r\n }>(`${this.workOrdersUrl}/${workOrderId}/status`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { ClipboardModule } from '@angular/cdk/clipboard';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n A11yModule,\r\n ClipboardModule,\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 OverlayModule,\r\n PortalModule,\r\n ScrollingModule,\r\n ],\r\n exports: [\r\n A11yModule,\r\n ClipboardModule,\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 OverlayModule,\r\n PortalModule,\r\n ScrollingModule,\r\n ],\r\n})\r\nexport class AppMaterialModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { UserPermissionDirective } from 'src/app/core/user-permission/user-permission.directive';\r\nimport { AutofocusDirective } from '../custom/directives/autofocus.directive';\r\nimport { NumberOnlyDirective } from '../custom/directives/number-only.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [\r\n UserPermissionDirective,\r\n AutofocusDirective,\r\n NumberOnlyDirective,\r\n ],\r\n exports: [UserPermissionDirective, AutofocusDirective, NumberOnlyDirective],\r\n})\r\nexport class SharedModule {}\r\n","const getAlphabetCharacters = () => {\r\n const alphabet = [];\r\n for (let charCode = 65; charCode <= 90; charCode++) {\r\n alphabet.push(String.fromCharCode(charCode));\r\n }\r\n return alphabet;\r\n};\r\n\r\nexport const alphabet = getAlphabetCharacters();\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n\r\n /*apiUrl: 'http://localhost:59784/api/',\r\n ecommUrl: 'http://localhost:59784/api/ecomm/',\r\n base: 'http://localhost:59784/',*/\r\n\r\n // apiUrl: 'https://testapi.rivapm.com/api/',\r\n // ecommUrl: 'https://testapi.rivapm.com/api/ecomm/',\r\n // base: 'https://testapi.rivapm.com/',\r\n\r\n apiUrl: 'https://api.rivapm.com/api/',\r\n ecommUrl: 'https://api.rivapm.com/api/ecomm/',\r\n base: 'https://api.rivapm.com/',\r\n\r\n apiKey: 'ebec904b-5298-49cc-8ac3-2883dcaee765',\r\n sentryDns: 'https://853828c1eaa6df743c5eff66e16e787e@o4508515440394240.ingest.us.sentry.io/4508572642181120',\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { ApplicationRef, enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport '@angular/compiler';\r\nimport { enableDebugTools } from '@angular/platform-browser';\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nimport * as Sentry from '@sentry/angular-ivy';\r\n\r\nconst hostname = window.location.hostname;\r\nconst isDevEnvironment = hostname === 'localhost' || hostname === '127.0.0.1';\r\nif (!isDevEnvironment) {\r\n Sentry.init({\r\n dsn: environment.sentryDns,\r\n integrations: [\r\n Sentry.browserTracingIntegration(),\r\n Sentry.replayIntegration(),\r\n ],\r\n tracesSampleRate: 1.0,\r\n replaysSessionSampleRate: 0.1,\r\n replaysOnErrorSampleRate: 1.0,\r\n beforeSend(event, hint) {\r\n const error = hint?.originalException;\r\n\r\n // Exclude padding issue with the ant design menu\r\n if (\r\n error instanceof Error &&\r\n error.message.includes(\r\n `Previous value for 'padding-left': '48'. Current value: 'null'`,\r\n )\r\n ) {\r\n return null;\r\n }\r\n\r\n return event;\r\n },\r\n });\r\n}\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .then((module) => {\r\n if (!environment.production) {\r\n const applicationRef = module.injector.get(ApplicationRef);\r\n const appComponent = applicationRef.components[0];\r\n enableDebugTools(appComponent);\r\n }\r\n })\r\n .catch((err) => console.error(err));\r\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":[],"sourceRoot":"webpack:///"}