marketplacepos 2.4.8 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/Marketplace/162.380fb02c77fa6ec0.js +1 -0
  2. package/Marketplace/174.d9e54ac6a8d68fed.js +1 -0
  3. package/Marketplace/180.bfed0f08b5cdbbde.js +1 -0
  4. package/Marketplace/25.5e00713dbd080b64.js +1 -0
  5. package/Marketplace/32.9c83cc1dfc19e37d.js +1 -0
  6. package/Marketplace/360.4fa1f449dc516500.js +1 -0
  7. package/Marketplace/369.9e98af5ff042d408.js +1 -0
  8. package/Marketplace/397.017f0dd05d9d37c5.js +1 -0
  9. package/Marketplace/3rdpartylicenses.txt +568 -0
  10. package/Marketplace/455.fc7663306b753727.js +1 -0
  11. package/Marketplace/463.7140b32660c473a4.js +1 -0
  12. package/Marketplace/512.96a1a3c8c51a8727.js +1 -0
  13. package/Marketplace/516.f335756d88de781a.js +1 -0
  14. package/Marketplace/585.9e916b668a91cc94.js +1 -0
  15. package/Marketplace/6.fc79ecc0c0a33462.js +1 -0
  16. package/Marketplace/616.fb179a9605c3e98c.js +1 -0
  17. package/Marketplace/716.65e3e9a36c3e8be6.js +1 -0
  18. package/Marketplace/717.ea775a267d795788.js +1 -0
  19. package/Marketplace/739.82b92600f9519019.js +1 -0
  20. package/Marketplace/785.e0040d021febffb1.js +1 -0
  21. package/Marketplace/796.d34bd45b5a924fca.js +1 -0
  22. package/Marketplace/832.6082371d3ebb95a0.js +1 -0
  23. package/Marketplace/874.472e0cd7c75127ca.js +1 -0
  24. package/Marketplace/common.3f5874655db24424.js +1 -0
  25. package/Marketplace/index.html +22 -23
  26. package/Marketplace/main.5d7fbf88ea2e3736.js +1 -0
  27. package/Marketplace/polyfills.8d85b0533e3f867a.js +1 -0
  28. package/Marketplace/runtime.7fbde9d6c7315628.js +1 -0
  29. package/Marketplace/scripts.09af772bfa77d50d.js +1 -0
  30. package/Marketplace/styles.dff58ae3c0783953.css +20 -0
  31. package/package.json +1 -1
  32. package/Marketplace/common.js +0 -238
  33. package/Marketplace/common.js.map +0 -1
  34. package/Marketplace/default-node_modules_angular_forms_fesm2020_forms_mjs.js +0 -9551
  35. package/Marketplace/default-node_modules_angular_forms_fesm2020_forms_mjs.js.map +0 -1
  36. package/Marketplace/default-node_modules_angular_material_fesm2020_paginator_mjs.js +0 -797
  37. package/Marketplace/default-node_modules_angular_material_fesm2020_paginator_mjs.js.map +0 -1
  38. package/Marketplace/default-node_modules_angular_material_fesm2020_slide-toggle_mjs.js +0 -669
  39. package/Marketplace/default-node_modules_angular_material_fesm2020_slide-toggle_mjs.js.map +0 -1
  40. package/Marketplace/default-node_modules_ng-select_ng-select_fesm2020_ng-select-ng-select_mjs.js +0 -4632
  41. package/Marketplace/default-node_modules_ng-select_ng-select_fesm2020_ng-select-ng-select_mjs.js.map +0 -1
  42. package/Marketplace/default-src_app_menu_nav-tab_nav-tab_component_ts-node_modules_angular_material_fesm2020_date-e7a231.js +0 -6841
  43. package/Marketplace/default-src_app_menu_nav-tab_nav-tab_component_ts-node_modules_angular_material_fesm2020_date-e7a231.js.map +0 -1
  44. package/Marketplace/default-src_app_menu_nav-tab_nav-tab_component_ts-src_app_services_biggerPicture_service_ts-s-b16afe.js +0 -3316
  45. package/Marketplace/default-src_app_menu_nav-tab_nav-tab_component_ts-src_app_services_biggerPicture_service_ts-s-b16afe.js.map +0 -1
  46. package/Marketplace/default-src_app_model_enums_FilterType_enum_ts-src_app_sharing-module_table_table_component_ts.js +0 -6219
  47. package/Marketplace/default-src_app_model_enums_FilterType_enum_ts-src_app_sharing-module_table_table_component_ts.js.map +0 -1
  48. package/Marketplace/default-src_app_sharing-module_datepicker_datepicker_component_ts.js +0 -19965
  49. package/Marketplace/default-src_app_sharing-module_datepicker_datepicker_component_ts.js.map +0 -1
  50. package/Marketplace/main.js +0 -622
  51. package/Marketplace/main.js.map +0 -1
  52. package/Marketplace/polyfills.js +0 -3398
  53. package/Marketplace/polyfills.js.map +0 -1
  54. package/Marketplace/runtime.js +0 -346
  55. package/Marketplace/runtime.js.map +0 -1
  56. package/Marketplace/scripts.js +0 -9
  57. package/Marketplace/scripts.js.map +0 -1
  58. package/Marketplace/src_app_login_login_module_ts.js +0 -651
  59. package/Marketplace/src_app_login_login_module_ts.js.map +0 -1
  60. package/Marketplace/src_app_menu_ReportOrder_order_order_module_ts.js +0 -872
  61. package/Marketplace/src_app_menu_ReportOrder_order_order_module_ts.js.map +0 -1
  62. package/Marketplace/src_app_menu_ReportOrder_product-statistic_product-statistic_module_ts.js +0 -422
  63. package/Marketplace/src_app_menu_ReportOrder_product-statistic_product-statistic_module_ts.js.map +0 -1
  64. package/Marketplace/src_app_menu_ReportOrder_report_module_ts.js +0 -283
  65. package/Marketplace/src_app_menu_ReportOrder_report_module_ts.js.map +0 -1
  66. package/Marketplace/src_app_menu_channels_channels_module_ts.js +0 -9605
  67. package/Marketplace/src_app_menu_channels_channels_module_ts.js.map +0 -1
  68. package/Marketplace/src_app_menu_inventory_inventory_module_ts.js +0 -1547
  69. package/Marketplace/src_app_menu_inventory_inventory_module_ts.js.map +0 -1
  70. package/Marketplace/src_app_menu_logistic_logistic_module_ts.js +0 -245
  71. package/Marketplace/src_app_menu_logistic_logistic_module_ts.js.map +0 -1
  72. package/Marketplace/src_app_menu_menu_module_ts.js +0 -40326
  73. package/Marketplace/src_app_menu_menu_module_ts.js.map +0 -1
  74. package/Marketplace/src_app_menu_notification_notification_module_ts.js +0 -285
  75. package/Marketplace/src_app_menu_notification_notification_module_ts.js.map +0 -1
  76. package/Marketplace/src_app_menu_object-log_logs_module_ts.js +0 -1817
  77. package/Marketplace/src_app_menu_object-log_logs_module_ts.js.map +0 -1
  78. package/Marketplace/src_app_menu_orders_orders_module_ts.js +0 -4867
  79. package/Marketplace/src_app_menu_orders_orders_module_ts.js.map +0 -1
  80. package/Marketplace/src_app_menu_price_price_module_ts.js +0 -1885
  81. package/Marketplace/src_app_menu_price_price_module_ts.js.map +0 -1
  82. package/Marketplace/src_app_menu_products_product_module_ts.js +0 -2692
  83. package/Marketplace/src_app_menu_products_product_module_ts.js.map +0 -1
  84. package/Marketplace/styles.css +0 -16565
  85. package/Marketplace/styles.css.map +0 -1
  86. package/Marketplace/vendor.js +0 -71624
  87. package/Marketplace/vendor.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"src_app_menu_inventory_inventory_module_ts.js","mappings":"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","sources":["./src/app/menu/inventory/inventory-routing.module.ts","./src/app/menu/inventory/inventory.component.ts","./src/app/menu/inventory/inventory.component.html","./src/app/menu/inventory/inventory.module.ts","./src/app/menu/inventory/multi-channel-comparison/multi-channel-comparison.component.ts","./src/app/menu/inventory/multi-channel-comparison/multi-channel-comparison.component.html","./src/app/menu/inventory/single-channel-comparison/single-channel-comparison.component.ts","./src/app/menu/inventory/single-channel-comparison/single-channel-comparison.component.html"],"sourcesContent":["import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { InventoryComponent } from \"./inventory.component\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\nimport { MultiChannelComparison } from \"./multi-channel-comparison/multi-channel-comparison.component\";\r\nimport { SingleChannelComparisonComponent } from \"./single-channel-comparison/single-channel-comparison.component\";\r\nimport { AuthGuard } from \"src/app/services/auth.guard\";\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \"\",\r\n component: InventoryComponent,\r\n children: [\r\n {\r\n path: \"\",\r\n redirectTo: \"bychannel\",\r\n pathMatch: \"full\",\r\n },\r\n {\r\n path: \"pos\",\r\n component: MultiChannelComparison,\r\n canActivate: [AuthGuard],\r\n data: { title: \"Inventory Comparison\" },\r\n },\r\n {\r\n path: \"bychannel\",\r\n component: SingleChannelComparisonComponent,\r\n canActivate: [AuthGuard],\r\n data: { title: \"Inventory Comparison\" },\r\n },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule.forChild(routes)\r\n ]\r\n})\r\nexport class InventoryRoutingModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-inventory',\r\n templateUrl: './inventory.component.html',\r\n styleUrls: ['./inventory.component.scss']\r\n})\r\nexport class InventoryComponent {\r\n inventoryTabs : any = [\r\n { Title : 'Single Channel Comparison' , Url : '/menu/inventory/bychannel' },\r\n { Title : 'Multi Channel Comparison' , Url : '/menu/inventory/pos' }\r\n ];\r\n}\r\n","<nav class=\"navbar page-nav navbar-default py-0 navbar-expand-lg\">\r\n <div class=\"container-fluid \">\r\n <div>\r\n <!-- add nav-tab here -->\r\n <nav-tab [Tabs]=\"inventoryTabs\"></nav-tab>\r\n </div>\r\n </div>\r\n</nav>\r\n<router-outlet></router-outlet>","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InventoryComponent } from './inventory.component';\r\nimport { InventoryRoutingModule } from './inventory-routing.module';\r\nimport { SingleChannelComparisonComponent } from './single-channel-comparison/single-channel-comparison.component';\r\nimport { MultiChannelComparison } from './multi-channel-comparison/multi-channel-comparison.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NavTabModule } from '../nav-tab/nav-tab.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MainPanelModule } from '../main-panel/main-panel.component';\r\nimport { TableModule } from 'src/app/sharing-module/table/table.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InventoryRoutingModule,\r\n RouterModule,\r\n NavTabModule,\r\n FormsModule,\r\n NgSelectModule,\r\n MatSlideToggleModule,\r\n MainPanelModule,\r\n TableModule,\r\n MatTooltipModule\r\n ],\r\n declarations: [\r\n InventoryComponent,\r\n SingleChannelComparisonComponent,\r\n MultiChannelComparison\r\n ],\r\n schemas: [NO_ERRORS_SCHEMA]\r\n})\r\nexport class InventoryModule { }\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { HttpService } from \"../../../services/http.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { ScanDialogComponent } from \"../../modals/scan-dialog/scan-dialog.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ModalUpdateChannelsComponent } from \"../../modals/modal-update-channels/modal-update-channels.component\";\r\nimport { Channel } from \"src/app/model/core/Channel\";\r\nimport {\r\n InfinitePaginationService,\r\n Pagination,\r\n} from \"src/app/services/infinite-pagination/infinite-pagination.service\";\r\nimport { filter, Observable, tap } from \"rxjs\";\r\nimport { Constants } from \"src/app/model/Constants\";\r\nimport { ProductService } from \"src/app/services/product.service\";\r\nimport { FilterType } from \"src/app/model/enums/FilterType.enum\";\r\nimport { Product } from \"src/app/model/core/Product\";\r\n\r\n@Component({\r\n selector: \"app-multi-channel-comparison\",\r\n templateUrl: \"./multi-channel-comparison.component.html\",\r\n styleUrls: [\"./multi-channel-comparison.component.scss\"],\r\n})\r\nexport class MultiChannelComparison implements OnInit, OnDestroy {\r\n public channelOptions: Channel[];\r\n public pageData: any;\r\n public filterTypeOptions: any;\r\n public searchFilter: Pagination;\r\n public loader$: Observable<any>;\r\n public allDataCount$: Observable<number>;\r\n readonly loaderEndpoint = \"InventoryLoader/GetMultipleInventoryComparison\";\r\n readonly dataEndpoint = \"Inventory/GetMultipleChannelComparison\";\r\n readonly allDataCountEndpoint =\r\n \"Inventory/GetMultipleChannelComparisonRowCount\";\r\n\r\n constructor(\r\n private http: HttpService,\r\n private toastr: ToastrService,\r\n public dialog: MatDialog,\r\n public paginationService: InfinitePaginationService<any>,\r\n public productService: ProductService\r\n ) {\r\n this.filterTypeOptions = [\r\n { Key: 1, Value: \"All\" },\r\n { Key: 3, Value: \"Difference\" },\r\n ];\r\n this.pageData = {\r\n Title: \"Inventory\",\r\n Nav: [\r\n { Title: \"Inventory Cache\", Url: \"/menu/inventory/pos\", Active: true },\r\n {\r\n Title: \"Inventory Realtime\",\r\n Url: \"/menu/inventory/realtime\",\r\n Active: false,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initPageLoader();\r\n }\r\n\r\n private initPageLoader() {\r\n this.paginationService.fetchDataEndpoint = this.dataEndpoint;\r\n this.loader$ = this.http.post(`/API/${this.loaderEndpoint}`, {}).pipe(\r\n tap((loader: any) => {\r\n this.channelOptions = loader.Options.Channel;\r\n loader.Filter = {\r\n PageNumber: loader.Filter.PageNumber,\r\n filterModel: FilterType.ALL,\r\n RowCount: loader.Filter.PageSize,\r\n HiddenIPOSInventory:loader.Filter.HiddenIPOSInventory\r\n };\r\n this.searchFilter = loader.Filter;\r\n this.paginationService.resetToFirstPage(this.searchFilter);\r\n })\r\n );\r\n }\r\n\r\n public onSearch(text: string) {\r\n this.searchFilter.text = text;\r\n this.paginationService.resetToFirstPage(this.searchFilter);\r\n }\r\n\r\n public updateStock(products: Product[], channels: Channel[]): void {\r\n let listSelected: any[] =\r\n this.productService.selectedVariantProduct(products);\r\n if (listSelected.length > 0) {\r\n let request: any[] = listSelected.map((val) => {\r\n return {\r\n ID: val.ID,\r\n Code: val.Code,\r\n Inventory: val.Inventory,\r\n };\r\n });\r\n\r\n var selectedID: any[] = channels\r\n .filter((channel) => {\r\n return channel[\"selected\"];\r\n })\r\n .map((channel) => channel.ID);\r\n\r\n let params = {\r\n ListChannelID: selectedID,\r\n List: request,\r\n };\r\n\r\n this.http\r\n .post<any>(\"/api/Inventory/UpdateChannel\", params)\r\n .subscribe((result) => {\r\n this.paginationService.resetToFirstPage(this.searchFilter);\r\n this.toastr.success(\r\n \"Successfully updated \" +\r\n params.List.length +\r\n \" variants in \" +\r\n params.ListChannelID.length +\r\n \" channels\",\r\n \"Success\"\r\n );\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Opens the scan dialog and pass the Channel list and the filter variable\r\n * It will return the modified filter and will run the scan function that the user has selected (full or quick)\r\n */\r\n public openScanDialog() {\r\n let dialogFilter = JSON.parse(JSON.stringify(this.searchFilter));\r\n const dialogRef = this.dialog.open(ScanDialogComponent, {\r\n data: {\r\n filter: dialogFilter,\r\n channelOptions: this.channelOptions,\r\n },\r\n width: \"40%\",\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(filter((result) => Constants.IsNotEmpty(result)))\r\n .subscribe(\r\n (result: {\r\n ChannelID: string;\r\n ScanFull: boolean;\r\n UpdatedProduct: boolean;\r\n Async: boolean;\r\n }) => {\r\n this.searchFilter.ScanFull = result.ScanFull;\r\n this.searchFilter.ChannelID = result.ChannelID;\r\n this.searchFilter.UpdatedProduct = result.UpdatedProduct;\r\n this.searchFilter.Async = result.Async;\r\n this.scanAll();\r\n }\r\n );\r\n }\r\n\r\n private scanAll(): void {\r\n this.productService\r\n .scanAll(\r\n this.searchFilter.ChannelID,\r\n this.searchFilter.ScanFull,\r\n this.searchFilter.UpdatedProduct,\r\n this.searchFilter.Async\r\n )\r\n .subscribe((result) => {\r\n if (this.searchFilter.Async) {\r\n this.toastr.warning(\"You will be notified when the scan is completed.\", \"Scan In Progress\", {toastClass: 'ngx-toastr toast-waiting'});\r\n } else {\r\n let channel = this.productService.findChannelById(\r\n this.searchFilter.ChannelID,\r\n this.channelOptions\r\n );\r\n this.productService.successToastrScanAllProduct(\r\n result,\r\n channel,\r\n !this.searchFilter.UpdatedProduct\r\n );\r\n // init loader to get last sync date and get new data after scan\r\n this.initPageLoader();\r\n }\r\n this.searchFilter.ChannelID = Constants.GuidEMpty;\r\n });\r\n }\r\n\r\n public updateStockByVariant(item: any, products: Product[]): void {\r\n let params = {\r\n ID: item.ChannelID,\r\n ChannelItemID: item.ChannelItemID,\r\n ChannelVariantID: item.ChannelVariationID,\r\n NewQuantity: parseFloat(item.Inventory),\r\n VariantID: item.ID,\r\n SKU: item.Sku,\r\n };\r\n this.http\r\n .post(\"/api/Inventory/UpdateQuantityByItem\", params)\r\n .subscribe((result) => {\r\n let channel = this.productService.findChannelById(\r\n params.ID,\r\n this.channelOptions\r\n );\r\n this.toastr.success(\r\n \"Successfully updated \" +\r\n item.ItemName +\r\n \"(\" +\r\n item.VarName +\r\n \") inventory in \" +\r\n channel.Name +\r\n \" to \" +\r\n params.NewQuantity,\r\n \"Success\"\r\n );\r\n });\r\n }\r\n\r\n public onShowDifferenceStock(event: boolean) {\r\n if (event) {\r\n this.searchFilter.filterModel = FilterType.DIFFERENCE;\r\n } else {\r\n this.searchFilter.filterModel = FilterType.ALL;\r\n }\r\n this.paginationService.resetToFirstPage(this.searchFilter);\r\n }\r\n\r\n public onUpdateItems(products: Product[]) {\r\n const selectedItems = this.productService.selectedVariantProduct(products);\r\n this.dialog\r\n .open(ModalUpdateChannelsComponent, {\r\n data: {\r\n selectedItems: selectedItems,\r\n channels: JSON.parse(JSON.stringify(this.channelOptions)),\r\n },\r\n width: \"40%\",\r\n })\r\n .afterClosed()\r\n .pipe(filter((result) => Constants.IsNotEmpty(result)))\r\n .subscribe((result: Channel[]) => {\r\n this.updateStock(products, result);\r\n });\r\n }\r\n\r\n public getRowCount() {\r\n this.paginationService.hideCount = false;\r\n const payload = {\r\n text: this.searchFilter.text,\r\n };\r\n this.allDataCount$ = this.http.post<any>(\r\n `/API/${this.allDataCountEndpoint}`,\r\n payload\r\n );\r\n }\r\n\r\n public nextPage() {\r\n this.paginationService.onNextPage(this.searchFilter);\r\n }\r\n\r\n public getAllData() {\r\n this.http.post(`/API/${this.allDataCountEndpoint}`, {}).subscribe({\r\n next: (response: number) => {\r\n this.searchFilter.PageNumber = 1;\r\n this.paginationService.getAllData(this.searchFilter, response);\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.paginationService.destroy();\r\n }\r\n}\r\n","<mainpanel *ngIf=\"loader$ | async as loader\" headerTitle=\"Inventory Comparison\" [pageData]=\"pageData\"\r\n [hideSearchBox]=\"false\" [hideSearchDropdown]=\"true\" [textButton]=\"'Search'\" (onSubmit)=\"onSearch($event)\">\r\n \r\n <actions *ngIf=\"paginationService.data$ | async as data\">\r\n <div class=\"d-flex\">\r\n <div>\r\n <button type=\"button\" data-cy=\"scanInPos\" *ngIf=\"!productService.hasSelectionVariant(data)\"\r\n class=\"btn btn-outline-secondary shadow rounded me-3\" (click)=\"openScanDialog()\">\r\n <i class=\"fas fa-lg fa-crosshairs\"></i>\r\n Scan Channel\r\n </button>\r\n <button type=\"button\" class=\"btn btn-success shadow-sm rounded me-3\" *ngIf=\"productService.hasSelectionVariant(data)\"\r\n (click)=\"onUpdateItems(data)\">\r\n <i class=\"fas fa-chevron-circle-up\"></i>\r\n Update\r\n </button>\r\n </div>\r\n </div>\r\n </actions>\r\n\r\n <content >\r\n <div class=\"container-fluid mt-3\">\r\n <div class=\"row\" >\r\n <div class=\"col-md-12\">\r\n <app-table *ngIf=\"paginationService.data$ | async as data\" table=\"inventory\" [data]=\"data\"\r\n [channel]=\"channelOptions\" [showProductToggle]=\"true\" [filter]=\"searchFilter\"\r\n (onToggle)=\"onShowDifferenceStock($event)\" (onSubmit)=\"updateStockByVariant($event, data)\">\r\n </app-table>\r\n <ng-container>\r\n <div class=\"d-flex justify-content-between mt-5\">\r\n <div class=\"me-auto d-sm-block collapse mt-3\">\r\n <div class=\"font-weight-bold font-italic hidden-xxs\">\r\n Showing 1 -\r\n {{ (paginationService.data$ | async)?.length | number }}\r\n of\r\n <span style=\"cursor: pointer\" *ngIf=\"paginationService.hideCount\" (click)=\"getRowCount()\"><i\r\n title=\"Retreive rows count\" class=\"border p-3\">?</i>\r\n </span>\r\n <span *ngIf=\"\r\n !paginationService.hideCount && allDataCount$\r\n | async as allDataCount\r\n \">{{ allDataCount | number }}</span>\r\n records ~ {{ paginationService.footerPageNumber }} Page\r\n </div>\r\n </div>\r\n <div class=\"btn-group\">\r\n <a role=\"button\" class=\"btn btn-outline-secondary btn-sm text-primary\" *ngIf=\"\r\n paginationService.disableNextButton &&\r\n !paginationService.goToLastPage\r\n \" (click)=\"nextPage()\" title=\"Load more for 20 products\"><i class=\"fas fa-arrow-right\"></i> Next</a>\r\n <a role=\"button\" class=\"btn btn-outline-secondary btn-sm text-primary\" *ngIf=\"\r\n paginationService.disableNextButton &&\r\n !paginationService.goToLastPage\r\n \" (click)=\"getAllData()\" title=\"Load all products\"><i class=\"fas fa-share\"></i> Last</a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </content>\r\n</mainpanel>","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { HttpService } from \"../../../services/http.service\";\r\nimport { Product } from \"../../../model/core/Product\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ScanDialogComponent } from \"../../modals/scan-dialog/scan-dialog.component\";\r\nimport { TableDialogComponent } from \"src/app/sharing-module/table/table-dialog/table-dialog.component\";\r\nimport { filter, Observable, tap } from \"rxjs\";\r\nimport {\r\n InfinitePaginationService,\r\n Pagination,\r\n} from \"src/app/services/infinite-pagination/infinite-pagination.service\";\r\nimport { ProductService } from \"src/app/services/product.service\";\r\nimport { Variant } from \"src/app/model/core/Variant\";\r\nimport { Channel } from \"src/app/model/core/Channel\";\r\nimport { Constants } from \"src/app/model/Constants\";\r\nimport { FilterType } from \"src/app/model/enums/FilterType.enum\";\r\nimport { BiggerPictureService } from \"src/app/services/biggerPicture.service\";\r\n\r\n@Component({\r\n selector: \"app-single-channel-comparison\",\r\n templateUrl: \"./single-channel-comparison.component.html\",\r\n styleUrls: [\"./single-channel-comparison.component.scss\"],\r\n})\r\nexport class SingleChannelComparisonComponent implements OnInit, OnDestroy {\r\n public pageData: any;\r\n public Options: any;\r\n public checkboxState: boolean = false;\r\n public showDifferenceStock = false;\r\n private loaderApi = \"/api/InventoryLoader/Load\";\r\n private rowCountApi = \"/api/Inventory/GetInventoryByChannelRowCount\";\r\n public loader$: Observable<any>;\r\n public rowCount$: Observable<any>;\r\n public searchFilter: Pagination;\r\n public channelOptions: Channel[];\r\n public hostName: string;\r\n public minDate = Constants.MinDate;\r\n\r\n constructor(\r\n private http: HttpService,\r\n private toastr: ToastrService,\r\n public dialog: MatDialog,\r\n public paginationService: InfinitePaginationService<Product>,\r\n public productService: ProductService,\r\n private biggerPictureService: BiggerPictureService\r\n ) {\r\n this.Options = [\r\n { Key: 1, Value: \"All\" },\r\n { Key: 3, Value: \"Difference\" },\r\n ];\r\n this.pageData = {\r\n Title: \"Inventory Realtime\",\r\n Nav: [\r\n { Title: \"Inventory Cache\", Url: \"/menu/inventory\", Active: false },\r\n {\r\n Title: \"Inventory Realtime\",\r\n Url: \"/menu/inventory/realtime\",\r\n Active: true,\r\n },\r\n ],\r\n };\r\n this.hostName = productService.getHostName();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initPageLoader();\r\n }\r\n\r\n private initPageLoader() {\r\n this.paginationService.fetchDataEndpoint =\r\n \"Inventory/GetSingleChannelComparison\";\r\n this.loader$ = this.http.post(this.loaderApi, {}).pipe(\r\n tap((loader) => {\r\n this.channelOptions = loader.Options.Channel;\r\n this.searchFilter = {\r\n RowCount: loader.Filter.PageSize,\r\n filterModel: 1,\r\n PageNumber: 1,\r\n ChannelID: loader.Filter.ChannelID,\r\n };\r\n this.paginationService.resetToFirstPage(this.searchFilter);\r\n\r\n if (!loader.Filter.IsMarketplaceAppActive) {\r\n let msg =\r\n \"Automatic inventory sync disabled.\" +\r\n \"\\n\" +\r\n \" Please enable Dealpos X Marketplace Apps integration in POS Configuration\";\r\n this.toastr.warning(msg, \"Warning\");\r\n }\r\n })\r\n );\r\n }\r\n\r\n public onSearch(text: string) {\r\n this.searchFilter.text = text;\r\n this.paginationService.resetToFirstPage(this.searchFilter);\r\n }\r\n\r\n public onFilterChannel(channelId: string) {\r\n this.searchFilter.ChannelID = channelId;\r\n this.searchFilter.PageNumber = 1;\r\n this.paginationService.resetToFirstPage(this.searchFilter);\r\n }\r\n\r\n public updateStock(products: Product[]): void {\r\n const selectedVariants =\r\n this.productService.selectedVariantProduct(products);\r\n if (selectedVariants.length > 0) {\r\n let listVariantMapping = selectedVariants.map((variant) => {\r\n return {\r\n ID: variant.ID,\r\n Code: variant.Code,\r\n Inventory: variant.Inventory,\r\n };\r\n });\r\n\r\n let params = {\r\n ListChannelID: [this.searchFilter.ChannelID],\r\n List: listVariantMapping,\r\n };\r\n\r\n this.http\r\n .post<any>(\"/api/Inventory/UpdateChannel\", params)\r\n .subscribe((result) => {\r\n this.searchFilter.PageNumber = 1;\r\n this.paginationService.resetToFirstPage(this.searchFilter);\r\n this.toastr.success(\r\n \"Successfully updated \" +\r\n params.List.length +\r\n \" variants in \" +\r\n params.ListChannelID.length +\r\n \" channels\",\r\n \"Success\"\r\n );\r\n this.checkboxState = false;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Opens the scan dialog and pass the Channel list and the filter variable\r\n * It will return the modified filter and will run the scan function that the user has selected (full or quick)\r\n */\r\n public openScanDialog(loader) {\r\n const dialogFilter = JSON.parse(JSON.stringify(this.searchFilter));\r\n dialogFilter.ChannelID = Constants.GuidEMpty;\r\n const dialogRef = this.dialog.open(ScanDialogComponent, {\r\n data: {\r\n filter: dialogFilter,\r\n channelOptions: loader.Options.Channel,\r\n },\r\n width: \"40%\",\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(filter((result) => Constants.IsNotEmpty(result)))\r\n .subscribe(\r\n (result: {\r\n ChannelID: string;\r\n ScanFull: boolean;\r\n UpdatedProduct: boolean;\r\n Async: boolean;\r\n }) => {\r\n this.searchFilter.ChannelID = result.ChannelID;\r\n this.searchFilter.ScanFull = result.ScanFull;\r\n this.searchFilter.UpdatedProduct = result.UpdatedProduct;\r\n this.searchFilter.Async = result.Async;\r\n this.scannALl(loader);\r\n }\r\n );\r\n }\r\n\r\n private scannALl(loader): void {\r\n const channel = this.productService.findChannelById(\r\n this.searchFilter.ChannelID,\r\n loader.Options.Channel\r\n );\r\n\r\n this.productService\r\n .scanAll(\r\n this.searchFilter.ChannelID,\r\n this.searchFilter.ScanFull,\r\n this.searchFilter.UpdatedProduct,\r\n this.searchFilter.Async\r\n )\r\n .subscribe((result) => {\r\n if (this.searchFilter.Async) {\r\n this.toastr.warning(\"You will be notified when the scan is completed.\", \"Scan In Progress\", {toastClass: 'ngx-toastr toast-waiting'});\r\n } else {\r\n //reset filter\r\n this.searchFilter.ScanFull = false;\r\n // init loader to get last sync date and get new data after scan\r\n this.initPageLoader();\r\n this.toastr.success(\r\n \"Successfully scanned from \" + channel?.Name,\r\n \"Success\"\r\n );\r\n }\r\n });\r\n }\r\n\r\n public refreshInventory(\r\n ChannelItemID: string,\r\n ChannelVariationID: string,\r\n ChannelID: string,\r\n VariantID: String\r\n ) {\r\n let params = {\r\n ChannelItemID: ChannelItemID,\r\n ChannelVariationID: ChannelVariationID,\r\n ChannelID: ChannelID,\r\n VariantID: VariantID,\r\n };\r\n this.http\r\n .post(\"/api/Inventory/RefreshInventoryChannel\", params)\r\n .subscribe((result) => {\r\n this.toastr.success(\"Successfully updated\", \"Success\");\r\n this.paginationService.resetToFirstPage(this.searchFilter);\r\n });\r\n }\r\n\r\n public onCheckboxStateProduct(selectedProduct: Product): void {\r\n selectedProduct.Variants = selectedProduct.Variants.map((variant) => {\r\n if (variant.Inventory >= 0) {\r\n variant.selected = selectedProduct.selected;\r\n }\r\n return variant;\r\n });\r\n }\r\n\r\n public onCheckboxStateChange(products: Product[]): void {\r\n products = products.map((product) => {\r\n product.Variants = product.Variants.map((variant) => {\r\n variant.selected = this.checkboxState;\r\n return variant;\r\n });\r\n return product;\r\n });\r\n }\r\n\r\n public openTableDialog(\r\n product: Product,\r\n variant: Variant,\r\n products: Product[]\r\n ) {\r\n const dialogRef = this.dialog.open(TableDialogComponent, {\r\n data: {\r\n Name: product.Name,\r\n Variant: variant,\r\n ChannelID: variant?.Channel[0].ChannelID,\r\n Table: \"inventory\",\r\n ChannelItemID: product.ChannelItemID,\r\n },\r\n });\r\n\r\n dialogRef\r\n .afterClosed()\r\n .pipe(filter((result) => Constants.IsNotEmpty(result)))\r\n .subscribe((result) => {\r\n this.updateItemAfterDialog(result, products);\r\n });\r\n }\r\n\r\n /**\r\n * Is called after closing table dialog\r\n * originally UpdateStockByVariant() from iventory-pos\r\n * This component also has UpdateStockByVariant(), but it calls a different API, don't know why\r\n *\r\n * @param item result after closing table dialog\r\n */\r\n updateItemAfterDialog(item: any, products: Product[]): void {\r\n let params = {\r\n ID: item.ChannelID,\r\n ChannelItemID: item.ChannelItemID,\r\n ChannelVariantID: item.ChannelVariationID,\r\n NewQuantity: parseFloat(item.Inventory),\r\n VariantID: item.ID,\r\n SKU: item.Sku,\r\n };\r\n const channel = this.productService.findChannelById(\r\n this.searchFilter.ChannelID,\r\n this.channelOptions\r\n );\r\n this.http\r\n .post(\"/api/Inventory/UpdateQuantityByItem\", params)\r\n .subscribe((result) => {\r\n this.toastr.success(\r\n \"Successfully updated \" +\r\n item.ItemName +\r\n \"(\" +\r\n item.VarName +\r\n \") inventory in \" +\r\n channel?.Name +\r\n \" to \" +\r\n params.NewQuantity,\r\n \"Success\"\r\n );\r\n });\r\n }\r\n\r\n public onShowDifferenceStock() {\r\n if (this.showDifferenceStock) {\r\n this.searchFilter.filterModel = FilterType.DIFFERENCE;\r\n } else {\r\n this.searchFilter.filterModel = FilterType.ALL;\r\n }\r\n this.paginationService.resetToFirstPage(this.searchFilter);\r\n }\r\n\r\n public onNextPage() {\r\n this.paginationService.onNextPage(this.searchFilter);\r\n }\r\n\r\n public getRowCount() {\r\n const params = {\r\n ChannelID: this.searchFilter.ChannelID,\r\n PageNumber: 1,\r\n text: this.searchFilter.text,\r\n };\r\n this.paginationService.hideCount = false;\r\n this.rowCount$ = this.http.post<any>(`${this.rowCountApi}`, params);\r\n }\r\n\r\n public onLastPage() {\r\n const params = {\r\n ChannelID: this.searchFilter.ChannelID,\r\n PageNumber: 1,\r\n };\r\n this.http.post(`${this.rowCountApi}`, params).subscribe({\r\n next: (response: { Total: number }) => {\r\n this.searchFilter.PageNumber = 1;\r\n this.paginationService.getAllData(this.searchFilter, response.Total);\r\n },\r\n });\r\n }\r\n\r\n public onZoomImage(ev: PointerEvent, imageUrl: string) {\r\n this.biggerPictureService.openBiggerPicture(ev, imageUrl);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.paginationService.destroy();\r\n }\r\n}\r\n","<mainpanel *ngIf=\"loader$ | async as loader\" [headerTitle]=\"'Inventory Comparison'\" [pageData]=\"pageData\"\r\n [hideSearchBox]=\"false\" textButton=\"Search\" (onSubmit)=\"onSearch($event)\">\r\n <actions>\r\n <div class=\"d-flex\">\r\n <div *ngIf=\"(paginationService.data$ | async) as data\">\r\n <button *ngIf=\"!productService.hasSelectionVariant(data)\" type=\"button\" data-cy=\"scanInPos\"\r\n class=\"btn btn-outline-secondary shadow rounded me-3\" (click)=\"openScanDialog(loader)\"><i\r\n class=\"fas fa-lg fa-crosshairs\"></i>\r\n Scan Channel\r\n </button>\r\n\r\n <button *ngIf=\"productService.hasSelectionVariant(data)\" class=\"btn btn-success\"\r\n (click)=\"updateStock(data)\"><i class=\"fas fa-chevron-circle-up\"></i>\r\n Update</button>\r\n </div>\r\n </div>\r\n </actions>\r\n\r\n <filters>\r\n <div class=\"d-flex\">\r\n <div container>\r\n <div>\r\n <label for=\"PageNumber\">PageNumber</label>\r\n <input type=\"number\" id=\"PageNumber\" placeholder=\"PageNumber\" class=\"form-control\"\r\n [(ngModel)]=\"searchFilter.PageNumber\" name=\"PageNumber\" data-toggle=\"tooltip\"\r\n matTooltip=\"Page Number\" />\r\n </div>\r\n <div>\r\n <label for=\"RowCount\">Page Size</label>\r\n <input type=\"number\" id=\"RowCount\" placeholder=\"Page Size\" class=\"form-control\"\r\n [(ngModel)]=\"searchFilter.RowCount\" name=\"RowCount\" data-toggle=\"tooltip\"\r\n matTooltip=\"Page Size\" />\r\n </div>\r\n </div>\r\n </div>\r\n </filters>\r\n\r\n <content>\r\n <div class=\"container-fluid mt-3\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div *ngIf=\"searchFilter?.filterModel == 3\"\r\n class=\"alert alert-warning d-flex justify-content-between text-dark\" role=\"alert\">\r\n <span>\r\n showing only different stock, please press next to populate more data\r\n </span>\r\n </div>\r\n\r\n <table class=\"table border-bottom\">\r\n <thead class=\"thead-light sticky-top-thead\">\r\n <tr>\r\n <th scope=\"col\" class=\"text-center ps-12\" style=\"width: 25%;\" colspan=\"2\">Product <br />\r\n <mat-slide-toggle\r\n (toggleChange)=\"showDifferenceStock = !showDifferenceStock; onShowDifferenceStock()\">\r\n <small class=\"fw-bold\">Filter Different Inventory</small>\r\n </mat-slide-toggle>\r\n </th>\r\n <th scope=\"col\" class=\"text-start \">Variant</th>\r\n <th scope=\"col\" class=\"text-end\" style=\"width: 10%;\">SKU</th>\r\n <th *ngIf=\"(paginationService.data$ | async) as data;\"> <input type=\"checkbox\"\r\n [(ngModel)]=\"checkboxState\" (ngModelChange)=\"onCheckboxStateChange(data)\" />\r\n </th>\r\n <th scope=\"col\" class=\"text-end w-10\" style=\"width: 8%;\">POS</th>\r\n <th>\r\n <ng-select [clearable]=\"false\" (change)=\"onFilterChannel($event)\"\r\n [(ngModel)]=\"searchFilter.ChannelID\">\r\n <ng-option *ngFor=\"let c of loader.Options.Channel\" [value]=\"c.ID\"><img\r\n src=\"{{c.Img}}\" style=\"width:18px;margin-right:10px\" />{{c.Name}}\r\n </ng-option>\r\n </ng-select>\r\n </th>\r\n <th class=\"text-center\">Last Sync</th>\r\n <th style=\"width: 4%;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody *ngFor=\"let item of (paginationService.data$ | async) as data;\">\r\n <tr *ngFor=\"let v of item.Variants; let i = index\">\r\n <ng-container *ngIf=\"i == 0\">\r\n <td [rowSpan]=\"item?.Variants.length\" class=\"text-start\" style=\"width: 0%;\">\r\n <div class=\"d-flex align-items-center justify-content-start\">\r\n <input *ngIf=\"v?.Inventory >= 0 || item.Variants.length > 1\" type=\"checkbox\"\r\n [(ngModel)]=\"item.selected\" class=\"me-3\"\r\n (ngModelChange)=\"onCheckboxStateProduct(item)\" />\r\n <img *ngIf=\"item?.ThumbnailUrl; else elsePic\"\r\n class=\"border rounded w-img cursor-pointer\" src=\"{{item?.ThumbnailUrl}}\"\r\n style=\"margin-left: 20px\"\r\n (click)=\"onZoomImage($event, item?.ImageUrl)\" />\r\n <ng-template #elsePic><img class=\"border rounded w-img\"\r\n style=\"margin-left: 20px\"\r\n src=\"//res.cloudinary.com/pos/image/upload/w_40/POS/Images/Icon/products_thumb.png\" />\r\n </ng-template>\r\n </div>\r\n </td>\r\n <td [rowSpan]=\"item?.Variants.length\" class=\"text-start\">\r\n <span class=\"item-name mb-0\">{{item?.Name}}</span>\r\n <br />\r\n <div class=\"d-flex align-items-center\">\r\n <i class=\"fa-solid fa-tags me-2\" title=\"Category\" style=\"opacity: 60%;\"></i>\r\n <small>({{item?.Category}})</small>\r\n </div>\r\n </td>\r\n </ng-container>\r\n <td class=\"text-start\">{{v?.Model}}</td>\r\n <td class=\"text-end\">\r\n <div class=\"d-flex align-items-center justify-content-end\">\r\n <span>{{v?.Code}}</span>\r\n <span class=\"ms-2\">\r\n <a [href]=\"'https://'+hostName+'/menu/Products/Catalog/Variants/Info?ID='+v?.ID\"\r\n target=\"_blank\"><i\r\n class=\"fas fa-lg fa-external-link-alt external-link-custom\"></i></a>\r\n </span>\r\n </div>\r\n </td>\r\n <td class=\"align-middle\">\r\n <input type=\"checkbox\" *ngIf=\"v?.Inventory >= 0\" [(ngModel)]=\"v.selected\" />\r\n </td>\r\n <td class=\"text-end\">\r\n <span *ngIf=\"v?.Inventory != v?.I?.Available\">\r\n <span title=\"Allocated\"> {{v?.I?.Available | number}}</span> => <span\r\n title=\"Inventory below minimum inventory\">{{v?.Inventory | number}}</span>\r\n </span>\r\n <span *ngIf=\"v?.Inventory == v?.I?.Available\">\r\n {{v?.Inventory | number}}\r\n </span>\r\n\r\n </td>\r\n <td class=\"text-end\" *ngIf=\"v?.Channel\"\r\n [ngClass]=\"{'bg-gradient-warning': v?.Inventory != v?.Channel[0]?.Inventory }\">\r\n <div class=\"row justify-content-end me-0\">\r\n <div class=\"col-12 pe-12 text-end\" (click)=\"openTableDialog(item, v, data)\">\r\n <span>\r\n {{v?.Channel[0]?.Inventory | number}}\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </td>\r\n <td class=\"text-center\">\r\n <ng-container *ngIf=\"v?.Channel[0]?.LastInventorySync == minDate else SYNCDATE\">\r\n -\r\n </ng-container>\r\n\r\n <ng-template #SYNCDATE>\r\n <span matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"(v?.Channel[0]?.LastInventorySync | date: 'dd MMMM yyyy HH:mm:ss')\">\r\n {{v?.Channel[0]?.LastInventorySync | date: 'dd MMM yy HH:mm'}}\r\n </span>\r\n </ng-template>\r\n </td>\r\n <td>\r\n <div class=\"row\">\r\n <div class=\"col-12 ps-0 d-flex justify-content-between\">\r\n <a [href]=\"v?.Channel[0]?.Url\" target=\"_blank\">\r\n <i class=\"fas fa-lg fa-external-link-alt external-link-custom\"></i>\r\n </a>\r\n &nbsp;&nbsp;\r\n <span class=\"pl-5 cursor-pointer\" style=\"color: var(--bs-link-color);\"\r\n matTooltip=\"Refresh stock according to seller center\"\r\n (click)=\"refreshInventory(v?.Channel[0]?.ChannelItemID,v?.Channel[0]?.ChannelVariationID,v?.Channel[0]?.ChannelID,v?.ID)\">\r\n <i class=\"fas fa-sync fa-lg external-link-custom\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <div class=\"d-flex justify-content-between mt-5\">\r\n <div class=\"me-auto d-sm-block collapse mt-3\">\r\n <div class=\"font-weight-bold font-italic hidden-xxs\">\r\n Showing 1 -\r\n {{ (paginationService.data$ | async)?.length | number }}\r\n of\r\n <span style=\"cursor: pointer\" *ngIf=\"paginationService.hideCount\"\r\n (click)=\"getRowCount()\"><i title=\"Retreive rows count\" class=\"border p-3\">?</i>\r\n </span>\r\n <span *ngIf=\"\r\n !paginationService.hideCount && rowCount$\r\n | async as rowCount\r\n \">{{ rowCount?.Total | number }}</span>\r\n records ~ {{ paginationService.footerPageNumber }} Page\r\n </div>\r\n </div>\r\n <div class=\"btn-group\" *ngIf=\"(paginationService.data$ | async)?.length > 0\">\r\n <a role=\"button\" class=\"btn btn-outline-secondary btn-sm text-primary\" *ngIf=\"\r\n paginationService.disableNextButton &&\r\n !paginationService.goToLastPage\r\n \" (click)=\"onNextPage()\" title=\"Load more for 20 products\"><i\r\n class=\"fas fa-arrow-right\"></i> Next</a>\r\n <a role=\"button\" class=\"btn btn-outline-secondary btn-sm text-primary\" *ngIf=\"\r\n paginationService.disableNextButton &&\r\n !paginationService.goToLastPage\r\n \" (click)=\"onLastPage()\" title=\"Load all products\"><i class=\"fas fa-share\"></i> Last</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </content>\r\n</mainpanel>"],"names":["ScanDialogComponent","ModalUpdateChannelsComponent","filter","tap","Constants","FilterType","i0","ctx_r3","MultiChannelComparison","constructor","http","toastr","dialog","paginationService","productService","filterTypeOptions","Key","Value","pageData","Title","Nav","Url","Active","ngOnInit","initPageLoader","fetchDataEndpoint","dataEndpoint","loader$","post","loaderEndpoint","pipe","loader","channelOptions","Options","Channel","Filter","PageNumber","filterModel","ALL","RowCount","PageSize","HiddenIPOSInventory","searchFilter","resetToFirstPage","onSearch","text","updateStock","products","channels","listSelected","selectedVariantProduct","length","request","map","val","ID","Code","Inventory","selectedID","channel","params","ListChannelID","List","subscribe","result","success","openScanDialog","dialogFilter","JSON","parse","stringify","dialogRef","open","data","width","afterClosed","IsNotEmpty","ScanFull","ChannelID","UpdatedProduct","Async","scanAll","warning","toastClass","findChannelById","successToastrScanAllProduct","GuidEMpty","updateStockByVariant","item","ChannelItemID","ChannelVariantID","ChannelVariationID","NewQuantity","parseFloat","VariantID","SKU","Sku","ItemName","VarName","Name","onShowDifferenceStock","event","DIFFERENCE","onUpdateItems","selectedItems","getRowCount","hideCount","payload","allDataCount$","allDataCountEndpoint","nextPage","onNextPage","getAllData","next","response","ngOnDestroy","destroy","selectors","decls","vars","consts","template","TableDialogComponent","_r39","v_r27","_r35","ctx_r80","ctx_r0","SingleChannelComparisonComponent","biggerPictureService","MinDate","hostName","getHostName","loaderApi","IsMarketplaceAppActive","msg","onFilterChannel","channelId","selectedVariants","listVariantMapping","variant","checkboxState","scannALl","refreshInventory","onCheckboxStateProduct","selectedProduct","Variants","selected","onCheckboxStateChange","product","openTableDialog","Variant","Table","updateItemAfterDialog","showDifferenceStock","rowCount$","rowCountApi","onLastPage","Total","onZoomImage","ev","imageUrl","openBiggerPicture"],"sourceRoot":"webpack:///"}
@@ -1,245 +0,0 @@
1
- "use strict";
2
- (self["webpackChunkpos_marketplace"] = self["webpackChunkpos_marketplace"] || []).push([["src_app_menu_logistic_logistic_module_ts"],{
3
-
4
- /***/ 1549:
5
- /*!**********************************************************!*\
6
- !*** ./src/app/menu/logistic/logistic-routing.module.ts ***!
7
- \**********************************************************/
8
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
-
10
- __webpack_require__.r(__webpack_exports__);
11
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
- /* harmony export */ "LogisticRoutingModule": () => (/* binding */ LogisticRoutingModule)
13
- /* harmony export */ });
14
- /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ 4666);
15
- /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ 124);
16
- /* harmony import */ var _logistic_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logistic.component */ 2637);
17
- /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 2560);
18
-
19
-
20
-
21
-
22
-
23
- const routes = [
24
- { path: "", component: _logistic_component__WEBPACK_IMPORTED_MODULE_0__.LogisticComponent }
25
- ];
26
- class LogisticRoutingModule {
27
- }
28
- LogisticRoutingModule.ɵfac = function LogisticRoutingModule_Factory(t) { return new (t || LogisticRoutingModule)(); };
29
- LogisticRoutingModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineNgModule"]({ type: LogisticRoutingModule });
30
- LogisticRoutingModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjector"]({ imports: [_angular_common__WEBPACK_IMPORTED_MODULE_2__.CommonModule,
31
- _angular_router__WEBPACK_IMPORTED_MODULE_3__.RouterModule.forChild(routes)] });
32
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsetNgModuleScope"](LogisticRoutingModule, { imports: [_angular_common__WEBPACK_IMPORTED_MODULE_2__.CommonModule, _angular_router__WEBPACK_IMPORTED_MODULE_3__.RouterModule] }); })();
33
-
34
-
35
- /***/ }),
36
-
37
- /***/ 2637:
38
- /*!*****************************************************!*\
39
- !*** ./src/app/menu/logistic/logistic.component.ts ***!
40
- \*****************************************************/
41
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42
-
43
- __webpack_require__.r(__webpack_exports__);
44
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
45
- /* harmony export */ "LogisticComponent": () => (/* binding */ LogisticComponent)
46
- /* harmony export */ });
47
- /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 2560);
48
- /* harmony import */ var src_app_services_http_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! src/app/services/http.service */ 6858);
49
- /* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ngx-toastr */ 4817);
50
- /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 4666);
51
- /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/forms */ 2508);
52
- /* harmony import */ var _main_panel_main_panel_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../main-panel/main-panel.component */ 7481);
53
- /* harmony import */ var _angular_material_form_field__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/form-field */ 5074);
54
- /* harmony import */ var _angular_material_select__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/select */ 7371);
55
- /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/core */ 9121);
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
- function LogisticComponent_mat_option_8_Template(rf, ctx) { if (rf & 1) {
66
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "mat-option", 15);
67
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](1);
68
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]();
69
- } if (rf & 2) {
70
- const ch_r2 = ctx.$implicit;
71
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("value", ch_r2.ID);
72
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1);
73
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate1"](" ", ch_r2.Name, "");
74
- } }
75
- function LogisticComponent_tr_29_Template(rf, ctx) { if (rf & 1) {
76
- const _r5 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"]();
77
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "tr")(1, "td");
78
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2);
79
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]();
80
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "td");
81
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](4);
82
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]();
83
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "td");
84
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](6);
85
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]();
86
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](7, "td")(8, "input", 16);
87
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("ngModelChange", function LogisticComponent_tr_29_Template_input_ngModelChange_8_listener($event) { const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); const item_r3 = restoredCtx.$implicit; return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](item_r3.ProductSKU = $event); });
88
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()();
89
- } if (rf & 2) {
90
- const item_r3 = ctx.$implicit;
91
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2);
92
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate"](item_r3.Name);
93
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2);
94
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate"](item_r3.Service);
95
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2);
96
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate"](item_r3.Type);
97
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2);
98
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngModel", item_r3.ProductSKU);
99
- } }
100
- class LogisticComponent {
101
- constructor(http, toastr) {
102
- this.http = http;
103
- this.toastr = toastr;
104
- this.filter = {
105
- ChannelID: ""
106
- };
107
- this.pageData = {
108
- Title: "Logistic",
109
- Nav: []
110
- };
111
- this.LoaderChannel();
112
- }
113
- ngOnInit() {
114
- }
115
- Validate() {
116
- for (let item of this.list) {
117
- let cek = this.dataold.find(x => x.ProductSKU == item.ProductSKU && x.Name == item.Name);
118
- if (cek === undefined) {
119
- item.IsChange = true;
120
- }
121
- }
122
- return Promise.resolve(this.list);
123
- }
124
- Submit() {
125
- this.Validate().then(x => {
126
- this.http.post('/api/Logistic/Submit', this.list).subscribe(result => {
127
- this.toastr.success("Success", "Update Complete!", {
128
- timeOut: 5000,
129
- enableHtml: true,
130
- });
131
- this.Get();
132
- });
133
- });
134
- }
135
- LoaderChannel() {
136
- this.http.post('/api/Logistic/Load', {}).subscribe(result => {
137
- this.Channel = result.Options.Channel;
138
- this.filter = result.Filter;
139
- this.Name = this.Channel[0].Name;
140
- this.Get();
141
- });
142
- }
143
- Get() {
144
- this.dataold = [];
145
- this.http.post('/api/Logistic/Get', this.filter).subscribe(result => {
146
- let title = this.Channel.find(m => m.ID == this.filter.ChannelID);
147
- if (title != undefined) {
148
- this.Name = title.Name;
149
- }
150
- this.list = result;
151
- this.dataold = JSON.parse(JSON.stringify(this.list));
152
- });
153
- }
154
- }
155
- LogisticComponent.ɵfac = function LogisticComponent_Factory(t) { return new (t || LogisticComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](src_app_services_http_service__WEBPACK_IMPORTED_MODULE_0__.HttpService), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](ngx_toastr__WEBPACK_IMPORTED_MODULE_3__.ToastrService)); };
156
- LogisticComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ type: LogisticComponent, selectors: [["app-logistic"]], decls: 30, vars: 5, consts: [["hideSearchBox", "true", "searchBoxPlaceHolder", "Enter Number...", 3, "headerTitle", "hideSearchDropdown", "onSubmit"], ["container", ""], [1, "mb-3", "fw-normal"], ["appearance", "outline"], ["name", "channelid", "placeholder", "Channel", 3, "ngModel", "ngModelChange"], [3, "value", 4, "ngFor", "ngForOf"], ["role", "button", "data-toggle", "tooltip", "data-placement", "top", "matTooltip", "enter Logistic for recorded", 1, "btn", "btn-success", "btn-fill", "btn-lg", "text-white", 3, "click"], [1, "container-fluid", "mt-3"], [1, "row"], [1, "col-md-12"], [1, "table-responsive"], [1, "table", "table-hover"], [1, "sticky-top-thead"], [1, "table-light"], [4, "ngFor", "ngForOf"], [3, "value"], ["type", "text", "placeholder", "SKU", 1, "form-control", "w-50", 3, "ngModel", "ngModelChange"]], template: function LogisticComponent_Template(rf, ctx) { if (rf & 1) {
157
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "mainpanel", 0);
158
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("onSubmit", function LogisticComponent_Template_mainpanel_onSubmit_0_listener() { return ctx.Get(); });
159
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "filters")(2, "div", 1)(3, "div")(4, "h5", 2);
160
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](5, "Select a Channel");
161
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]();
162
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](6, "mat-form-field", 3)(7, "mat-select", 4);
163
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("ngModelChange", function LogisticComponent_Template_mat_select_ngModelChange_7_listener($event) { return ctx.filter.ChannelID = $event; });
164
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](8, LogisticComponent_mat_option_8_Template, 2, 2, "mat-option", 5);
165
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()()()();
166
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](9, "actions")(10, "a", 6);
167
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function LogisticComponent_Template_a_click_10_listener() { return ctx.Submit(); });
168
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](11, "Submit");
169
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()();
170
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](12, "content")(13, "div", 7)(14, "div", 8)(15, "div", 9)(16, "div", 10)(17, "table", 11)(18, "thead", 12)(19, "tr", 13)(20, "th");
171
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](21, "Logistic");
172
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]();
173
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](22, "th");
174
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](23, "Service");
175
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]();
176
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](24, "th");
177
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](25, "Type");
178
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]();
179
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](26, "th");
180
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](27, "SKU");
181
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()();
182
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](28, "tbody");
183
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](29, LogisticComponent_tr_29_Template, 9, 4, "tr", 14);
184
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()()()()()()();
185
- } if (rf & 2) {
186
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("headerTitle", "Logistic Courier - " + ctx.Name)("hideSearchDropdown", false);
187
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](7);
188
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngModel", ctx.filter.ChannelID);
189
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1);
190
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", ctx.Channel);
191
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](21);
192
- _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", ctx.list);
193
- } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.NgForOf, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.NgModel, _main_panel_main_panel_component__WEBPACK_IMPORTED_MODULE_1__.MainPanelComponent, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_6__.MatFormField, _angular_material_select__WEBPACK_IMPORTED_MODULE_7__.MatSelect, _angular_material_core__WEBPACK_IMPORTED_MODULE_8__.MatOption], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJsb2dpc3RpYy5jb21wb25lbnQuc2NzcyJ9 */"] });
194
-
195
-
196
- /***/ }),
197
-
198
- /***/ 5394:
199
- /*!**************************************************!*\
200
- !*** ./src/app/menu/logistic/logistic.module.ts ***!
201
- \**************************************************/
202
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
203
-
204
- __webpack_require__.r(__webpack_exports__);
205
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
206
- /* harmony export */ "LogisticModule": () => (/* binding */ LogisticModule)
207
- /* harmony export */ });
208
- /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 4666);
209
- /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/router */ 124);
210
- /* harmony import */ var _logistic_routing_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logistic-routing.module */ 1549);
211
- /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ 2508);
212
- /* harmony import */ var _logistic_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logistic.component */ 2637);
213
- /* harmony import */ var _main_panel_main_panel_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../main-panel/main-panel.component */ 7481);
214
- /* harmony import */ var _angular_material_select__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/select */ 7371);
215
- /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 2560);
216
-
217
-
218
-
219
-
220
-
221
-
222
-
223
-
224
- class LogisticModule {
225
- }
226
- LogisticModule.ɵfac = function LogisticModule_Factory(t) { return new (t || LogisticModule)(); };
227
- LogisticModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineNgModule"]({ type: LogisticModule });
228
- LogisticModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineInjector"]({ imports: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.CommonModule,
229
- _angular_router__WEBPACK_IMPORTED_MODULE_5__.RouterModule,
230
- _logistic_routing_module__WEBPACK_IMPORTED_MODULE_0__.LogisticRoutingModule,
231
- _angular_forms__WEBPACK_IMPORTED_MODULE_6__.FormsModule,
232
- _main_panel_main_panel_component__WEBPACK_IMPORTED_MODULE_2__.MainPanelModule,
233
- _angular_material_select__WEBPACK_IMPORTED_MODULE_7__.MatSelectModule] });
234
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsetNgModuleScope"](LogisticModule, { declarations: [_logistic_component__WEBPACK_IMPORTED_MODULE_1__.LogisticComponent], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.CommonModule,
235
- _angular_router__WEBPACK_IMPORTED_MODULE_5__.RouterModule,
236
- _logistic_routing_module__WEBPACK_IMPORTED_MODULE_0__.LogisticRoutingModule,
237
- _angular_forms__WEBPACK_IMPORTED_MODULE_6__.FormsModule,
238
- _main_panel_main_panel_component__WEBPACK_IMPORTED_MODULE_2__.MainPanelModule,
239
- _angular_material_select__WEBPACK_IMPORTED_MODULE_7__.MatSelectModule] }); })();
240
-
241
-
242
- /***/ })
243
-
244
- }]);
245
- //# sourceMappingURL=src_app_menu_logistic_logistic_module_ts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"src_app_menu_logistic_logistic_module_ts.js","mappings":"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","sources":["./src/app/menu/logistic/logistic-routing.module.ts","./src/app/menu/logistic/logistic.component.ts","./src/app/menu/logistic/logistic.component.html","./src/app/menu/logistic/logistic.module.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { LogisticComponent } from './logistic.component';\r\n\r\nconst routes: Routes = [\r\n { path: \"\", component: LogisticComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule.forChild(routes)\r\n ],\r\n declarations: []\r\n})\r\nexport class LogisticRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { HttpService } from 'src/app/services/http.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n@Component({\r\n selector: 'app-logistic',\r\n templateUrl: './logistic.component.html',\r\n styleUrls: ['./logistic.component.scss']\r\n})\r\nexport class LogisticComponent implements OnInit {\r\n pageData:any; \r\n list : any[];\r\n dataold :any[];\r\n Channel : any;\r\n filter : any = {\r\n ChannelID : \"\"\r\n };\r\n Name :string;\r\n constructor(private http: HttpService,private toastr: ToastrService) { \r\n this.pageData = {\r\n Title : \"Logistic\",\r\n Nav : []\r\n }\r\n this.LoaderChannel();\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n Validate(): Promise<any[]>{\r\n for(let item of this.list)\r\n {\r\n let cek = this.dataold.find(x=> x.ProductSKU == item.ProductSKU && x.Name == item.Name);\r\n if(cek === undefined){\r\n item.IsChange = true\r\n }\r\n }\r\n return Promise.resolve(this.list);\r\n }\r\n\r\n Submit()\r\n {\r\n this.Validate().then(x=>{\r\n this.http.post('/api/Logistic/Submit',this.list).subscribe(result=>{\r\n this.toastr.success(\"Success\",\"Update Complete!\",\r\n {\r\n timeOut: 5000,\r\n enableHtml: true,\r\n }); \r\n this.Get();\r\n })\r\n })\r\n \r\n }\r\n\r\n LoaderChannel(): void {\r\n this.http.post<any>('/api/Logistic/Load', {}).subscribe(result => {\r\n this.Channel = result.Options.Channel;\r\n this.filter = result.Filter;\r\n this.Name = this.Channel[0].Name;\r\n this.Get();\r\n })\r\n }\r\n\r\n Get() : void{ \r\n this.dataold =[];\r\n this.http.post<any>('/api/Logistic/Get',this.filter).subscribe(result=>{\r\n let title = this.Channel.find(m=> m.ID == this.filter.ChannelID);\r\n if(title != undefined)\r\n {\r\n this.Name = title.Name;\r\n }\r\n this.list = result;\r\n this.dataold = JSON.parse(JSON.stringify(this.list));\r\n })\r\n }\r\n\r\n}\r\n","<mainpanel [headerTitle]=\"'Logistic Courier - ' + Name\" (onSubmit)=\"Get()\" hideSearchBox=\"true\" [hideSearchDropdown]=\"false\" searchBoxPlaceHolder=\"Enter Number...\">\r\n <filters>\r\n <div container>\r\n <div>\r\n <h5 class=\"mb-3 fw-normal\">Select a Channel</h5>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select name=\"channelid\" placeholder=\"Channel\" [(ngModel)]=\"filter.ChannelID\">\r\n <mat-option *ngFor=\"let ch of Channel\" [value]=\"ch.ID\"> {{ch.Name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </filters>\r\n \r\n <actions>\r\n \r\n <a role=\"button\" class=\"btn btn-success btn-fill btn-lg text-white\" (click)=\"Submit()\" data-toggle=\"tooltip\" data-placement=\"top\" matTooltip=\"enter Logistic for recorded\">Submit</a>\r\n \r\n \r\n </actions>\r\n <content>\r\n <div class=\"container-fluid mt-3\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"table-responsive\">\r\n \r\n <table class=\"table table-hover\">\r\n <thead class=\"sticky-top-thead\">\r\n <tr class=\"table-light\">\r\n <th>Logistic</th>\r\n <th>Service</th>\r\n <th>Type</th>\r\n <th>SKU</th>\r\n </tr>\r\n </thead>\r\n \r\n <tbody>\r\n <tr *ngFor=\"let item of list\">\r\n <td>{{item.Name}}</td>\r\n <td>{{item.Service}}</td>\r\n <td>{{item.Type}}</td>\r\n <td><input type=\"text\" class=\"form-control w-50\" [(ngModel)]=\"item.ProductSKU\" placeholder=\"SKU\"></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </content>\r\n</mainpanel>\r\n\r\n\r\n\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { LogisticRoutingModule } from './logistic-routing.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LogisticComponent } from './logistic.component';\r\nimport { MainPanelModule } from '../main-panel/main-panel.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n LogisticRoutingModule,\r\n FormsModule,\r\n MainPanelModule,\r\n MatSelectModule\r\n ],\r\n declarations: [\r\n LogisticComponent\r\n ],\r\n schemas: [NO_ERRORS_SCHEMA]\r\n})\r\nexport class LogisticModule { }\r\n"],"names":[],"sourceRoot":"webpack:///"}