{"version":3,"sources":["webpack:///src/app/sotheby-common/alert-dialog/alert-dialog.component.html","webpack:///src/app/sotheby-common/confirm-dialog/confirm-dialog.component.ts","webpack:///src/services/user-auth.service.ts","webpack:///src/app/layout/full-screen/full-screen.component.html","webpack:///src/services/consigned-material-inventory.service.ts","webpack:///src/services/product-mrp.service.ts","webpack:///src/app/sotheby-common/snack-bar/snack-bar.component.html","webpack:///src/app/error.interceptor.ts","webpack:///src/app/shared.pipe.module.ts","webpack:///src/app/gnb/gnb.component.ts","webpack:///src/services/nonconformance.service.ts","webpack:///src/app/home/home.component.ts","webpack:///src/environments/environment.ts","webpack:///src/models/action-dialog.model.ts","webpack:///src/services/consigned-material-transfer.service.ts","webpack:///src/services/print.service.ts","webpack:///src/services/purchase.service.ts","webpack:///src/pipes/attachment.pipe.ts","webpack:///src/app/popup-dialog/popup-dialog.component.ts","webpack:///src/app/home/home.component.html","webpack:///src/services/common.service.ts","webpack:///src/app/header.interceptor.ts","webpack:///src/services/product.service.ts","webpack:///src/services/user.service.ts","webpack:///src/app/popup-dialog/popup-dialog.component.html","webpack:///src/services/auth.service.ts","webpack:///src/app/sotheby-common/alert-dialog/alert-dialog.component.ts","webpack:///src/app/layout/layout.component.html","webpack:///src/app/app.component.ts","webpack:///src/services/defect-management.service.ts","webpack:///src/services/busy-indicator.service.ts","webpack:///src/app/app.module.ts","webpack:///src/services/receipt-confirm.service.ts","webpack:///src/$_lazy_route_resource lazy namespace object","webpack:///src/services/tax-invoice.service.ts","webpack:///src/services/notice.service.ts","webpack:///src/services/consigned-material-common-model.service.ts","webpack:///src/functions/http-handler.ts","webpack:///src/app/jwt.interceptor.ts","webpack:///src/app/sotheby-common/snack-bar/snack-bar.component.ts","webpack:///src/services/consigned-material-product-plan.service.ts","webpack:///src/services/trade-item.service.ts","webpack:///src/app/sotheby-common/indicator-dialog/indicator-dialog.component.html","webpack:///src/app/layout/full-screen/full-screen.component.ts","webpack:///src/app/sotheby-common/confirm-dialog/confirm-dialog.component.html","webpack:///src/services/vendor.service.ts","webpack:///src/services/product-plan.service.ts","webpack:///src/app/sotheby-common/indicator-dialog/indicator-dialog.component.ts","webpack:///src/app/shared.material.module.ts","webpack:///src/services/consigned-material-payment-statement.service.ts","webpack:///src/app/layout/layout.component.ts","webpack:///src/app/gnb/gnb.component.html","webpack:///src/app/app-routing.module.ts","webpack:///src/services/attachment.service.ts","webpack:///src/services/common-code.service.ts","webpack:///src/functions/date-serializer.ts","webpack:///src/app/app.component.html","webpack:///src/main.ts"],"names":["ConfirmDialogComponent","dialogRef","data","action","create","actionId","actionName","read","update","close","UserAuthService","http","baseUrl","logger","_apiUrl","codes","userIds","pageNum","pageSize","param","vendorCodes","toString","get","params","pipe","auth","Id","id","programID","put","PRINT_TITLE","ConsignedMaterialInventoryService","fileSaver","printSvc","criteria","res","log","code","result","title","document","createElement","innerText","print","type","mimeType","mimeTypes","excel","pdf","extension","headers","responseType","subscribe","filename","saveAsBlob","file","File","save","ProductMrpService","csv","ErrorInterceptor","router","snackBar","authSvc","request","next","handle","err","status","isAuthenticated","warn","url","endsWith","handleAuthFail","refreshToken","t","authReq","clone","set","currentUserValue","token","message","error","undefined","openSnackBar","statusText","logout","navigate","open","duration","SharedPipeModule","GnbComponent","busyIndicator","AuthService","console","events","event","getElementById","style","display","name","contents","getElementsByName","forEach","content","NonconformanceService","nonconformanceType","HomeComponent","dialog","noticeSvc","notices","postData","now","Date","getTime","retrieveAll","filter","n","isPopup","dateFromTime","dateFrom","dateToTime","dateTo","i","length","localStorage","getItem","String","getLocalStorageWithExpiry","push","maxWidth","maxHeight","height","width","key","ttl","JSON","parse","removeItem","date","year","getFullYear","month","getMonth","day","getDate","environment","production","domain","paginator","pageSizeOption","binary","dialogSizes","wide","narrow","fullScreen","DialogAction","ConsignedMaterialTransferService","PrintService","headerElement","header","printInBlank","html","printArea","setAttribute","appendChild","innerHTML","outerHTML","printProxy","window","alert","write","focus","setTimeout","timer","clearTimeout","PurchaseService","AttachmentPipe","attachSvc","value","fileName","PopupDialogComponent","commonSvc","index","slideData","slideConfig","item","setItem","stringify","element","$event","toastMessage","attachmentId","download","CommonService","selectedVendor","selectedVendor$","asObservable","confirm","indicatorDialog","Promise","resolve","afterClosed","toast","openFromComponent","vendorInfo","NoCacheHeadersInterceptor","req","setHeaders","ProductService","platformId","prodName","UserService","user","post","_token_key","apiUrl","append","userSubject","currentUser","unsubscribe","email","password","rememberMe","grantType","GrantType","refresh","refresh_token","handleTokenResponse","clear","AlertDialogComponent","AppComponent","DefectManagementService","BusyIndicatorService","busy","AppModule","ReceiptConfirmService","ReceiptConfirm","webpackEmptyAsyncContext","then","e","Error","keys","module","exports","TaxInvoiceService","NoticeService","categories","categoryIds","items","notice","ConsignedMaterialCommonModelService","handleResponse","handleError","ErrorEvent","genQueryStr","property","paramValue","join","JwtInterceptor","Authorization","SnackBarComponent","ConsignedMaterialProductPlanService","TradeItemService","FullScreenComponent","VendorService","vendorName","ProductPlanService","searchTxt","IndicatorDialogComponent","cancellation","SharedMaterialModule","ConsignedMaterialPaymentStatement","LayoutComponent","isBusy","opened","collapsed","currentUser$","f","a","c","d","p","r","routes","path","component","children","pathMatch","loadChildren","AppRoutingModule","AttachmentService","Ids","ids","Array","isArray","reference","formData","FormData","attachment","SITE_TYPE","GROUP_CODE","TYPE_CODE","NOTICE_CATEGORY_CODE","FOURM_TYPE_CODE","FOURM_STATUS_CODE","APP_STATUS_CODE","CONFIRM_STATUS_CODE","YES_NO_CODE","SOURCE_CODE","YN_CODE","FOURM_STATUS","PURCHASE_CODE","CommonCodeService","_codes","codeIndex","findIndex","toLowerCase","details","getCodes","results","sort","prev","localeCompare","detail","convertToLocalString","dateStr","toLocaleDateString","elements","split","map","trim","substr","convertToTimeString","hour","getHours","min","getMinutes","parseDate","parseInt","mergeDateTime","time","setHours","getBaseUrl","getElementsByTagName","href","providers","provide","useFactory","deps"],"mappings":"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;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAGA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAIE;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAKM;AAAA;;AAAA;;AAAA;;AACE;;AAAA;;AAAA;;AAAA;;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","file":"main-es5.js","sourcesContent":["\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 { IDialog } from 'src/models/dialog.model';\r\nimport { DialogAction } from \"src/models/action-dialog.model\";\r\n\r\n@Component({\r\n selector: 'app-confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrls: ['./confirm-dialog.component.css']\r\n})\r\nexport class ConfirmDialogComponent implements OnInit {\r\n // private command: number;\r\n actionName: string;\r\n actionId: string;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: IDialog) { }\r\n\r\n ngOnInit() {\r\n // this.command = this.data.action;\r\n switch (this.data.action) {\r\n case DialogAction.create:\r\n this.actionId = \"create\";\r\n this.actionName = \"등록\";\r\n break;\r\n case DialogAction.read:\r\n this.actionId = \"read\";\r\n this.actionName = \"조회\";\r\n break;\r\n case DialogAction.update:\r\n this.actionId = \"update\";\r\n this.actionName = \"수정\";\r\n break;\r\n case DialogAction.delete:\r\n this.actionId = \"delete\";\r\n this.actionName = \"삭제\";\r\n break;\r\n default:\r\n this.actionName = \"\"\r\n }\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleResponse } from 'src/functions/http-handler';\r\nimport { IPagedList } from 'src/models/paged-list.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserAuthService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/UserAuth`;\r\n }\r\n\r\n get(codes: Array, userIds: Array, pageNum: number, pageSize: number) {\r\n const param = { vendorCodes: codes, userIds: userIds, pageNum: pageNum.toString(), pageSize: pageSize.toString() };\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(handleResponse>(this.logger, 'retrieve user auth'));\r\n }\r\n\r\n upsert(auth: IUserAuth) {\r\n const param = { Id: auth.id, programID: auth.programID };\r\n return this.http.put(this._apiUrl, auth, { params: param })\r\n .pipe(handleResponse(this.logger, 'upsert user auth'));\r\n }\r\n}\r\n\r\nexport interface IUserAuth {\r\n id: string,\r\n accountNum: string,\r\n programID: string,\r\n canWrite: boolean,\r\n canRead: boolean,\r\n canPrint: boolean,\r\n}\r\n\r\n","","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleError, handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { IResponse } from 'src/models/response.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nconst PRINT_TITLE = '사급품 재고 현황';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConsignedMaterialInventoryService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/ConsignedMaterialInventory`;\r\n }\r\n\r\n get(criteria: any) {\r\n return this.http.get(this._apiUrl, { params: criteria })\r\n .pipe(\r\n tap((res) => this.logger.log('retrieve consigned-material inventory', res)),\r\n catchError(handleError),\r\n map((data: IResponse) => {\r\n if (data.code == 'NoData') {\r\n return [];\r\n } else {\r\n return data.result;\r\n }\r\n })\r\n );\r\n }\r\n\r\n print(param: any) {\r\n let title = document.createElement('h2');\r\n title.innerText = PRINT_TITLE;\r\n return this.printSvc.print(this.http, `${this._apiUrl}/Print`, param, title);\r\n }\r\n\r\n export(param: any, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.excel : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.xlsx' : '.pdf';\r\n\r\n return this.http.get(`${this._apiUrl}/Export`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `ConsignedMaterialInventory${extension}`;\r\n this.saveAsBlob(res, filename, mimeType);\r\n })\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface IConsignedMaterialInventory {\r\n type: string,\r\n itemId: string,\r\n itemName: string,\r\n remainQty: number,\r\n}","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { NGXLogger } from 'ngx-logger';\nimport { handleResponse } from 'src/functions/http-handler';\nimport { PrintService } from './print.service';\nimport { FileSaverService } from 'ngx-filesaver';\nimport { environment } from 'src/environments/environment';\nimport { IPagedList } from 'src/models/paged-list.model';\n\nconst PRINT_TITLE = '6개월 예상 (생산)소요량 조회';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductMrpService {\n private _apiUrl: string;\n\n constructor(\n @Inject(HttpClient) protected http: HttpClient,\n @Inject('BASE_URL') baseUrl: string,\n private fileSaver: FileSaverService,\n private printSvc: PrintService,\n private logger: NGXLogger) {\n this._apiUrl = `${baseUrl}api/ProductMrp`;\n }\n\n get(param: any) {\n return this.http.get(this._apiUrl, { params: param })\n .pipe(handleResponse>(this.logger, 'retrieve packing slip'));\n }\n\n \n print(param: any) {\n let title = document.createElement('h2');\n title.innerText = PRINT_TITLE;\n\n return this.printSvc.print(this.http, `${this._apiUrl}/Print`, param, title);\n }\n\n export(param:any, type: 'sheet' | 'pdf') {\n const mimeType = (type == 'sheet') ? environment.mimeTypes.csv : environment.mimeTypes.pdf;\n const extension = (type == 'sheet') ? '.csv' : '.pdf'; \n\n return this.http.get(`${this._apiUrl}/Export?type=${type}`, {\n headers: { 'Accept': mimeType },\n responseType: 'blob', // This must be a Blob type\n params: param\n }).subscribe((res: Blob) => {\n var filename = `ProductMrp${extension}`;\n this.saveAsBlob(res, filename, mimeType);\n });\n }\n\n private saveAsBlob(data: any, filename: string, mimeType: string) {\n const file = new File([data], filename, { type: mimeType });\n this.fileSaver.save(file, filename);\n }\n}\n\nexport interface IProductMrp {\n itemId: string,\n itemName: string,\n vendName: string,\n vendAccount: string,\n plans: Array,\n}\n\nexport interface IProductMrpDetail {\n year: number,\n month: number,\n qty: number,\n}\n","{{data}}","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, mergeMap } from 'rxjs/operators';\r\n\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private router: Router,\r\n private snackBar: MatSnackBar,\r\n private authSvc: AuthService,\r\n private logger: NGXLogger) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n // TODO: refresh token 을 사용하여, 자동으로 인증을 연장하는 기능을 추가할 것.\r\n return next.handle(request)\r\n .pipe(\r\n catchError(err => {\r\n if (err.status === 401) {\r\n // 인증한 상태에서 401을 받았다면\r\n if (this.authSvc.isAuthenticated()) {\r\n this.logger.warn('error.interceptor', request);\r\n // Refresh Token이 실패했다면 다시 로그인을 해야 함.\r\n if (request.url.endsWith('/api/Token')) {\r\n this.handleAuthFail();\r\n } else {\r\n // 기타 API Call 에서 오류가 발생한 경우, Refresh Token을 이용해 연장을 시도.\r\n return this.authSvc.refreshToken()\r\n .pipe(\r\n // Refresh Token으로 인증 연장에 성공한 뒤, 기존의 요청을 재시도.\r\n mergeMap((t: any) => {\r\n const authReq = request.clone({ headers: request.headers.set('authorization', 'Bearer ' + this.authSvc.currentUserValue.token) });\r\n return next.handle(authReq);\r\n })\r\n );\r\n }\r\n } else {\r\n // 인증하지 않은 상태에서 401을 받았다면, 인증 절차의 실패 문제이므로, 페이지 유지 후 상태를 알림.\r\n if (request.url.endsWith('/api/Auth')) {\r\n let message = err.error;\r\n if (message.title != undefined) {\r\n message = message.title;\r\n }\r\n this.openSnackBar(`${message}`, null);\r\n } else {\r\n // 원인 불명의 경우, 초기화면으로 이동.\r\n this.handleAuthFail();\r\n }\r\n }\r\n }\r\n\r\n const error = err.error.message || err.statusText;\r\n return throwError(error);\r\n }))\r\n }\r\n\r\n private handleAuthFail() {\r\n this.authSvc.logout();\r\n this.openSnackBar('다시 로그인해 주세요.', null);\r\n this.router.navigate(['/account/log-in']);\r\n }\r\n\r\n private openSnackBar(message: string, action: string) {\r\n this.snackBar.open(message, action, {\r\n duration: 2000,\r\n });\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { BooleanPipe } from '../pipes/boolean.pipe';\r\nimport { CodePipe } from 'src/pipes/code.pipe';\r\nimport { TreePipe } from 'src/pipes/tree.pipe';\r\nimport { TextValuePairPipe } from 'src/pipes/text-value-pair.pipe';\r\nimport { AttachmentPipe } from 'src/pipes/attachment.pipe';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [\r\n AttachmentPipe,\r\n BooleanPipe,\r\n CodePipe,\r\n TreePipe,\r\n TextValuePairPipe,\r\n ],\r\n exports: [\r\n AttachmentPipe,\r\n BooleanPipe,\r\n CodePipe,\r\n TreePipe,\r\n TextValuePairPipe,\r\n ]\r\n})\r\nexport class SharedPipeModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Event, Router, NavigationStart, NavigationEnd, NavigationCancel, NavigationError } from '@angular/router';\r\nimport { BusyIndicatorService } from 'src/services/busy-indicator.service';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { AuthService } from 'src/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-gnb',\r\n templateUrl: './gnb.component.html',\r\n styleUrls: ['./gnb.component.scss']\r\n})\r\nexport class GnbComponent implements OnInit { \r\n\r\n constructor(\r\n private router: Router,\r\n private busyIndicator: BusyIndicatorService,\r\n private AuthService: AuthService,\r\n private logger: NGXLogger) {\r\n console.log(this.router.events);\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.router.events\r\n .subscribe((event: Event) => {\r\n switch (true) {\r\n case event instanceof NavigationStart: {\r\n this.busyIndicator.update(true);\r\n break;\r\n }\r\n\r\n case event instanceof NavigationEnd:\r\n case event instanceof NavigationCancel:\r\n case event instanceof NavigationError: {\r\n this.busyIndicator.update(false);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n })\r\n\r\n\r\n //관리자 이외 ADMIN 메뉴 안 보이도록\r\n\r\n //let email: string = this.AuthService.currentUserValue.email;\r\n\r\n //let type:string = this.AuthService.currentUserValue.type;\r\n //if (type != null) {\r\n\r\n // //const contents = document.getElementsByName('expand');\r\n\r\n // //if (type == \"Y\") {\r\n\r\n // // contents.forEach(content => {\r\n // // if (content.style.display == 'none')\r\n // // content.style.display = 'block';\r\n // // else\r\n // // content.style.display = 'none';\r\n // // });\r\n // //} else {\r\n // if (type == \"N\") document.getElementById('adminArea').style.display = 'none';\r\n \r\n //}\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n let type: string = this.AuthService.currentUserValue.type;\r\n if (type != 'Y') document.getElementById('adminArea').style.display = 'none';\r\n }\r\n\r\n expand(name: string) {\r\n\r\n console.log('expand');\r\n const contents = document.getElementsByName(name);\r\n \r\n \r\n\r\n //document.getElementById('adminArea').style.display = 'block';\r\n \r\n\r\n contents.forEach(content => {\r\n if (content.style.display == 'none')\r\n content.style.display = 'block';\r\n else\r\n content.style.display = 'none';\r\n });\r\n \r\n }\r\n \r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleError, handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { IResponse } from 'src/models/response.model';\r\nimport { of } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NonconformanceService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/Nonconformance`;\r\n }\r\n\r\n get(param: any) {\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(\r\n tap((res) => this.logger.log('retrieve nonconformance', res)),\r\n catchError(handleError),\r\n map((data: IResponse) => {\r\n if (data.code == 'NoData') {\r\n return [];\r\n } else {\r\n return data.result;\r\n }\r\n })\r\n );\r\n }\r\n\r\n export(param: any, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.excel : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.xlsx' : '.pdf';\r\n const nonconformanceType = param.nonconformanceType;\r\n\r\n return this.http.get(`${this._apiUrl}/Export`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `NonconformanceVendor_${nonconformanceType}${extension}`;\r\n this.saveAsBlob(res, filename, mimeType);\r\n });\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface INonconformance {\r\n nonconformanceDate: Date,\r\n model: string,\r\n itemId: string,\r\n itemName: string,\r\n problemTypeId: string,\r\n defectQty: number,\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { INotice, NoticeService } from 'src/services/notice.service';\r\nimport { PopupDialogComponent } from '../popup-dialog/popup-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n notices: Array = [];\r\n\r\n postData: any = [];\r\n\r\n constructor(\r\n private dialog: MatDialog\r\n , private noticeSvc: NoticeService\r\n , private logger: NGXLogger) {\r\n }\r\n\r\n ngOnInit() {\r\n const now = new Date().getTime();\r\n this.noticeSvc.retrieveAll()\r\n .subscribe(res => {\r\n const notices = res as Array;\r\n this.notices = notices.filter(n => n.isPopup && now >= this.dateFromTime(n.dateFrom) && now <= this.dateToTime(n.dateTo));\r\n\r\n for (let i = 0; i < this.notices.length; i++) {\r\n if (localStorage.getItem(String(this.notices[i].id))) {\r\n this.getLocalStorageWithExpiry(this.notices[i]);\r\n } else {\r\n this.postData.push(this.notices[i]);\r\n }\r\n }\r\n\r\n if (this.postData.length > 0) {\r\n this.dialog.open(PopupDialogComponent, {\r\n data: this.postData,\r\n maxWidth: '100vw',\r\n maxHeight: '100vh',\r\n height: '60%',\r\n width: '60%',\r\n\r\n });\r\n }\r\n\r\n //for (let i = 0; i < this.notices.length; i++) {\r\n\r\n // if (localStorage.getItem(String(this.notices[i].id))) {\r\n // this.getLocalStorageWithExpiry(this.notices[i]);\r\n // }\r\n // else {\r\n // //팝업여러개 출력되도록 수정\r\n // //if (i ==0) {\r\n // this.dialog.open(PopupDialogComponent, { data: this.notices[i] });\r\n // //}\r\n // }\r\n\r\n //}\r\n this.logger.log(\"notices\", this.notices);\r\n });\r\n }\r\n\r\n getLocalStorageWithExpiry(key: INotice) {\r\n const now = new Date().getTime();\r\n const ttl = JSON.parse(localStorage.getItem(String(key.id))).ttl;\r\n if (now > ttl) {\r\n localStorage.removeItem(String(key.id));\r\n this.dialog.open(PopupDialogComponent, { data: key });\r\n }\r\n }\r\n\r\n dateFromTime(date: Date) {\r\n const year = new Date(date).getFullYear();\r\n const month = new Date(date).getMonth();\r\n const day = new Date(date).getDate();\r\n return new Date(year, month, day).getTime();\r\n }\r\n\r\n dateToTime(date: Date) {\r\n const year = new Date(date).getFullYear();\r\n const month = new Date(date).getMonth();\r\n const day = new Date(date).getDate() + 1;\r\n return new Date(year, month, day).getTime();\r\n }\r\n}\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 domain: 'TYM',\r\n paginator: {\r\n pageSizeOption: [5, 10, 25, 100],\r\n pageSize: 10\r\n },\r\n mimeTypes: {\r\n excel: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n pdf: 'application/pdf',\r\n binary: 'application/octet-stream',\r\n csv: 'text/csv',\r\n },\r\n dialogSizes: {\r\n wide: '750px',\r\n narrow: '300px',\r\n fullScreen: '100vw',\r\n }\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","export enum DialogAction {\r\n create,\r\n read,\r\n update,\r\n delete\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleError, handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { IResponse } from 'src/models/response.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConsignedMaterialTransferService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/ConsignedMaterialTransfer`;\r\n }\r\n\r\n get(criteria: any) {\r\n return this.http.get(this._apiUrl, { params: criteria })\r\n .pipe(\r\n tap((res) => this.logger.log('retrieve consigned-material transfer', res)),\r\n catchError(handleError),\r\n map((data: IResponse) => {\r\n if (data.code == 'NoData') {\r\n return [];\r\n } else {\r\n return data.result;\r\n }\r\n })\r\n );\r\n }\r\n\r\n getCarryOver(criteria: any) {\r\n return this.http.get(`${this._apiUrl}/CarryOver`, { params: criteria })\r\n .pipe(\r\n tap((res) => this.logger.log('retrieve consigned-material transfer carry over', res)),\r\n catchError(handleError),\r\n map((data: IResponse) => {\r\n if (data.code == 'NoData') {\r\n return [];\r\n } else {\r\n return data.result;\r\n }\r\n })\r\n );\r\n }\r\n\r\n export(param: any, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.excel : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.xlsx' : '.pdf';\r\n\r\n return this.http.get(`${this._apiUrl}/Export`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `ConsignedMaterialTransfer${extension}`;\r\n this.saveAsBlob(res, filename, mimeType);\r\n })\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface IConsignedMaterialTransfer {\r\n datePhysical: Date,\r\n receiveQty: number,\r\n deliveryQty: number,\r\n note: string,\r\n referenceId: string,\r\n inventSiteId: string,\r\n itemId: string,\r\n itemName: string,\r\n vendAccount: string,\r\n etc: string,\r\n preQty: number,\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { delay } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PrintService {\r\n\r\n constructor(private logger: NGXLogger) { }\r\n\r\n print(http: HttpClient, url: string, params: HttpParams | { [param: string]: string | string[] }, headerElement: HTMLElement) {\r\n const header = { 'Accept': 'text/html' }\r\n return http.get(url, { headers: header, responseType: 'text', params: params })\r\n .subscribe(res => {\r\n this.printInBlank(res, headerElement);\r\n }, err => {\r\n this.logger.error(err);\r\n throw err;\r\n });\r\n }\r\n\r\n private printInBlank(html: string, headerElement: HTMLElement) {\r\n let printArea = document.createElement('div');\r\n printArea.setAttribute('id', 'container');\r\n\r\n // TODO: decorate layout.\r\n let title = document.createElement('div');\r\n title.setAttribute('style', 'text-align: center');\r\n title.appendChild(headerElement);\r\n\r\n printArea.innerHTML = title.outerHTML;\r\n printArea.innerHTML += html as string;\r\n\r\n const printProxy = window.open();\r\n\r\n if (printProxy == null) {\r\n alert(\"팝업 차단 기능이 설정되어있습니다.\\n\\n차단 기능을 해제(팝업허용) 한 후 다시 시도 부탁드립니다.\");\r\n }\r\n\r\n printProxy.document.write(printArea.innerHTML);\r\n\r\n //printProxy.document.close();\r\n //printProxy.focus();\r\n\r\n let focus = false;\r\n\r\n //onload 되기전에 print 하면 바코드 이미지 안뜸\r\n //printProxy.onload = (event) => { \r\n\r\n //바코드 이미지 표시를 위한.\r\n setTimeout(() => {\r\n printProxy.window.print();\r\n printProxy.focus();\r\n focus = true;\r\n },300);\r\n\r\n let timer = setTimeout(() => { if (focus === true) { printProxy.window.close(); } }, 300);\r\n\r\n delay(1000);\r\n\r\n clearTimeout(timer)\r\n\r\n\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { environment } from 'src/environments/environment';\r\nimport { IPagedList } from 'src/models/paged-list.model';\r\n\r\nconst PRINT_TITLE = '발주서조회출력';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PurchaseService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/Purchase`;\r\n }\r\n\r\n get(param: any) {\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(handleResponse>(this.logger, 'retrieve purch'));\r\n }\r\n\r\n getChangeSet(param: any) {\r\n return this.http.get(`${this._apiUrl}/ChangeSet`, { params: param })\r\n .pipe(handleResponse>(this.logger, 'retrieve purch changeSet'));\r\n }\r\n\r\n print(param: any) {\r\n let title = document.createElement('h2');\r\n title.innerText = PRINT_TITLE;\r\n return this.printSvc.print(this.http, `${this._apiUrl}/Print`, param, title);\r\n }\r\n\r\n export(param: any, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.excel : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.xlsx' : '.pdf';\r\n\r\n return this.http.get(`${this._apiUrl}/Export`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `Purchase${extension}`;\r\n this.saveAsBlob(res, filename, mimeType);\r\n })\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface IPurchase {\r\n purchId: string,\r\n lineNumber: string,\r\n createDateTime: Date,\r\n deliveryDate: Date,\r\n itemId: string,\r\n itemName: string,\r\n purchQty: number,\r\n qty: number,\r\n remainPurchPhysical: number,\r\n purchPrice: number,\r\n lineAmount: number,\r\n currencyCode: string,\r\n inventSiteId: string,\r\n inventTransId: string,\r\n gubun: string,\r\n tymAqlType: string,\r\n}\r\n\r\nexport interface IPurchaseChangeSet {\r\n purchaseId: string,\r\n itemId: string,\r\n versionDateTime: Date,\r\n deliveryDate: Date,\r\n purchaseQuantity: number,\r\n purchaseUnit: string,\r\n purchasePrice: number,\r\n lineAmount: number,\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AttachmentService } from 'src/services/attachment.service';\r\n\r\n@Pipe({\r\n name: 'attach'\r\n})\r\nexport class AttachmentPipe implements PipeTransform {\r\n\r\n constructor(private attachSvc: AttachmentService) {\r\n }\r\n\r\n transform(value: string, ...args: unknown[]) {\r\n if (!!value) {\r\n return this.attachSvc.get(value)\r\n .pipe(\r\n map((res) => { return res.fileName; })\r\n );\r\n } else {\r\n return of('없음');\r\n }\r\n }\r\n}\r\n","import { Component, Inject, NgModule, OnInit } from '@angular/core';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { INotice, NoticeService } from 'src/services/notice.service';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AttachmentService, IAttachment } from 'src/services/attachment.service';\r\nimport { CommonService } from 'src/services/common.service';\r\n\r\n@Component({\r\n selector: 'app-popup-dialog',\r\n templateUrl: './popup-dialog.component.html',\r\n styleUrls: ['./popup-dialog.component.css'],\r\n})\r\nexport class PopupDialogComponent implements OnInit {\r\n notices: INotice;\r\n index: number = 0;\r\n slideData: any = this.data;\r\n\r\n slideConfig = { \"slidesToShow\": 1, \"autoplay\": true, \"autoplaySpeed\": 3000, \"dots\": true, \"infinite\": true, \"pauseOnHover\": true }; \r\n constructor(\r\n private logger: NGXLogger,\r\n @Inject(MAT_DIALOG_DATA) public data: INotice,\r\n private attachSvc: AttachmentService,\r\n private commonSvc: CommonService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n console.log(this.data);\r\n //this.notices = this.data;\r\n\r\n }\r\n\r\n setLocalStorageWithExpiry(key, value) {\r\n const now = new Date().getTime();\r\n const item = {\r\n value: value,\r\n ttl: now + 86400000\r\n }\r\n localStorage.setItem(key, JSON.stringify(item));\r\n }\r\n\r\n FileDown(element: INotice, $event: any) {\r\n this.logger.log('$event', $event);\r\n try {\r\n this.commonSvc.toastMessage('파일 다운중입니다. 잠시만 기다려주세요.'); \r\n this.attachSvc.get(element.attachmentId)\r\n .subscribe(res => {\r\n this.attachSvc.download(res);\r\n })\r\n\r\n } catch (err) {\r\n this.logger.error(`failed to upload file, ${err}`);\r\n this.commonSvc.toastMessage('파일 다운에 실패하였습니다. 다시 시도해주세요.');\r\n }\r\n\r\n }\r\n\r\n}\r\n","\r\n
\r\n\r\n
\r\n \r\n Welcome to
\r\n Cooperative firm
\r\n VAN system\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n","import { Injectable } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { IDialog } from \"../models/dialog.model\";\r\nimport { ConfirmDialogComponent } from \"../app/sotheby-common/confirm-dialog/confirm-dialog.component\";\r\nimport { SnackBarComponent } from \"../app/sotheby-common/snack-bar/snack-bar.component\";\r\nimport { DialogAction } from \"src/models/action-dialog.model\";\r\nimport { AlertDialogComponent } from \"src/app/sotheby-common/alert-dialog/alert-dialog.component\";\r\nimport { IndicatorDialogComponent } from \"src/app/sotheby-common/indicator-dialog/indicator-dialog.component\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { NGXLogger } from \"ngx-logger\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CommonService {\r\n data: IDialog = new (class implements IDialog {\r\n action: number;\r\n content: string;\r\n title: string;\r\n })();\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private logger: NGXLogger\r\n ) {}\r\n\r\n confirmCreate() {\r\n this.data = {\r\n title: \"잠시만요!\",\r\n content: \"정말 등록하시겠습니까?\",\r\n action: DialogAction.create,\r\n };\r\n return this.confirm(this.data);\r\n }\r\n\r\n alertMessage(content: string) {\r\n this.data = {\r\n title: \"잠시만요!\",\r\n content: content,\r\n action: DialogAction.read,\r\n };\r\n return this.alert(this.data);\r\n }\r\n\r\n alertIndicator(message: string) {\r\n this.data = {\r\n title: \"잠시만요!\",\r\n content: message,\r\n action: DialogAction.read,\r\n };\r\n\r\n return this.indicatorDialog(this.data);\r\n }\r\n\r\n confirmDelete() {\r\n this.data = {\r\n title: \"잠시만요!\",\r\n content:\r\n \"삭제한 데이터는 복구할 수 없습니다.
정말로 삭제하시겠습니까?\",\r\n action: DialogAction.delete,\r\n };\r\n return this.confirm(this.data);\r\n }\r\n\r\n private indicatorDialog(data: IDialog) {\r\n const dialogRef = this.dialog.open(IndicatorDialogComponent, {\r\n data: { ...data },\r\n });\r\n\r\n return dialogRef;\r\n }\r\n\r\n private alert(data: IDialog): Promise {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: { ...data },\r\n });\r\n return new Promise((resolve) => {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.logger.log(\"alert dialog closed\", result);\r\n resolve(!!result);\r\n });\r\n });\r\n }\r\n\r\n // data에 담긴 값을 이용해 실제로 dialog를 띄우고, Promise를 return하는 실행 로직이 담긴 메소드.\r\n private confirm(data: IDialog): Promise {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: { title: data.title, content: data.content, action: data.action },\r\n });\r\n\r\n return new Promise((resolve) => {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.logger.log(\"confirm dialog closed\", result);\r\n resolve(!!result);\r\n });\r\n });\r\n }\r\n\r\n toastCreated() {\r\n this.toast(\"저장했습니다.\");\r\n }\r\n\r\n toastFailed() {\r\n this.toast(\"문제가 발생했습니다.\");\r\n }\r\n\r\n authFail() {\r\n this.toast(\"인증에 실패하였습니다.\", 3000);\r\n }\r\n\r\n toastContactToAdmin() {\r\n this.toast(\"관리자에게 문의하세요.\", 3000);\r\n }\r\n toastMessage(content: string) {\r\n this.toast(content, 3000);\r\n }\r\n private toast(content: string, duration: number = 1000) {\r\n this.snackBar.openFromComponent(SnackBarComponent, {\r\n duration: duration,\r\n data: content,\r\n });\r\n }\r\n\r\n private selectedVendor = new BehaviorSubject(\"\");\r\n selectedVendor$ = this.selectedVendor.asObservable();\r\n changeVendor(vendorInfo: any) {\r\n this.selectedVendor.next(vendorInfo);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class NoCacheHeadersInterceptor implements HttpInterceptor {\r\n intercept(req: HttpRequest, next: HttpHandler) {\r\n const authReq = req.clone({\r\n // Prevent caching in IE, in particular IE11.\r\n // See: https://support.microsoft.com/en-us/help/234067/how-to-prevent-caching-in-internet-explorer\r\n setHeaders: {\r\n 'Cache-Control': 'no-cache, no-store, must-revalidate',\r\n 'expires':'0',\r\n 'Pragma': 'no-cache'\r\n }\r\n });\r\n return next.handle(authReq);\r\n }\r\n}\r\n\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { IResponse } from 'src/models/response.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductService {\r\n private readonly _apiUrl: string;\r\n\r\n constructor(private http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n @Inject(PLATFORM_ID) private platformId: Object,\r\n private logger: NGXLogger) {\r\n this._apiUrl = baseUrl + 'api/Product';\r\n }\r\n\r\n search(prodName: string) {\r\n let param = { prodName: '' };\r\n if (!!prodName) param.prodName = prodName; // null undefined가 아닌 경우만 기능하도록\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(\r\n tap(data => this.logger.log('search', data)),\r\n catchError(err => {\r\n this.logger.error(err);\r\n return throwError(err);\r\n }),\r\n map((res: IResponse) => res.result),\r\n );\r\n }\r\n\r\n retrieveAll() {\r\n return this.http.get(this._apiUrl)\r\n .pipe(\r\n tap(data => this.logger.log('retrieveAll', data)),\r\n catchError(err => {\r\n this.logger.error(err);\r\n return throwError(err);\r\n }),\r\n map((res: IResponse) => res.result),\r\n );\r\n }\r\n}\r\n\r\nexport interface IProduct {\r\n itemID: string,\r\n itemName: string,\r\n}","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleResponse } from 'src/functions/http-handler';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/User`;\r\n }\r\n\r\n get(codes: Array) {\r\n const param = { vendorCodes: codes };\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(handleResponse>(this.logger, 'retrieve user'));\r\n }\r\n\r\n searchByName(name: string) {\r\n const param = { name: name };\r\n return this.http.get(`${this._apiUrl}/Search`, { params: param })\r\n .pipe(handleResponse>(this.logger, 'search user'));\r\n }\r\n\r\n create(user: IUser) {\r\n return this.http.post(this._apiUrl, user)\r\n .pipe(handleResponse(this.logger, 'create user'));\r\n }\r\n\r\n update(user: IUser) {\r\n return this.http.put(`${this._apiUrl}/${user.id}`, user)\r\n .pipe(handleResponse(this.logger, 'update user'));\r\n }\r\n\r\n delete(user: IUser) {\r\n return this.http.delete(`${this._apiUrl}/${user.id}`)\r\n .pipe(handleResponse(this.logger, 'delete user'));\r\n }\r\n\r\n searchById(id: string) {\r\n const param = { id: id };\r\n return this.http.get(`${this._apiUrl}/SearchId`, { params: param })\r\n .pipe(handleResponse>(this.logger, 'search userId'));\r\n }\r\n\r\n}\r\n\r\nexport interface IUser {\r\n id: string,\r\n name: string,\r\n accountNum: string,\r\n orgName: string,\r\n department: string,\r\n email: string,\r\n admin_yn: 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\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {{ notice.title }}\r\n

\r\n

\r\n {{notice.content}}\r\n

\r\n

\r\n  \r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable, Inject, PLATFORM_ID, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { IResponse } from 'src/models/response.model';\r\nimport { environment as ENV } from 'src/environments/environment';\r\n\r\n// REF: https://jasonwatmore.com/post/2019/06/22/angular-8-jwt-authentication-example-tutorial\r\nconst _token_key = \"user\";\r\n\r\n\r\n// TODO: 로그인 때에 AccountNum, AccountName을 받아와서 가지고 있을 것.\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService implements OnDestroy {\r\n\r\n private userSubject: BehaviorSubject;\r\n public currentUser: Observable;\r\n\r\n private headers: HttpHeaders;\r\n private apiUrl: string;\r\n\r\n constructor(private http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n @Inject(PLATFORM_ID) private platformId: Object,\r\n private logger: NGXLogger) {\r\n this.apiUrl = baseUrl + 'api/Token';\r\n\r\n this.headers = new HttpHeaders();\r\n this.headers = this.headers.append('Content-type', 'application/json');\r\n\r\n this.userSubject = new BehaviorSubject(JSON.parse(localStorage.getItem(_token_key)));\r\n this.currentUser = this.userSubject.asObservable();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.userSubject.unsubscribe();\r\n }\r\n\r\n public get currentUserValue(): ITokenResponse {\r\n return this.userSubject.value;\r\n }\r\n\r\n public isAuthenticated(): boolean {\r\n return !!this.userSubject.value;\r\n }\r\n\r\n public login(email: string, password: string, rememberMe: boolean = false) {\r\n this.logger.log(\"Signing in as: \" + email);\r\n let data = {\r\n domain: ENV.domain,\r\n email: email,\r\n password: password,\r\n grantType: GrantType.password,\r\n refreshToken: '',\r\n };\r\n\r\n return this.http.post(this.apiUrl, data, { headers: this.headers })\r\n .pipe(map(user => {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n localStorage.setItem(_token_key, JSON.stringify(user));\r\n this.userSubject.next(user as ITokenResponse);\r\n return user;\r\n }));\r\n }\r\n\r\n public refreshToken() {\r\n let data = {\r\n domain: this.currentUserValue.domain,\r\n type: this.currentUserValue.type,\r\n email: this.currentUserValue.email,\r\n password: '',\r\n grantType: GrantType.refresh,\r\n refreshToken: this.currentUserValue.refresh_token,\r\n };\r\n\r\n return this.http.post(this.apiUrl, data, { headers: this.headers })\r\n .pipe(map((user: any) => {\r\n this.handleTokenResponse(user);\r\n return user;\r\n }));\r\n }\r\n\r\n private handleTokenResponse(user: any) {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n localStorage.clear();\r\n\r\n localStorage.setItem(_token_key, JSON.stringify(user));\r\n this.userSubject.next(user as ITokenResponse);\r\n this.logger.log('currentUser', this.currentUserValue);\r\n }\r\n\r\n public logout() {\r\n // remove user from local storage to log user out\r\n localStorage.removeItem(_token_key);\r\n this.userSubject.next(null);\r\n this.logger.log(\"Log out\");\r\n }\r\n}\r\n\r\nexport interface ITokenResponse {\r\n domain: string,\r\n type: string,\r\n uid: string,\r\n token: string,\r\n email: string,\r\n name: string,\r\n role: string,\r\n depart: string,\r\n password: string,\r\n refresh_token: string,\r\n orgName: string,\r\n accountNum: string,\r\n}\r\n\r\nexport interface ITokenRequest {\r\n domain: string,\r\n type: 'VENDOR' | 'BUYER',\r\n email: string,\r\n password: string,\r\n grantType: GrantType,\r\n refreshToken: string, \r\n}\r\n\r\nexport enum GrantType {\r\n password = 1,\r\n refresh = 2\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { IDialog } from '../../../models/dialog.model';\r\n\r\n/**\r\nexport declare const MAT_DIALOG_DATA: InjectionToken;\r\nInjection token that can be used to specify default dialog options.\r\n*/\r\n\r\n@Component({\r\n selector: 'app-alert-dialog',\r\n templateUrl: './alert-dialog.component.html',\r\n styleUrls: ['./alert-dialog.component.css']\r\n})\r\nexport class AlertDialogComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: IDialog) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.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 \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \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-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {\r\n title = 'app';\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { environment } from 'src/environments/environment';\r\nimport { IPagedList } from 'src/models/paged-list.model';\r\n\r\nconst PRINT_TITLE = '불량 발생 내역';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DefectManagementService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/DefectManagement`;\r\n }\r\n\r\n get(param: any) {\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(handleResponse>(this.logger, 'retrieve defect-management'));\r\n }\r\n\r\n print(param: any) {\r\n let title = document.createElement('h2');\r\n title.innerText = PRINT_TITLE;\r\n return this.printSvc.print(this.http, `${this._apiUrl}/Print`, param, title);\r\n }\r\n\r\n export(param: any, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.excel : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.xlsx' : '.pdf';\r\n\r\n return this.http.get(`${this._apiUrl}/Export`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `DefectManagement${extension}`;\r\n this.saveAsBlob(res, filename, mimeType);\r\n })\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface IDefectManagement {\r\n /*\r\n procurementType: string,\r\n type: string,\r\n itemId: string,\r\n itemName: string,\r\n unit: string,\r\n quantity: number,\r\n purchasePrice: number,\r\n amount: number,\r\n currency: string,\r\n description: string,\r\n */\r\n gubun: string, //원천\r\n vendAccount: string, //구매처\r\n vendName: string, //구매처명\r\n nonDate: Date, //불량발생일자\r\n itemId: string, //품번\r\n itemName: string, //품명\r\n unitId: string, //단위\r\n testDefectQty: number, //불량수량\r\n purchPrice: number, //단가\r\n totalPrice: number, //금액\r\n currency: string, //통화\r\n typeId: string, //불량내역\r\n nonType: string, //검사유형\r\n inventSiteId: string, //플랜트\r\n tymAqlType: string, //검사엄격도\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BusyIndicatorService {\r\n busy: Subject;\r\n\r\n constructor(private logger: NGXLogger) {\r\n this.busy = new Subject();\r\n }\r\n\r\n update(value: boolean) {\r\n this.logger.log('busy', value);\r\n this.busy.next(value);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { FileSaverModule } from 'ngx-filesaver';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { NavMenuComponent } from './nav-menu/nav-menu.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { LayoutComponent } from './layout/layout.component';\r\nimport { FullScreenComponent } from './layout/full-screen/full-screen.component';\r\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\r\nimport { SharedMaterialModule } from './shared.material.module';\r\n\r\nimport { JwtInterceptor } from './jwt.interceptor';\r\nimport { ErrorInterceptor } from './error.interceptor';\r\nimport { NoCacheHeadersInterceptor } from './header.interceptor';\r\n\r\nimport { AlertDialogComponent } from './sotheby-common/alert-dialog/alert-dialog.component';\r\nimport { ConfirmDialogComponent } from './sotheby-common/confirm-dialog/confirm-dialog.component';\r\nimport { IndicatorDialogComponent } from './sotheby-common/indicator-dialog/indicator-dialog.component';\r\nimport { SnackBarComponent } from './sotheby-common/snack-bar/snack-bar.component';\r\nimport { PopupDialogComponent } from './popup-dialog/popup-dialog.component';\r\n\r\nimport { AuthService } from 'src/services/auth.service';\r\nimport { AttachmentService } from 'src/services/attachment.service';\r\nimport { ConsignedMaterialCommonModelService } from 'src/services/consigned-material-common-model.service';\r\nimport { ConsignedMaterialInventoryService } from 'src/services/consigned-material-inventory.service';\r\nimport { ConsignedMaterialPaymentStatement } from 'src/services/consigned-material-payment-statement.service';\r\nimport { ConsignedMaterialProductPlanService } from 'src/services/consigned-material-product-plan.service';\r\nimport { ConsignedMaterialTransferService } from 'src/services/consigned-material-transfer.service';\r\nimport { CommonService } from 'src/services/common.service';\r\nimport { CommonCodeService } from 'src/services/common-code.service';\r\nimport { DefectManagementService } from 'src/services/defect-management.service';\r\nimport { NonconformanceService } from 'src/services/nonconformance.service';\r\n// import { PackingSlipService } from 'src/services/packing-slip.service';\r\nimport { ProductService } from 'src/services/product.service';\r\nimport { ProductPlanService } from 'src/services/product-plan.service';\r\nimport { ProductMrpService } from 'src/services/product-mrp.service';\r\nimport { PurchaseService } from 'src/services/purchase.service';\r\nimport { ReceiptConfirmService } from 'src/services/receipt-confirm.service';\r\nimport { TaxInvoiceService } from 'src/services/tax-invoice.service';\r\nimport { TradeItemService } from 'src/services/trade-item.service';\r\nimport { UserService } from 'src/services/user.service';\r\nimport { UserAuthService } from 'src/services/user-auth.service';\r\nimport { VendorService } from 'src/services/vendor.service';\r\nimport { NoticeService } from 'src/services/notice.service';\r\nimport { GnbComponent } from './gnb/gnb.component';\r\n\r\n\r\nimport { SlickCarouselModule } from '../../node_modules/ngx-slick-carousel';\r\nimport { SharedPipeModule } from 'src/app/shared.pipe.module';\r\n\r\n@NgModule({\r\n entryComponents: [\r\n AlertDialogComponent,\r\n ConfirmDialogComponent,\r\n IndicatorDialogComponent,\r\n SnackBarComponent,\r\n PopupDialogComponent\r\n ],\r\n declarations: [\r\n AppComponent,\r\n NavMenuComponent,\r\n HomeComponent,\r\n FullScreenComponent,\r\n LayoutComponent,\r\n GnbComponent,\r\n PopupDialogComponent,\r\n ],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }), SlickCarouselModule,\r\n BrowserAnimationsModule,\r\n RouterModule,\r\n FormsModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n LoggerModule.forRoot({ level: NgxLoggerLevel.DEBUG, serverLogLevel: NgxLoggerLevel.ERROR }),\r\n AppRoutingModule,\r\n FileSaverModule,\r\n SharedMaterialModule,\r\n SharedPipeModule,\r\n ],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'ko' },\r\n { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: NoCacheHeadersInterceptor, multi: true },\r\n AuthService,\r\n AttachmentService,\r\n CommonService,\r\n CommonCodeService,\r\n ConsignedMaterialCommonModelService,\r\n ConsignedMaterialInventoryService,\r\n ConsignedMaterialPaymentStatement,\r\n ConsignedMaterialProductPlanService,\r\n ConsignedMaterialTransferService,\r\n DefectManagementService,\r\n NonconformanceService,\r\n // PackingSlipService,\r\n ProductService,\r\n ProductPlanService,\r\n ProductMrpService,\r\n PurchaseService,\r\n ReceiptConfirmService,\r\n TaxInvoiceService,\r\n TradeItemService,\r\n UserService,\r\n UserAuthService,\r\n VendorService,\r\n NoticeService\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleError, handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { IResponse } from 'src/models/response.model';\r\nimport { IPagedList } from 'src/models/paged-list.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { of } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReceiptConfirmService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/ReceiptConfirm`;\r\n }\r\n\r\n //get(param: any) {\r\n // return this.http.get(this._apiUrl, { params: param })\r\n // .pipe(\r\n // tap((res) => this.logger.log('retrieve receipt-confirm', res)),\r\n // catchError(handleError),\r\n // map((data: IResponse) => {\r\n // if (data.code == 'NoData') {\r\n // return [];\r\n // } else {\r\n // return data.result;\r\n // }\r\n // })\r\n // );\r\n //}\r\n get(param: any) {\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(handleResponse>(this.logger, 'IReceiptConfirm get'));\r\n }\r\n\r\n export(param: any, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.excel : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.xlsx' : '.pdf';\r\n\r\n return this.http.get(`${this._apiUrl}/Export?type=${type}`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `ReceiptConfirm${extension}`;\r\n this.saveAsBlob(res, filename);\r\n });\r\n }\r\n\r\n create(ReceiptConfirm: Array) {\r\n return this.http.post(this._apiUrl, ReceiptConfirm)\r\n .pipe(handleResponse(this.logger, 'create Receipt Confirm'));\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string) {\r\n const file = new File([data], filename, { type: environment.mimeTypes.excel });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface IReceiptConfirmRequest {\r\n vrCptId:string,\r\n packingSlipId: string,\r\n InventSiteId: number,\r\n origpurchId: string,\r\n inventTransId: string,\r\n vendAccount:string,\r\n vendAccountName: string,\r\n itemName: string,\r\n itemId: string, \r\n qty: number,\r\n tymAqlType: string,\r\n inventDate: Date,\r\n confirm: string,\r\n confirmDate: Date,\r\n purchPrice: number,\r\n valueMst: number,\r\n taxAmount: number,\r\n gubun: string,\r\n}\r\n\r\n\r\nexport interface IReceiptConfirm {\r\n PackingSlipId: string,\r\n InventSiteId: string,\r\n OrigpurchId: string,\r\n InventTransId: string,\r\n VendAccount: string,\r\n VendAccountName: string,\r\n ItemId:string,\r\n ItemName: string,\r\n Qty: number,\r\n PurchPrice: number,\r\n ValueMst: number,\r\n TaxAmount: number,\r\n PurchUnit: string,\r\n TymAqlType: string,\r\n ConfirmDate: Date,\r\n InventDate: Date,\r\n Gubun: string,\r\n Confirm: string,\r\n AuthType : string,\r\n scriptReturn: string,\r\n}\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"crnd\";","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleResponse } from 'src/functions/http-handler';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TaxInvoiceService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/TaxInvoice`;\r\n }\r\n\r\n get(param: any) {\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(handleResponse(this.logger, 'retrieve tax-invoice'));\r\n }\r\n}\r\n\r\nexport interface ITaxInvoice {\r\n currentMonthInvoice: number,\r\n previousInvoice: number,\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleResponse } from 'src/functions/http-handler';\r\nimport { IPagedList } from 'src/models/paged-list.model';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NoticeService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/Notice`;\r\n }\r\n\r\n getNotice(categories: Array, pageNum: number, pageSize: number) {\r\n this.logger.log('categories', categories);\r\n this.logger.log('pageNum', pageNum);\r\n this.logger.log('pageSize', pageSize);\r\n const param = { categoryIds: categories, pageNum: pageNum.toString(), pageSize: pageSize.toString() };\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(handleResponse>(this.logger, 'retrieve notice'));\r\n }\r\n\r\n retrieveAll() {\r\n const param = { categoryIds: [], pageNum: \"0\", pageSize: \"1000\" };\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(\r\n handleResponse>(this.logger, 'retrieve notice'),\r\n map((data: IPagedList) => {\r\n return data.items;\r\n }));\r\n }\r\n\r\n createNotice(notice: INotice) {\r\n return this.http.post(this._apiUrl, notice)\r\n .pipe(handleResponse(this.logger, 'create notice'));\r\n } \r\n\r\n updateNotice(notice: INotice) {\r\n return this.http.put(`${this._apiUrl}/${notice.id}`, notice)\r\n .pipe(handleResponse(this.logger, 'update notice'));\r\n }\r\n readNotice(notice: INotice) {\r\n return this.http.get(`${this._apiUrl}/${notice.id}`)\r\n .pipe(handleResponse(this.logger, 'read notice'));\r\n }\r\n\r\n deleteNotice(notice: INotice) {\r\n return this.http.delete(`${this._apiUrl}/${notice.id}`)\r\n .pipe(handleResponse(this.logger, 'delete notice'));\r\n }\r\n}\r\n\r\nexport interface INotice {\r\n id: number,\r\n category: string,\r\n title: string,\r\n content: string,\r\n viewCount: number,\r\n isPopup: boolean,\r\n dateFrom: Date,\r\n dateTo: Date,\r\n crtId: string,\r\n crtDt: Date,\r\n attachmentId: string,\r\n fileName: string,\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleError, handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { IResponse } from 'src/models/response.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConsignedMaterialCommonModelService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/ConsignedMaterialCommonModel`;\r\n }\r\n\r\n get(criteria: any) {\r\n return this.http.get(this._apiUrl, { params: criteria })\r\n .pipe(\r\n tap((res) => this.logger.log('retrieve consigned-material common model', res)),\r\n catchError(handleError),\r\n map((data: IResponse) => {\r\n if (data.code == 'NoData') {\r\n return [];\r\n } else {\r\n return data.result;\r\n }\r\n })\r\n );\r\n }\r\n\r\n export(param: any, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.excel : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.xlsx' : '.pdf';\r\n\r\n return this.http.get(`${this._apiUrl}/Export`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `ConsignedMaterialCommonModel${extension}`;\r\n this.saveAsBlob(res, filename, mimeType);\r\n })\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface IConsignedMaterialCommonModel {\r\n itemId: string,\r\n consumption: number,\r\n}\r\n","import { HttpErrorResponse } from \"@angular/common/http\";\r\nimport { NGXLogger } from \"ngx-logger\";\r\nimport { pipe, throwError } from \"rxjs\";\r\nimport { tap, catchError, map } from \"rxjs/operators\";\r\nimport { IResponse } from \"src/models/response.model\";\r\nimport { convertToLocalString } from \"./date-serializer\";\r\n\r\n// TODO: 예외등의 처리를 맡아서 처리함.\r\nexport function handleResponse(logger: NGXLogger, message: string) {\r\n return pipe(\r\n tap((res) => logger.log(message, res)),\r\n catchError(handleError),\r\n map((data: IResponse) => {\r\n return data.result as T;\r\n })\r\n );\r\n}\r\n\r\nexport function handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(\r\n 'Something bad happened; please try again later.');\r\n}\r\n\r\nexport function genQueryStr(value: any) {\r\n let params = [];\r\n for (const property in value) {\r\n if (value[property] != undefined && value[property] != null) {\r\n let paramValue = value[property];\r\n // check is Date?\r\n // https://stackoverflow.com/questions/643782/how-to-check-whether-an-object-is-a-date\r\n if (typeof paramValue.getMonth === 'function') {\r\n paramValue = convertToLocalString(value[property]);\r\n }\r\n\r\n if (paramValue != '') {\r\n params.push(`${property}=${paramValue}`);\r\n }\r\n }\r\n };\r\n\r\n return `${params.join('&')}`;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from 'src/services/auth.service';\r\nimport { BusyIndicatorService } from 'src/services/busy-indicator.service';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class JwtInterceptor implements HttpInterceptor {\r\n\r\n constructor(private authSvc: AuthService,\r\n private busyIndicator: BusyIndicatorService\r\n ) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n // add authorization header with jwt token if available\r\n this.busyIndicator.update(true);\r\n let currentUser = this.authSvc.currentUserValue;\r\n if (currentUser && currentUser.token) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${currentUser.token}`\r\n }\r\n });\r\n }\r\n\r\n return next.handle(request)\r\n .pipe(\r\n finalize(() => {\r\n this.busyIndicator.update(false);\r\n })\r\n );\r\n }\r\n}","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_SNACK_BAR_DATA} from \"@angular/material/snack-bar\";\r\n\r\n@Component({\r\n selector: 'app-snack-bar',\r\n templateUrl: './snack-bar.component.html',\r\n styleUrls: ['./snack-bar.component.css']\r\n})\r\nexport class SnackBarComponent {\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: string) {\r\n\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleError, handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { IResponse } from 'src/models/response.model';\r\nimport { IProductPlanDetail } from 'src/services/product-plan.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConsignedMaterialProductPlanService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/ConsignedMaterialProductPlan`;\r\n }\r\n\r\n get(criteria: any) {\r\n return this.http.get(this._apiUrl, { params: criteria })\r\n .pipe(\r\n tap((res) => this.logger.log('retrieve consigned-material product-plan', res)),\r\n catchError(handleError),\r\n map((data: IResponse) => {\r\n if (data.code == 'NoData') {\r\n return [];\r\n } else {\r\n return data.result;\r\n }\r\n })\r\n );\r\n } \r\n\r\n export(param: any, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.excel : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.xlsx' : '.pdf';\r\n\r\n return this.http.get(`${this._apiUrl}/Export`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `ConsignedMaterialProductPlan${extension}`;\r\n this.saveAsBlob(res, filename, mimeType);\r\n })\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface IConsignedMaterialProductPlan { \r\n itemId: string,\r\n consumption: number,\r\n plans: Array,\r\n}","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { environment } from 'src/environments/environment';\r\nimport { IPagedList } from 'src/models/paged-list.model';\r\n\r\nconst PRINT_TITLE = '협력사 거래 품목';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TradeItemService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/TradeItem`;\r\n }\r\n\r\n get(param: any) {\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(handleResponse>(this.logger, 'retrieve trade-item'));\r\n }\r\n\r\n print(param: any) {\r\n let title = document.createElement('h2');\r\n title.innerText = PRINT_TITLE;\r\n return this.printSvc.print(this.http, `${this._apiUrl}/Print`, param, title);\r\n }\r\n\r\n export(param: any, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.excel : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.xlsx' : '.pdf';\r\n\r\n return this.http.get(`${this._apiUrl}/Export`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `TradeItem${extension}`;\r\n this.saveAsBlob(res, filename, mimeType);\r\n })\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface ITradeItem {\r\n vendorCode: string,\r\n vendorName: string,\r\n itemID: string,\r\n itemName: string,\r\n purchPrice: number,\r\n currency: string,\r\n visibleyn: string,\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\n\r\n@Component({\r\n selector: 'app-full-screen',\r\n templateUrl: './full-screen.component.html',\r\n styleUrls: ['./full-screen.component.css']\r\n})\r\nexport class FullScreenComponent implements OnInit {\r\n\r\n constructor() { }\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","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { IResponse } from 'src/models/response.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VendorService {\r\n private readonly _apiUrl: string;\r\n\r\n constructor(private http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n @Inject(PLATFORM_ID) private platformId: Object,\r\n private logger: NGXLogger) {\r\n this._apiUrl = baseUrl + 'api/Vendor';\r\n }\r\n\r\n search(vendorName: string) {\r\n const param = { vendorName: vendorName };\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(\r\n tap(data => this.logger.log('search', data)),\r\n catchError(err => {\r\n this.logger.error(err);\r\n return throwError(err);\r\n }),\r\n map((res: IResponse) => res.result),\r\n );\r\n }\r\n\r\n retrieveAll() {\r\n return this.http.get(this._apiUrl)\r\n .pipe(\r\n tap(data => this.logger.log('retrieveAll', data)),\r\n catchError(err => {\r\n this.logger.error(err);\r\n return throwError(err);\r\n }),\r\n map((res: IResponse) => res.result),\r\n );\r\n }\r\n}\r\n\r\nexport interface IVendor {\r\n vendorCode: string,\r\n vendorName: string,\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nconst PRINT_TITLE = '생산계획';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductPlanService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/ProductPlan`;\r\n }\r\n\r\n get(codes: Array, dateFrom: string, searchTxt: string, pageNum: number, pageSize: number) {\r\n const param = { codes: codes, dateFrom: dateFrom, searchTxt: searchTxt, pageNum: pageNum.toString(), pageSize: pageSize.toString() };\r\n return this.http.get(this._apiUrl, { params: param })\r\n .pipe(handleResponse>(this.logger, 'retrieve prod plan'));\r\n }\r\n\r\n print(codes: Array, dateFrom: string) {\r\n let title = document.createElement('h2');\r\n title.innerText = PRINT_TITLE;\r\n\r\n return this.printSvc.print(this.http, `${this._apiUrl}/Print`, { codes: codes, dateFrom: dateFrom }, title);\r\n }\r\n\r\n export(codes: Array, dateFrom: string, searchTxt: string, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.csv : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.csv' : '.pdf';\r\n const param = { codes: codes, dateFrom: dateFrom, searchTxt: searchTxt };\r\n\r\n return this.http.get(`${this._apiUrl}/Export?type=${type}`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `ProductPlan${extension}`;\r\n this.saveAsBlob(res, filename, mimeType);\r\n });\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface IProductPlan {\r\n itemId: string,\r\n itemName: string,\r\n plans: Array,\r\n}\r\n\r\nexport interface IProductPlanDetail {\r\n year: number,\r\n month: number,\r\n qty: number,\r\n}\r\n","import { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { IDialog } from \"src/models/dialog.model\";\r\n\r\n@Component({\r\n selector: \"app-indicator-dialog\",\r\n templateUrl: \"./indicator-dialog.component.html\",\r\n styleUrls: [\"./indicator-dialog.component.css\"],\r\n})\r\nexport class IndicatorDialogComponent implements OnInit {\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: IDialog\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n cancel() {\r\n const cancellation = true;\r\n this.dialogRef.close(cancellation);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { 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 { MatStepperModule } from '@angular/material/stepper';\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 { MatFormFieldModule } from '@angular/material/form-field';\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 { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\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 { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule} from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\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\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\r\n\r\n@NgModule({\r\n imports: [\r\n NgxMaterialTimepickerModule\r\n ],\r\n exports: [\r\n A11yModule,\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 MatFormFieldModule,\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 PortalModule,\r\n ScrollingModule,\r\n\r\n NgxMaterialTimepickerModule,\r\n ]\r\n})\r\nexport class SharedMaterialModule { }\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleError, handleResponse } from 'src/functions/http-handler';\r\nimport { PrintService } from './print.service';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { IResponse } from 'src/models/response.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConsignedMaterialPaymentStatement {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private printSvc: PrintService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/ConsignedMaterialPaymentStatement`;\r\n }\r\n\r\n get(criteria: any) {\r\n return this.http.get(this._apiUrl, { params: criteria })\r\n .pipe(\r\n tap((res) => this.logger.log('retrieve consigned-material', res)),\r\n catchError(handleError),\r\n map((data: IResponse) => {\r\n if (data.code == 'NoData') {\r\n return [];\r\n } else {\r\n return data.result;\r\n }\r\n })\r\n );\r\n }\r\n\r\n export(param: any, type: 'sheet' | 'pdf') {\r\n const mimeType = (type == 'sheet') ? environment.mimeTypes.excel : environment.mimeTypes.pdf;\r\n const extension = (type == 'sheet') ? '.xlsx' : '.pdf';\r\n\r\n return this.http.get(`${this._apiUrl}/Export`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n params: param\r\n }).subscribe((res: Blob) => {\r\n var filename = `ConsignedMaterialPaymentStatement${extension}`;\r\n this.saveAsBlob(res, filename, mimeType);\r\n })\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface IConsignedMaterial {\r\n itemId: string,\r\n itemName: string,\r\n accountNumber: string,\r\n carryOver: number,\r\n receive: number,\r\n delivery: number,\r\n remainQty: number,\r\n}","import { AfterViewInit, Component, OnInit } from '@angular/core';\r\nimport { BusyIndicatorService } from 'src/services/busy-indicator.service';\r\nimport { AuthService, ITokenResponse } from 'src/services/auth.service';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-layout',\r\n templateUrl: './layout.component.html',\r\n styleUrls: ['./layout.component.scss']\r\n})\r\nexport class LayoutComponent implements OnInit, AfterViewInit {\r\n isBusy = false;\r\n opened = true;\r\n collapsed = false;\r\n currentUser$: Observable;\r\n\r\n constructor(\r\n private busyIndicator: BusyIndicatorService\r\n , private authSvc: AuthService\r\n , private logger: NGXLogger) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.currentUser$ = this.authSvc.currentUser;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.busyIndicator.busy\r\n .subscribe(res => {\r\n this.logger.warn('layout isBusy', res);\r\n // Avoid ExpressionChangedAfterItHasBeenCheckedError\r\n setTimeout(() => {\r\n this.isBusy = res;\r\n }, 0);\r\n })\r\n }\r\n\r\n toggleGnb() {\r\n if (this.opened) {\r\n // 메뉴가 닫히고, 잠시 후 닫힌 메뉴 노출\r\n this.opened = !this.opened;\r\n setTimeout(() => {\r\n this.collapsed = !this.opened;\r\n }, 100);\r\n } else {\r\n // 메뉴가 열리고, 닫힌 메뉴 닫기\r\n this.opened = !this.opened;\r\n this.collapsed = !this.opened;\r\n }\r\n }\r\n}\r\n","\r\n Home\r\n 공지사항\r\n 생산계획 조회\r\n 6개월예상 소요량조회\r\n 발주서 조회/출력\r\n 납품관리\r\n 입고 내역\r\n 입고불량 발생 내역\r\n 공정불량/반품 내역\r\n 거래 실적 조회\r\n 사급품 재고현황\r\n 사급품 수불명세서\r\n 사급품 입출고 현황\r\n 사급품 공용기종 현황\r\n 직송 입력\r\n 직송 확정 및 업로드\r\n 직송 현황\r\n \r\n \r\n 4M 변경관리\r\n 거래 품목 조회\r\n Ass'y 별 사급품 현황\r\n 입고확정관리\r\n 세금계산서 금액집계\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n Admin\r\n \r\n \r\n \r\n
\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 { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { FullScreenComponent } from './layout/full-screen/full-screen.component';\r\n// import { AuthGuardService } from 'src/services/auth-guard.service';\r\nimport { LayoutComponent } from './layout/layout.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n children: [\r\n { path: '', component: HomeComponent, pathMatch: 'full' },\r\n { path: '4m', loadChildren: () => import('./four-m/four-m.module').then(f => f.FourMModule) },\r\n { path: 'assembly', loadChildren: () => import('./assembly/assembly.module').then(a => a.AssemblyModule) },\r\n { path: 'trade-item', loadChildren: () => import('./trade-item/trade-item.module').then(t => t.TradeItemModule) },\r\n { path: 'consigned-material', loadChildren: () => import('./consigned-material/consigned-material.module').then(c => c.ConsignedMaterialModule) },\r\n { path: 'defect-management', loadChildren: () => import('./defect-management/defect-management.module').then(d => d.DefectManagementModule) },\r\n { path: 'nonconformance', loadChildren: () => import('./nonconformance/nonconformance.module').then(n => n.NonconformanceModule) },\r\n { path: 'packing-slip', loadChildren: () => import('./packing-slip/packing-slip.module').then(p => p.PackingSlipModule) },\r\n { path: 'purchase', loadChildren: () => import('./purchase/purchase.module').then(p => p.PurchaseModule) },\r\n { path: 'product-plan', loadChildren: () => import('./product-plan/product-plan.module').then(p => p.ProductPlanModule) },\r\n { path: 'product-mrp', loadChildren: () => import('./product-mrp/product-mrp.module').then(p => p.ProductMrpModule) },\r\n { path: 'invent-trans', loadChildren: () => import('./invent-trans/invent-trans.module').then(i => i.InventTransModule) },\r\n { path: 'trade-performance', loadChildren: () => import('./trade-performance/trade-performance.module').then(t => t.TradePerformanceModule) },\r\n { path: 'direct-delivery', loadChildren: () => import('./direct-delivery/direct-delivery.module').then(d => d.DirectDeliveryModule) },\r\n { path: 'notice', loadChildren: () => import('./notice/notice.module').then(n => n.NoticeModule) },\r\n { path: 'receipt-confirm', loadChildren: () => import('./receipt-confirm/receipt-confirm.module').then(r => r.ReceiptConfirmModule) },\r\n { path: 'tax-invoice', loadChildren: () => import('./tax-invoice/tax-invoice.module').then(t => t.TaxInvoiceModule) },\r\n { path: 'admin', loadChildren: () => import('./admin/admin.module').then(a => a.AdminModule) }\r\n ]\r\n },\r\n {\r\n path: 'account',\r\n component: FullScreenComponent,\r\n children: [\r\n { path: '', loadChildren: () => import('./account/anonymous/anonymous.module').then(a => a.AnonymousModule) },\r\n ],\r\n },\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 { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { handleError, handleResponse } from 'src/functions/http-handler';\r\nimport { environment } from 'src/environments/environment';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { tap, catchError, map } from \"rxjs/operators\";\r\nimport { IResponse } from 'src/models/response.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AttachmentService {\r\n private _apiUrl: string;\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private fileSaver: FileSaverService,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/Attachment`;\r\n }\r\n\r\n get(id: string) {\r\n return this.http.get(this._apiUrl, { params: { Ids: [id] } })\r\n .pipe(handleResponse(this.logger, 'get attachemnt info'));\r\n }\r\n\r\n getMultiple(ids: Array) {\r\n return this.http.get(this._apiUrl, { params: { Ids: ids } })\r\n .pipe(\r\n tap((res) => this.logger.log('get attachment multiple', res)),\r\n catchError(handleError),\r\n map((data: IResponse) => {\r\n // 이전 버전 호환성을 위해서 attachment end-point에서는\r\n // 단일 요청 반환에 대해서는 Array 형태로 제공하지 않는다.\r\n // component에서는 이를 매번 확인하기 번거롭기 때문에, service에서 Array형태로 통일시켜 반환해줌.\r\n if (Array.isArray(data.result)) {\r\n return data.result as Array;\r\n } else {\r\n return [data.result as IAttachment];\r\n }\r\n })\r\n );\r\n }\r\n\r\n upload(file: File, reference: string) {\r\n let formData = new FormData();\r\n formData.append(\"fileName\", file.name);\r\n formData.append(\"reference\", reference);\r\n formData.append(\"data\", file);\r\n\r\n return this.http.post(this._apiUrl, formData)\r\n .pipe(handleResponse(this.logger, 'upload attachemnt'));\r\n }\r\n\r\n delete(attachment: IAttachment) {\r\n return this.http.delete(`${this._apiUrl}/${attachment.id}`)\r\n .pipe(handleResponse(this.logger, 'delete attachemnt'));\r\n }\r\n\r\n download(attachment: IAttachment) {\r\n const mimeType = environment.mimeTypes.binary;\r\n\r\n return this.http.get(`${this._apiUrl}/${attachment.id}`, {\r\n headers: { 'Accept': mimeType },\r\n responseType: 'blob', // This must be a Blob type\r\n }).subscribe((res: Blob) => {\r\n this.saveAsBlob(res, attachment.fileName, mimeType);\r\n });\r\n }\r\n\r\n private saveAsBlob(data: any, filename: string, mimeType: string) {\r\n const file = new File([data], filename, { type: mimeType });\r\n this.fileSaver.save(file, filename);\r\n }\r\n}\r\n\r\nexport interface IAttachment {\r\n id: string,\r\n fileName: string,\r\n source: string,\r\n reference: string,\r\n viewCount: number,\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable, OnInit } from '@angular/core';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { of } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { handleResponse } from 'src/functions/http-handler';\r\n\r\nconst SITE_TYPE = 'SITE_TYPE';\r\nconst GROUP_CODE = 'PGM_GROUP';\r\nconst TYPE_CODE = 'PGM_TYPE';\r\nconst NOTICE_CATEGORY_CODE = 'NOTICE_CATEGORY';\r\nconst FOURM_TYPE_CODE = '4M_TYPE';\r\nconst FOURM_STATUS_CODE = '4M_STATUS';\r\nconst APP_STATUS_CODE = 'APP_STATUS';\r\nconst CONFIRM_STATUS_CODE = 'CONFIRM_STATUS';\r\nconst YES_NO_CODE = 'YESNO';\r\nconst SOURCE_CODE = 'SOURCE';\r\nconst YN_CODE = 'YN';\r\nconst FOURM_STATUS = 'FOURM_STATUS';\r\nconst PURCHASE_CODE = 'Purchase_Export';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonCodeService implements OnInit {\r\n private _apiUrl: string;\r\n private _codes: Array = [];\r\n\r\n constructor(\r\n @Inject(HttpClient) protected http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private logger: NGXLogger) {\r\n this._apiUrl = `${baseUrl}api/CommonCode`;\r\n }\r\n\r\n ngOnInit() {\r\n this.get()\r\n .subscribe(res => {\r\n this._codes = res as Array;\r\n });\r\n }\r\n\r\n get() {\r\n return this.http.get(this._apiUrl)\r\n .pipe(handleResponse>(this.logger, 'retrieve common code'));\r\n }\r\n\r\n getCodes(code: string) {\r\n // cache 데이터를 확인한 다음, 찾지 못한 경우에만 end-point를 경유해서 데이터를 반환\r\n const codeIndex = this._codes.findIndex(c => c.code.toLowerCase() == code.toLowerCase());\r\n if (this._codes.length > 0 && codeIndex >= 0) {\r\n return of(this._codes[codeIndex].details);\r\n } else {\r\n return this.http.get(`${this._apiUrl}/${code}`)\r\n .pipe(handleResponse>(this.logger, `retrieve common code of ${code}`));\r\n }\r\n }\r\n\r\n getSiteTypes() {\r\n return this.getCodes(SITE_TYPE);\r\n }\r\n\r\n get4mTypes() {\r\n return this.getCodes(FOURM_TYPE_CODE);\r\n }\r\n\r\n get4mStatuses() {\r\n return this.getCodes(FOURM_STATUS_CODE);\r\n }\r\n\r\n getAppStatuses() {\r\n return this.getCodes(APP_STATUS_CODE);\r\n }\r\n\r\n getConfirmStatuses() {\r\n return this.getCodes(CONFIRM_STATUS_CODE);\r\n }\r\n\r\n getProgramGroups() {\r\n return this.getCodes(GROUP_CODE);\r\n }\r\n\r\n getProgramTypes() {\r\n return this.getCodes(TYPE_CODE);\r\n }\r\n\r\n getFourmStatus() {\r\n return this.getCodes(FOURM_STATUS);\r\n }\r\n\r\n getYesNo() {\r\n return this.getCodes(YES_NO_CODE)\r\n .pipe(\r\n tap(results => results\r\n // 예, 아니오 순으로 출력 순서를 변경.\r\n // 사실, CommonCode에서 Order를 설정하면 될 일인데..\r\n .sort((prev: ICommonCodeDetail, next: ICommonCodeDetail) => {\r\n return -(prev.value.localeCompare(next.value));\r\n }))\r\n );\r\n }\r\n\r\n getNoticeCategories() {\r\n return this.getCodes(NOTICE_CATEGORY_CODE);\r\n }\r\n\r\n getSource() {\r\n return this.getCodes(SOURCE_CODE);\r\n }\r\n\r\n getYN() {\r\n return this.getCodes(YN_CODE)\r\n .pipe(\r\n tap(results => results\r\n // 예, 아니오 순으로 출력 순서를 변경.\r\n // 사실, CommonCode에서 Order를 설정하면 될 일인데..\r\n .sort((prev: ICommonCodeDetail, next: ICommonCodeDetail) => {\r\n return -(prev.value.localeCompare(next.value));\r\n }))\r\n );\r\n }\r\n\r\n getPurchaseExport() {\r\n return this.getCodes(PURCHASE_CODE);\r\n }\r\n\r\n create(code: ICommonCode) {\r\n return this.http.post(this._apiUrl, code)\r\n .pipe(handleResponse(this.logger, 'create common code'));\r\n }\r\n\r\n update(code: ICommonCode) {\r\n return this.http.put(`${this._apiUrl}/${code.code}`, code)\r\n .pipe(handleResponse(this.logger, 'update common code'));\r\n }\r\n\r\n delete(code: ICommonCode) {\r\n return this.http.delete(`${this._apiUrl}/${code.code}`)\r\n .pipe(handleResponse(this.logger, 'delete common code'));\r\n }\r\n\r\n createDetail(detail: ICommonCodeDetail) {\r\n return this.http.post(`${this._apiUrl}/Detail`, detail)\r\n .pipe(handleResponse(this.logger, 'create common code detail'));\r\n }\r\n\r\n updateDetail(detail: ICommonCodeDetail) {\r\n const param = { code: detail.code, value: detail.value };\r\n return this.http.put(`${this._apiUrl}/Detail`, detail, { params: param })\r\n .pipe(handleResponse(this.logger, 'update common code detail'));\r\n }\r\n deleteDetail(detail: ICommonCodeDetail) {\r\n const param = { code: detail.code, value: detail.value };\r\n return this.http.delete(`${this._apiUrl}/Detail`, { params: param })\r\n .pipe(handleResponse(this.logger, 'update common code detail'));\r\n }\r\n}\r\n\r\nexport interface ICommonCode {\r\n code: string,\r\n name: string,\r\n description: string,\r\n details: Array,\r\n}\r\n\r\nexport interface ICommonCodeDetail {\r\n code: string,\r\n value: string,\r\n description: string,\r\n attr01: string,\r\n attr02: string,\r\n attr03: string,\r\n attr04: number,\r\n attr05: number,\r\n}\r\n","export function convertToLocalString(date: Date): string {\r\n let dateStr = date.toLocaleDateString();\r\n let elements = dateStr.split('.').map(e => '0' + e.trim());\r\n dateStr = [\r\n elements[0].substr(elements[0].length - 4),\r\n elements[1].substr(elements[1].length - 2),\r\n elements[2].substr(elements[2].length - 2)\r\n ].join('-');\r\n return dateStr;\r\n}\r\n\r\nexport function convertToTimeString(date: Date): string {\r\n var d = new Date(date);\r\n // d.setMinutes(d.getMinutes() + new Date().getTimezoneOffset());\r\n var hour = '' + d.getHours();\r\n var min = '' + d.getMinutes();\r\n\r\n if (hour.length < 2) {\r\n hour = `0${hour}`;\r\n }\r\n if (min.length < 2) {\r\n min = `0${min}`;\r\n }\r\n return [hour, min].join(':');\r\n}\r\n\r\n// export function convertToParamString(date: Date): string {\r\n// date.setMinutes(date.getMinutes() - new Date().getTimezoneOffset());\r\n// const result = convertToLocalString(date);\r\n// return result;\r\n// }\r\n\r\n// export function convertToParamDate(date: Date): Date {\r\n// date.setMinutes(date.getMinutes() - new Date().getTimezoneOffset());\r\n// return date;\r\n// }\r\n\r\nexport function parseDate(dateStr: string): Date {\r\n let elements = dateStr.split('-');\r\n let year = parseInt(elements[0]);\r\n let month = parseInt(elements[1]) - 1;\r\n let date = parseInt(elements[2]);\r\n return new Date(year, month, date);\r\n}\r\n\r\nexport function mergeDateTime(date: Date, time: string): Date {\r\n date = new Date(date);\r\n let elements = time.split(':');\r\n date.setHours(parseInt(elements[0]), parseInt(elements[1]));\r\n return date;\r\n}","","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n\r\n// export { renderModule, renderModuleFactory } from '@angular/platform-server';\r\n"]}