{"version":3,"mappings":"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","names":["e","webpackEmptyAsyncContext","module","fadeAnimation","opacity","routes","path","pathMatch","redirectTo","component","_components_login_login_component__WEBPACK_IMPORTED_MODULE_10__","children","_components_orders_orders_component__WEBPACK_IMPORTED_MODULE_17__","canActivate","_custom_auth_guard__WEBPACK_IMPORTED_MODULE_38__","_components_orderview_orderview_component__WEBPACK_IMPORTED_MODULE_18__","_components_open_order_report_open_order_report_component__WEBPACK_IMPORTED_MODULE_15__","_components_open_order_stone_report_open_order_stone_report_component__WEBPACK_IMPORTED_MODULE_16__","_components_products_table_products_table_component__WEBPACK_IMPORTED_MODULE_24__","_components_riva_gems_riva_gems_component__WEBPACK_IMPORTED_MODULE_32__","_components_chain_tab_chain_tab_component__WEBPACK_IMPORTED_MODULE_1__","_components_invoicing_shipping_invoicing_shipping_component__WEBPACK_IMPORTED_MODULE_7__","_components_reporting_reporting_component__WEBPACK_IMPORTED_MODULE_27__","_components_reporting_item_weights_item_weights_component__WEBPACK_IMPORTED_MODULE_26__","_components_reporting_work_order_movement_work_order_movement_component__WEBPACK_IMPORTED_MODULE_28__","_components_reporting_general_reports_general_reports_component__WEBPACK_IMPORTED_MODULE_25__","_components_invoicing_shipping_invoicing_invoicing_detail_invoicing_detail_component__WEBPACK_IMPORTED_MODULE_8__","_components_invoicing_shipping_shipping_shipping_detail_shipping_detail_component__WEBPACK_IMPORTED_MODULE_9__","_components_riva_findings_riva_findings_component__WEBPACK_IMPORTED_MODULE_31__","_components_riva_chain_riva_chain_page_riva_chain_page_component__WEBPACK_IMPORTED_MODULE_29__","_components_metal_grain_metal_grain_component__WEBPACK_IMPORTED_MODULE_12__","_components_enamel_enamel_component__WEBPACK_IMPORTED_MODULE_3__","_components_non_precious_non_precious_component__WEBPACK_IMPORTED_MODULE_14__","_components_manufactured_materials_manufactured_materials_component__WEBPACK_IMPORTED_MODULE_11__","_components_other_components_other_components_component__WEBPACK_IMPORTED_MODULE_19__","_components_supplier_page_supplier_page_component__WEBPACK_IMPORTED_MODULE_34__","_components_customer_page_customer_page_component__WEBPACK_IMPORTED_MODULE_2__","_components_accounts_table_accounts_table_component__WEBPACK_IMPORTED_MODULE_0__","_components_riva_super_admin_tools_riva_super_admin_toolscomponent__WEBPACK_IMPORTED_MODULE_33__","_components_equations_equations_component__WEBPACK_IMPORTED_MODULE_4__","_components_price_defaults_price_defaults_component__WEBPACK_IMPORTED_MODULE_21__","_components_metal_overhead_equations_metal_overhead_equations_component__WEBPACK_IMPORTED_MODULE_13__","_components_product_pricing_product_pricing_component__WEBPACK_IMPORTED_MODULE_22__","_components_price_custom_price_custom_component__WEBPACK_IMPORTED_MODULE_20__","_components_riva_chain_riva_chain_pricing_riva_chain_pricing_component__WEBPACK_IMPORTED_MODULE_30__","_components_work_order_view_work_order_view_component__WEBPACK_IMPORTED_MODULE_37__","_components_inventory_log_inventory_log_component__WEBPACK_IMPORTED_MODULE_6__","_components_work_order_tracking_work_order_tracking_component__WEBPACK_IMPORTED_MODULE_36__","_components_work_order_label_printing_work_order_label_printing_component__WEBPACK_IMPORTED_MODULE_35__","_components_forbidden_forbidden_component__WEBPACK_IMPORTED_MODULE_5__","_components_product_query_product_query_component__WEBPACK_IMPORTED_MODULE_23__","AppRoutingModule","_angular_router__WEBPACK_IMPORTED_MODULE_40__","relativeLinkResolution","imports","exports","AppComponent","selectors","decls","vars","template","_angular_core__WEBPACK_IMPORTED_MODULE_3__","icons","_ant_design_icons_angular_icons__WEBPACK_IMPORTED_MODULE_212__","AppModule","bootstrap","_app_component__WEBPACK_IMPORTED_MODULE_3__","_services_generic_service__WEBPACK_IMPORTED_MODULE_55__","_angular_common__WEBPACK_IMPORTED_MODULE_214__","_custom_pipes_id_pipe__WEBPACK_IMPORTED_MODULE_53__","_components_riva_confirmation_riva_confirmation_service__WEBPACK_IMPORTED_MODULE_40__","_services_shared_service__WEBPACK_IMPORTED_MODULE_209__","_core_authentication_authentication_service__WEBPACK_IMPORTED_MODULE_207__","src_app_core_user_permission_user_permission_service__WEBPACK_IMPORTED_MODULE_56__","_core_authentication_authentication_interceptor__WEBPACK_IMPORTED_MODULE_206__","provide","_angular_core__WEBPACK_IMPORTED_MODULE_213__","useValue","_sentry_angular_ivy__WEBPACK_IMPORTED_MODULE_215__","deps","_angular_router__WEBPACK_IMPORTED_MODULE_216__","useFactory","multi","_angular_platform_browser__WEBPACK_IMPORTED_MODULE_217__","_app_routing_module__WEBPACK_IMPORTED_MODULE_2__","_angular_common_http__WEBPACK_IMPORTED_MODULE_218__","_angular_forms__WEBPACK_IMPORTED_MODULE_219__","_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_220__","_angular_material_select__WEBPACK_IMPORTED_MODULE_221__","_angular_material_sidenav__WEBPACK_IMPORTED_MODULE_222__","_custom_alert__WEBPACK_IMPORTED_MODULE_49__","_angular_material_checkbox__WEBPACK_IMPORTED_MODULE_223__","_angular_material_slide_toggle__WEBPACK_IMPORTED_MODULE_224__","_angular_material_form_field__WEBPACK_IMPORTED_MODULE_225__","_angular_material_input__WEBPACK_IMPORTED_MODULE_226__","_angular_material_datepicker__WEBPACK_IMPORTED_MODULE_227__","_angular_material_core__WEBPACK_IMPORTED_MODULE_228__","_angular_material_list__WEBPACK_IMPORTED_MODULE_229__","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_230__","ng_click_outside__WEBPACK_IMPORTED_MODULE_0__","ng2_search_filter__WEBPACK_IMPORTED_MODULE_1__","_angular_material_tabs__WEBPACK_IMPORTED_MODULE_231__","angular_responsive_carousel__WEBPACK_IMPORTED_MODULE_232__","_angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_233__","_angular_material_badge__WEBPACK_IMPORTED_MODULE_234__","_components_orderdetails_orderdetails_module__WEBPACK_IMPORTED_MODULE_28__","ngx_mat_select_search__WEBPACK_IMPORTED_MODULE_235__","_angular_material_table__WEBPACK_IMPORTED_MODULE_236__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_237__","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_238__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_239__","_angular_material_icon__WEBPACK_IMPORTED_MODULE_240__","_angular_material_expansion__WEBPACK_IMPORTED_MODULE_241__","_angular_material_menu__WEBPACK_IMPORTED_MODULE_242__","_angular_material_divider__WEBPACK_IMPORTED_MODULE_243__","_angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_244__","_angular_material_radio__WEBPACK_IMPORTED_MODULE_245__","ng_zorro_antd_layout__WEBPACK_IMPORTED_MODULE_246__","ng_zorro_antd_menu__WEBPACK_IMPORTED_MODULE_247__","ng_zorro_antd_button__WEBPACK_IMPORTED_MODULE_248__","ng_zorro_antd_tooltip__WEBPACK_IMPORTED_MODULE_249__","angular_stl_model_viewer__WEBPACK_IMPORTED_MODULE_250__","_angular_cdk_drag_drop__WEBPACK_IMPORTED_MODULE_251__","ngx_slick_carousel__WEBPACK_IMPORTED_MODULE_252__","ngx_red_zoom__WEBPACK_IMPORTED_MODULE_253__","ng_zorro_antd_input__WEBPACK_IMPORTED_MODULE_254__","ng_zorro_antd_select__WEBPACK_IMPORTED_MODULE_255__","ng_zorro_antd_input_number__WEBPACK_IMPORTED_MODULE_256__","ng_zorro_antd_tabs__WEBPACK_IMPORTED_MODULE_257__","ng_zorro_antd_collapse__WEBPACK_IMPORTED_MODULE_258__","ng_zorro_antd_popover__WEBPACK_IMPORTED_MODULE_259__","_kolkov_ngx_gallery__WEBPACK_IMPORTED_MODULE_260__","ng2_pdf_viewer__WEBPACK_IMPORTED_MODULE_261__","ng_zorro_antd_switch__WEBPACK_IMPORTED_MODULE_262__","ng_zorro_antd_alert__WEBPACK_IMPORTED_MODULE_263__","ng2_charts__WEBPACK_IMPORTED_MODULE_264__","ng_zorro_antd_icon__WEBPACK_IMPORTED_MODULE_265__","_sweetalert2_ngx_sweetalert2__WEBPACK_IMPORTED_MODULE_266__","_shared_modules_shared_module__WEBPACK_IMPORTED_MODULE_210__","ngx_toastr__WEBPACK_IMPORTED_MODULE_267__","ng_zorro_antd_progress__WEBPACK_IMPORTED_MODULE_268__","_angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_269__","_ng_idle_keepalive__WEBPACK_IMPORTED_MODULE_270__","ngx_file_drop__WEBPACK_IMPORTED_MODULE_271__","ng_zorro_antd_divider__WEBPACK_IMPORTED_MODULE_272__","declarations","_components_login_login_component__WEBPACK_IMPORTED_MODULE_4__","_custom_notification_notification_component__WEBPACK_IMPORTED_MODULE_51__","_custom_load_overlay_load_overlay_component__WEBPACK_IMPORTED_MODULE_50__","_components_orderimporting_orderimporting_component__WEBPACK_IMPORTED_MODULE_29__","_components_inventory_log_inventory_log_component__WEBPACK_IMPORTED_MODULE_24__","_components_products_table_products_table_component__WEBPACK_IMPORTED_MODULE_37__","_custom_pipes_enum_to_array_pipe__WEBPACK_IMPORTED_MODULE_52__","_components_gems_gems_component__WEBPACK_IMPORTED_MODULE_23__","_components_product_table_v2_product_table_v2_component__WEBPACK_IMPORTED_MODULE_36__","_components_product_group_table_product_group_table_component__WEBPACK_IMPORTED_MODULE_34__","_components_raw_materials_raw_materials_component__WEBPACK_IMPORTED_MODULE_38__","_components_enamel_enamel_component__WEBPACK_IMPORTED_MODULE_19__","_components_bill_of_materials_b_bill_of_materials_b_component__WEBPACK_IMPORTED_MODULE_14__","_components_bill_of_materials_a_bill_of_materials_a_component__WEBPACK_IMPORTED_MODULE_13__","_components_metal_grain_metal_grain_component__WEBPACK_IMPORTED_MODULE_26__","_components_findings_findings_component__WEBPACK_IMPORTED_MODULE_20__","_components_non_precious_non_precious_component__WEBPACK_IMPORTED_MODULE_27__","_components_manufactured_materials_manufactured_materials_component__WEBPACK_IMPORTED_MODULE_25__","_components_chain_tab_chain_tab_component__WEBPACK_IMPORTED_MODULE_17__","_components_chain_finished_chain_finished_component__WEBPACK_IMPORTED_MODULE_16__","_components_chain_chain_component__WEBPACK_IMPORTED_MODULE_18__","_components_gems_bom_gems_bom_component__WEBPACK_IMPORTED_MODULE_22__","_components_bill_of_materials_bill_of_materials_component__WEBPACK_IMPORTED_MODULE_15__","_components_orders_orders_component__WEBPACK_IMPORTED_MODULE_32__","_components_forbidden_forbidden_component__WEBPACK_IMPORTED_MODULE_21__","_components_product_report_product_report_component__WEBPACK_IMPORTED_MODULE_35__","_components_work_order_work_order_component__WEBPACK_IMPORTED_MODULE_48__","_components_orderview_orderview_component__WEBPACK_IMPORTED_MODULE_33__","_components_work_order_view_work_order_view_component__WEBPACK_IMPORTED_MODULE_46__","_components_orders_dialog_orders_confirmation_component__WEBPACK_IMPORTED_MODULE_30__","_components_orders_dialog_orders_progress_component__WEBPACK_IMPORTED_MODULE_31__","_components_work_order_view_work_orders_release_component__WEBPACK_IMPORTED_MODULE_47__","_components_sub_items_sub_items_component__WEBPACK_IMPORTED_MODULE_45__","_components_sub_items_sub_items_dialog_component__WEBPACK_IMPORTED_MODULE_44__","_components_sub_items_sub_items_confirmation_component__WEBPACK_IMPORTED_MODULE_43__","_components_bill_of_material_bill_of_material_component__WEBPACK_IMPORTED_MODULE_12__","_components_bill_of_material_sub_item_bill_of_material_sub_item_component__WEBPACK_IMPORTED_MODULE_11__","_components_bill_of_material_sub_item_bill_of_material_sub_item_dialog_component__WEBPACK_IMPORTED_MODULE_10__","_components_bill_of_material_sub_item_bill_of_material_sub_item_confirmation_component__WEBPACK_IMPORTED_MODULE_9__","_components_accounts_table_accounts_table_user_accounts_table_user_component__WEBPACK_IMPORTED_MODULE_6__","_components_accounts_table_accounts_table_dialog_accounts_table_dialog_component__WEBPACK_IMPORTED_MODULE_5__","_components_riva_confirmation_riva_confirmation_component__WEBPACK_IMPORTED_MODULE_39__","_components_accounts_table_reset_password_dialog_reset_password_dialog_component__WEBPACK_IMPORTED_MODULE_8__","_components_accounts_table_accounts_table_component__WEBPACK_IMPORTED_MODULE_7__","_components_riva_text_avatar_riva_text_avatar_component__WEBPACK_IMPORTED_MODULE_42__","_components_riva_stl_viewer_riva_stl_viewer_dialog_component__WEBPACK_IMPORTED_MODULE_41__","_custom_riva_side_nav_riva_side_nav_component__WEBPACK_IMPORTED_MODULE_54__","_components_products_table_enamel_variation_dialog_enamel_variation_dialog_component__WEBPACK_IMPORTED_MODULE_113__","_components_products_table_enamel_variation_enamel_variation_component__WEBPACK_IMPORTED_MODULE_114__","_components_product_routing_product_routing_dialog_component__WEBPACK_IMPORTED_MODULE_110__","_components_product_routing_product_routing_component__WEBPACK_IMPORTED_MODULE_111__","_components_bill_of_material_product_component_dialog_product_component_dialog_component__WEBPACK_IMPORTED_MODULE_59__","_components_bill_of_material_product_enamel_product_enamel_component__WEBPACK_IMPORTED_MODULE_60__","_components_products_table_enamel_constant_enamel_constant_component__WEBPACK_IMPORTED_MODULE_112__","_components_supplier_page_supplier_page_component__WEBPACK_IMPORTED_MODULE_200__","_components_supplier_page_supplier_dialog_supplier_dialog_component__WEBPACK_IMPORTED_MODULE_199__","_components_customer_page_customer_page_component__WEBPACK_IMPORTED_MODULE_71__","_components_customer_page_customer_dialog_customer_dialog_component__WEBPACK_IMPORTED_MODULE_70__","_components_invoicing_shipping_invoicing_shipping_component__WEBPACK_IMPORTED_MODULE_74__","_components_riva_findings_riva_findings_component__WEBPACK_IMPORTED_MODULE_178__","_components_riva_findings_findings_list_findings_list_component__WEBPACK_IMPORTED_MODULE_167__","_components_riva_findings_findings_details_findings_details_component__WEBPACK_IMPORTED_MODULE_166__","_components_bill_of_material_product_findings_product_findings_component__WEBPACK_IMPORTED_MODULE_65__","_components_bill_of_material_product_findings_product_findings_table_product_findings_table_component__WEBPACK_IMPORTED_MODULE_64__","_components_riva_chain_riva_chain_riva_chain_component__WEBPACK_IMPORTED_MODULE_160__","_components_riva_chain_riva_chain_page_riva_chain_page_component__WEBPACK_IMPORTED_MODULE_145__","_components_product_routing_product_routing_copy_dialog_component__WEBPACK_IMPORTED_MODULE_109__","_components_products_table_product_image_product_image_component__WEBPACK_IMPORTED_MODULE_116__","_components_products_table_product_image_order_dialog_product_image_order_dialog_component__WEBPACK_IMPORTED_MODULE_115__","_components_accounts_table_user_permission_dialog_user_permission_dialog_component__WEBPACK_IMPORTED_MODULE_57__","_components_invoicing_shipping_invoicing_invoicing_component__WEBPACK_IMPORTED_MODULE_80__","_components_invoicing_shipping_invoicing_invoicing_detail_invoicing_detail_component__WEBPACK_IMPORTED_MODULE_76__","_components_invoicing_shipping_invoicing_invoicing_detail_invoicing_detail_dialog_invoicing_detail_dialog_component__WEBPACK_IMPORTED_MODULE_75__","_components_invoicing_shipping_shipping_shipping_component__WEBPACK_IMPORTED_MODULE_84__","_components_invoicing_shipping_shipping_shipping_detail_shipping_detail_component__WEBPACK_IMPORTED_MODULE_82__","_components_invoicing_shipping_shipping_shipping_detail_shipping_detail_dialog_shipping_detail_dialog_component__WEBPACK_IMPORTED_MODULE_81__","_components_invoicing_shipping_invoicing_invoicing_print_dialog_invoicing_print_dialog_component__WEBPACK_IMPORTED_MODULE_79__","_custom_pipes_no_comma_pipe__WEBPACK_IMPORTED_MODULE_208__","_components_orders_related_invoices_dialog_related_invoices_dialog_component__WEBPACK_IMPORTED_MODULE_92__","_components_riva_gems_gems_list_gems_list_component__WEBPACK_IMPORTED_MODULE_192__","_components_riva_gems_riva_gems_component__WEBPACK_IMPORTED_MODULE_193__","_components_riva_gems_gems_details_gems_details_component__WEBPACK_IMPORTED_MODULE_191__","_components_riva_gems_dialogs_stone_size_dialog_stone_size_dialog_component__WEBPACK_IMPORTED_MODULE_189__","_components_riva_gems_dialogs_stone_dialog_stone_dialog_component__WEBPACK_IMPORTED_MODULE_186__","_components_riva_gems_dialogs_stone_confirmation_stone_confirmation_component__WEBPACK_IMPORTED_MODULE_185__","_components_riva_gems_stone_product_stone_product_component__WEBPACK_IMPORTED_MODULE_196__","_components_riva_gems_dialogs_stone_images_dialog_stone_images_dialog_component__WEBPACK_IMPORTED_MODULE_187__","_components_work_order_view_work_order_print_work_order_print_dialog_component__WEBPACK_IMPORTED_MODULE_205__","_components_products_table_product_setting_dialog_product_setting_dialog_component__WEBPACK_IMPORTED_MODULE_118__","_components_work_order_view_receiving_item_dialog_receiving_item_dialog_component__WEBPACK_IMPORTED_MODULE_204__","_components_invoicing_shipping_invoicing_invoicing_detail_related_shipment_dialog_related_shipment_dialog_component__WEBPACK_IMPORTED_MODULE_78__","_components_invoicing_shipping_shipping_shipping_detail_shipping_related_invoice_dialog_shipping_related_invoice_dialog_component__WEBPACK_IMPORTED_MODULE_83__","_components_work_order_view_orphan_work_order_dialog_orphan_work_order_dialog_component__WEBPACK_IMPORTED_MODULE_203__","_components_riva_gems_stone_product_stone_override_size_dialog_stone_override_size_dialog_component__WEBPACK_IMPORTED_MODULE_194__","_components_riva_findings_jumpring_jumpring_component__WEBPACK_IMPORTED_MODULE_173__","_components_riva_findings_jumpring_jumpring_dialog_jumpring_dialog_component__WEBPACK_IMPORTED_MODULE_172__","_components_riva_findings_post_post_component__WEBPACK_IMPORTED_MODULE_177__","_components_riva_findings_post_post_dialog_post_dialog_component__WEBPACK_IMPORTED_MODULE_176__","_components_customer_page_customer_address_dialog_customer_address_dialog_component__WEBPACK_IMPORTED_MODULE_69__","_components_bill_of_material_product_findings_bom_jumpring_bom_jumpring_component__WEBPACK_IMPORTED_MODULE_62__","_components_bill_of_material_product_findings_bom_post_bom_post_component__WEBPACK_IMPORTED_MODULE_63__","_components_riva_findings_lobster_claw_lobster_claw_component__WEBPACK_IMPORTED_MODULE_175__","_components_riva_findings_lobster_claw_lobster_claw_dialog_lobster_claw_dialog_component__WEBPACK_IMPORTED_MODULE_174__","_components_riva_findings_spring_ring_spring_ring_component__WEBPACK_IMPORTED_MODULE_180__","_components_riva_findings_spring_ring_spring_ring_dialog_spring_ring_dialog_component__WEBPACK_IMPORTED_MODULE_179__","_components_riva_chain_riva_chain_chain_dialog_chain_dialog_component__WEBPACK_IMPORTED_MODULE_157__","_components_riva_chain_riva_chain_chain_raw_dialog_chain_raw_dialog_component__WEBPACK_IMPORTED_MODULE_158__","_components_riva_chain_riva_chain_finish_riva_chain_finish_list_riva_chain_finish_list_component__WEBPACK_IMPORTED_MODULE_144__","_components_riva_chain_riva_chain_finish_chain_finish_dialog_chain_finish_dialog_component__WEBPACK_IMPORTED_MODULE_142__","_components_riva_chain_riva_chain_finish_chain_finish_bom_dialog_chain_finish_bom_dialog_component__WEBPACK_IMPORTED_MODULE_141__","_components_riva_chain_riva_chain_product_riva_chain_unfinished_product_riva_chain_unfinished_product_component__WEBPACK_IMPORTED_MODULE_153__","_components_riva_chain_riva_chain_product_riva_chain_product_container_riva_chain_product_container_component__WEBPACK_IMPORTED_MODULE_152__","_components_riva_chain_riva_chain_product_product_chain_unfinished_table_product_chain_unfinished_table_component__WEBPACK_IMPORTED_MODULE_150__","_components_riva_chain_riva_chain_product_riva_chain_finished_product_riva_chain_finished_product_component__WEBPACK_IMPORTED_MODULE_151__","_components_riva_chain_riva_chain_product_product_chain_finished_table_product_chain_finished_table_component__WEBPACK_IMPORTED_MODULE_149__","_components_riva_chain_riva_chain_routing_chain_routing_component__WEBPACK_IMPORTED_MODULE_156__","_components_riva_chain_riva_chain_routing_chain_routing_dialog_component__WEBPACK_IMPORTED_MODULE_155__","_components_riva_chain_riva_chain_routing_chain_routing_copy_dialog_component__WEBPACK_IMPORTED_MODULE_154__","_components_products_table_product_sku_generator_dialog_product_sku_generator_dialog_component__WEBPACK_IMPORTED_MODULE_120__","_components_riva_chain_riva_chain_chain_unfinished_sku_generator_dialog_chain_unfinished_sku_generator_dialog_component__WEBPACK_IMPORTED_MODULE_159__","_components_riva_chain_riva_chain_finish_chain_finished_sku_generator_dialog_chain_finished_sku_generator_dialog_component__WEBPACK_IMPORTED_MODULE_143__","_components_riva_findings_tags_tags_component__WEBPACK_IMPORTED_MODULE_184__","_components_riva_findings_tags_tags_dialog_tags_dialog_component__WEBPACK_IMPORTED_MODULE_183__","_components_riva_findings_spring_spring_component__WEBPACK_IMPORTED_MODULE_182__","_components_riva_findings_spring_spring_dialog_spring_dialog_component__WEBPACK_IMPORTED_MODULE_181__","_components_products_table_product_material_dialog_product_material_dialog_component__WEBPACK_IMPORTED_MODULE_117__","_components_riva_findings_flyer_flyer_component__WEBPACK_IMPORTED_MODULE_171__","_components_riva_findings_flyer_flyer_dialog_flyer_dialog_component__WEBPACK_IMPORTED_MODULE_170__","_components_riva_findings_finding_routing_finding_routing_dialog_component__WEBPACK_IMPORTED_MODULE_162__","_components_riva_findings_finding_routing_finding_routing_component__WEBPACK_IMPORTED_MODULE_163__","_components_riva_findings_finding_stock_dialog_finding_stock_dialog_component__WEBPACK_IMPORTED_MODULE_165__","_components_riva_findings_findings_sku_generator_dialog_findings_sku_generator_dialog_component__WEBPACK_IMPORTED_MODULE_169__","_components_riva_findings_findings_sku_generator_button_findings_sku_generator_button_component__WEBPACK_IMPORTED_MODULE_168__","_components_bill_of_material_product_findings_bom_findings_bom_findings_component__WEBPACK_IMPORTED_MODULE_61__","_components_riva_findings_finding_setting_dialog_finding_setting_dialog_component__WEBPACK_IMPORTED_MODULE_164__","_components_other_components_other_components_component__WEBPACK_IMPORTED_MODULE_98__","_components_other_components_other_components_routing_other_components_routing_dialog_component__WEBPACK_IMPORTED_MODULE_94__","_components_other_components_other_components_routing_other_components_routing_component__WEBPACK_IMPORTED_MODULE_95__","_components_other_components_other_components_routing_other_components_routing_copy_dialog_component__WEBPACK_IMPORTED_MODULE_93__","_components_other_components_other_components_size_dialog_other_components_size_dialog_component__WEBPACK_IMPORTED_MODULE_96__","_components_orderdetails_list_add_product_by_customer_sku_dialog_add_product_by_customer_sku_dialog_component__WEBPACK_IMPORTED_MODULE_90__","_components_open_order_report_open_order_report_component__WEBPACK_IMPORTED_MODULE_86__","_components_reporting_reporting_component__WEBPACK_IMPORTED_MODULE_131__","_components_reporting_reporting_total_shipment_reporting_total_shipment_component__WEBPACK_IMPORTED_MODULE_130__","_components_riva_date_range_picker_riva_date_range_picker_component__WEBPACK_IMPORTED_MODULE_161__","_components_reporting_reporting_item_placed_reporting_item_placed_component__WEBPACK_IMPORTED_MODULE_127__","_components_reporting_reporting_top_product_reporting_top_product_component__WEBPACK_IMPORTED_MODULE_129__","_components_customer_page_customer_setting_dialog_customer_setting_dialog_component__WEBPACK_IMPORTED_MODULE_72__","_components_reporting_reporting_presets_reporting_presets_component__WEBPACK_IMPORTED_MODULE_128__","_components_open_order_stone_report_open_order_stone_report_component__WEBPACK_IMPORTED_MODULE_87__","_components_reporting_item_weights_item_weights_component__WEBPACK_IMPORTED_MODULE_124__","_components_riva_gems_dialogs_stone_inventory_adjustment_dialog_stone_inventory_adjustment_dialog_component__WEBPACK_IMPORTED_MODULE_188__","_components_open_order_stone_report_stone_receiving_dialog_stone_receiving_dialog_component__WEBPACK_IMPORTED_MODULE_88__","_components_riva_gems_dialogs_stone_updater_dialog_stone_updater_dialog_component__WEBPACK_IMPORTED_MODULE_190__","_components_other_components_other_components_sku_generator_dialog_other_components_sku_generator_dialog_component__WEBPACK_IMPORTED_MODULE_97__","_components_reporting_reporting_invoice_reporting_invoice_component__WEBPACK_IMPORTED_MODULE_126__","_components_open_order_stone_report_stone_release_history_dialog_stone_release_history_dialog_component__WEBPACK_IMPORTED_MODULE_89__","_components_work_order_tracking_work_order_tracking_component__WEBPACK_IMPORTED_MODULE_202__","_components_riva_timeout_riva_timeout_component__WEBPACK_IMPORTED_MODULE_198__","_components_bill_of_material_product_link_bom_product_link_bom_form_product_link_bom_form_component__WEBPACK_IMPORTED_MODULE_66__","_components_bill_of_material_product_link_bom_product_link_bom_table_product_link_bom_table_component__WEBPACK_IMPORTED_MODULE_67__","_components_bill_of_material_product_link_bom_product_link_bom_component__WEBPACK_IMPORTED_MODULE_68__","_components_reporting_work_order_movement_work_order_movement_component__WEBPACK_IMPORTED_MODULE_138__","_components_reporting_work_order_movement_work_order_moved_work_order_moved_component__WEBPACK_IMPORTED_MODULE_137__","_components_reporting_work_order_movement_work_order_product_search_work_order_product_search_component__WEBPACK_IMPORTED_MODULE_140__","_components_reporting_work_order_movement_work_order_incomplete_work_order_incomplete_component__WEBPACK_IMPORTED_MODULE_136__","_components_reporting_work_order_movement_work_order_employee_work_order_employee_component__WEBPACK_IMPORTED_MODULE_135__","_components_work_order_label_printing_work_order_label_printing_component__WEBPACK_IMPORTED_MODULE_201__","_components_reporting_work_order_movement_work_order_process_comparison_work_order_process_comparison_component__WEBPACK_IMPORTED_MODULE_139__","_components_reporting_work_order_movement_work_order_employee_down_time_work_order_employee_down_time_component__WEBPACK_IMPORTED_MODULE_134__","_components_riva_gems_stone_product_stone_override_size_multiple_dialog_stone_override_size_multiple_dialog_component__WEBPACK_IMPORTED_MODULE_195__","_components_accounts_table_user_permission_navigation_dialog_user_permission_navigation_dialog_component__WEBPACK_IMPORTED_MODULE_58__","_components_orderdetails_order_upload_dialog_order_upload_dialog_component__WEBPACK_IMPORTED_MODULE_91__","_components_reporting_work_order_movement_work_order_employee_down_time_employee_down_time_error_dialog_employee_down_time_error_dialog_component__WEBPACK_IMPORTED_MODULE_133__","_components_reporting_reporting_invoice_reporting_invoice_error_dialog_reporting_invoice_error_dialog_component__WEBPACK_IMPORTED_MODULE_125__","_components_product_query_product_query_component__WEBPACK_IMPORTED_MODULE_108__","_components_product_query_product_order_product_order_component__WEBPACK_IMPORTED_MODULE_107__","_components_product_query_product_invoice_product_invoice_component__WEBPACK_IMPORTED_MODULE_105__","_components_product_query_product_order_details_product_order_details_component__WEBPACK_IMPORTED_MODULE_106__","_components_product_query_product_invoice_details_product_invoice_details_component__WEBPACK_IMPORTED_MODULE_104__","_components_reporting_work_order_movement_pd_movement_pd_movement_component__WEBPACK_IMPORTED_MODULE_132__","_components_products_table_product_sizes_dialog_product_sizes_dialog_component__WEBPACK_IMPORTED_MODULE_119__","_components_equations_equations_component__WEBPACK_IMPORTED_MODULE_73__","_components_price_defaults_price_defaults_component__WEBPACK_IMPORTED_MODULE_102__","_components_price_defaults_customer_price_defaults_customer_price_defaults_component__WEBPACK_IMPORTED_MODULE_101__","_components_metal_overhead_equations_metal_overhead_equations_component__WEBPACK_IMPORTED_MODULE_85__","_components_reporting_general_reports_invoice_reports_invoice_reports_component__WEBPACK_IMPORTED_MODULE_122__","_components_reporting_general_reports_general_reports_component__WEBPACK_IMPORTED_MODULE_121__","_components_reporting_general_reports_stone_movements_report_stone_movements_report_component__WEBPACK_IMPORTED_MODULE_123__","_components_product_pricing_product_pricing_component__WEBPACK_IMPORTED_MODULE_103__","_components_invoicing_shipping_invoicing_invoicing_detail_invoicing_price_dialog_invoicing_price_dialog_component__WEBPACK_IMPORTED_MODULE_77__","_components_riva_super_admin_tools_riva_super_admin_toolscomponent__WEBPACK_IMPORTED_MODULE_197__","_components_riva_chain_riva_chain_pricing_riva_chain_pricing_component__WEBPACK_IMPORTED_MODULE_148__","_components_riva_chain_riva_chain_pricing_riva_chain_pricing_unfinished_riva_chain_pricing_unfinished_component__WEBPACK_IMPORTED_MODULE_147__","_components_riva_chain_riva_chain_pricing_riva_chain_pricing_unfinished_riva_chain_pricing_unfinished_table_riva_chain_pricing_unfinished_table_component__WEBPACK_IMPORTED_MODULE_146__","_components_price_custom_price_custom_component__WEBPACK_IMPORTED_MODULE_99__","_components_price_defaults_customer_additional_charges_customer_additional_charges_component__WEBPACK_IMPORTED_MODULE_100__","src_app_core_user_permission_user_permission_directive__WEBPACK_IMPORTED_MODULE_211__","_angular_core__WEBPACK_IMPORTED_MODULE_1__","ctx_r5","AccountsTableDialogComponent","data","dialogRef","userService","_snackBar","Set","getAccounts","usersID","_a","employeeID","generateUniqueRivaEmployeeId","getUsers","subscribe","accounts","usedIds","reduce","list","indexOf","Number","parseInt","replace","usedEmployeeId","usernameExist","some","account","userName","toLocaleLowerCase","_b","toLowerCase","isSaving","noLoginUser","password","updateUser","Object","tokenTimeout","close","open","horizontalPosition","verticalPosition","setUser","min","max","number","Math","floor","random","has","add","num","width","String","padStart","uniqueNumber","generateUniqueNumber","paddedNumber","padNumber","allowedMultipleWorkOrder","infiniteAuthTokenTimeOut","inactive","timeTracked","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_3__","consts","ctx","_r0","_r2","_r6","_r8","_r10","_r12","_r14","_r16","_r18","_r20","AccountsTableUserComponent","inputs","_angular_core__WEBPACK_IMPORTED_MODULE_11__","AccountsTableComponent","loadService","alertService","userPermissionService","dialog","_angular_material_table__WEBPACK_IMPORTED_MODULE_12__","load","checkPagePermission","src_app_core_user_permission_user_permission_rules_pages__WEBPACK_IMPORTED_MODULE_0__","sort","paginator","filterPredicate","filterValue","parse","search","includeInactiveAccount","searchFilter","fullName","toString","includes","_c","isValid","map","getFullName","defaultUrl","src_app_custom_riva_side_nav_menu__WEBPACK_IMPORTED_MODULE_1__","onFilterChange","err","name","firstName","push","lastName","length","join","filter","JSON","stringify","loginId","user","selectedUserId","selectedAccount","find","_reset_password_dialog_reset_password_dialog_component__WEBPACK_IMPORTED_MODULE_4__","disableClose","maxWidth","_user_permission_navigation_dialog_user_permission_navigation_dialog_component__WEBPACK_IMPORTED_MODULE_5__","afterClosed","success","isNew","active","_accounts_table_dialog_accounts_table_dialog_component__WEBPACK_IMPORTED_MODULE_3__","_generic_generic_component__WEBPACK_IMPORTED_MODULE_2__","viewQuery","_angular_material_sort__WEBPACK_IMPORTED_MODULE_15__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_16__","ResetPasswordDialogComponent","newPassword","confirmNewPassword","hasPasswordError","resetUserPassword","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_2__","ctx_r7","UserPermissionDialogComponent","value","label","getUserPermissions","userPermissions","page","permission","pageName","usersPagesPermissionsID","accessLevel","permissions","u","setUserPermissions","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_4__","subMenu_r9","accessLevel_r17","ctx_r10","menu_r5","accessLevel_r34","ctx_r25","UserPermissionNavigationDialogComponent","src_app_custom_riva_side_nav_menu__WEBPACK_IMPORTED_MODULE_0__","menuPermission","permissionMenus","menu","adminPermission","normalPermission","isAdmin","isDefaultPage","url","subMenu","s","adminPermissionSubMenu","normalPermissionSubMenu","permissionSubMenu","accum","menuPermissions","subMenuPermissions","subsPermissions","sub","m","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_5__","BillOfMaterialSubItemConfirmationComponent","BillOfMaterialSubItemDialogComponent","subItemService","productService","_angular_forms__WEBPACK_IMPORTED_MODULE_4__","filteredSubItems$","subItemControl","valueChanges","pipe","subItem","_filterSubItems","item","undefined","subItems","option","description","productsBOMID","productId","notes","qty","productsId","subItemId","subItemsID","custProvided","setProductBillOfMaterial","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_7__","BillOfMaterialSubItemComponent","_productService","_angular_material_table__WEBPACK_IMPORTED_MODULE_4__","loadBillOfMaterialItems","changes","getProductBillOfMaterial","_bill_of_material_sub_item_dialog_component__WEBPACK_IMPORTED_MODULE_1__","autoFocus","result","id","_bill_of_material_sub_item_confirmation_component__WEBPACK_IMPORTED_MODULE_0__","isDelete","deleteProductBillOfMaterial","_angular_material_sort__WEBPACK_IMPORTED_MODULE_6__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_7__","_angular_core__WEBPACK_IMPORTED_MODULE_13__","ctx_r1","ctx_r2","ctx_r8","ctx_r9","BillOfMaterialComponent","productBomService","_confirmationService","reloadProductFindings","getProductFindings","reloadStoneProduct","onReloadStones","reloadProductChainUnfinished","getProductChainUnfinished","reloadProductChainFinished","getProductChainFinished","productFindings","_product_component_dialog_product_component_dialog_component__WEBPACK_IMPORTED_MODULE_0__","reloadEnamelConstant","reloadEnamelVariation","reloadProductLinkBomListDisplay","getProductChainRaw","productChainUnfinished","productChainFinished","findings","showConfirmation","title","content","confirmLabel","isConfirmed","deleteProductFindings","productsBOMFindingsID","isReloading","setTimeout","editMode","features","PRODUCT_ENAMEL_INDEX","PRODUCT_FINDINGS_INDEX","PRODUCT_STONES_INDEX","ProductComponentDialogComponent","props","selectedIndex","productEnamelComponent","isEnamelSaving","productFindingsComponent","isFindingsSaving","stoneProductComponent","isStoneSaving","onSave","_product_enamel_product_enamel_component__WEBPACK_IMPORTED_MODULE_1__","_product_findings_product_findings_component__WEBPACK_IMPORTED_MODULE_2__","_riva_gems_stone_product_stone_product_component__WEBPACK_IMPORTED_MODULE_0__","_angular_core__WEBPACK_IMPORTED_MODULE_6__","ProductEnamelComponent","enamelService","src_app_core_user_permission_user_permission_rules_product_permission__WEBPACK_IMPORTED_MODULE_0__","_angular_forms__WEBPACK_IMPORTED_MODULE_7__","_angular_cdk_collections__WEBPACK_IMPORTED_MODULE_8__","_angular_material_table__WEBPACK_IMPORTED_MODULE_9__","src_app_services_generic_service__WEBPACK_IMPORTED_MODULE_1__","enamels","enamelName","enamelSku","filteredEnamels","enamelControl","selectedEnamel","_filterEnamels","pantoneColor","numSelected","selection","selected","numRows","isAllSelected","clear","forEach","row","select","rawEnamels","productEnamels","p","enamelID","enamelId","enamelSKU","productsID","onCheckVariation","enamel","maxVariation","isVariationLimit","productsBOMEnamelID","deleteProductEnamel","initiateFilters","newProductEnamels","variations","variation","setProductEnamel","getList","getProductEnamel","productEnamelList","BomFindingsComponent","findingsService","materialCodeService","size_1","jumpringSize","size_2","size_3","size_4","customerName","columns","getColumns","findingsType","displayedColumns","keys","responseObject","materialCodes","f","findingsTypesID","selectedFinding","findingSizesID","selectedStock","getFindingsStockBySizeId","stocks","stock","materialsCodeID","onSelectFinding","emit","isOverride","findingsMaterialsID","typeId","src_app_components_riva_findings_constants__WEBPACK_IMPORTED_MODULE_0__","jumpringColumns","postColumns","flyerColumns","springColumns","springRingColumns","lobsterClawColumns","tagColumns","BomJumpringComponent","jumprings","selectedJumpring","BomPostComponent","posts","selectedPost","_angular_core__WEBPACK_IMPORTED_MODULE_0__","ctx_r32","ProductFindingsTableComponent","onDeleteFindings","observers","action","outputs","ProductFindingsComponent","_angular_forms__WEBPACK_IMPORTED_MODULE_9__","_angular_cdk_collections__WEBPACK_IMPORTED_MODULE_10__","_angular_material_table__WEBPACK_IMPORTED_MODULE_11__","_riva_findings_constants__WEBPACK_IMPORTED_MODULE_1__","sku","getFindings","getFindingsSize","getFindingList","findingsList","filteredFindings","findingsControl","selectedFindings","_filterFindings","rawFindings","findingsId","selectedMaterial","selectedSize","newProductFindings","tempProductsBOMFindingsID","_generic_generic_component__WEBPACK_IMPORTED_MODULE_0__","findingsID","findingsSizesID","findingsMaterialsCodeId","comment","size","material","setProductFindings","$event","findings$","_angular_core__WEBPACK_IMPORTED_MODULE_15__","_angular_core__WEBPACK_IMPORTED_MODULE_5__","product_r12","size_r16","ProductLinkBomFormComponent","src_app_models_product__WEBPACK_IMPORTED_MODULE_0__","_angular_forms__WEBPACK_IMPORTED_MODULE_6__","_angular_material_table__WEBPACK_IMPORTED_MODULE_7__","products","initiateFilter","productLinkBom","productsID_Primary","getProduct","productSizes","productsSizesID_Primary","productsSizesID","filteredProducts","productControl","product","productName","_filterProduct","productDesc","productsSizesID_BOM","productsID_BOM","productBomSizes","event","request","setProductLinkBom","productsBOMProductsID","reloadProductLinkBomList","group","sizes","deleteProductLinkBom","bomSizes","every","ProductLinkBomTableComponent","getProductLinkBom","isDisplayOnly","c","groupByProduct","lodash_groupBy__WEBPACK_IMPORTED_MODULE_0___default","productLinksBom","key","productItems","picPath","ProductLinkBomComponent","_angular_core__WEBPACK_IMPORTED_MODULE_2__","_angular_core__WEBPACK_IMPORTED_MODULE_8__","BillOfMaterialsAComponent","_editModeInput","newTableAItem","_productInput","refreshProductData","getTableAList","productInput","tableA","_productInfoInput","_selectedProductInfoInput","materials","productInfoInput","exist","x","materialCodeId","info","getTableAOptions","tableAOptions","getFabMethods","fabMethods","show","document","getElementById","nextElementSibling","classList","remove","itemType","type","showAutosaveCounter","autosaveCounter","newBom","bomItemTypeId","itemQty","addUpdate","error","bom","bomQty","bomId","updateBom","productsBomid","itemDescription","productsInfoId","updated","index","wasSuccess","_generic_generic_component__WEBPACK_IMPORTED_MODULE_1__","editModeInput","selectedProductInfoInput","_angular_core__WEBPACK_IMPORTED_MODULE_26__","ctx_r40","ctx_r62","modal_r41","ctx_r80","ctx_r91","OptionSizes","AllOptionSizes","BillOfMaterialsBComponent","gemService","modalService","manufacturedMatService","metalGrainSerivce","findingService","nonPreciousService","supplierService","uomService","chainFinishedService","chainFinishedInfoService","findingsInfoService","manufacturedMatsInfoService","src_app_models_enum_bom_item_type_enum__WEBPACK_IMPORTED_MODULE_2__","loadSize","getTableBList","tableB","suppliers","uom","b","i","searchString","tableB_filtered","popupTableB_RowData","searchResult","bomType","parentId","filtered","sizeSelection","allSizes","subItemInfoId","chainInfos","findingInfos","manufacturedMatInfos","response","element","optionSize","chainFinishedInfoId","chainFinishedId","findingsInfoId","searchTimeout","resetTableBPopupData","src_app_models_chainfinished_model__WEBPACK_IMPORTED_MODULE_0__","infoList","column","ID","Name","SKU","loadContent","statusText","src_app_models_enamel__WEBPACK_IMPORTED_MODULE_1__","src_app_models_findings_model__WEBPACK_IMPORTED_MODULE_3__","Supplier","supplierName","suppliersId","Unit","getUom","unitsOfMeasureId","src_app_models_manufactured_materials__WEBPACK_IMPORTED_MODULE_5__","manufacturedMaterialsInfoId","manufacturedMaterialsId","src_app_models_gems_model__WEBPACK_IMPORTED_MODULE_4__","src_app_models_nonprecious_model__WEBPACK_IMPORTED_MODULE_6__","nonPreciousId","stockQty","supplierPrice","object","popupTableB_ColumnNames","input","gemInventoryId","addToTableB","infoId","src_app_models_product__WEBPACK_IMPORTED_MODULE_7__","dismissAll","sizeLocked","isSizeDependent","supplierId","companyName","uomId","ariaLabelledBy","then","closeResult","reason","getDismissReason","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_29__","_generic_generic_component__WEBPACK_IMPORTED_MODULE_8__","_angular_core__WEBPACK_IMPORTED_MODULE_29__","ctx_r101","ctx_r123","modal_r102","ctx_r141","ctx_r152","BillOfMaterialsComponent","_bill_of_materials_b_bill_of_materials_b_component__WEBPACK_IMPORTED_MODULE_8__","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_32__","_generic_generic_component__WEBPACK_IMPORTED_MODULE_9__","_angular_core__WEBPACK_IMPORTED_MODULE_12__","ctx_r21","ctx_r24","_r28","modal_r36","ChainFinishedComponent","tokenStorageService","chainfinishedService","_date","src_app_models_chainfinished_model__WEBPACK_IMPORTED_MODULE_1__","_models_historylogs_model__WEBPACK_IMPORTED_MODULE_3__","unitOfMeasurements","chainlist","chainfinishedList","allChainFinished","chainfinished","chainFinishedInfo","getMaterialList","getHistoryLog","lastupdate","res","lastUpdated","MatList","self","SizeList","selectedMaterialCode","highlightMaterials","highlightSizes","getSelectedChainFinishedInfo","selectedChainFinishedInfo","mat","highlightMats","highlightSize","checkStringIfEmpty","sortColumn","a","chainFinished","newFlag","addupdate","createdBy","createdDate","Date","currentUser","files","formData","FormData","append","uploadImage","_angular_common_http__WEBPACK_IMPORTED_MODULE_15__","console","log","round","loaded","total","body","iDate","transform","matId","materialCode","src_app_models_material_code__WEBPACK_IMPORTED_MODULE_2__","desc","modalOpen","AddNewChainFinishedInfo","newChainFinished","modalSize","modalMaterialCode","supplierSku","findIndex","d","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_16__","ChainTabComponent","_angular_core__WEBPACK_IMPORTED_MODULE_4__","_angular_core__WEBPACK_IMPORTED_MODULE_7__","ChainComponent","chainService","_models_chain_model__WEBPACK_IMPORTED_MODULE_1__","getListType","getListLinkSize","chaintypes","chainlinksizes","materialcodes","allchainlist","chainTypes","chainLinkSizes","karat","selectedChainType","selectedChainLinkSizes","getSelectedChainByCheck","selectedChain","chainTypeId","chainLinkSizeId","getChain","chainType","chainlinksize","materialcode","ret","errorText","newChainType","chaintype","chainTypeName","check","addchaintype","newChainLinkSizes","linkSize","addlinksize","check1","chainId","CustomerAddressDialogComponent","customerAddressService","tempCustomersAddressesId","luxon__WEBPACK_IMPORTED_MODULE_0__","valueOf","customerAddress","custIdno","customerId","addressType","setCustomerAddress","address1","city","region","postalCode","country","_r3","element_r33","element_r45","element_r57","getAddressType","addressesTypeField","CustomerDialogComponent","sanitizer","customerService","customer","addresses","address","fullAddress","formatAddress","addressTypeLabel","productionAddresses","billingAddresses","developmentAddresses","bypassSecurityTrustUrl","imageFiles","URL","createObjectURL","fileId","uploadTempPhoto","_angular_common_http__WEBPACK_IMPORTED_MODULE_8__","moveTemp","upload","post","uploadPicture","onSaveAddresses","custIdNo","setCustomerAddresses","selectedAddress","address2","addressField","customersAddressesId","isDefault","defaultProdShipAddress","defaultBillAddress","defaultDevShipAddress","edit","field","setAddressDefault","_d","_e","src_app_components_customer_page_customer_address_dialog_customer_address_dialog_component__WEBPACK_IMPORTED_MODULE_1__","onAddAddress","_customer_setting_dialog_customer_setting_dialog_component__WEBPACK_IMPORTED_MODULE_3__","reloadList","hwDisclaimFlag","dontAllowMixedInvoices","lockInvoiceGoldPrice","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__","CustomerPageComponent","src_app_core_user_permission_user_permission_rules_customer_permission__WEBPACK_IMPORTED_MODULE_0__","src_app_core_user_permission_user_permission_rules_pages__WEBPACK_IMPORTED_MODULE_1__","getUser","getCustomers","customers","contactName","emailAddress","shippingMethod","src_app_models_customer__WEBPACK_IMPORTED_MODULE_2__","_customer_dialog_customer_dialog_component__WEBPACK_IMPORTED_MODULE_3__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_11__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_12__","CustomerSettingDialogComponent","EnamelComponent","src_app_services_generic_service__WEBPACK_IMPORTED_MODULE_3__","src_app_core_user_permission_user_permission_rules_enamel_permission__WEBPACK_IMPORTED_MODULE_0__","src_app_models_enamel__WEBPACK_IMPORTED_MODULE_2__","colorHex","supplierDisplayName","hardnessDisplayText","enamelList","supplierList","enamelsResult","suppliersResult","hardness","selectItem","_generic_generic_component__WEBPACK_IMPORTED_MODULE_4__","EquationsComponent","metalWeight","castingCost","metalGramCost","laborTime","laborTimeCost","settingTime","settingTimeCost","stoneCost","otherCost","overheadPercentage","profitPercentage","expr_eval__WEBPACK_IMPORTED_MODULE_0__","_product_pricing_product_pricing_component__WEBPACK_IMPORTED_MODULE_1__","calculateLaborCost","calculateOtherCost","calculateTotalMetalCost","calculateOverheadCost","calculateProfit","calculateTotal","equation","equationParser","totalMetalCostFormula","totalMetalCost","evaluate","totalOtherCostFormula","totalOtherCost","totalLaborCostFormula","totalLaborCost","totalOverheadCostFormula","totalOverheadCost","totalProfitFormula","totalProfit","totalFormula","ctx_r23","ctx_r26","_r30","modal_r38","FindingsComponent","src_app_models_findings_model__WEBPACK_IMPORTED_MODULE_1__","allfindings","finding","findingsInfo","selectedFindingsInfo","getSelectedFindingsInfo","AddNewFindingsInfo","newFindingsInfo","weight","ForbiddenComponent","GemsBomComponent","gemSvc","_models_gems_model__WEBPACK_IMPORTED_MODULE_0__","getCutList","getTypeList","getSizeList","gemlist","cutlist","typelist","sizelist","allgemlist","gemCuts","selectedCut","gemTypes","selectedType","allGemSizes","getupdatedSize","getSelectedInventory","cut","selectedInventory","gemTypesId","gemCutsId","gemSizesId","getGemInventory","gemInventoryOutput","newSize","gemsize","gemSizeDesc","gemcheck","addupdateSize","gemSizes","gemInventory","ctx_r6","GemsComponent","_models_gems_model__WEBPACK_IMPORTED_MODULE_2__","GenericComponent","src_app_models_enum_bom_item_type_enum__WEBPACK_IMPORTED_MODULE_0__","Guid","r","v","InventoryLogComponent","inventoryLogService","src_app_models_inventory_log__WEBPACK_IMPORTED_MODULE_1__","loadTable","inventoryLogs","param","inventory","barcodeId","getScannerData","mapResponse","itemNo","getScannerDataItemNo","wkoID","getScannerDataWKO","mapResponsewKO","inventoryLog","addInventoryLog","messageText","newTotalEditable","qtyNew","gramsPerUnit","gramWgtNew","inventoryType","iuom","qtyOld","oldWtg","gramWgtOld","oldWtgTotal","idwko","webUser","entryDate","InvoicingShippingComponent","workOrderService","route","location","icon","params","selectedTabIndex","slug","replaceState","_work_order_view_work_orders_release_component__WEBPACK_IMPORTED_MODULE_2__","workOrders","setWorkOrderShipments","confirmation","timer","confirmationWorkOrder","fire","setWorkOrderInvoices","_work_order_view_orphan_work_order_dialog_orphan_work_order_dialog_component__WEBPACK_IMPORTED_MODULE_1__","ctx_r0","element_r42","InvoicingDetailDialogComponent","hasSecondaryWeight","items","ordersDetailsChainId","invoiceOrders","maxQty","src_app_utilities_alphabet_characters__WEBPACK_IMPORTED_MODULE_0__","selectAll","isSelectedAll","isSomeSelected","checked","isClosed","price","onSelect","_angular_core__WEBPACK_IMPORTED_MODULE_25__","material_r134","element_r146","element_r150","element_r156","element_r164","productColumns","InvoicingDetailComponent","router","invoiceService","metalMarketService","pricingEquationService","toastrService","invoicedDate","metalMarket","invoicesDetails","shippingCost","_angular_forms__WEBPACK_IMPORTED_MODULE_26__","_angular_material_table__WEBPACK_IMPORTED_MODULE_27__","src_app_core_user_permission_user_permission_rules_invoicing_shipping_permission__WEBPACK_IMPORTED_MODULE_7__","cellDate","view","currentDate","luxon__WEBPACK_IMPORTED_MODULE_2__","toFormat","hasMetalMarketValue","metalMarkets","marketDate","src_app_core_user_permission_user_permission_rules_pages__WEBPACK_IMPORTED_MODULE_8__","invoiceId","invoiceDetail","invoicesID","getInvoices","getShipmentByInvoiceId","generatedShipmentDetails","getMetalMarketDates","metalMarketID","onGetSelectedMetalMarket","lodash_orderBy__WEBPACK_IMPORTED_MODULE_1___default","customerFilterCtrl","filterCustomers","custIDNo","firstAddress","billingAddressId","invoiceDetails","sessionStorage","setItem","addressId","navigate","generatedInvoice","getItem","customerDetail","calculatePercentageDifference","rollingWeightAverage","removeItem","detail","getCustomer","byPassWorkOrderOrdersId","byPassWorkOrders","getOrders","isLoading","getInvoiceById","invoice","invoicePaid","charges","invoicesDetailsCharges","invoicesDetailsChargesID","invoicesDetailsID","orderDetailsAltID","ordersDetailsID","chargeDescription","materialDescription","materialsCodeId","materialCodesID","unitWeightGrams","cipo","productPicPath","priceExtension","enamelColor","productWeights","stone","overrideStoneSize","overrideStoneSizeID","isCharges","hasStoneType","stoneType","hasStoneColor","stoneColor","hasStoneSize","stoneSize","hasStoneChain","chain","hasLength","chainRawLength","hasEnamel","hasPricePerInch","isUnfinishedChain","hasStandardWeight","productPricingStandardWeight","selectedMetalMarket","enteredDate","_f","_g","expandedInvoice","generatePdf","invoiceUrl","ordersId","getOrderItems","mappedItems","invoicedItem","avgWeightGrams","hasWeight","totalClosedQty","chains","receivedDate","processOverrideItems","checkColumns","getStoneDetails","stones","filteredCustomers","trim","_work_order_view_work_orders_release_component__WEBPACK_IMPORTED_MODULE_10__","code","workOrderType","getLookUpItems","hasOtherCustomer","confirmationDialog","currentItem","lookupItem","hasDifferentPO","poInternal","poExternal","wghtgrms","openWorkOrders","selectedItems","getStoneByOrderDetailsId","_invoicing_detail_dialog_invoicing_detail_dialog_component__WEBPACK_IMPORTED_MODULE_13__","src_app_components_work_order_view_work_order_type__WEBPACK_IMPORTED_MODULE_6__","processDetails","pricePerInch","isExist","overrideSize","hasPoExternalAndInternal","isEqual","poNumber","colorName","displayText","isChain","defaultCustomersAddressesId","getMetalMarketByReceivedDate","isUpdate","invoices","invoiceDetailsId","orderDetailsId","ordersDetailsAltID","orderDetailsAltId","unitWeightG_Secondary","wghtgrmsSecondary","chargeItems","internalComment","externalComment","lineItems","externalComments","comments","updateInvoices","setInvoices","totalChargesPrice","_invoicing_print_dialog_invoicing_print_dialog_component__WEBPACK_IMPORTED_MODULE_11__","minWidth","minHeight","panelClass","window","date","selectedDate","metalMarketId","getMetalMarketById","tempKey","deleteInvoiceCharge","deleteLineItem","_related_shipment_dialog_related_shipment_dialog_component__WEBPACK_IMPORTED_MODULE_15__","src_app_components_customer_page_customer_address_dialog_customer_address_dialog_component__WEBPACK_IMPORTED_MODULE_3__","tempUniqueKey","priceTotal","generatedPriceDetails","overridePriceDetails","lowerLimit","upperLimit","isWithinRange","percentDiff","percentDifference","percentDifferenceDisplay","currentValue","expectedValue","percentageOver","parseFloat","toFixed","percentageUnder","requests","invoiceItemType","_models_invoice__WEBPACK_IMPORTED_MODULE_12__","getProductDetailV2","pricingAddOns","addons","isGeneratingPrice","rhodiumPlatingRequest","getRhodiumPlatingByProductId","rhodiumPlatingsByProduct","productDetails","rhodiumPlatings","getCustomerDefaults","getMetalMarketPremiums","getMaterialCodeCalculations","customerPriceDefaults","premiums","materialCodeCalculations","customerPriceDefault","customerID","metalMarketPremiums","materialCalculations","onCalculateEstimatedPricing","Error","productDetail","defaultProductPricing","pricing","metalSupplied","materialCalculation","materialCodeID","currentProductPricing","productsSizeId","jewelerTime","setterTime","calculationWeight","getPricePerGram","getTotalCastingFee","totalGrams","stonePrice","chainPrice","_h","findingsPrice","_j","stdLaborPerMinCost","_k","settingLaborPerMinCost","_l","ohPercent","_m","profitPercent","_o","src_app_components_product_pricing_product_pricing_component__WEBPACK_IMPORTED_MODULE_5__","rhodiumPlating","isNaN","rhodiumPlatingCost","_p","Array","from","_","getPriceForCurrentGram","currentGram","bottomCutOff","castingFee","topCutOff","baseMetal1","src_app_components_metal_overhead_equations_metal_overhead_equations_component__WEBPACK_IMPORTED_MODULE_4__","metalMarketValue1","premium1","metalMarketValue2","premium2","ldpmGold","gold","fairminedGold","ldpmPlatinum","platinum","ldpmSilver","silver","ldpmPalladium","palladium","baseMetal2","preciousPercentage1","preciousPercentage2","alloyCost","lossFactor","metal1","metal2","_invoicing_price_dialog_invoicing_price_dialog_component__WEBPACK_IMPORTED_MODULE_14__","estimatedPrice","_angular_material_sort__WEBPACK_IMPORTED_MODULE_33__","height","ctx_r45","InvoicingPriceDialogComponent","productPricing","_q","_r","_s","_t","_u","_v","_w","_x","_y","defaultPricing","_z","_0","src_app_components_product_pricing_product_pricing_component__WEBPACK_IMPORTED_MODULE_2__","rhodiumPlatingValue","src_app_components_metal_overhead_equations_metal_overhead_equations_component__WEBPACK_IMPORTED_MODULE_1__","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_9__","RelatedShipmentDialogComponent","getRelatedShipments","relatedShipments","InvoicingPrintDialogComponent","totalPriceExt","hasCipo","hasSize","hasType","setUpPagination","mainPageLimit","otherPagesLimit","isShortPage","currentPageIndex","currentPageLimit","invoicePages","pages","InvoicingComponent","_angular_forms__WEBPACK_IMPORTED_MODULE_10__","src_app_core_user_permission_user_permission_rules_invoicing_shipping_permission__WEBPACK_IMPORTED_MODULE_2__","rxjs__WEBPACK_IMPORTED_MODULE_11__","totalCount","SortBy","SortDirection","PageNumber","PageSize","SearchQuery","CustomerId","dateRangeFrom","luxon__WEBPACK_IMPORTED_MODULE_1__","dateRangeTo","lodash_orderBy__WEBPACK_IMPORTED_MODULE_0___default","searchQueryChange","searchQuery","invoiceParams","resetPage","_pageIndex","getPagedInvoices","headers","paginationData","get","pagination","src_app_services_invoice_service__WEBPACK_IMPORTED_MODULE_3__","sortChange","direction","selectedCustomer","next","pageIndex","start","end","filters","isExportingFile","getInvoicesExcel","to","blob","Blob","createElement","href","download","split","click","revokeObjectURL","_angular_material_sort__WEBPACK_IMPORTED_MODULE_16__","InvoiceItemType","element_r32","ShippingDetailDialogComponent","shipmentItems","ShippingDetailComponent","shipmentService","shipDate","shipmentsDetails","_angular_material_table__WEBPACK_IMPORTED_MODULE_13__","src_app_core_user_permission_user_permission_rules_pages__WEBPACK_IMPORTED_MODULE_3__","shipmentDetail","shipmentsID","shippingId","generatedShipment","shipmentDetails","shipmentsDetailsAltID","getShipmentById","shipment","generateInvoice","generatedInvoiceDetails","_work_order_view_work_orders_release_component__WEBPACK_IMPORTED_MODULE_4__","_shipping_detail_dialog_shipping_detail_dialog_component__WEBPACK_IMPORTED_MODULE_5__","src_app_components_work_order_view_work_order_type__WEBPACK_IMPORTED_MODULE_1__","shippingAddresses","shippingAddressID","shipments","invoicesDetailsChargesId","shipmentsId","tracking","setShipments","shipmentsDetailsID","_shipping_related_invoice_dialog_shipping_related_invoice_dialog_component__WEBPACK_IMPORTED_MODULE_6__","shipmentId","src_app_components_customer_page_customer_address_dialog_customer_address_dialog_component__WEBPACK_IMPORTED_MODULE_0__","ShippingRelatedInvoiceDialogComponent","getRelatedInvoices","relatedInvoices","ShippingComponent","_angular_forms__WEBPACK_IMPORTED_MODULE_8__","rxjs__WEBPACK_IMPORTED_MODULE_9__","getShipments","shipmentParams","getPagedShipments","link","_angular_material_sort__WEBPACK_IMPORTED_MODULE_14__","_angular_core__WEBPACK_IMPORTED_MODULE_10__","LoginComponent","authenticationService","src_app_models_login__WEBPACK_IMPORTED_MODULE_2__","UserName","Password","returnUrl","snapshot","queryParams","login","defaultPage","saveToken","accessToken","saveRefreshToken","refreshToken","saveUser","getCurrentUserPermissions","loggedIn","reloadNavigation","_generic_generic_component__WEBPACK_IMPORTED_MODULE_3__","_angular_core__WEBPACK_IMPORTED_MODULE_14__","ctx_r27","modal_r37","ManufacturedMaterialsComponent","manufacturedMatsService","src_app_models_manufactured_materials__WEBPACK_IMPORTED_MODULE_1__","_models_historylogs_model__WEBPACK_IMPORTED_MODULE_4__","src_app_core_user_permission_user_permission_rules_pages__WEBPACK_IMPORTED_MODULE_2__","manufacturedMats","allManufacturedMats","manufacturedMat","manufacturedMaterialsInfo","manufacturedMatsInfo","newMode","metalGrainsId","result2","_angular_common_http__WEBPACK_IMPORTED_MODULE_17__","imageUploader","nativeElement","src_app_models_material_code__WEBPACK_IMPORTED_MODULE_3__","selectedManufacturedMatsInfo","getSelectedManufacturedMatsInfo","newManufacturedMatsInfo","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_18__","_r1","MetalGrainComponent","metalGrainService","src_app_models_metal_grain__WEBPACK_IMPORTED_MODULE_1__","unitOfMeasures","metalGrainList","materialCodesList","uomList","metalGrainsResult","materialCodesResult","uomResult","metalGrains","filteredMetalGrains","metalGrain","commentBox","qtyinStock","qtyinScrap","result1","_angular_common_http__WEBPACK_IMPORTED_MODULE_13__","ctx_r11","ctx_r13","ctx_r15","ctx_r17","ctx_r19","BASE_METAL","notApplicable","MetalOverheadEquationsComponent","getLatestMetalMarket","multiMetal","calculation","setMetalMarketPremiums","otherLossFactor","hasValue","setMaterialCodeCalculation","materialCodesCalculationsID","deleteMaterialCodeCalculation","totalCastingFee","totalItemCost","onComputeTotal","NonPreciousComponent","src_app_models_nonprecious_model__WEBPACK_IMPORTED_MODULE_1__","nonpreciouslist","nonPreciousList","allNonPrecious","nonPrecious","_angular_common_http__WEBPACK_IMPORTED_MODULE_16__","OpenOrderReportComponent","orderService","ReceivedFrom","minus","months","ReceivedTo","DueDateFrom","DueDateTo","ShowOverdueOnly","DueCutOff","OrderType","rxjs__WEBPACK_IMPORTED_MODULE_10__","debouncer","orderTypeControl","getOpenOrders","isInitial","getOpenOrder","FromDate","ToDate","OrderBy","sortBy","sortDirection","customerList","rawData","onChangeDueCutOff","orders","order","productIndex","materialPrintColor1Hex","materialPrintColor1","totalBackOrder","backOrder","picturePath","grouped","o","ordersLink","onGroupByOrders","openOrders","groupType","onGroupByProduct","values","currentSelection","orderTypePreviousValues","setValue","dateFilter","dueDate","onParseOpenOrders","workOrdersId","_work_order_view_work_order_print_work_order_print_dialog_component__WEBPACK_IMPORTED_MODULE_4__","workOrder","printedDate","releasedDate","dateClosed","print","exportOpenOrderToExcel","OpenOrderStoneReportComponent","stoneService","StoneReleased","src_app_core_user_permission_user_permission_rules_stone_open_order_report_permission__WEBPACK_IMPORTED_MODULE_4__","getStoneOpenOrder","Status","Take","rawOrders","onFilter","filteredData","_work_order_view_work_order_print_work_order_print_dialog_component__WEBPACK_IMPORTED_MODULE_5__","_stone_release_history_dialog_stone_release_history_dialog_component__WEBPACK_IMPORTED_MODULE_8__","minimumScanningTime$","_work_order_view_work_orders_release_component__WEBPACK_IMPORTED_MODULE_6__","workOrderId","isScanning","validateStoneRelease","status","showErrorOnRelease","getWorkOrderStones","openStoneSummary","hasError","focus","errorWorkOrder","dialogResponse","_stone_receiving_dialog_stone_receiving_dialog_component__WEBPACK_IMPORTED_MODULE_7__","updatedData","isArray","releaseStoneByWorkOrderId","details","workOrdersDetailsID","workOrdersDetailsId","stonesId","stonesID","totalStoneQty","customerProvided","successRelease","src_app_animations_fade_animation__WEBPACK_IMPORTED_MODULE_2__","StoneReceivingDialogComponent","carat","caratsPerUnit","maxCarat","StoneReleaseHistoryDialogComponent","stoneReleaseService","_angular_material_table__WEBPACK_IMPORTED_MODULE_5__","getStoneReleaseHistory","historyRaw","processReleaseHistory","releaseDateGroup","stonereleasedate","history","historyData","g","isGroupBy","_angular_material_sort__WEBPACK_IMPORTED_MODULE_7__","CustomerAddOnsComponent","src_app_models_orders_model__WEBPACK_IMPORTED_MODULE_0__","orderDetails","addOns","orderDetailsCustomPriceAddOnsID","customerAddOns","disabled","AddProductByCustomerSkuDialogComponent","skuService","customerSku","isSearching","searchSku","searchConfirmation","_angular_core__WEBPACK_IMPORTED_MODULE_34__","ctx_r105","ctx_r106","ctx_r107","ctx_r108","element_r103","ctx_r43","_r45","getOrderDetailsSizeDisplayText","dimension1","dimension2","dimension3","dimensions","getOrderDetailAltProductName","otherComponents","otherComponentsID","longName","findingsTypes","findingsName","findingsSizes","chain_FinishedID","chainRaw","chainStyle","styleName","getOrderDetailAltSize","otherComponentsSizes","otherComponentsSizesID","chainFinishedSizes","getOrderDetailProductId","chain_RawID","getOrderDetailProductSizeId","chain_FinishedSizesID","chain_RawSizesID","findingsTabSlugByIndex","getFindingsSlug","_riva_findings_constants__WEBPACK_IMPORTED_MODULE_10__","ListComponent","sharedService","orderdetailsService","productsRoutingService","src_app_core_user_permission_user_permission_rules_work_order_permission__WEBPACK_IMPORTED_MODULE_5__","src_app_core_user_permission_user_permission_rules_order_details_permission__WEBPACK_IMPORTED_MODULE_4__","_angular_material_table__WEBPACK_IMPORTED_MODULE_35__","columnProductInfo","columnOthers","src_app_models_work_order__WEBPACK_IMPORTED_MODULE_7__","getCustomerAddOns","_customerId","_ordersId","isOrderOnline","ordersType","reloadOrderDetails","byPassWorkOrder","bypassWKOs","ordersDetailsId","byPass","orderDetailsType","getCustomerAddOnsByCustomerId","orderDetailsData","isOpened","selectedDetailId","orderDetailsEnamel","hasStone","ordersDetailsStoneId","hasCiPo","hasCustomizedItem","customized","columnInfo","columnsToDisplay","cols","rawSize","linkDim1","linkDim2","wireSize","setLoading","getByOrderId","getChainOrderDetail","orderdetailsList","chainOrderDetails","productList","customerCode","chainOrders","ordersID","qtyordered","qtyOrdered","qtyshipped","qtyinvoiced","backOrdered","custAdrsId","productSizesID","isFindings","isOtherComponent","src_app_models_orders_model__WEBPACK_IMPORTED_MODULE_6__","hasUnInvoiced","onLoad","hasItems","checkValidColumns","showGenerateWorkOrderAndByPass","materialColor","printColor1","primaryMaterialColor","multiMetalPrimaryMaterial","secondaryMaterialColor","multiMetalSecondaryMaterial","reportItem","workOrderPrintReport","guid","_components_generic_generic_component__WEBPACK_IMPORTED_MODULE_0__","getByOrderDetailsId","workOrderDetailsId","workOrderForPrint","setWorkOrderPrint","setWorkOrderNotPrint","isPrintedReport","selectedWorkOrder","routing","modalActive","productname","materialsize","productInfo","allProductsInfo","getProductInfoDesc","returnStr","newOrderDetail","newOrderDetails","newTable","renderRows","stopPropagation","getWorkOrderPrintDetail","workOrdersID","workOrderPrintReports","selectPrintReport","x_split","value_split","x_length","value_length","starting_index","orderDetail","orderItem","setNewOrderDetailFlag","chainOrderDetail","setNewChainOrderDetailFlag","findingsOrderDetail","setNewFindingsOrderDetailFlag","otherComponentOrderDetail","setNewOtherComponentOrderDetailFlag","isAddNewOrderDetail","isAddNewChainOrderDetail","isAddNewFindingsOrderDetail","isAddNewOtherComponentOrderDetail","luxon__WEBPACK_IMPORTED_MODULE_3__","closedDate","getWorkOrderForPrint","getSubItems","workOrderDetails","workOrdersForDueDate","w","toJSDate","workOrderItem","workOrderDueDate","productStonesVariations","ordersDetailsStonesID","getProductRouting","getProductEnamels","getProductPictures","getProductStones","productStones","productStonesConstants","availableSize","subItemsInfo","subItemInfo","mfgMethodDetails","mfgMethod","stlPath","encodeURI","getProductVariations","enamelVariations","lodash_uniqBy__WEBPACK_IMPORTED_MODULE_2___default","getProductImageList","picture","fileName","getProductRoutings","productRoutings","text","fontSize","abs","hasAccess","deleteOrder","allOrderClosed","bypassWorkOrder","ref","_work_order_view_work_order_print_work_order_print_dialog_component__WEBPACK_IMPORTED_MODULE_11__","isReload","localStorage","_add_product_by_customer_sku_dialog_add_product_by_customer_sku_dialog_component__WEBPACK_IMPORTED_MODULE_12__","productsMaterialsID","stoneId","productsBOMStonesID","rawChainId","productsBOMChainRawID","finishChainId","productsBOMChainFinishedID","isInitialData","_angular_material_sort__WEBPACK_IMPORTED_MODULE_41__","_angular_core__WEBPACK_IMPORTED_MODULE_18__","product_r13","_r27","_r34","ctx_r12","NewOrderdetailsItemComponent","orderDetailsService","pricingAddOnsService","src_app_models_orders_model__WEBPACK_IMPORTED_MODULE_3__","chainProductsID","src_app_models_product__WEBPACK_IMPORTED_MODULE_4__","_angular_forms__WEBPACK_IMPORTED_MODULE_19__","productMaterialCodes","materialSizes","rivaId","customersList","sortedProducts","sortOrder","isRivaProduct","enamelDetail","materialSize","filteredMaterialCodes","rxjs__WEBPACK_IMPORTED_MODULE_23__","materialCodeControl","_filterMatCode","productInfos","productsInfo","filteredMaterialSizes","materialSizeControl","_filterMatSize","matCodesHolder","y","matCodeDisable","matSizeDisable","disableSaveButton","allRequest","setOrderDetailEnamel","orderDetailsID","productStoneVariation","setOrderDetailsStone","productChain","setOrderDetailsChain","ordersDetailsChainID","selectedProductSku","productsCustSKUsID","customerSKU","payload","setProductSku","customerAddOnID","addOn","isSelected","addOnId","setPricingAddOns","onSuccess","onCancel","productVariations","getProductVariation","getProductDetail","getProductStone","getProductChain","getProductSku","productSkus","onCheckProductSku","retainValue","isEnamelValid","productStoneVariations","filteredProductStoneVariation","productStoneVariationControl","_filterProductStoneVariation","labels","hasChain","raw","finished","rawMapped","lengthInches","finishedMapped","productChains","filteredProductChains","productChainControl","_filterProductChain","isFormFilled","_generic_generic_component__WEBPACK_IMPORTED_MODULE_5__","p_r59","m_r71","s_r81","element_r94","ctx_r3","OrderUploadDialogComponent","isUploading","uploadOrders","_angular_common_http__WEBPACK_IMPORTED_MODULE_7__","orderImports","processOrderImports","fileUploader","getProductByCustomer","uploadStatus","productSizeId","orderImportsFailed","hasMaterial","hasProduct","hasCIPO","hasQty","hasComments","hasDueDate","hasFailedImports","importFailedAccordionLabel","importSuccessAccordionLabel","isSubmitting","getSearchList","jewelryType","productTypeID","productsSizesId","product_r14","_r37","OrderdetailsItemComponent","src_app_models_orders_model__WEBPACK_IMPORTED_MODULE_5__","src_app_models_product__WEBPACK_IMPORTED_MODULE_6__","src_app_models_material_code__WEBPACK_IMPORTED_MODULE_4__","src_app_core_user_permission_user_permission_rules_order_details_permission__WEBPACK_IMPORTED_MODULE_3__","getPricingAddOns","pInfo","deleteOrderDetailsChain","shouldAdd","shouldDelete","deletePricingAddOns","onSuccessSave","getOrderDetailsChain","clearOrderDetails","_components_generic_generic_component__WEBPACK_IMPORTED_MODULE_1__","isEditable","OrderdetailsModule","_angular_common__WEBPACK_IMPORTED_MODULE_11__","_shared_modules_app_material_app_material_module__WEBPACK_IMPORTED_MODULE_2__","_angular_forms__WEBPACK_IMPORTED_MODULE_12__","src_app_shared_modules_shared_module__WEBPACK_IMPORTED_MODULE_1__","ng_zorro_antd_tabs__WEBPACK_IMPORTED_MODULE_13__","_list_list_component__WEBPACK_IMPORTED_MODULE_0__","_orderdetails_item_orderdetails_item_component__WEBPACK_IMPORTED_MODULE_5__","_new_orderdetails_item_new_orderdetails_item_component__WEBPACK_IMPORTED_MODULE_4__","_riva_chain_order_riva_chain_order_component__WEBPACK_IMPORTED_MODULE_6__","_riva_findings_order_riva_findings_order_add_riva_findings_order_add_component__WEBPACK_IMPORTED_MODULE_8__","_riva_findings_order_riva_findings_order_add_item_riva_findings_order_add_item_component__WEBPACK_IMPORTED_MODULE_7__","_riva_other_component_order_riva_other_component_order_component__WEBPACK_IMPORTED_MODULE_9__","_customer_add_ons_customer_add_ons_component__WEBPACK_IMPORTED_MODULE_3__","OrderdetailsService","http","src_environments_environment__WEBPACK_IMPORTED_MODULE_1__","baseUrl","orderid","ordersDetailsEnamelID","stoneText","color","orderDetailEnamel","chainUrl","put","_services_generic_service__WEBPACK_IMPORTED_MODULE_2__","factory","providedIn","ctx_r4","RivaChainOrderComponent","src_app_core_user_permission_user_permission_rules_order_details_permission__WEBPACK_IMPORTED_MODULE_1__","getChains","getChainRaws","getChainFinished","chainRawID","chainFinishedID","filteredChains","chainControl","getChainSizes","getChainMaterials","getChainFinishedSizes","chainSizeId","chainFinishedSizesID","chainSizes","getChainFinishedMaterials","mats","chainFinishedStockID","chainFinishedMaterialsID","chainStocks","getChainRawStock","chainRawStockID","setChainOrderDetail","RivaFindingOrderAddItemComponent","_angular_material_table__WEBPACK_IMPORTED_MODULE_2__","findingsByType","findingType","tag","override","getStockBySizeId","_angular_material_sort__WEBPACK_IMPORTED_MODULE_3__","ctx_r29","ctx_r34","getCurrentIndex","src_app_components_riva_findings_constants__WEBPACK_IMPORTED_MODULE_1__","RivaFindingOrderAddComponent","RivaOtherComponentOrderComponent","otherComponentsService","_angular_forms__WEBPACK_IMPORTED_MODULE_5__","getOtherComponents","filteredOtherComponents","otherComponentControl","selectedOtherComponent","_filterOtherComponent","getOtherComponentMaterials","getOtherComponentSizes","otherComponentMaterials","getOtherComponentsMaterials","otherComponentSizes","getOtherComponentsSizes","typeDisplay","shortName","setOrderDetail","CustomerMapping","src_app_models_enum_customer_enum__WEBPACK_IMPORTED_MODULE_0__","OrderImportingComponent","src_app_models_rgw_order_import_response__WEBPACK_IMPORTED_MODULE_1__","fileToUpload","orderImportResponse","invalidOrderItemsCount","invalidOrders","succeededOrderItemsCount","succeedOrders","orderExists","excelUploaderFiles","hofDueDate","orderImport","OrdersConfirmationComponent","OrdersProgressComponent","_angular_core__WEBPACK_IMPORTED_MODULE_24__","ctx_r31","ctx_r51","ctx_r14","OrdersComponent","orderDetailService","fb","src_app_models_customer__WEBPACK_IMPORTED_MODULE_5__","_angular_forms__WEBPACK_IMPORTED_MODULE_25__","array","src_app_core_user_permission_user_permission_rules_pages__WEBPACK_IMPORTED_MODULE_4__","loadwithParameter","selectedOrderId","isInternalFromInitialLoad","isRepairFromInitialLoad","selectedOrder","pointernal","requiredDate","orderId","isLoadingRequiredData","getOrderById","customerlist","selectedOrderRaw","initializeFilter","plus","weeks","allowedUploadOrderCustomerIds","hasUploadOrderAccess","getOrderDetailList","refreshOrderDetailList","isLoadingList","customerControl","_filterCustomers","ordersDetails","orderDetailList","cancelledOrderIdx","totalShippedDate","gotoOrders","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_30__","orderDetailsForm","productPerCustomer","productPerCustomer2","fg","checker","checkProductsInfo","productsRoutingId","showNotification","patchValue","category","notification","message","removeAt","confirm","selectedProduct","dialogProductId","dialogProductsInfoId","updateDetails","endMessage","alert","modalName","selectedOrdersDetails","_orders_dialog_orders_confirmation_component__WEBPACK_IMPORTED_MODULE_8__","dialogProgressRef","_orders_dialog_orders_progress_component__WEBPACK_IMPORTED_MODULE_9__","generateWorkOrders","_related_invoices_dialog_related_invoices_dialog_component__WEBPACK_IMPORTED_MODULE_10__","_orderdetails_order_upload_dialog_order_upload_dialog_component__WEBPACK_IMPORTED_MODULE_7__","reload","gotoOrdersView","exportOrderToExcel","RelatedInvoicesDialogComponent","order_r18","OrderviewComponent","slidesToShow","slidesToScroll","draggable","waitForAnimate","src_app_core_user_permission_user_permission_rules_purchase_order_permission__WEBPACK_IMPORTED_MODULE_4__","ungeneratedWorkOrderOnly","config","years","rxjs__WEBPACK_IMPORTED_MODULE_15__","_angular_forms__WEBPACK_IMPORTED_MODULE_16__","orderParams","paginateOrders","orderListFiltered","getOrdersWithPagination","orderList","cipoStr","diff","days","isAlmostDue","isAlreadyDue","receivedDateRaw","hasOpenOrder","orderType","byPassWKOs","totalWorkOrderCreated","hasUnGeneratedWorkOrder","getOrdersPagedV3","byPassWkos","startIndex","endIndex","paginatedOrderList","slice","poexternal","onFilterCustomer","onFilterStatus","onFilterOrderType","onSearchOrder","ordersAllList","selectedCustomerId","selectedStatus","onSort","filterOrderList","selectedSort","_r5","OtherComponentsRoutingCopyDialogComponent","otherComponent","$events","routings","_other_components_routing_component__WEBPACK_IMPORTED_MODULE_0__","OtherComponentsRoutingDialogComponent","routingComponent","onSaveRouting","OtherComponentsRoutingComponent","routingCodeService","confirmationService","loadRoutings","otherComponentsId","routingCodes","rawRoutingCodes","onRoutingChange","getAll","getOtherComponentsRoutings","chainRoutings","routingCode","productRouting","routingCodesId","activityCode","otherComponentsRoutingID","routingCodesID","standardTime","tempRoutingId","routingId","selectedRouting","filteredRoutingCodes","routingControl","_filterRoutingCode","department","activityDesc","prevIndex","currentIndex","routingOrder","isSavingOtherComponentRouting","setOtherComponentsRoutings","deleteOtherComponentsRoutings","_other_components_routing_copy_dialog_component__WEBPACK_IMPORTED_MODULE_0__","newRoutings","OtherComponentsSizeDialogComponent","otherComponentSize","setOtherComponentsSizes","scene1","dimension_1","dimension_2","dimension_3","dimension_4","dimension_5","scene2","scene3","scene4","scene5","OtherComponentsSkuGeneratorDialogComponent","otherComponentId","sizeId","skuDetail","otherComponentSizeId","navigator","clipboard","writeText","getGeneratedProductSku","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_1__","OtherComponentsComponent","src_app_core_user_permission_user_permission_rules_other_component_permission__WEBPACK_IMPORTED_MODULE_0__","getOtherComponentsTypes","otherComponentTypes","otherComponentsTypeID","types","isSavingMaterials","setOtherComponentMaterial","unitsOfMeasureID","inHouse","setOtherComponent","isUploadingImage","_other_components_routing_other_components_routing_dialog_component__WEBPACK_IMPORTED_MODULE_2__","_other_components_size_dialog_other_components_size_dialog_component__WEBPACK_IMPORTED_MODULE_3__","deleteOtherComponentMaterial","otherComponentsMaterialsID","deleteOtherComponentsSize","_other_components_sku_generator_dialog_other_components_sku_generator_dialog_component__WEBPACK_IMPORTED_MODULE_4__","PriceCustomComponent","_angular_material_table__WEBPACK_IMPORTED_MODULE_6__","customPricing","expandedCustomer","toMillis","deleteCustomerAddOns","setCustomerAddOns","_angular_material_sort__WEBPACK_IMPORTED_MODULE_8__","option_r21","CustomerAdditionalChargesComponent","customerOptions","customerNormalized","prev","curr","mapCustomerAddOns","customerAddOnsGroup","customerAdditionalCharges","option_r19","CustomerPriceDefaultsComponent","loadDefaults","customerDefaults","defaultForCustomer","customerDefault","prC_DefaultsID","deleteCustomerDefaults","setCustomerDefaults","PriceDefaultsComponent","currentTabValue","modal_r29","ctx_r42","modal_r39","ProductGroupTableComponent","storeInfoService","getGroupParents","groupParents","selectParent","getNotInGroup","notInGroup","allNotInGroup","selectedParent","getProductGroupItems","productsStoreInfo","productsGroupId","groupItems","itemIndex","nextIndex","storeInfo","createGroup","groupItem","productsGroupLevel","groupItemRequest","updateGroupItems","removeAllFromGroup","newGroupItems","removeFromGroup","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_7__","option_r51","ctx_r64","option_r112","TOTAL_PRICING_FORMULA","ProductPricingComponent","analyticsService","_angular_forms__WEBPACK_IMPORTED_MODULE_13__","_angular_material_table__WEBPACK_IMPORTED_MODULE_14__","getProductsV2","productLookup","productLookupNormalized","onFilterCustomers","productPricingList","standardWeightRequest","getStandardWeightByProductId","standardWeights","flattenedStandardWeights","productSubPricing","standardWeightByProduct","sw","currentStandardWeight","productSizeOptions","currentRhodiumPlating","subPricing","productsPricingID","standardWeight","completeOverridePrice","laborOverridePrice","isPricingPerSize","rollingAverages","defaultRequest","setProductPricing","subRequests","standardWeightRequests","productsStandardWeightID","setStandardWeight","rhodiumPlatingRequests","setRhodiumPlating","rhodiumPlatingID","deleteRhodiumPlating","onGetProductsByCustomer","expandedProductPricing","parent","currentSizeName","deleteProductPricing","productSizesRequest","getRollingWeightAverage","_invoicing_shipping_invoicing_models_invoice__WEBPACK_IMPORTED_MODULE_3__","itemId","sizeWithWeight","subCurrentStandardWeight","resultPrice","_metal_overhead_equations_metal_overhead_equations_component__WEBPACK_IMPORTED_MODULE_4__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_17__","ProductInvoiceDetailsComponent","_angular_material_table__WEBPACK_IMPORTED_MODULE_1__","productInvoices","totalQty","_angular_material_sort__WEBPACK_IMPORTED_MODULE_2__","ProductInvoiceComponent","ProductOrderDetailsComponent","productOrders","totalOrders","ProductOrderComponent","ProductQueryComponent","workOrderMovementService","searchProductService","getProductLookup","filteredProductLookup","productLookupControl","selectedProductLookup","getOrdersDetails","productOrdersDetails","getInvoicesDetails","productInvoicesDetails","onSelectProduct","ProductReportComponent","reportService","generateProductInventory","productInventory","materialInfoJson","materialInfo","ProductRoutingCopyDialogComponent","_product_routing_component__WEBPACK_IMPORTED_MODULE_1__","ProductRoutingDialogComponent","productRoutingComponent","onSaveProductRouting","_product_routing_component__WEBPACK_IMPORTED_MODULE_0__","ProductRoutingComponent","loadProductRoutings","productRoutingCodes","rawProductRoutingCodes","getProductRoutingCodes","productRoutingCode","actualTimeS","selectedProductRouting","filteredProductRoutingCodes","productRoutingControl","_filterProductRoutingCode","isSavingProductRouting","setProductRouting","deleteProductRouting","_product_routing_copy_dialog_component__WEBPACK_IMPORTED_MODULE_0__","ProductTypeMapping","KEY_CODE","ProductTableV2Component","jewelryTypeService","bomService","src_app_models_product__WEBPACK_IMPORTED_MODULE_1__","productTypes","tableActive","keyCode","UP_ARROW","DOWN_ARROW","getProductLocal","getProductStatuses","productStatuses","jewelryTypes","statuses","getProductSearch","allProducts","searchObject","src_app_models_request_product_search_request__WEBPACK_IMPORTED_MODULE_2__","selectedJewelryType","selectedProductType","indexMax","mapTypeNames","inStore","productOutput","setProductsStoreInfo","selectedCode","productTypeName","pt","productsTypeId","jewelryTypeName","jt","jewelryTypeId","subProductsId","viewSubassembly","_updatedProduct","updateProductValue","storeFlag","productStoreInfoOutput","hostBindings","item_r2","EnamelConstantComponent","EnamelVariationDialogComponent","_angular_cdk_collections__WEBPACK_IMPORTED_MODULE_9__","_angular_material_table__WEBPACK_IMPORTED_MODULE_10__","onSaveEnamel","onCloseDialog","newProductVariations","productVariationList","currentSupplier","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_15__","item_r3","EnamelVariationComponent","deleteProductVariations","ProductImageOrderDialogComponent","target","source","images","productImages","imageReorder","picsOrder","setProductImages","errorProductImage","productsPicsID","phElement","placeholder","style","display","parentElement","removeChild","appendChild","insertBefore","sourceIndex","activeContainer","targetIndex","drag","drop","container","sourceElement","dropContainer","dropElement","dragIndex","__indexOf","dropIndex","clientWidth","clientHeight","nextSibling","requestAnimationFrame","_dropListRef","enter","_dragRef","offsetLeft","offsetTop","_angular_cdk_drag_drop__WEBPACK_IMPORTED_MODULE_2__","collection","node","prototype","call","ProductImageComponent","thumbnailsColumns","imageAnimation","_kolkov_ngx_gallery__WEBPACK_IMPORTED_MODULE_4__","arrowPrevIcon","arrowNextIcon","preview","previewCloseOnClick","previewCloseOnEsc","previewZoom","previewZoomMax","previewZoomStep","previewKeyboardNavigation","previewDownload","imageSize","reloadProductImages","getProductImages","previousValue","small","medium","big","currentImage","image","showErrorMessage","deleteProductImages","_product_image_order_dialog_product_image_order_dialog_component__WEBPACK_IMPORTED_MODULE_0__","newProductImages","ProductMaterialDialogComponent","productMaterial","percentage1","percentage2","setProductMaterial","ProductSettingDialogComponent","productsService","workOrderLimit","isBundled","getProductWorkOrderLimit","getProductBundled","productSetting","updateProductWorkOrderLimit","updateProductBundle","ProductSizesDialogComponent","setProductSize","ProductSkuGeneratorDialogComponent","productSkuDetail","getProductEnamelVariations","getSelectedSku","placeholderCustomerSku","getCustomerSkuPlaceholder","skus","productEnamelVariations","productStoneId","productChainId","_angular_core__WEBPACK_IMPORTED_MODULE_36__","modal_r80","prodroute_r95","i_r96","modal_r92","ProductsTableComponent","historyService","_sanitizer","src_app_core_user_permission_user_permission_rules_product_permission__WEBPACK_IMPORTED_MODULE_4__","_angular_forms__WEBPACK_IMPORTED_MODULE_37__","src_app_models_product__WEBPACK_IMPORTED_MODULE_8__","src_app_models_enum_customer_enum__WEBPACK_IMPORTED_MODULE_5__","_models_historylogs_model__WEBPACK_IMPORTED_MODULE_11__","rxjs__WEBPACK_IMPORTED_MODULE_38__","src_app_models_metal_grain__WEBPACK_IMPORTED_MODULE_7__","src_app_models_product_stock__WEBPACK_IMPORTED_MODULE_9__","scrollToClass","className","productTable","elementWithClass","querySelector","scrollTop","lodash_orderBy__WEBPACK_IMPORTED_MODULE_2___default","selectedCustomerObj","allCustomer","searchPanelChange","filteredJewelryTypes","jewelryTypeFilterCtrl","defaultProductId","filterJewelryTypes","AddNewProductInfo","bypassSecurityTrustHtml","newProductsInfo","priceRetail","priceWhls","getProdMatList","editMaterial","src_app_models_material_code__WEBPACK_IMPORTED_MODULE_6__","materialId","materialToEdit","editSize","selectedProductsInfo","matID","productID","refreshRoutingList","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_42__","update","updatedMaterial","updateFlag","imageIndex","productImageList","imageList","imageListSize","getFilteredProducts","selectedProductSize","selectedWeight","productsRouting","loadProductImages","getProductWeight","scrollHeight","origin","src_app_models_request_product_search_request__WEBPACK_IMPORTED_MODULE_10__","currentProduct","scrollToTop","saveProduct","newSave","updatePrimaryImage","deleteImage","selectedMetalGrain","updateProductInfoList","updateProduct","showEditModeSizes","metalGrainControl","enable","disable","toggleEdit","onSelectProductWeight","matCodeId","matHasSize","_angular_common_http__WEBPACK_IMPORTED_MODULE_43__","metalGrainsDropdown","_metalGrains","showMetalGrainsDropdown","getSelectedProductsInfo","splice","prodMatList","prodSizeList","deleteProduct","productLastHistory","getProductHistory","routingForms","controls","updateRouting","prodRouting","getRoutingListByProduct","_enamel_variation_dialog_enamel_variation_dialog_component__WEBPACK_IMPORTED_MODULE_14__","_product_setting_dialog_product_setting_dialog_component__WEBPACK_IMPORTED_MODULE_16__","_product_sku_generator_dialog_product_sku_generator_dialog_component__WEBPACK_IMPORTED_MODULE_18__","productMaterialCode","metalGrainsID","productMetalGrain","showProductSizeError","productSize","_product_routing_product_routing_dialog_component__WEBPACK_IMPORTED_MODULE_13__","deleteProductMaterial","deleteProductSize","_invoicing_shipping_invoicing_models_invoice__WEBPACK_IMPORTED_MODULE_12__","setProductWeight","_product_material_dialog_product_material_dialog_component__WEBPACK_IMPORTED_MODULE_15__","customerCodeNavigation","_product_sizes_dialog_product_sizes_dialog_component__WEBPACK_IMPORTED_MODULE_17__","lodash_cloneDeep__WEBPACK_IMPORTED_MODULE_1___default","_angular_common__WEBPACK_IMPORTED_MODULE_46__","ctx_r28","_r32","modal_r40","RawMaterialsComponent","rawmaterialsService","rawMaterialsInfoService","src_app_models_raw_materials_model__WEBPACK_IMPORTED_MODULE_2__","rawMaterials","allrawMaterials","rawMaterial","rawMaterialsInfo","rawMaterialsId","stockLocation","rawmaterial","src_app_models_material_code__WEBPACK_IMPORTED_MODULE_1__","selectedRawMaterialsInfo","getSelectedRawMaterialsInfo","AddNewRawMaterialInfo","newRawMaterialsInfo","rawMaterialsInfoId","thisYearDateFilterPresets","thisYearStartQ1","startOf","thisYearEndQ1","endOf","thisYearStartQ2","thisYearEndQ2","thisYearStartQ3","thisYearEndQ3","thisYearStartQ4","thisYearEndQ4","year","lastYearDateFilterPresets","lastYear","lastYearStartQ1","lastYearEndQ1","lastYearStartQ2","lastYearEndQ2","lastYearStartQ3","lastYearEndQ3","lastYearStartQ4","lastYearEndQ4","monthDateFilterPresets","GeneralReportsComponent","InvoiceReportsComponent","getInvoiceFairmined","StoneMovementReportComponent","stoneMovementReports","isExportingStoneInventory","getStoneExcel","isExportingStoneMovement","isShowAllData","getStoneMovementReports","ItemWeightsComponent","getAnalyticsClosedItemWeights","onFilterData","groupedItems","filteredItems","firstItem","itemName","onRowClick","startDate","endDate","day","inRange","searchText","onGroupData","sort1","selectedItemWorkOrders","sort2","selectedItem","getSelectedItemWorkOrderDetails","_work_order_view_work_order_print_work_order_print_dialog_component__WEBPACK_IMPORTED_MODULE_3__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_9__","ReportingInvoiceErrorDialogComponent","errors","metals","ReportingInvoiceComponent","getReports","materialList","materialSort","stoneList","stoneSort","getAnalyticsMaterial","getAnalyticsInvoiced","getAnalyticsInvoicedStones","getAnalyticsInvoicedWeights","totalWeightShipped","getAnalyticsInvoicedTimePeriod","totalInvoiced","isGenerating","getDailyMetricsSummaryReport","errorDialog","weekdayLong","_reporting_invoice_error_dialog_reporting_invoice_error_dialog_component__WEBPACK_IMPORTED_MODULE_1__","ReportingItemPlacedComponent","elements","line","tension","scales","position","grid","ticks","plugins","legend","_angular_material_table__WEBPACK_IMPORTED_MODULE_8__","customersTotalOrders","customerIds","customerOrders","totalOrderForCustomer","viewType","parseDataForTotalOrderGraphPerMonth","parseDataForTotalOrderGraphPerWeek","getAnalyticsOrders","allOrders","weekGroups","getWeeksInRange","currentGroupIndex","weekData","weekLabel","lineChartData","datasets","backgroundColor","borderColor","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","fill","allShipments","month","toLocaleString","getFullYear","getMonth","monthRange","getMonthsInDateRange","totalDataPerMonth","totalPerMonth","monthName","currentWeekStart","currentWeekEnd","startDay","startMonth","startYear","endDay","endMonth","endYear","weekRange","range","ng2_charts__WEBPACK_IMPORTED_MODULE_10__","ReportingPresetsComponent","onChange","ReportingTopProductComponent","unfinishedChain","finishedChain","metal","getTopProducts","productTotalOrders","expandedItem","topProducts","topUnfinishedChains","topFinishedChains","topFindings","topOtherComponents","productIds","orderEntry","filterByCustomer","topProduct","rank","all","groupedMaterials","totalOrderForProduct","selectedMetal","getAnalyticsTopProduct","getAnalyticsTopUnfinishedChain","getAnalyticsTopFinishedChain","getAnalyticsTopFindings","getAnalyticsTopOtherComponents","unfinishedChains","finishedChains","onFilterProductType","mappedData","_angular_material_sort__WEBPACK_IMPORTED_MODULE_10__","ng2_charts__WEBPACK_IMPORTED_MODULE_11__","ReportingTotalShipmentComponent","customersTotalShipment","filteredDataByShippedDate","customerShipments","shippedDate","totalShippedForCustomer","parseDataForTotalShipmentGraphPerMonth","parseDataForTotalShipmentGraphPerWeek","getAnalyticsShipments","groupedShipments","totalShippedPerMonth","ReportingComponent","_angular_forms__WEBPACK_IMPORTED_MODULE_15__","customersTotalBilled","filteredDataByInvoicedDate","customerInvoices","totalBilled","totalDue","totalBilledForCustomer","parseDataForTotalBilledGraphPerMonth","parseDataForTotalBilledGraphPerWeek","getAnalyticsInvoices","allInvoices","groupedInvoices","totalBilledPerMonth","randomColor","monthIndex","qtyTotal","lineChartDataForQty","ng2_charts__WEBPACK_IMPORTED_MODULE_17__","PDMovementComponent","jiraService","getMovedWorkOrders","workOrderMovedItems","getPDMovementReportDateFilter","jiraDetail","workOrderMovementHistory","poLabel","poValue","onGetJiraDetails","jira_ID","jiraId","scan","toUpperCase","summary","defaultImage","getPdWorkOrderMovement","EmployeeDownTimeErrorDialogComponent","WorkOrderEmployeeDownTimeComponent","selectedUser","getEmployeeDownTime","userId","employeeDownTime","usersId","isDownloadingFile","getEmployeeDownTimeReport","employeeList","_employee_down_time_error_dialog_employee_down_time_error_dialog_component__WEBPACK_IMPORTED_MODULE_1__","names","WorkOrderEmployeeComponent","scanService","src_app_components_work_order_view_work_order_print_work_order_print_dialog_component__WEBPACK_IMPORTED_MODULE_0__","getEmployeeWorkOrderMovement","getWorkOrderMovementReportByUser","employeeWorkOrderMovements","WorkOrderIncompleteComponent","src_app_core_user_permission_user_permission_rules_work_order_movement_permission__WEBPACK_IMPORTED_MODULE_2__","getWorkOrderMovementReportIncomplete","workOrderTracking","isJira","getWorkOrderDetails","scanWorkOrder","getWorkOrderMovement","purchaseOrder","hasExternalAndInternal","src_app_components_work_order_view_work_order_print_work_order_print_dialog_component__WEBPACK_IMPORTED_MODULE_1__","deletePdMovement","workOrdersMovementID","deleteWorkOrderMovement","_angular_material_sort__WEBPACK_IMPORTED_MODULE_12__","WorkOrderMovedComponent","getWorkOrderMovementReportDateFilter","src_app_components_work_order_view_work_order_print_work_order_print_dialog_component__WEBPACK_IMPORTED_MODULE_2__","WorkOrderMovementComponent","_angular_core__WEBPACK_IMPORTED_MODULE_9__","WorkOrderProcessComparisonComponent","_angular_material_table__WEBPACK_IMPORTED_MODULE_3__","activitySummary","productType","selectedRoutingCodeId","getWorkOrderMovementProductActivity","productActivity","getWorkOrderMovementActivitySummary","getWorkOrderMovementActivitySummaryMedian","selectedMedianTime","getProductActivity","WorkOrderProductSearchComponent","getWorkOrderMovementReportSearch","ChainFinishBomDialogComponent","_angular_forms__WEBPACK_IMPORTED_MODULE_3__","findingControl","findingsTypeName","_filterFinding","chainFinishBom","sizeLabel","setChainFinishedBom","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_6__","ChainFinishDialogComponent","chainRaws","filteredChainRaws","chainRawControl","_filterChainRaw","chainFinish","uploadFinishedImage","_angular_common_http__WEBPACK_IMPORTED_MODULE_6__","setChainFinished","fromSupplier","_r4","ChainFinishedSkuGeneratorDialogComponent","chainSkuDetail","getGeneratedSku","RivaChainFinishListComponent","reloadFinishChainTypes","getChainStyles","chainStyles","chainStylesID","chainFinishes","chainStyleId","chainsId","selectedChainFinish","getChainBom","chainFinishMaterials","selectedChainFinishMaterial","getChainFinishedStocks","isNumber","numeric","alpha","sortedNumber","convertedSizeToString","chainFinishSizes","selectedChainFinishSize","getChainFinishedBom","billOfMaterials","showSizeError","isSavingNewSize","setChainFinishedSizes","isSavingMaterial","setChainFinishedMaterial","selectedChainFinishStock","qtyInStock","chainTotalWeight","isSavingStock","setChainFinishedStocks","chainFinishStocks","setSelectedStock","filterChainStyleID","_chain_finish_dialog_chain_finish_dialog_component__WEBPACK_IMPORTED_MODULE_3__","_chain_finish_bom_dialog_chain_finish_bom_dialog_component__WEBPACK_IMPORTED_MODULE_2__","isInteger","findingsLength","_angular_common_http__WEBPACK_IMPORTED_MODULE_9__","_riva_chain_routing_chain_routing_dialog_component__WEBPACK_IMPORTED_MODULE_1__","_chain_finished_sku_generator_dialog_chain_finished_sku_generator_dialog_component__WEBPACK_IMPORTED_MODULE_4__","_r17","_r19","chainTabSlugByIndex","chainTabIndexBySlug","RivaChainPageComponent","_riva_chain_chain_dialog_chain_dialog_component__WEBPACK_IMPORTED_MODULE_1__","reloadRawChainTypes","RivaChainPricingUnfinishedTableComponent","expandedRow","setChainRawStock","dataSource","RivaChainPricingUnfinishedComponent","requestStocks","acc","outside","chainsInHouse","chainsOutside","RivaChainPricingComponent","ProductChainFinishedTableComponent","ProductChainUnfinishedTableComponent","onDeleteChain","RivaChainFinishedProductComponent","getProductChains","onCheckChainSizes","current","setProductChainFinished","deleteProductChainFinished","RivaChainProductContainerComponent","RivaChainUnfinishedProductComponent","deleteProductChainRaw","setProductChainRaw","ChainRoutingCopyDialogComponent","_filterChain","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_8__","_chain_routing_component__WEBPACK_IMPORTED_MODULE_0__","ChainRoutingDialogComponent","chainRoutingComponent","ChainRoutingComponent","loadChainRoutings","getChainRoutings","chainRoutingId","isSavingChainRouting","setChainRouting","deleteChainRouting","_chain_routing_copy_dialog_component__WEBPACK_IMPORTED_MODULE_0__","ChainDialogComponent","setChainStyles","ChainRawDialogComponent","chainStyleID","scenario1","scenario2","scenario3","setChainRaw","fieldFrom","fieldTo","ChainUnfinishedSkuGeneratorDialogComponent","getChainStock","RivaChainComponent","getChainStocks","chainRawId","selectedChainStock","chainRawUploadImage","_chain_raw_dialog_chain_raw_dialog_component__WEBPACK_IMPORTED_MODULE_2__","weightPerInchG","qtyInStockInch","isStockSaving","_chain_unfinished_sku_generator_dialog_chain_unfinished_sku_generator_dialog_component__WEBPACK_IMPORTED_MODULE_3__","_r21","RivaConfirmationComponent","ConfirmationService","_riva_confirmation_component__WEBPACK_IMPORTED_MODULE_0__","RivaDateRangePickerComponent","isSinglePicker","singlePickerLabel","startDateLabel","endDateLabel","FINDINGS_TYPE","JUMPRINGS","POST","FLYER","SPRING","SPRING_RING","LOBSTER_CLAW","TAGS","FINDING_MAX_WEIGHT","FindingRoutingDialogComponent","src_app_core_user_permission_user_permission_rules_findings_permission__WEBPACK_IMPORTED_MODULE_0__","findingRoutingComponent","onSaveFindingRouting","_finding_routing_component__WEBPACK_IMPORTED_MODULE_1__","FindingRoutingComponent","src_app_core_user_permission_user_permission_rules_findings_permission__WEBPACK_IMPORTED_MODULE_1__","loadFindingRoutings","findingRoutings","findingRoutingsCodes","rawFindingRoutingCodes","getFindingsRoutingByFindingsId","findingRoutingsRaw","onFilterRoutings","selectedMaterialCodeId","noMaterialFindings","withMaterial","findingRoutingsCode","findingsRoutingID","selectedFindingRouting","filteredFindingRoutingCodes","findingRoutingsControl","_filterFindingRoutingCode","isSavingFindingRouting","setFindingsRouting","originalRouting","hasChanges","deleteFindingsRouting","FindingSettingDialogComponent","setFindingsType","FindingStockDialogComponent","findingsStockID","weight_G","suppliersID","setFindingsStock","_constants__WEBPACK_IMPORTED_MODULE_0__","_r7","FindingsDetailsComponent","uomOptions$","getSuppliers","onSetEditMode","callback","supplier","unitsOfMeasure","setFindings","saveFindings","showFindingsSizeError","findingsSize","setFindingsSizes","orderFindingsMaterialAndSize","findingMaterialCode","setFindingsMaterials","findingsMaterialCode","deleteFindingsMaterials","deleteFindingsSizes","FindingsListComponent","reloadFindingsList","suppliersName","onSelectFindings","_angular_material_sort__WEBPACK_IMPORTED_MODULE_4__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_5__","FindingsSkuGeneratorButtonComponent","_findings_sku_generator_dialog_findings_sku_generator_dialog_component__WEBPACK_IMPORTED_MODULE_0__","findingsTypeId","findingSizeId","FindingsSkuGeneratorDialogComponent","findingSkuDetail","findingsSizeId","FlyerDialogComponent","flyers","j","flyer","setFinding","findingSizesId","FlyerComponent","_constants__WEBPACK_IMPORTED_MODULE_4__","selectedFindingsId","defaultFindingsId","selectedFlyer","_angular_common_http__WEBPACK_IMPORTED_MODULE_12__","_flyer_dialog_flyer_dialog_component__WEBPACK_IMPORTED_MODULE_5__","onReloadList","_finding_routing_finding_routing_dialog_component__WEBPACK_IMPORTED_MODULE_1__","findingId","_finding_stock_dialog_finding_stock_dialog_component__WEBPACK_IMPORTED_MODULE_2__","onOpenSetting","measurementUnit","JumpringDialogComponent","jumpring","JumpringComponent","_jumpring_dialog_jumpring_dialog_component__WEBPACK_IMPORTED_MODULE_5__","jumpringSizeInches","LobsterClawDialogComponent","lobsterClaw","lobsterClawName","LobsterClawComponent","lobsterClaws","selectedLobsterClaw","_lobster_claw_dialog_lobster_claw_dialog_component__WEBPACK_IMPORTED_MODULE_5__","PostDialogComponent","PostComponent","_post_dialog_post_dialog_component__WEBPACK_IMPORTED_MODULE_5__","findingsTabIndexBySlug","springs","tags","RivaFindingsComponent","getFindingsTypes","unit","record","getFindingsStocks","findingsStocks","_finding_setting_dialog_finding_setting_dialog_component__WEBPACK_IMPORTED_MODULE_1__","SpringRingDialogComponent","springRing","springRingName","SpringRingComponent","springRings","selectedSpringRing","_spring_ring_dialog_spring_ring_dialog_component__WEBPACK_IMPORTED_MODULE_5__","SpringDialogComponent","spring","SpringComponent","selectedSpring","_spring_dialog_spring_dialog_component__WEBPACK_IMPORTED_MODULE_5__","TagsDialogComponent","tagName","TagsComponent","_constants__WEBPACK_IMPORTED_MODULE_1__","selectedTag","_tags_dialog_tags_dialog_component__WEBPACK_IMPORTED_MODULE_5__","_finding_routing_finding_routing_dialog_component__WEBPACK_IMPORTED_MODULE_2__","_finding_stock_dialog_finding_stock_dialog_component__WEBPACK_IMPORTED_MODULE_3__","countDecimalPlaces","numberString","decimalPart","StoneConfirmationComponent","StoneDialogComponent","stockQTY","getStones","gems","getSizes","getTypes","getCuts","getClarities","getColors","cuts","clarities","colors","stoneSizes","stoneTypes","stoneCuts","stoneClarities","stoneColors","filteredTypes","stoneTypeControl","_filterType","filteredCuts","stoneCutControl","_filterCut","filteredClarities","stoneClarityControl","_filterClarity","filteredColors","stoneColorControl","_filterColor","ctrl","newItem","setStoneType","stoneTypesID","setStoneCut","stoneCutsID","custom","setStoneClarity","stoneClaritiesID","setStoneColor","stoneColorsID","sizeD1","getValue","stoneSizeD1Control","sizeD2","stoneSizeD2Control","sizeD3","stoneSizeD3Control","currentStoneSizesID","stoneSizesID","setStoneSize","getControlValue","setStone","gem","avgCarat","labGrown","traceable","confirmationDuplicateStone","reloadStones","clarity","lodash_uniqBy__WEBPACK_IMPORTED_MODULE_1___default","d1","d2","d3","isAllValidNumber","isSizeOrderValid","isSizeValid","sizeBorderClass","existingValue","_stone_confirmation_stone_confirmation_component__WEBPACK_IMPORTED_MODULE_2__","stoneCut","currentStonePicture","getStoneDefaultPicture","stonePicsDefaultID","StoneImagesDialogComponent","stoneDefaultImageConfig","uploadDefaultPicture","_angular_common_http__WEBPACK_IMPORTED_MODULE_3__","StoneInventoryAdjustmentDialogComponent","inventoryValue","appendType","movementDate","qtyMaxValue","qtyMinValue","inventoryAdjustment","qtyMoved","caratsMoved","pricePerCarat","setStoneMovementAppends","ceil","StoneSizeDialogComponent","StoneUpdaterDialogComponent","GemsDetailsComponent","src_app_core_user_permission_user_permission_rules_stone_permission__WEBPACK_IMPORTED_MODULE_0__","selectedGem","stoneStockTracking","stoneTracking","getStoneMovementStockTracking","reSelectStone","_dialogs_stone_dialog_stone_dialog_component__WEBPACK_IMPORTED_MODULE_1__","_dialogs_stone_updater_dialog_stone_updater_dialog_component__WEBPACK_IMPORTED_MODULE_5__","_dialogs_stone_images_dialog_stone_images_dialog_component__WEBPACK_IMPORTED_MODULE_2__","_angular_common_http__WEBPACK_IMPORTED_MODULE_10__","_dialogs_stone_size_dialog_stone_size_dialog_component__WEBPACK_IMPORTED_MODULE_4__","_dialogs_stone_inventory_adjustment_dialog_stone_inventory_adjustment_dialog_component__WEBPACK_IMPORTED_MODULE_3__","GemsListComponent","hideOutOfStock","onSelectGem","typeFilter","cutFilter","clarityFilter","colorFilter","labGrownFilter","traceableFilter","sizeSearch","inStock","qtyInSTock","sortingDataAccessor","sortHeaderId","RivaGemsComponent","stoneClarity","StoneOverrideSizeDialogComponent","getStoneOverride","overrides","overrideSizes","overrideValue","insert","productsBOMStonesQTYsID","insertRequests","setStoneOverride","deleteRequests","deleteStoneOverride","StoneOverrideSizeMultipleDialogComponent","flattenOverrides","StoneProductComponent","tableOnly","isVariation","filteredStones","stoneControl","selectedStone","_filterStones","newProductStone","deleteProductStones","isInvalid","newProductStones","setProductStone","hasNewVariation","variationOverride","requestsPayload","overrideData","_stone_override_size_dialog_stone_override_size_dialog_component__WEBPACK_IMPORTED_MODULE_0__","isReloadStones","_stone_override_size_multiple_dialog_stone_override_size_multiple_dialog_component__WEBPACK_IMPORTED_MODULE_1__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_15__","getDisplayText","setStoneMapper","supplierID","pricePerUnit","setStoneSizeMapper","StoneService","src_environments_environment__WEBPACK_IMPORTED_MODULE_0__","lastPurchasePricePerCarat","colorsID","customHeader","reportProgress","observe","stoneMovementUrl","responseType","_services_generic_service__WEBPACK_IMPORTED_MODULE_1__","RivaStlViewerDialogComponent","three__WEBPACK_IMPORTED_MODULE_2__","shininess","specular","scene","background","stlUrl","stlUrls","subItemsInfoID","getStlImageUrl","dataURI","byteString","atob","mimeString","arrayBuffer","ArrayBuffer","_ia","Uint8Array","charCodeAt","dataView","DataView","getSubItemsStlImage","dataURItoBlob","setAttribute","stlFileName","RivaSuperAdminToolsComponent","revokeToken","confirmationRevoke","RivaTextAvatarComponent","getRandomDarkColor","initial","getInitial","match","formatCountdown","seconds","minutes","remainingSeconds","minutesLabel","RivaTimeoutComponent","idle","keepalive","cd","rxjs__WEBPACK_IMPORTED_MODULE_4__","setIdle","setInterrupts","_ng_idle_core__WEBPACK_IMPORTED_MODULE_5__","onIdleStart","idleState","onIdleEnd","countdown","detectChanges","onTimeout","startCountdown","onTimeoutWarning","interval","onPing","lastPing","watch","countdownSubscription","unsubscribe","resetCountdown","isLoggedIn","reset","remainingTimeSeconds","remainingTimeLabel","logout","signOut","token","getRefreshToken","isRefreshing","newToken","src_app_animations_fade_animation__WEBPACK_IMPORTED_MODULE_0__","SubItemsConfirmationComponent","SubItemsDialogComponent","selectedSubItemIndex","productsSizeID","newSubItem","isUploadingStl","subItemInfoID","stlFile","hasStlFile","uploadStl","stlUploadingProgress","stlUploadStatus","setSubItem","_riva_stl_viewer_riva_stl_viewer_dialog_component__WEBPACK_IMPORTED_MODULE_0__","tempStlPath","errorSubItem","acceptedImages","droppedFile","fileEntry","isFile","dataTransfer","DataTransfer","file","currentFileExt","getFileExtension","isImageType","isSTLFile","filename","pop","SubItemsComponent","dataColumn","actionColumn","batchQTY","_sub_items_dialog_component__WEBPACK_IMPORTED_MODULE_3__","_sub_items_confirmation_component__WEBPACK_IMPORTED_MODULE_2__","deleteSubItem","_riva_stl_viewer_riva_stl_viewer_dialog_component__WEBPACK_IMPORTED_MODULE_1__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_11__","SupplierDialogComponent","SupplierPageComponent","src_app_core_user_permission_user_permission_rules_supplier_permission__WEBPACK_IMPORTED_MODULE_1__","src_app_models_suppliers_model__WEBPACK_IMPORTED_MODULE_2__","_supplier_dialog_supplier_dialog_component__WEBPACK_IMPORTED_MODULE_3__","WorkOrderLabelPrintingComponent","printService","isAlphanumeric","test","isValidKey","processingRequest","onScanWorkOrder","errorMessage","printLabel","successPrinting","_r15","_r79","WorkOrderTrackingComponent","src_app_services_product_bom_service__WEBPACK_IMPORTED_MODULE_3__","_riva_gems_stone_mapper__WEBPACK_IMPORTED_MODULE_4__","_work_order_view_work_order_view_component__WEBPACK_IMPORTED_MODULE_5__","employees","onScanJira","bannerMessage","onScanCloseTracing","onScanCloseJiraTracing","unclosedWorkOrder","isEmployee","isRouting","selectedEmployee","onScanEmployee","onScanRoutingJira","onScanRouting","scanMovementStatus","hasWorkOrderError","lastWorkOrderScanned","scanInTime","currentUserId","primaryColor","primaryMaterial","productMaterialStyle","secondaryMaterial","stoneVariations","movementErrorMessage","employeeId","employeeInProgressWorkOrderId","hasEmployeeError","getWorkOrderMovementInProgressByUser","employeeScannedSuccess","hasJiraScanError","jiraScanErrorMessage","errorMessages","pdWorkOrderMovementHistory","pdWorkMovementID","hasRoutingError","setWorkOrderMovement","successMovement","resetScan","hasMovementError","setPdWorkOrderMovement","jirA_ID","onCloseErrorMessage","src_app_animations_fade_animation__WEBPACK_IMPORTED_MODULE_1__","OrphanWorkOrderDialogComponent","getOrphanedWorkOrder","getWorkOrders","allWorkOrders","_work_order_print_work_order_print_dialog_component__WEBPACK_IMPORTED_MODULE_0__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_5__","element_r40","element_r43","element_r49","ReceivingItemDialogComponent","receivedItems","isFullyReceived","qtyClose","weightInputId","invalidForm","isReceiving","isValidSelection","onReceived","workOrderDetailsID","qtyToClose","wghtGrms","weightGSecondary","weightSecondary","receiveWorkOrderItems","isSuccessful","received","detail_r12","detail_r25","WorkOrderPrintDialogComponent","src_app_core_user_permission_user_permission_rules_work_order_permission__WEBPACK_IMPORTED_MODULE_2__","getWorkOrderDates","workOrderDates","getClosingDetails","generateWorkOrderPdf","closingDetails","pdfData","rawClosingDetails","rawWorkOrderDetails","pdfUrl","pdf","getData","u8","buffer","blobUrl","iframe","src","contentWindow","reloadWorkOrders","deleteWorkOrder","isEditWeight","isEditDetails","onSetDetailEditMode","isSavingDetails","ordersDetailsAltId","patchOrderDetailsAlt","workOrdersDetailsid","patchOrderDetails","isSavingWeight","reloadCaller","updateClosingDetail","workOrdersClosingID","weightGrams","deleteWorkOrderDetail","WorkOrderType","modal_r77","modal_r134","ctx_r37","modal_r158","WorkOrderViewComponent","src_app_core_user_permission_user_permission_rules_work_order_permission__WEBPACK_IMPORTED_MODULE_7__","src_app_models_orders_model__WEBPACK_IMPORTED_MODULE_1__","src_app_models_work_order__WEBPACK_IMPORTED_MODULE_3__","_angular_material_table__WEBPACK_IMPORTED_MODULE_26__","src_app_core_user_permission_user_permission_rules_pages__WEBPACK_IMPORTED_MODULE_6__","loadWorkOrders","lodash_orderBy__WEBPACK_IMPORTED_MODULE_4___default","isLoadingWorkOrder","currentFilter","printStatus","releaseStatus","statusFilter","isFullyClosed","isPartiallyClosed","printStatusFilter","releaseStatusFilter","productSku","customerFilter","searchOrder","filterByStatus","filterByReleaseStatus","filterByPrintStatus","_work_orders_release_component__WEBPACK_IMPORTED_MODULE_11__","setWorkOrderRelease","getUnClosedWorkOrderItems","_receiving_item_dialog_receiving_item_dialog_component__WEBPACK_IMPORTED_MODULE_9__","receivedWorkOrderResponse","selectedOrderItem","select_wko","filtered_workOrderReports","workOrderReports","workOrderDetailDisplay","workOrderDetail","photo","detailDisplays","showOrderDetail","detailDisplay","revertWorkOrder","getListReport","orderItems","selectedOrderDetail","src_app_models_product__WEBPACK_IMPORTED_MODULE_2__","wgtpitem","getMaterial","openWKOs","filterOpenWKOs","wko","openWKO","openWKO_details","filtered_openWKOs","luxon__WEBPACK_IMPORTED_MODULE_5__","_work_order_print_work_order_print_dialog_component__WEBPACK_IMPORTED_MODULE_10__","lodash_uniqBy__WEBPACK_IMPORTED_MODULE_0___default","wkoId","closeWorkOrder","setOpenWorkOrders","resetOpenWKO","wkoDetail","closeWorkOrderDetail","qtyclosed","qtyinit","selectOpenWKO","filteredOrders","_angular_material_sort__WEBPACK_IMPORTED_MODULE_31__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_32__","getOrderType","WorkOrdersReleaseComponent","onCheckWorkOrder","validateWorkOrderForShipment","closed","partiallyClose","validateWorkOrderForInvoices","getWorkOrderStatus","isPrinted","isReleased","onCheckShipping","onCheckInvoicing","scannedWorkOrder","wo","onReleaseWorkOrder","onCloseWorkOrder","WorkOrderComponent","src_app_models_work_order__WEBPACK_IMPORTED_MODULE_1__","generateWorkOrder","test_workOrder","TOKEN_HEADER_KEY","AuthenticationInterceptor","rxjs__WEBPACK_IMPORTED_MODULE_2__","req","authReq","getToken","addTokenHeader","handle","_angular_common_http__WEBPACK_IMPORTED_MODULE_4__","handle401Error","refreshTokenSubject","clone","set","authenticationInterceptorProviders","useClass","AuthenticationService","_environments_environment__WEBPACK_IMPORTED_MODULE_0__","asObservable","TOKEN_KEY","REFRESHTOKEN_KEY","USER_KEY","TokenStorageService","CUSTOMER_FEATURE_KEY","create","customerPermission","_pages__WEBPACK_IMPORTED_MODULE_0__","SuperUser","User","Viewer","ENAMEL_FEATURE_KEY","enamelPermission","FINDINGS_FEATURE_KEY","setting","addRouting","findingsPermission","USER_PERMISSIONS","_product_permission__WEBPACK_IMPORTED_MODULE_6__","_work_order_permission__WEBPACK_IMPORTED_MODULE_13__","_purchase_order_permission__WEBPACK_IMPORTED_MODULE_7__","_order_details_permission__WEBPACK_IMPORTED_MODULE_4__","_stone_permission__WEBPACK_IMPORTED_MODULE_10__","_invoicing_shipping_permission__WEBPACK_IMPORTED_MODULE_3__","_reporting_permission__WEBPACK_IMPORTED_MODULE_8__","_findings_permission__WEBPACK_IMPORTED_MODULE_2__","_enamel_permission__WEBPACK_IMPORTED_MODULE_1__","_other_component_permission__WEBPACK_IMPORTED_MODULE_5__","_supplier_permission__WEBPACK_IMPORTED_MODULE_11__","_customer_permission__WEBPACK_IMPORTED_MODULE_0__","_stone_open_order_report_permission__WEBPACK_IMPORTED_MODULE_9__","_work_order_movement_permission__WEBPACK_IMPORTED_MODULE_12__","INVOICING_SHIPPING_FEATURE_KEY","markAsPaid","invoicingShippingPermission","ORDER_DETAILS_FEATURE_KEY","saveButton","commentField","shippingField","billingField","internalPoField","customerField","receivedDateField","entryDateField","dueDateField","externalPoField","addOrderDetail","updateDetail","deleteDetail","printDetail","clearDetail","orderDetailsPermission","OTHER_COMPONENT_FEATURE_KEY","otherComponentPermission","PAGE_NAME","openOrderReport","stoneOpenOrderReport","manufacturedMaterial","invoicingAndShipping","reporting","itemWeights","workOrderMovement","workOrderLabelPrinting","productQuery","priceDefaults","metalOverheadEquations","reports","superAdminTools","chainPricing","PAGES","customAccessLevel","PRODUCT_FEATURE_KEY","newProductButton","editProductButton","deleteNonCustom","deleteCustom","deleteMaterial","deleteSize","viewProductRouting","addProductRouting","editProductRouting","productPermission","PURCHASE_ORDER_FEATURE_KEY","newOrder","purchaseOrderPermission","REPORTING_FEATURE_KEY","customImage","reportingPermission","STONE_OPEN_ORDER_FEATURE_KEY","release","stoneOpenOrderReportPermission","STONE_FEATURE_KEY","stonePermission","SUPPLIER_FEATURE_KEY","supplierPermission","WORK_ORDER_MOVEMENT_FEATURE_KEY","cancelOpenWorkOrder","workOrderMovementPermission","WORK_ORDER_FEATURE_KEY","receive","notPrinted","weightEdit","workOrderPermission","UserPermissionDirective","elementRef","checkAccess","capture","stopImmediatePropagation","userFeaturesPermission","checkPermissions","intervalId","setInterval","control","elementKey","overrideDisable","isHidden","hidden","onDestroyIntervals","clearInterval","UserPermissionService","_environments_environment__WEBPACK_IMPORTED_MODULE_1__","userPagePermission","normalized","pagePermission","hasCustomAccess","userPermission","pagePermissions","checkDisabledPermission","AlertComponent","subscription","onAlert","alerts","_alert_model__WEBPACK_IMPORTED_MODULE_0__","Alert","init","assign","AlertType","AlertModule","_angular_common__WEBPACK_IMPORTED_MODULE_2__","_alert_component__WEBPACK_IMPORTED_MODULE_0__","AlertService","rxjs__WEBPACK_IMPORTED_MODULE_1__","events","_angular_router__WEBPACK_IMPORTED_MODULE_2__","keepAfterRouteChange","alertId","subject","AuthGuard","state","AutofocusDirective","host","NumberOnlyDirective","el","ngModel","initialValue","allowNegative","parsedValue","minValue","maxValue","LoadOverlayComponent","loading","LoadContentOverlayComponent","onContentLoad","loadingContent","LoadService","rxjs__WEBPACK_IMPORTED_MODULE_0__","subjectContent","NotificationComponent","EnumToArrayPipe","pure","IdPipe","NoCommaPipe","val","DEFAULT_ROUTE_PAGE","menus","permissionName","menu_r9","RivaSideNavComponent","_menu__WEBPACK_IMPORTED_MODULE_0__","isLoggedIn$","menuWithPermission","getMenuWithPermission","isLoadingMetalMarket","popoverTrigger","subMenuWithPermissions","Chain","ChainLinkSize","ChainType","Chainfinished","ChainFinishedColumns","ChainfinishedInfo","Customers","Enamel","EnamelColumns","BomItemType","Customer","CustomerCode","Findings","FindingsColumn","FindingsInfo","Gems","GemCuts","GemTypes","GemSizes","GemInventory","GemsColumns","Historylogs","InventoryLog","ProductInventory","MaterialInfoJSON","ProductInfoJSON","Login","ManufacturedMaterials","ManufacturedMatsColumns","ManufacturedMaterialsInfo","MaterialCode","MatCodeSize","Sizes","SizeUpdate","MetalGrain","Nonprecious","NonpreciousColumns","Orders","OrdersDetails","now","_product__WEBPACK_IMPORTED_MODULE_1__","OrderDetailsType","OrderStatus","OpenOrder","ProductDetails","Product","ProductStatus","ProductsBOM","ProductsBOMResponse","ProductsDMNS","Productstoreflag","ProductDetailResponse","Dimension","Material","SizeRetailPrice","ProductsInfo","ProductsStoreInfo","GroupItem","GroupItemRequest","ProductRoutingCodes","ProductsRouting","RoutingCodes","RawMaterials","Rawmaterialsinfo","ProductSearch","OrderImportResponse","Suppliers","WorkOrder","WorkOrderDetail","WorkOrderReport","WorkOrderPrintReport","WorkOrderDetailDisplay","AnalyticsService","totalClosedWeight","individualClosedWeight","closedQty","_generic_service__WEBPACK_IMPORTED_MODULE_1__","ChainService","chainRawUrl","chainRawSizeUrl","chainSize","chainRawStockUrl","chainStock","chainsID","chainMaterialUrl","chainMaterial","chainLengthUrl","chainLength","chainFinishedUrl","chainFinishedSizeId","chainOrderDetailUrl","chainStyleUrl","chainRoutingUrl","ChainfinishedService","ChainfinishedinfoService","chainfinishedinfo","CustomerAddressService","CustomerService","EnamelService","jumpringSizeMapper","jumpringSizes","FindingsService","findingsMaterial","findingsMaterialId","sizeLabelInches","findingsSizesId","routingUrl","_generic_service__WEBPACK_IMPORTED_MODULE_2__","FindingsinfoService","findingsinfo","GemService","inventoryId","getTypeLabel","GenericService","_http","_angular_common_http__WEBPACK_IMPORTED_MODULE_1__","ApiKey","endpoint","fileID","HistoryService","InventoryLogService","getParamString","getStoneDetail","getChainName","lengthOrSize","getLookupChainName","ordersDetailsChainSKU","ordersDetailsChainStyleName","ordersDetailsChainLengthOrSize","processFindingsSize","sz","trimmedValue","getLookupProductName","invoiceMapper","ordersDetailsChain","wghtGrmsSecondary","InvoiceService","src_environments_environment__WEBPACK_IMPORTED_MODULE_2__","qtyToShip","availableQtyToInvoice","totalAddOns","_generic_service__WEBPACK_IMPORTED_MODULE_4__","JewelryTypeService","JiraService","issueKey","ManufacturedMaterialsInfoService","ManufacturedMaterialsService","MaterialCodeService","sizeUpdate","matList","matIDList","lstTempMat","prodID","outCB","lstMatIds","getProductMaterialSize","lstMatCodeSize","lstSize","iSize","src_app_models_material_code__WEBPACK_IMPORTED_MODULE_0__","lstMaterialCode","getMaterialCodes","materialCodeCalculationUrl","MetalGrainService","MetalMarketService","dates","latest","premiumsUrl","orderReceivedDate","_generic_service__WEBPACK_IMPORTED_MODULE_3__","NonPreciousService","OrderService","client","Export","ordersImportUrl","patch","orderDetailAltUrl","getSizeLabel","OtherComponentsService","unitOfMeasure","typeUrl","materialUrl","otherComponentsRoutingId","sizeUrl","orderDetailUrl","PricingAddOnsService","PricingEquationService","productPricingUrl","PrintService","sizeMapper","size_5","size_6","ProductBomService","enamelUrl","findingsUrl","stonesUrl","productStone","ps","stonesOrderDetailsUrl","productsBomStoneId","stoneOverrideUrl","chainFinishUrl","productLinkUrl","ProductStoreInfoService","ProductService","subassemblyId","productStock","flagId","groupId","groupLevel","produtsBOMID","productEnamelId","material2","productV2BaseUrl","ProductsRoutingService","RawMaterialsService","rawmaterials","rawmaterialsId","RawmaterialsinfoService","rawmaterialsinfo","ReportService","reportsUrl","invoicesId","RoutingCodeService","ScanService","SearchProductService","ordersTypeId","SharedService","_components_work_order_view_work_order_type__WEBPACK_IMPORTED_MODULE_2__","ShipmentService","availableQtyToShip","SkuService","StoneReleaseService","SubItemService","form","SupplierService","SuppliersService","UnitOfMeasureService","UserService","users","WorkOrderMovementService","valueDisplay","pdMovementUrl","movementsHistory","h","scanOutTime","scanOutTimeRaw","scanInTimeRaw","differenceInMinutes","usersid","dailyMetricsUrl","decodedError","TextDecoder","decode","buildWorkOrderForUI","productPicturePath","quantity","quantityClosed","qtyClosed","WorkOrderService","wkoDetailId","invoicesUrl","shipmentsUrl","receivingUrl","closingId","stoneToRelease","totalStoneToRelease","workOrderDetailsUrl","workOrdersUrl","AppMaterialModule","_angular_common__WEBPACK_IMPORTED_MODULE_1__","_angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_2__","_angular_cdk_clipboard__WEBPACK_IMPORTED_MODULE_3__","_angular_cdk_stepper__WEBPACK_IMPORTED_MODULE_4__","_angular_cdk_table__WEBPACK_IMPORTED_MODULE_5__","_angular_cdk_tree__WEBPACK_IMPORTED_MODULE_6__","_angular_cdk_drag_drop__WEBPACK_IMPORTED_MODULE_7__","_angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_8__","_angular_material_badge__WEBPACK_IMPORTED_MODULE_9__","_angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_10__","_angular_material_button__WEBPACK_IMPORTED_MODULE_11__","_angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_12__","_angular_material_card__WEBPACK_IMPORTED_MODULE_13__","_angular_material_checkbox__WEBPACK_IMPORTED_MODULE_14__","_angular_material_chips__WEBPACK_IMPORTED_MODULE_15__","_angular_material_stepper__WEBPACK_IMPORTED_MODULE_16__","_angular_material_datepicker__WEBPACK_IMPORTED_MODULE_17__","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_18__","_angular_material_divider__WEBPACK_IMPORTED_MODULE_19__","_angular_material_expansion__WEBPACK_IMPORTED_MODULE_20__","_angular_material_grid_list__WEBPACK_IMPORTED_MODULE_21__","_angular_material_icon__WEBPACK_IMPORTED_MODULE_22__","_angular_material_input__WEBPACK_IMPORTED_MODULE_23__","_angular_material_list__WEBPACK_IMPORTED_MODULE_24__","_angular_material_menu__WEBPACK_IMPORTED_MODULE_25__","_angular_material_core__WEBPACK_IMPORTED_MODULE_26__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_27__","_angular_material_progress_bar__WEBPACK_IMPORTED_MODULE_28__","_angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_29__","_angular_material_radio__WEBPACK_IMPORTED_MODULE_30__","_angular_material_select__WEBPACK_IMPORTED_MODULE_31__","_angular_material_sidenav__WEBPACK_IMPORTED_MODULE_32__","_angular_material_slider__WEBPACK_IMPORTED_MODULE_33__","_angular_material_slide_toggle__WEBPACK_IMPORTED_MODULE_34__","_angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_35__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_36__","_angular_material_table__WEBPACK_IMPORTED_MODULE_37__","_angular_material_tabs__WEBPACK_IMPORTED_MODULE_38__","_angular_material_toolbar__WEBPACK_IMPORTED_MODULE_39__","_angular_material_tooltip__WEBPACK_IMPORTED_MODULE_40__","_angular_material_tree__WEBPACK_IMPORTED_MODULE_41__","_angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_42__","_angular_cdk_portal__WEBPACK_IMPORTED_MODULE_43__","_angular_cdk_scrolling__WEBPACK_IMPORTED_MODULE_44__","SharedModule","_angular_common__WEBPACK_IMPORTED_MODULE_4__","src_app_core_user_permission_user_permission_directive__WEBPACK_IMPORTED_MODULE_0__","_custom_directives_autofocus_directive__WEBPACK_IMPORTED_MODULE_1__","_custom_directives_number_only_directive__WEBPACK_IMPORTED_MODULE_2__","getAlphabetCharacters","alphabet","charCode","fromCharCode","environment","production","apiUrl","ecommUrl","base","apiKey","sentryDns","hostname","isDevEnvironment","_sentry_angular_ivy__WEBPACK_IMPORTED_MODULE_3__","dsn","_environments_environment__WEBPACK_IMPORTED_MODULE_2__","integrations","_sentry_angular_ivy__WEBPACK_IMPORTED_MODULE_4__","tracesSampleRate","replaysSessionSampleRate","replaysOnErrorSampleRate","beforeSend","hint","originalException","_angular_platform_browser__WEBPACK_IMPORTED_MODULE_6__","bootstrapModule","_app_app_module__WEBPACK_IMPORTED_MODULE_1__","applicationRef","injector","appComponent","components"],"sources":["webpack:///$_lazy_route_resources|lazy|groupOptions:%20%7B%7D|namespace%20object","webpack:///src/app/animations/fade-animation.ts","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/components/accounts-table/accounts-table-dialog/accounts-table-dialog.component.html","webpack:///src/app/components/accounts-table/accounts-table-dialog/accounts-table-dialog.component.ts","webpack:///src/app/components/accounts-table/accounts-table-user/accounts-table-user.component.ts","webpack:///src/app/components/accounts-table/accounts-table-user/accounts-table-user.component.html","webpack:///src/app/components/accounts-table/accounts-table.component.html","webpack:///src/app/components/accounts-table/accounts-table.component.ts","webpack:///src/app/components/accounts-table/reset-password-dialog/reset-password-dialog.component.html","webpack:///src/app/components/accounts-table/reset-password-dialog/reset-password-dialog.component.ts","webpack:///src/app/components/accounts-table/user-permission-dialog/user-permission-dialog.component.html","webpack:///src/app/components/accounts-table/user-permission-dialog/user-permission-dialog.component.ts","webpack:///src/app/components/accounts-table/user-permission-navigation-dialog/user-permission-navigation-dialog.component.html","webpack:///src/app/components/accounts-table/user-permission-navigation-dialog/user-permission-navigation-dialog.component.ts","webpack:///src/app/components/bill-of-material-sub-item/bill-of-material-sub-item-confirmation.component.ts","webpack:///src/app/components/bill-of-material-sub-item/bill-of-material-sub-item-confirmation.component.html","webpack:///src/app/components/bill-of-material-sub-item/bill-of-material-sub-item-dialog.component.html","webpack:///src/app/components/bill-of-material-sub-item/bill-of-material-sub-item-dialog..component.ts","webpack:///src/app/components/bill-of-material-sub-item/bill-of-material-sub-item.component.html","webpack:///src/app/components/bill-of-material-sub-item/bill-of-material-sub-item.component.ts","webpack:///src/app/components/bill-of-material/bill-of-material.component.html","webpack:///src/app/components/bill-of-material/bill-of-material.component.ts","webpack:///src/app/components/bill-of-material/product-component-dialog/product-component-dialog.component.ts","webpack:///src/app/components/bill-of-material/product-component-dialog/product-component-dialog.component.html","webpack:///src/app/components/bill-of-material/product-enamel/product-enamel.component.html","webpack:///src/app/components/bill-of-material/product-enamel/product-enamel.component.ts","webpack:///src/app/components/bill-of-material/product-findings/bom-findings/bom-findings.component.html","webpack:///src/app/components/bill-of-material/product-findings/bom-findings/bom-findings.component.ts","webpack:///src/app/components/bill-of-material/product-findings/bom-jumpring/bom-jumpring.component.html","webpack:///src/app/components/bill-of-material/product-findings/bom-jumpring/bom-jumpring.component.ts","webpack:///src/app/components/bill-of-material/product-findings/bom-post/bom-post.component.html","webpack:///src/app/components/bill-of-material/product-findings/bom-post/bom-post.component.ts","webpack:///src/app/components/bill-of-material/product-findings/product-findings-table/product-findings-table.component.html","webpack:///src/app/components/bill-of-material/product-findings/product-findings-table/product-findings-table.component.ts","webpack:///src/app/components/bill-of-material/product-findings/product-findings.component.ts","webpack:///src/app/components/bill-of-material/product-findings/product-findings.component.html","webpack:///src/app/components/bill-of-material/product-link-bom/product-link-bom-form/product-link-bom-form.component.html","webpack:///src/app/components/bill-of-material/product-link-bom/product-link-bom-form/product-link-bom-form.component.ts","webpack:///src/app/components/bill-of-material/product-link-bom/product-link-bom-table/product-link-bom-table.component.html","webpack:///src/app/components/bill-of-material/product-link-bom/product-link-bom-table/product-link-bom-table.component.ts","webpack:///src/app/components/bill-of-material/product-link-bom/product-link-bom.component.ts","webpack:///src/app/components/bill-of-material/product-link-bom/product-link-bom.component.html","webpack:///src/app/components/bill-of-materials-a/bill-of-materials-a.component.html","webpack:///src/app/components/bill-of-materials-a/bill-of-materials-a.component.ts","webpack:///src/app/components/bill-of-materials-b/bill-of-materials-b.component.html","webpack:///src/app/components/bill-of-materials-b/bill-of-materials-b.component.ts","webpack:///src/app/components/bill-of-materials/bill-of-materials.component.html","webpack:///src/app/components/bill-of-materials/bill-of-materials.component.ts","webpack:///src/app/components/chain-finished/chain-finished.component.html","webpack:///src/app/components/chain-finished/chain-finished.component.ts","webpack:///src/app/components/chain-tab/chain-tab.component.ts","webpack:///src/app/components/chain-tab/chain-tab.component.html","webpack:///src/app/components/chain/chain.component.html","webpack:///src/app/components/chain/chain.component.ts","webpack:///src/app/components/customer-page/customer-address-dialog/customer-address-dialog.component.ts","webpack:///src/app/components/customer-page/customer-address-dialog/customer-address-dialog.component.html","webpack:///src/app/components/customer-page/customer-dialog/customer-dialog.component.html","webpack:///src/app/components/customer-page/customer-dialog/customer-dialog.component.ts","webpack:///src/app/components/customer-page/customer-page.component.html","webpack:///src/app/components/customer-page/customer-page.component.ts","webpack:///src/app/components/customer-page/customer-setting-dialog/customer-setting-dialog.component.ts","webpack:///src/app/components/customer-page/customer-setting-dialog/customer-setting-dialog.component.html","webpack:///src/app/components/enamel/enamel.component.html","webpack:///src/app/components/enamel/enamel.component.ts","webpack:///src/app/components/equations/equations.component.ts","webpack:///src/app/components/equations/equations.component.html","webpack:///src/app/components/findings/findings.component.html","webpack:///src/app/components/findings/findings.component.ts","webpack:///src/app/components/forbidden/forbidden.component.ts","webpack:///src/app/components/forbidden/forbidden.component.html","webpack:///src/app/components/gems-bom/gems-bom.component.html","webpack:///src/app/components/gems-bom/gems-bom.component.ts","webpack:///src/app/components/gems/gems.component.html","webpack:///src/app/components/gems/gems.component.ts","webpack:///src/app/components/generic/generic.component.ts","webpack:///src/app/components/inventory-log/inventory-log.component.html","webpack:///src/app/components/inventory-log/inventory-log.component.ts","webpack:///src/app/components/invoicing-shipping/invoicing-shipping.component.ts","webpack:///src/app/components/invoicing-shipping/invoicing-shipping.component.html","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail-dialog/invoicing-detail-dialog.component.html","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail-dialog/invoicing-detail-dialog.component.ts","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail.component.html","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-detail.component.ts","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-price-dialog/invoicing-price-dialog.component.html","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing-detail/invoicing-price-dialog/invoicing-price-dialog.component.ts","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing-detail/related-shipment-dialog/related-shipment-dialog.component.html","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing-detail/related-shipment-dialog/related-shipment-dialog.component.ts","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing-print-dialog/invoicing-print-dialog.component.html","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing-print-dialog/invoicing-print-dialog.component.ts","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing.component.html","webpack:///src/app/components/invoicing-shipping/invoicing/invoicing.component.ts","webpack:///src/app/components/invoicing-shipping/invoicing/models/invoice.ts","webpack:///src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-detail-dialog/shipping-detail-dialog.component.html","webpack:///src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-detail-dialog/shipping-detail-dialog.component.ts","webpack:///src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-detail.component.html","webpack:///src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-detail.component.ts","webpack:///src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-related-invoice-dialog/shipping-related-invoice-dialog.component.html","webpack:///src/app/components/invoicing-shipping/shipping/shipping-detail/shipping-related-invoice-dialog/shipping-related-invoice-dialog.component.ts","webpack:///src/app/components/invoicing-shipping/shipping/shipping.component.html","webpack:///src/app/components/invoicing-shipping/shipping/shipping.component.ts","webpack:///src/app/components/login/login.component.html","webpack:///src/app/components/login/login.component.ts","webpack:///src/app/components/manufactured-materials/manufactured-materials.component.html","webpack:///src/app/components/manufactured-materials/manufactured-materials.component.ts","webpack:///src/app/components/metal-grain/metal-grain.component.html","webpack:///src/app/components/metal-grain/metal-grain.component.ts","webpack:///src/app/components/metal-overhead-equations/metal-overhead-equations.component.html","webpack:///src/app/components/metal-overhead-equations/metal-overhead-equations.component.ts","webpack:///src/app/components/non-precious/non-precious.component.html","webpack:///src/app/components/non-precious/non-precious.component.ts","webpack:///src/app/components/open-order-report/open-order-report.component.html","webpack:///src/app/components/open-order-report/open-order-report.component.ts","webpack:///src/app/components/open-order-stone-report/open-order-stone-report.component.html","webpack:///src/app/components/open-order-stone-report/open-order-stone-report.component.ts","webpack:///src/app/components/open-order-stone-report/stone-receiving-dialog/stone-receiving-dialog.component.html","webpack:///src/app/components/open-order-stone-report/stone-receiving-dialog/stone-receiving-dialog.component.ts","webpack:///src/app/components/open-order-stone-report/stone-release-history-dialog/stone-release-history-dialog.component.html","webpack:///src/app/components/open-order-stone-report/stone-release-history-dialog/stone-release-history-dialog.component.ts","webpack:///src/app/components/orderdetails/customer-add-ons/customer-add-ons.component.html","webpack:///src/app/components/orderdetails/customer-add-ons/customer-add-ons.component.ts","webpack:///src/app/components/orderdetails/list/add-product-by-customer-sku-dialog/add-product-by-customer-sku-dialog.component.ts","webpack:///src/app/components/orderdetails/list/add-product-by-customer-sku-dialog/add-product-by-customer-sku-dialog.component.html","webpack:///src/app/components/orderdetails/list/list.component.html","webpack:///src/app/components/orderdetails/list/list.component.ts","webpack:///src/app/components/orderdetails/new-orderdetails-item/new-orderdetails-item.component.html","webpack:///src/app/components/orderdetails/new-orderdetails-item/new-orderdetails-item.component.ts","webpack:///src/app/components/orderdetails/order-upload-dialog/order-upload-dialog.component.html","webpack:///src/app/components/orderdetails/order-upload-dialog/order-upload-dialog.component.ts","webpack:///src/app/components/orderdetails/orderdetails-item/orderdetails-item.component.html","webpack:///src/app/components/orderdetails/orderdetails-item/orderdetails-item.component.ts","webpack:///src/app/components/orderdetails/orderdetails.module.ts","webpack:///src/app/components/orderdetails/orderdetails.service.ts","webpack:///src/app/components/orderdetails/riva-chain-order/riva-chain-order.component.html","webpack:///src/app/components/orderdetails/riva-chain-order/riva-chain-order.component.ts","webpack:///src/app/components/orderdetails/riva-findings-order/riva-findings-order-add-item/riva-findings-order-add-item.component.html","webpack:///src/app/components/orderdetails/riva-findings-order/riva-findings-order-add-item/riva-findings-order-add-item.component.ts","webpack:///src/app/components/orderdetails/riva-findings-order/riva-findings-order-add/riva-findings-order-add.component.html","webpack:///src/app/components/orderdetails/riva-findings-order/riva-findings-order-add/riva-findings-order-add.component.ts","webpack:///src/app/components/orderdetails/riva-other-component-order/riva-other-component-order.component.html","webpack:///src/app/components/orderdetails/riva-other-component-order/riva-other-component-order.component.ts","webpack:///src/app/components/orderimporting/orderimporting.component.html","webpack:///src/app/components/orderimporting/orderimporting.component.ts","webpack:///src/app/components/orders-dialog/orders-confirmation.component.ts","webpack:///src/app/components/orders-dialog/orders-confirmation.component.html","webpack:///src/app/components/orders-dialog/orders-progress.component.ts","webpack:///src/app/components/orders-dialog/orders-progress.component.html","webpack:///src/app/components/orders/orders.component.html","webpack:///src/app/components/orders/orders.component.ts","webpack:///src/app/components/orders/related-invoices-dialog/related-invoices-dialog.component.html","webpack:///src/app/components/orders/related-invoices-dialog/related-invoices-dialog.component.ts","webpack:///src/app/components/orderview/orderview.component.html","webpack:///src/app/components/orderview/orderview.component.ts","webpack:///src/app/components/other-components/other-components-routing/other-components-routing-copy-dialog.component.html","webpack:///src/app/components/other-components/other-components-routing/other-components-routing-copy-dialog.component.ts","webpack:///src/app/components/other-components/other-components-routing/other-components-routing-dialog.component.ts","webpack:///src/app/components/other-components/other-components-routing/other-components-routing-dialog.component.html","webpack:///src/app/components/other-components/other-components-routing/other-components-routing.component.html","webpack:///src/app/components/other-components/other-components-routing/other-components-routing.component.ts","webpack:///src/app/components/other-components/other-components-size-dialog/other-components-size-dialog.component.ts","webpack:///src/app/components/other-components/other-components-size-dialog/other-components-size-dialog.component.html","webpack:///src/app/components/other-components/other-components-sku-generator-dialog/other-components-sku-generator-dialog.component.html","webpack:///src/app/components/other-components/other-components-sku-generator-dialog/other-components-sku-generator-dialog.component.ts","webpack:///src/app/components/other-components/other-components.component.html","webpack:///src/app/components/other-components/other-components.component.ts","webpack:///src/app/components/price-custom/price-custom.component.html","webpack:///src/app/components/price-custom/price-custom.component.ts","webpack:///src/app/components/price-defaults/customer-additional-charges/customer-additional-charges.component.html","webpack:///src/app/components/price-defaults/customer-additional-charges/customer-additional-charges.component.ts","webpack:///src/app/components/price-defaults/customer-price-defaults/customer-price-defaults.component.html","webpack:///src/app/components/price-defaults/customer-price-defaults/customer-price-defaults.component.ts","webpack:///src/app/components/price-defaults/price-defaults.component.html","webpack:///src/app/components/price-defaults/price-defaults.component.ts","webpack:///src/app/components/product-group-table/product-group-table.component.html","webpack:///src/app/components/product-group-table/product-group-table.component.ts","webpack:///src/app/components/product-pricing/product-pricing.component.html","webpack:///src/app/components/product-pricing/product-pricing.component.ts","webpack:///src/app/components/product-query/product-invoice-details/product-invoice-details.component.html","webpack:///src/app/components/product-query/product-invoice-details/product-invoice-details.component.ts","webpack:///src/app/components/product-query/product-invoice/product-invoice.component.html","webpack:///src/app/components/product-query/product-invoice/product-invoice.component.ts","webpack:///src/app/components/product-query/product-order-details/product-order-details.component.html","webpack:///src/app/components/product-query/product-order-details/product-order-details.component.ts","webpack:///src/app/components/product-query/product-order/product-order.component.html","webpack:///src/app/components/product-query/product-order/product-order.component.ts","webpack:///src/app/components/product-query/product-query.component.html","webpack:///src/app/components/product-query/product-query.component.ts","webpack:///src/app/components/product-report/product-report.component.html","webpack:///src/app/components/product-report/product-report.component.ts","webpack:///src/app/components/product-routing/product-routing-copy-dialog.component.html","webpack:///src/app/components/product-routing/product-routing-copy-dialog.component.ts","webpack:///src/app/components/product-routing/product-routing-dialog.component.ts","webpack:///src/app/components/product-routing/product-routing-dialog.component.html","webpack:///src/app/components/product-routing/product-routing.component.html","webpack:///src/app/components/product-routing/product-routing.component.ts","webpack:///src/app/components/product-table-v2/product-table-v2.component.html","webpack:///src/app/components/product-table-v2/product-table-v2.component.ts","webpack:///src/app/components/products-table/enamel-constant/enamel-constant.component.html","webpack:///src/app/components/products-table/enamel-constant/enamel-constant.component.ts","webpack:///src/app/components/products-table/enamel-variation-dialog/enamel-variation-dialog.component.html","webpack:///src/app/components/products-table/enamel-variation-dialog/enamel-variation-dialog.component.ts","webpack:///src/app/components/products-table/enamel-variation/enamel-variation.component.html","webpack:///src/app/components/products-table/enamel-variation/enamel-variation.component.ts","webpack:///src/app/components/products-table/product-image-order-dialog/product-image-order-dialog.component.html","webpack:///src/app/components/products-table/product-image-order-dialog/product-image-order-dialog.component.ts","webpack:///src/app/components/products-table/product-image/product-image.component.html","webpack:///src/app/components/products-table/product-image/product-image.component.ts","webpack:///src/app/components/products-table/product-material-dialog/product-material-dialog.component.html","webpack:///src/app/components/products-table/product-material-dialog/product-material-dialog.component.ts","webpack:///src/app/components/products-table/product-setting-dialog/product-setting-dialog.component.html","webpack:///src/app/components/products-table/product-setting-dialog/product-setting-dialog.component.ts","webpack:///src/app/components/products-table/product-sizes-dialog/product-sizes-dialog.component.html","webpack:///src/app/components/products-table/product-sizes-dialog/product-sizes-dialog.component.ts","webpack:///src/app/components/products-table/product-sku-generator-dialog/product-sku-generator-dialog.component.html","webpack:///src/app/components/products-table/product-sku-generator-dialog/product-sku-generator-dialog.component.ts","webpack:///src/app/components/products-table/products-table.component.html","webpack:///src/app/components/products-table/products-table.component.ts","webpack:///src/app/components/raw-materials/raw-materials.component.html","webpack:///src/app/components/raw-materials/raw-materials.component.ts","webpack:///src/app/components/reporting/date-filter-presets.ts","webpack:///src/app/components/reporting/general-reports/general-reports.component.ts","webpack:///src/app/components/reporting/general-reports/general-reports.component.html","webpack:///src/app/components/reporting/general-reports/invoice-reports/invoice-reports.component.html","webpack:///src/app/components/reporting/general-reports/invoice-reports/invoice-reports.component.ts","webpack:///src/app/components/reporting/general-reports/stone-movements-report/stone-movements-report.component.ts","webpack:///src/app/components/reporting/general-reports/stone-movements-report/stone-movements-report.component.html","webpack:///src/app/components/reporting/item-weights/item-weights.component.html","webpack:///src/app/components/reporting/item-weights/item-weights.component.ts","webpack:///src/app/components/reporting/reporting-invoice/reporting-invoice-error-dialog/reporting-invoice-error-dialog.component.html","webpack:///src/app/components/reporting/reporting-invoice/reporting-invoice-error-dialog/reporting-invoice-error-dialog.component.ts","webpack:///src/app/components/reporting/reporting-invoice/reporting-invoice.component.html","webpack:///src/app/components/reporting/reporting-invoice/reporting-invoice.component.ts","webpack:///src/app/components/reporting/reporting-item-placed/reporting-item-placed.component.html","webpack:///src/app/components/reporting/reporting-item-placed/reporting-item-placed.component.ts","webpack:///src/app/components/reporting/reporting-presets/reporting-presets.component.html","webpack:///src/app/components/reporting/reporting-presets/reporting-presets.component.ts","webpack:///src/app/components/reporting/reporting-top-product/reporting-top-product.component.html","webpack:///src/app/components/reporting/reporting-top-product/reporting-top-product.component.ts","webpack:///src/app/components/reporting/reporting-total-shipment/reporting-total-shipment.component.html","webpack:///src/app/components/reporting/reporting-total-shipment/reporting-total-shipment.component.ts","webpack:///src/app/components/reporting/reporting.component.html","webpack:///src/app/components/reporting/reporting.component.ts","webpack:///src/app/components/reporting/work-order-movement/pd-movement/pd-movement.component.html","webpack:///src/app/components/reporting/work-order-movement/pd-movement/pd-movement.component.ts","webpack:///src/app/components/reporting/work-order-movement/work-order-employee-down-time/employee-down-time-error-dialog/employee-down-time-error-dialog.component.html","webpack:///src/app/components/reporting/work-order-movement/work-order-employee-down-time/employee-down-time-error-dialog/employee-down-time-error-dialog.component.ts","webpack:///src/app/components/reporting/work-order-movement/work-order-employee-down-time/work-order-employee-down-time.component.html","webpack:///src/app/components/reporting/work-order-movement/work-order-employee-down-time/work-order-employee-down-time.component.ts","webpack:///src/app/components/reporting/work-order-movement/work-order-employee/work-order-employee.component.html","webpack:///src/app/components/reporting/work-order-movement/work-order-employee/work-order-employee.component.ts","webpack:///src/app/components/reporting/work-order-movement/work-order-incomplete/work-order-incomplete.component.html","webpack:///src/app/components/reporting/work-order-movement/work-order-incomplete/work-order-incomplete.component.ts","webpack:///src/app/components/reporting/work-order-movement/work-order-moved/work-order-moved.component.html","webpack:///src/app/components/reporting/work-order-movement/work-order-moved/work-order-moved.component.ts","webpack:///src/app/components/reporting/work-order-movement/work-order-movement.component.ts","webpack:///src/app/components/reporting/work-order-movement/work-order-movement.component.html","webpack:///src/app/components/reporting/work-order-movement/work-order-process-comparison/work-order-process-comparison.component.html","webpack:///src/app/components/reporting/work-order-movement/work-order-process-comparison/work-order-process-comparison.component.ts","webpack:///src/app/components/reporting/work-order-movement/work-order-product-search/work-order-product-search.component.html","webpack:///src/app/components/reporting/work-order-movement/work-order-product-search/work-order-product-search.component.ts","webpack:///src/app/components/riva-chain/riva-chain-finish/chain-finish-bom-dialog/chain-finish-bom-dialog.component.html","webpack:///src/app/components/riva-chain/riva-chain-finish/chain-finish-bom-dialog/chain-finish-bom-dialog.component.ts","webpack:///src/app/components/riva-chain/riva-chain-finish/chain-finish-dialog/chain-finish-dialog.component.html","webpack:///src/app/components/riva-chain/riva-chain-finish/chain-finish-dialog/chain-finish-dialog.component.ts","webpack:///src/app/components/riva-chain/riva-chain-finish/chain-finished-sku-generator-dialog/chain-finished-sku-generator-dialog.component.html","webpack:///src/app/components/riva-chain/riva-chain-finish/chain-finished-sku-generator-dialog/chain-finished-sku-generator-dialog.component.ts","webpack:///src/app/components/riva-chain/riva-chain-finish/riva-chain-finish-list/riva-chain-finish-list.component.html","webpack:///src/app/components/riva-chain/riva-chain-finish/riva-chain-finish-list/riva-chain-finish-list.component.ts","webpack:///src/app/components/riva-chain/riva-chain-page/riva-chain-page.component.ts","webpack:///src/app/components/riva-chain/riva-chain-page/riva-chain-page.component.html","webpack:///src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing-unfinished/riva-chain-pricing-unfinished-table/riva-chain-pricing-unfinished-table.component.html","webpack:///src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing-unfinished/riva-chain-pricing-unfinished-table/riva-chain-pricing-unfinished-table.component.ts","webpack:///src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing-unfinished/riva-chain-pricing-unfinished.component.ts","webpack:///src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing-unfinished/riva-chain-pricing-unfinished.component.html","webpack:///src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing.component.ts","webpack:///src/app/components/riva-chain/riva-chain-pricing/riva-chain-pricing.component.html","webpack:///src/app/components/riva-chain/riva-chain-product/product-chain-finished-table/product-chain-finished-table.component.html","webpack:///src/app/components/riva-chain/riva-chain-product/product-chain-finished-table/product-chain-finished-table.component.ts","webpack:///src/app/components/riva-chain/riva-chain-product/product-chain-unfinished-table/product-chain-unfinished-table.component.html","webpack:///src/app/components/riva-chain/riva-chain-product/product-chain-unfinished-table/product-chain-unfinished-table.component.ts","webpack:///src/app/components/riva-chain/riva-chain-product/riva-chain-finished-product/riva-chain-finished-product.component.html","webpack:///src/app/components/riva-chain/riva-chain-product/riva-chain-finished-product/riva-chain-finished-product.component.ts","webpack:///src/app/components/riva-chain/riva-chain-product/riva-chain-product-container/riva-chain-product-container.component.ts","webpack:///src/app/components/riva-chain/riva-chain-product/riva-chain-product-container/riva-chain-product-container.component.html","webpack:///src/app/components/riva-chain/riva-chain-product/riva-chain-unfinished-product/riva-chain-unfinished-product.component.html","webpack:///src/app/components/riva-chain/riva-chain-product/riva-chain-unfinished-product/riva-chain-unfinished-product.component.ts","webpack:///src/app/components/riva-chain/riva-chain-routing/chain-routing-copy-dialog.component.html","webpack:///src/app/components/riva-chain/riva-chain-routing/chain-routing-copy-dialog.component.ts","webpack:///src/app/components/riva-chain/riva-chain-routing/chain-routing-dialog.component.ts","webpack:///src/app/components/riva-chain/riva-chain-routing/chain-routing-dialog.component.html","webpack:///src/app/components/riva-chain/riva-chain-routing/chain-routing.component.html","webpack:///src/app/components/riva-chain/riva-chain-routing/chain-routing.component.ts","webpack:///src/app/components/riva-chain/riva-chain/chain-dialog/chain-dialog.component.html","webpack:///src/app/components/riva-chain/riva-chain/chain-dialog/chain-dialog.component.ts","webpack:///src/app/components/riva-chain/riva-chain/chain-raw-dialog/chain-raw-dialog.component.html","webpack:///src/app/components/riva-chain/riva-chain/chain-raw-dialog/chain-raw-dialog.component.ts","webpack:///src/app/components/riva-chain/riva-chain/chain-unfinished-sku-generator-dialog/chain-unfinished-sku-generator-dialog.component.html","webpack:///src/app/components/riva-chain/riva-chain/chain-unfinished-sku-generator-dialog/chain-unfinished-sku-generator-dialog.component.ts","webpack:///src/app/components/riva-chain/riva-chain/riva-chain.component.html","webpack:///src/app/components/riva-chain/riva-chain/riva-chain.component.ts","webpack:///src/app/components/riva-confirmation/riva-confirmation.component.ts","webpack:///src/app/components/riva-confirmation/riva-confirmation.component.html","webpack:///src/app/components/riva-confirmation/riva-confirmation.service.ts","webpack:///src/app/components/riva-date-range-picker/riva-date-range-picker.component.html","webpack:///src/app/components/riva-date-range-picker/riva-date-range-picker.component.ts","webpack:///src/app/components/riva-findings/constants.ts","webpack:///src/app/components/riva-findings/finding-routing/finding-routing-dialog.component.ts","webpack:///src/app/components/riva-findings/finding-routing/finding-routing-dialog.component.html","webpack:///src/app/components/riva-findings/finding-routing/finding-routing.component.html","webpack:///src/app/components/riva-findings/finding-routing/finding-routing.component.ts","webpack:///src/app/components/riva-findings/finding-setting-dialog/finding-setting-dialog.component.ts","webpack:///src/app/components/riva-findings/finding-setting-dialog/finding-setting-dialog.component.html","webpack:///src/app/components/riva-findings/finding-stock-dialog/finding-stock-dialog.component.html","webpack:///src/app/components/riva-findings/finding-stock-dialog/finding-stock-dialog.component.ts","webpack:///src/app/components/riva-findings/findings-details/findings-details.component.html","webpack:///src/app/components/riva-findings/findings-details/findings-details.component.ts","webpack:///src/app/components/riva-findings/findings-list/findings-list.component.html","webpack:///src/app/components/riva-findings/findings-list/findings-list.component.ts","webpack:///src/app/components/riva-findings/findings-sku-generator-button/findings-sku-generator-button.component.ts","webpack:///src/app/components/riva-findings/findings-sku-generator-button/findings-sku-generator-button.component.html","webpack:///src/app/components/riva-findings/findings-sku-generator-dialog/findings-sku-generator-dialog.component.html","webpack:///src/app/components/riva-findings/findings-sku-generator-dialog/findings-sku-generator-dialog.component.ts","webpack:///src/app/components/riva-findings/flyer/flyer-dialog/flyer-dialog.component.ts","webpack:///src/app/components/riva-findings/flyer/flyer-dialog/flyer-dialog.component.html","webpack:///src/app/components/riva-findings/flyer/flyer.component.html","webpack:///src/app/components/riva-findings/flyer/flyer.component.ts","webpack:///src/app/components/riva-findings/jumpring/jumpring-dialog/jumpring-dialog.component.ts","webpack:///src/app/components/riva-findings/jumpring/jumpring-dialog/jumpring-dialog.component.html","webpack:///src/app/components/riva-findings/jumpring/jumpring.component.html","webpack:///src/app/components/riva-findings/jumpring/jumpring.component.ts","webpack:///src/app/components/riva-findings/lobster-claw/lobster-claw-dialog/lobster-claw-dialog.component.ts","webpack:///src/app/components/riva-findings/lobster-claw/lobster-claw-dialog/lobster-claw-dialog.component.html","webpack:///src/app/components/riva-findings/lobster-claw/lobster-claw.component.html","webpack:///src/app/components/riva-findings/lobster-claw/lobster-claw.component.ts","webpack:///src/app/components/riva-findings/post/post-dialog/post-dialog.component.ts","webpack:///src/app/components/riva-findings/post/post-dialog/post-dialog.component.html","webpack:///src/app/components/riva-findings/post/post.component.html","webpack:///src/app/components/riva-findings/post/post.component.ts","webpack:///src/app/components/riva-findings/riva-findings.component.ts","webpack:///src/app/components/riva-findings/riva-findings.component.html","webpack:///src/app/components/riva-findings/spring-ring/spring-ring-dialog/spring-ring-dialog.component.ts","webpack:///src/app/components/riva-findings/spring-ring/spring-ring-dialog/spring-ring-dialog.component.html","webpack:///src/app/components/riva-findings/spring-ring/spring-ring.component.html","webpack:///src/app/components/riva-findings/spring-ring/spring-ring.component.ts","webpack:///src/app/components/riva-findings/spring/spring-dialog/spring-dialog.component.ts","webpack:///src/app/components/riva-findings/spring/spring-dialog/spring-dialog.component.html","webpack:///src/app/components/riva-findings/spring/spring.component.html","webpack:///src/app/components/riva-findings/spring/spring.component.ts","webpack:///src/app/components/riva-findings/tags/tags-dialog/tags-dialog.component.html","webpack:///src/app/components/riva-findings/tags/tags-dialog/tags-dialog.component.ts","webpack:///src/app/components/riva-findings/tags/tags.component.html","webpack:///src/app/components/riva-findings/tags/tags.component.ts","webpack:///src/app/components/riva-findings/util.ts","webpack:///src/app/components/riva-gems/dialogs/stone-confirmation/stone-confirmation.component.html","webpack:///src/app/components/riva-gems/dialogs/stone-confirmation/stone-confirmation.component.ts","webpack:///src/app/components/riva-gems/dialogs/stone-dialog/stone-dialog.component.html","webpack:///src/app/components/riva-gems/dialogs/stone-dialog/stone-dialog.component.ts","webpack:///src/app/components/riva-gems/dialogs/stone-images-dialog/stone-images-dialog.component.html","webpack:///src/app/components/riva-gems/dialogs/stone-images-dialog/stone-images-dialog.component.ts","webpack:///src/app/components/riva-gems/dialogs/stone-inventory-adjustment-dialog/stone-inventory-adjustment-dialog.component.html","webpack:///src/app/components/riva-gems/dialogs/stone-inventory-adjustment-dialog/stone-inventory-adjustment-dialog.component.ts","webpack:///src/app/components/riva-gems/dialogs/stone-size-dialog/stone-size-dialog.component.html","webpack:///src/app/components/riva-gems/dialogs/stone-size-dialog/stone-size-dialog.component.ts","webpack:///src/app/components/riva-gems/dialogs/stone-updater-dialog/stone-updater-dialog.component.ts","webpack:///src/app/components/riva-gems/dialogs/stone-updater-dialog/stone-updater-dialog.component.html","webpack:///src/app/components/riva-gems/gems-details/gems-details.component.html","webpack:///src/app/components/riva-gems/gems-details/gems-details.component.ts","webpack:///src/app/components/riva-gems/gems-list/gems-list.component.html","webpack:///src/app/components/riva-gems/gems-list/gems-list.component.ts","webpack:///src/app/components/riva-gems/riva-gems.component.ts","webpack:///src/app/components/riva-gems/riva-gems.component.html","webpack:///src/app/components/riva-gems/stone-product/stone-override-size-dialog/stone-override-size-dialog.component.html","webpack:///src/app/components/riva-gems/stone-product/stone-override-size-dialog/stone-override-size-dialog.component.ts","webpack:///src/app/components/riva-gems/stone-product/stone-override-size-multiple-dialog/stone-override-size-multiple-dialog.component.html","webpack:///src/app/components/riva-gems/stone-product/stone-override-size-multiple-dialog/stone-override-size-multiple-dialog.component.ts","webpack:///src/app/components/riva-gems/stone-product/stone-product.component.html","webpack:///src/app/components/riva-gems/stone-product/stone-product.component.ts","webpack:///src/app/components/riva-gems/stone.mapper.ts","webpack:///src/app/components/riva-gems/stone.service.ts","webpack:///src/app/components/riva-stl-viewer/riva-stl-viewer-dialog.component.html","webpack:///src/app/components/riva-stl-viewer/riva-stl-viewer-dialog.component.ts","webpack:///src/app/components/riva-super-admin-tools/riva-super-admin-toolscomponent.ts","webpack:///src/app/components/riva-super-admin-tools/riva-super-admin-tools.component.html","webpack:///src/app/components/riva-text-avatar/riva-text-avatar.component.ts","webpack:///src/app/components/riva-text-avatar/riva-text-avatar.component.html","webpack:///src/app/components/riva-timeout/riva-timeout.component.html","webpack:///src/app/components/riva-timeout/riva-timeout.component.ts","webpack:///src/app/components/sub-items/sub-items-confirmation.component.ts","webpack:///src/app/components/sub-items/sub-items-confirmation.component.html","webpack:///src/app/components/sub-items/sub-items-dialog.component.html","webpack:///src/app/components/sub-items/sub-items-dialog.component.ts","webpack:///src/app/components/sub-items/sub-items.component.html","webpack:///src/app/components/sub-items/sub-items.component.ts","webpack:///src/app/components/supplier-page/supplier-dialog/supplier-dialog.component.html","webpack:///src/app/components/supplier-page/supplier-dialog/supplier-dialog.component.ts","webpack:///src/app/components/supplier-page/supplier-page.component.html","webpack:///src/app/components/supplier-page/supplier-page.component.ts","webpack:///src/app/components/work-order-label-printing/work-order-label-printing.component.html","webpack:///src/app/components/work-order-label-printing/work-order-label-printing.component.ts","webpack:///src/app/components/work-order-tracking/work-order-tracking.component.html","webpack:///src/app/components/work-order-tracking/work-order-tracking.component.ts","webpack:///src/app/components/work-order-view/orphan-work-order-dialog/orphan-work-order-dialog.component.html","webpack:///src/app/components/work-order-view/orphan-work-order-dialog/orphan-work-order-dialog.component.ts","webpack:///src/app/components/work-order-view/receiving-item-dialog/receiving-item-dialog.component.html","webpack:///src/app/components/work-order-view/receiving-item-dialog/receiving-item-dialog.component.ts","webpack:///src/app/components/work-order-view/work-order-print/work-order-print-dialog.component.html","webpack:///src/app/components/work-order-view/work-order-print/work-order-print-dialog.component.ts","webpack:///src/app/components/work-order-view/work-order-type.ts","webpack:///src/app/components/work-order-view/work-order-view.component.html","webpack:///src/app/components/work-order-view/work-order-view.component.ts","webpack:///src/app/components/work-order-view/work-orders-release.component.html","webpack:///src/app/components/work-order-view/work-orders-release.component.ts","webpack:///src/app/components/work-order/work-order.component.html","webpack:///src/app/components/work-order/work-order.component.ts","webpack:///src/app/core/authentication/authentication.interceptor.ts","webpack:///src/app/core/authentication/authentication.service.ts","webpack:///src/app/core/authentication/token-storage.service.ts","webpack:///src/app/core/user-permission/user-permission-rules/customer-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/enamel-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/findings-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/index.ts","webpack:///src/app/core/user-permission/user-permission-rules/invoicing-shipping-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/order-details-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/other-component-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/pages.ts","webpack:///src/app/core/user-permission/user-permission-rules/product-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/purchase-order-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/reporting-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/stone-open-order-report-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/stone-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/supplier-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/work-order-movement-permission.ts","webpack:///src/app/core/user-permission/user-permission-rules/work-order-permission.ts","webpack:///src/app/core/user-permission/user-permission.directive.ts","webpack:///src/app/core/user-permission/user-permission.service.ts","webpack:///src/app/custom/_alert/alert.component.html","webpack:///src/app/custom/_alert/alert.component.ts","webpack:///src/app/custom/_alert/alert.model.ts","webpack:///src/app/custom/_alert/alert.module.ts","webpack:///src/app/custom/_alert/alert.service.ts","webpack:///src/app/custom/auth.guard.ts","webpack:///src/app/custom/directives/autofocus.directive.ts","webpack:///src/app/custom/directives/number-only.directive.ts","webpack:///src/app/custom/load-overlay/load-overlay.component.html","webpack:///src/app/custom/load-overlay/load-content-overlay.component.html","webpack:///src/app/custom/load-overlay/load-overlay.component.ts","webpack:///src/app/custom/load-overlay/load-overlay.service.ts","webpack:///src/app/custom/notification/notification.component.ts","webpack:///src/app/custom/notification/notification.component.html","webpack:///src/app/custom/pipes/enum-to-array.pipe.ts","webpack:///src/app/custom/pipes/id.pipe.ts","webpack:///src/app/custom/pipes/no-comma.pipe.ts","webpack:///src/app/custom/riva-side-nav/menu.ts","webpack:///src/app/custom/riva-side-nav/riva-side-nav.component.html","webpack:///src/app/custom/riva-side-nav/riva-side-nav.component.ts","webpack:///src/app/models/chain.model.ts","webpack:///src/app/models/chainfinished.model.ts","webpack:///src/app/models/customer.ts","webpack:///src/app/models/enamel.ts","webpack:///src/app/models/enum/bom-item-type.enum.ts","webpack:///src/app/models/enum/customer.enum.ts","webpack:///src/app/models/findings.model.ts","webpack:///src/app/models/gems.model.ts","webpack:///src/app/models/historylogs.model.ts","webpack:///src/app/models/inventory-log.ts","webpack:///src/app/models/login.ts","webpack:///src/app/models/manufactured-materials.ts","webpack:///src/app/models/material-code.ts","webpack:///src/app/models/metal-grain.ts","webpack:///src/app/models/nonprecious.model.ts","webpack:///src/app/models/orders.model.ts","webpack:///src/app/models/product-stock.ts","webpack:///src/app/models/product.ts","webpack:///src/app/models/raw-materials.model.ts","webpack:///src/app/models/request/product-search-request.ts","webpack:///src/app/models/rgw-order-import.response.ts","webpack:///src/app/models/suppliers.model.ts","webpack:///src/app/models/work-order.ts","webpack:///src/app/services/analytics.service.ts","webpack:///src/app/services/chain.service.ts","webpack:///src/app/services/chainfinished.service.ts","webpack:///src/app/services/chainfinishedinfo.service.ts","webpack:///src/app/services/customer-address.service.ts","webpack:///src/app/services/customer.service.ts","webpack:///src/app/services/enamel.service.ts","webpack:///src/app/services/findings.service.ts","webpack:///src/app/services/findingsinfo.service.ts","webpack:///src/app/services/gem.service.ts","webpack:///src/app/services/generic.service.ts","webpack:///src/app/services/history.service.ts","webpack:///src/app/services/inventory-log.service.ts","webpack:///src/app/services/invoice.service.ts","webpack:///src/app/services/jewelry-type.service.ts","webpack:///src/app/services/jira.service.ts","webpack:///src/app/services/manufactured-materials-info.service.ts","webpack:///src/app/services/manufactured-materials.service.ts","webpack:///src/app/services/material-code.service.ts","webpack:///src/app/services/metal-grain.service.ts","webpack:///src/app/services/metal-market.service.ts","webpack:///src/app/services/non-precious.service.ts","webpack:///src/app/services/order.service.ts","webpack:///src/app/services/orderdetails.service.ts","webpack:///src/app/services/other-components.service.ts","webpack:///src/app/services/pricing-addons.service.ts","webpack:///src/app/services/pricing-equation.service.ts","webpack:///src/app/services/print.service.ts","webpack:///src/app/services/product-bom.service.ts","webpack:///src/app/services/product-store-info.service.ts","webpack:///src/app/services/product.service.ts","webpack:///src/app/services/products-routing.service.ts","webpack:///src/app/services/raw-materials.service.ts","webpack:///src/app/services/rawmaterialsinfo.service.ts","webpack:///src/app/services/report.service.ts","webpack:///src/app/services/routing-code.service.ts","webpack:///src/app/services/scan.service.ts","webpack:///src/app/services/search-product.ts","webpack:///src/app/services/shared.service.ts","webpack:///src/app/services/shipments.service.ts","webpack:///src/app/services/sku.service.ts","webpack:///src/app/services/stone-release.service.ts","webpack:///src/app/services/sub-item.service.ts","webpack:///src/app/services/supplier.service.ts","webpack:///src/app/services/suppliers.service.ts","webpack:///src/app/services/unit-of-measurement.service.ts","webpack:///src/app/services/user.service.ts","webpack:///src/app/services/work-order-movement.service.ts","webpack:///src/app/services/work-order.service.ts","webpack:///src/app/shared%20modules/app-material/app-material.module.ts","webpack:///src/app/shared%20modules/shared.module.ts","webpack:///src/app/utilities/alphabet-characters.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///ignored|C:\\Jenkins%20Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|canvas","webpack:///ignored|C:\\Jenkins%20Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|fs","webpack:///ignored|C:\\Jenkins%20Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|http","webpack:///ignored|C:\\Jenkins%20Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|https","webpack:///ignored|C:\\Jenkins%20Workspace\\RIVA-PM-LIVE\\node_modules\\pdfjs-dist\\build|url","webpack:///ignored|C:\\Jenkins%20Workspace\\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","
\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, 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","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","
\r\n
\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 { 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

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 } 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 \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 { 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 {{ 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, 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","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","

    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 { 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","
    \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 {\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 \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, 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","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","
    \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 { 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 \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-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 \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-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 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 {\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 { 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","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","\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"," 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, 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","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","

    \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 { 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 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 } 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
    \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 { 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
    \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 { 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","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","\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, 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","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","
    \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 { 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 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 { 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","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","
    \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 { 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","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","
    \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 { 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","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","\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \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, 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 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 { 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","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","
    \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 { 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","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","

    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 { 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","
    \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 {\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","

    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 { 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","

    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 { 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","\r\n \r\n
    \r\n
    \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 { 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 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 { 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","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","

    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 { 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","
    \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 { 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","

    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, 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","
    \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, 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
    \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 { 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 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 { 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 \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 { 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 \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \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 { 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 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 { 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 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 } 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 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, 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","

    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, 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","\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, 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

    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 { 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","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","\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 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
    \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 {\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 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 { 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 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 { 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","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","
    \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 { 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 \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 { 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 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 { 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 \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 { 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

    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 { 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","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","
    \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, 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","

    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, 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","
    \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 { 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","

    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, 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","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","
    \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 { 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","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","
    \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 { 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
    \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 { 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

    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 { 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 \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 {\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 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 { 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 \r\n \r\n \r\n \r\n
    \r\n
    \r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-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 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 { 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 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 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

    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/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 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 { 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 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/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 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 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 { 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 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 } 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","

    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, 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","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","
    \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 { 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
    \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 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
    Enamel Constants
    \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} 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

    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 { 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
    \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 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

    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 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 \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 {\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

    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 { 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

    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, 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 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 } 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

    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 { 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
    \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 { 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
    \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 { 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","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","
    \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 { 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","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","
    \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, 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 \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, 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 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 { 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 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, 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 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 { 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 \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 {\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 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 { 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 \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 { 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 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 { 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 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 { 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 \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 { 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 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 { 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 \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 { 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 \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 { 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","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","
    \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 { 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 \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 { 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

    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 { 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

    \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 { 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

    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 { 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
    \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 { 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","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","
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 {\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","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","
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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, 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
    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, 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 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, 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","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","
    \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, 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","

    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 { 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","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","
    \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 { 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

    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 { 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

    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, 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

    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 { 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
    \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 { 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","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","
    \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","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","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","
    \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 { 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","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","
    \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 { 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
    \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 { 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 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 {\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","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","
    \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, 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","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","
    \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 { 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","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","
    \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 { 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","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","
    \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 { 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","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","
    \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 { 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","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","
    \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 { 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","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","
    \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 { 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

    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 { 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
    \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","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","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","\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, 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
    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 { 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 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 { 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

    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 { 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 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 { 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","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","
    \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 { 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 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 {\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","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","
    \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 { 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"," 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 {\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","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","
    \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, 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","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","
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 { 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","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","

    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 { 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","
    \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 {\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","

    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 { 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","
    \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 { 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
    \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 { 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 {{ 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 { 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","

    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 {\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","

    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 { 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","\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","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","export enum WorkOrderType {\r\n Product,\r\n Chain,\r\n Finding,\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 { 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 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, 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 \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 { 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","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","\r\n {{ alert.message }}\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","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","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","
    \r\n \r\n
    \r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \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","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","\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\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 { 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","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) */"]}