{"version":3,"file":"main.js","mappings":"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CpDF,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,sEAAsE;;;;;;;;;;;;;;;;;;ACfvB;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/auth/authgard.guard.ts","./src/app/component/acceptance/acceptance.component.ts","./src/app/component/acceptance/acceptance.component.html","./src/app/component/acceptance/numbers-only.directive.ts","./src/app/component/confirm/confirm.component.ts","./src/app/component/confirm/confirm.component.html","./src/app/component/confirmonline/confirm.component.ts","./src/app/component/confirmonline/confirm.component.html","./src/app/component/couseonlineselect/course.component.ts","./src/app/component/couseonlineselect/course.component.html","./src/app/component/couseselect/course.component.ts","./src/app/component/couseselect/course.component.html","./src/app/component/header/header.component.ts","./src/app/component/header/header.component.html","./src/app/component/hisregister/hisregister.component.ts","./src/app/component/homemenu/homemenu.component.ts","./src/app/component/homemenu/homemenu.component.html","./src/app/component/info/info.component.ts","./src/app/component/info/info.component.html","./src/app/component/landing/landing.component.ts","./src/app/component/landing/landing.component.html","./src/app/component/listqrpayment/listqrpayment.component.ts","./src/app/component/listqrpayment/listqrpayment.component.html","./src/app/component/login/login.component.ts","./src/app/component/login/login.component.html","./src/app/component/pagenotfound/pagenotfound.component.ts","./src/app/component/pagenotfound/pagenotfound.component.html","./src/app/component/payment/payment.component.ts","./src/app/component/payment/payment.component.html","./src/app/component/policy/policy.component.ts","./src/app/component/policy/policy.component.html","./src/app/component/profilecomponent/profilecomponent.ts","./src/app/component/profilecomponent/profilecomponent.html","./src/app/component/publicdialog/dialog.component.ts","./src/app/component/publicdialog/dialog.component.html","./src/app/component/qrpagelist/qrpagelist.component.ts","./src/app/component/qrpagelist/qrpagelist.component.html","./src/app/component/recieptsall/reciept.component.ts","./src/app/component/recieptsall/reciept.component.html","./src/app/component/regisallcourse/regisallcourse.component.ts","./src/app/component/regisallcourse/regisallcourse.component.html","./src/app/component/regispagestatus/registstatus.component.ts","./src/app/component/regispagestatus/registstatus.component.html","./src/app/component/slipts/slipt.component.ts","./src/app/component/slipts/slipt.component.html","./src/app/component/systempage/system.component.ts","./src/app/component/systempage/system.component.html","./src/app/component/testcode/test.comp.ts","./src/app/component/testcode/test.comp.html","./src/app/component/waitingpage/waitingpage.component.ts","./src/app/component/waitingpage/waitingpage.component.html","./src/app/footer/footers.component.ts","./src/app/footer/footer.html","./src/app/implement.function/calculate.calendar.services.ts","./src/app/interfaces/GlobalUrlToRedirect.ts","./src/app/services/ApiAuth.service.ts","./src/app/services/ApiCheckSelectDate.service.ts","./src/app/services/ApiCheckSystem.Service.ts","./src/app/services/ApiConfirm.service.ts","./src/app/services/ApiFecthDateSection.service.ts","./src/app/services/ApiFecthSelectPayQr.service.ts","./src/app/services/ApiFetchAllCourseRegis.service.ts","./src/app/services/ApiFetchCounter.service.ts","./src/app/services/ApiFetchCourseService.service.ts","./src/app/services/ApiFetchDate.service.ts","./src/app/services/ApiFetchETCourse.service.ts","./src/app/services/ApiFetchPayment.service.ts","./src/app/services/ApiFetchProfile.service.ts","./src/app/services/ApiFetchQrpayment.service.ts","./src/app/services/ApiFetchReciept.service.ts","./src/app/services/ApiGetPeyment.service.ts","./src/app/services/ApiGetValTerm.service.ts","./src/app/services/ApiRecieptMsg.service.ts","./src/app/services/ApiSaveConfirmAccept.ts","./src/environments/environment.prod.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { LandingPageComponent } from './component/landing/landing.component';\nimport { CourseComponent } from './component/couseselect/course.component';\nimport { ConfirmComponent } from './component/confirm/confirm.component';\nimport { WaitingpageComponent } from './component/waitingpage/waitingpage.component';\nimport { RegisAllCourseCreateComponent } from './component/regisallcourse/regisallcourse.component';\nimport { HisRegisAllCreateComponent } from './component/hisregister/hisregister.component';\nimport { RecieptAllCreateComponent } from './component/recieptsall/reciept.component';\nimport { QrpagelistCreateComponent } from './component/qrpagelist/qrpagelist.component';\nimport { SliptComponent } from './component/slipts/slipt.component';\nimport { ListQrPaymentComponent } from './component/listqrpayment/listqrpayment.component';\nimport { LoginComponent } from './component/login/login.component';\nimport { PagenotfoundComponent } from './component/pagenotfound/pagenotfound.component';\n\n\nconst routes: Routes = [\n {\n path: \"\",\n component: LoginComponent,\n },\n {\n path: \"landing\",\n component: LandingPageComponent,\n },\n {\n path: \"course\",\n component: CourseComponent,\n },\n {\n path: \"confirm\",\n component: ConfirmComponent,\n },\n {\n path: \"waiting\",\n component: WaitingpageComponent,\n },\n {\n path: \"regisall\",\n component: RegisAllCourseCreateComponent,\n },\n {\n path: \"hisregisall\",\n component: HisRegisAllCreateComponent,\n },\n {\n path: \"recieptall\",\n component: RecieptAllCreateComponent,\n },\n {\n path: \"qrpagelist\",\n component: QrpagelistCreateComponent,\n },\n {\n path: \"slipt\",\n component: SliptComponent,\n },\n {\n path: \"listqrpayment\",\n component: ListQrPaymentComponent,\n },/*\n {\n path: \"**\",\n component: PagenotfoundComponent,\n },*/\n];\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\n declarations: [],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'WebAppEtesting';\n}\n","\n
\n
\n\n\n\n\n","import { BrowserModule } from \"@angular/platform-browser\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, FormBuilder, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { \r\n HttpClientModule, \r\n} from \"@angular/common/http\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport \"@angular/compiler\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\n\r\nimport { MatToolbarModule, MatToolbarRow } from \"@angular/material/toolbar\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { MatCardModule } from \"@angular/material/card\";\r\nimport { MatTableModule } from \"@angular/material/table\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatGridListModule } from \"@angular/material/grid-list\";\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { MatCalendarCellCssClasses } from \"@angular/material/datepicker\";\r\nimport { MatNativeDateModule } from \"@angular/material/core\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatSelectModule } from \"@angular/material/select\";\r\nimport { MatDividerModule } from \"@angular/material/divider\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatMenuModule } from \"@angular/material/menu\";\r\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\r\nimport { MatRadioModule } from \"@angular/material/radio\";\r\n\r\n//------------------ Google Auth ------------------------\r\nimport {\r\n SocialLoginModule,\r\n SocialAuthServiceConfig,\r\n} from \"angularx-social-login\";\r\nimport { GoogleLoginProvider } from \"angularx-social-login\";\r\n\r\n//-------------------------------------------------------\r\n\r\nimport { AppRoutingModule } from \"./app-routing.module\";\r\nimport { AppComponent } from \"./app.component\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { HeaderComponent } from \"./component/header/header.component\";\r\nimport { CourseComponent } from \"./component/couseselect/course.component\";\r\nimport { FooterCreateComponent } from \"./footer/footers.component\";\r\nimport { ApiFetchCourseService } from \"./services/ApiFetchCourseService.service\";\r\nimport { ApiGetTermValService } from \"./services/ApiGetValTerm.service\";\r\nimport { ConfirmComponent } from \"./component/confirm/confirm.component\";\r\nimport { PaymentComponent } from \"./component/payment/payment.component\";\r\nimport { HomeMenuCreateComponent } from \"./component/homemenu/homemenu.component\";\r\nimport { InfoCreateComponent } from \"./component/info/info.component\";\r\nimport { RegisAllCourseCreateComponent } from \"./component/regisallcourse/regisallcourse.component\";\r\nimport { HisRegisAllCreateComponent } from \"./component/hisregister/hisregister.component\";\r\nimport { RecieptAllCreateComponent } from \"./component/recieptsall/reciept.component\";\r\nimport { ApiFetchAllCourseRegisService } from \"./services/ApiFetchAllCourseRegis.service\";\r\nimport { PolicyCreateComponent } from \"./component/policy/policy.component\";\r\nimport { QrpagelistCreateComponent } from \"./component/qrpagelist/qrpagelist.component\";\r\nimport { ProfileComponent } from \"./component/profilecomponent/profilecomponent\";\r\nimport { TestComponent } from \"./component/testcode/test.comp\";\r\nimport { ApiFetchETCourseService } from \"./services/ApiFetchETCourse.service\";\r\nimport { ApiFetchProfileService } from \"./services/ApiFetchProfile.service\";\r\nimport { ApiFetchCounterService } from \"./services/ApiFetchCounter.service\";\r\nimport { ApiFetchDateService } from \"./services/ApiFetchDate.service\";\r\nimport { ApiFetchDateSectionService } from \"./services/ApiFecthDateSection.service\";\r\nimport { ApiConfirmService } from \"./services/ApiConfirm.service\";\r\nimport { HttpModule } from \"@angular/http\";\r\nimport { LandingPageComponent } from \"./component/landing/landing.component\";\r\nimport { MatDialog, MatDialogModule } from \"@angular/material/dialog\";\r\nimport { BsModalService, ModalModule } from \"ngx-bootstrap/modal\";\r\nimport { ApiFetchQrPaymentService } from \"./services/ApiFetchQrpayment.service\";\r\nimport { ApiFetchRecieptService } from \"./services/ApiFetchReciept.service\";\r\nimport { ApiCheckSelectDateService } from \"./services/ApiCheckSelectDate.service\";\r\nimport { SliptComponent } from \"./component/slipts/slipt.component\";\r\nimport { ListQrPaymentComponent } from \"./component/listqrpayment/listqrpayment.component\";\r\nimport { BackButtonDisableModule } from \"angular-disable-browser-back-button\";\r\n\r\nimport { BnNgIdleService } from \"bn-ng-idle\"; // import bn-ng-idle service\r\nimport { ApiFectSelectPayQrService } from \"./services/ApiFecthSelectPayQr.service\";\r\nimport { ApiFetchPaymentService } from \"./services/ApiFetchPayment.service\";\r\nimport { ApiCheckSystemService } from \"./services/ApiCheckSystem.Service\";\r\nimport { SystemPageComponent } from \"./component/systempage/system.component\";\r\nimport { ApiRecieptMsgService } from \"./services/ApiRecieptMsg.service\";\r\nimport { RegisStatusPageCreateComponent } from \"./component/regispagestatus/registstatus.component\";\r\nimport { PublicDialogComponent } from \"./component/publicdialog/dialog.component\";\r\nimport { WaitingpageComponent } from \"./component/waitingpage/waitingpage.component\";\r\nimport { ApiGetPaymentService } from \"./services/ApiGetPeyment.service\";\r\n//import { QRCodeModule } from 'angularx-qrcode';\r\nimport { PagenotfoundComponent } from \"./component/pagenotfound/pagenotfound.component\";\r\nimport { AcceptanceComponent } from \"./component/acceptance/acceptance.component\";\r\nimport { NumberDirective } from \"./component/acceptance/numbers-only.directive\";\r\nimport { ApiSaveConfirmAcceptService } from \"./services/ApiSaveConfirmAccept\";\r\nimport { CourseOnlineSelectComponent } from \"./component/couseonlineselect/course.component\";\r\nimport { ConfirmCourseOnlineSelectComponent } from \"./component/confirmonline/confirm.component\";\r\nimport { LoginComponent } from \"./component/login/login.component\";\r\nimport { ApiAuthenService } from \"./services/ApiAuth.service\";\r\nimport { AuthGuard } from './auth/authgard.guard';\r\nimport { ApiCalendaService } from \"./implement.function/calculate.calendar.services\";\r\n\r\nconst appRoutes: Routes = [\r\n { path: \"ind\", component: LoginComponent },\r\n //home/6290508511\r\n //{ path: \"ind/:id\", component: LandingPageComponent },\r\n { path: \"landing\", component: LandingPageComponent, canActivate: [AuthGuard] },\r\n //{path:\"home/:id\",component: HomeMenuCreateComponent},\r\n { path: \"home\", component: HomeMenuCreateComponent , canActivate: [AuthGuard]},\r\n //{ path: \"course\", component: CourseComponent },\r\n {\r\n path: \"course\",\r\n loadChildren: () =>\r\n import(\"./component/couseselect/course.component\").then(\r\n (m) => m.CourseComponent\r\n ), canActivate: [AuthGuard]\r\n },\r\n { path: \"course\", pathMatch: \"full\", redirectTo: \"course\" },\r\n //{ path: 'confirm', component: ConfirmComponent },\r\n {\r\n path: \"confirm\",\r\n loadChildren: () =>\r\n import(\"./component/confirm/confirm.component\").then(\r\n (m) => m.ConfirmComponent\r\n ), canActivate: [AuthGuard]\r\n },\r\n { path: \"confirm\", pathMatch: \"full\", redirectTo: \"confirm\", },\r\n // { path: \"course\", component: CourseOnlineSelectComponent },\r\n //{ path: 'confirm', component: ConfirmCourseOnlineSelectComponent },\r\n { path: \"payment\", component: PaymentComponent, canActivate: [AuthGuard] },\r\n {\r\n path: \"waiting\",\r\n loadChildren: () =>\r\n import(\"./component/waitingpage/waitingpage.component\").then(\r\n (m) => m.WaitingpageComponent\r\n )//, canActivate: [AuthGuard]\r\n },\r\n { path: \"waiting\", pathMatch: \"full\", redirectTo: \"waiting\" },\r\n { path: \"info\", component: InfoCreateComponent },\r\n // { path: \"regisall\", component: RegisAllCourseCreateComponent },\r\n {\r\n path: \"regisall\",\r\n loadChildren: () =>\r\n import(\"./component/regisallcourse/regisallcourse.component\").then(\r\n (m) => m.RegisAllCourseCreateComponent\r\n ), canActivate: [AuthGuard]\r\n },\r\n { path: \"regisall\", pathMatch: \"full\", redirectTo: \"regisall\" },\r\n //{ path: \"hisregisall\", component: HisRegisAllCreateComponent },\r\n {\r\n path: \"hisregisall\",\r\n loadChildren: () =>\r\n import(\"./component/hisregister/hisregister.component\").then(\r\n (m) => m.HisRegisAllCreateComponent\r\n )//, canActivate: [AuthGuard]\r\n },\r\n { path: \"hisregisall\", pathMatch: \"full\", redirectTo: \"hisregisall\", },\r\n // { path: \"recieptall\", component: RecieptAllCreateComponent },\r\n {\r\n path: \"recieptall\",\r\n loadChildren: () =>\r\n import(\"./component/recieptsall/reciept.component\").then(\r\n (m) => m.RecieptAllCreateComponent\r\n ), canActivate: [AuthGuard]\r\n },\r\n { path: \"recieptall\", pathMatch: \"full\", redirectTo: \"recieptall\" },\r\n { path: \"policy\", component: PolicyCreateComponent },\r\n //{ path: \"qrpagelist\", component: QrpagelistCreateComponent },\r\n {\r\n path: \"qrpagelist\",\r\n loadChildren: () =>\r\n import(\"./component/qrpagelist/qrpagelist.component\").then(\r\n (m) => m.QrpagelistCreateComponent\r\n ),\r\n },\r\n { path: \"qrpagelist\", pathMatch: \"full\", redirectTo: \"qrpagelist\", },\r\n { path: \"testing\", component: TestComponent },\r\n //{ path: \"slipt\", component: SliptComponent },\r\n {\r\n path: \"slipt\",\r\n loadChildren: () =>\r\n import(\"./component/slipts/slipt.component\").then(\r\n (m) => m.SliptComponent\r\n ), canActivate: [AuthGuard]\r\n },\r\n { path: \"slipt\", pathMatch: \"full\", redirectTo: \"slipt\" },\r\n // { path: \"listqrpayment\", component: ListQrPaymentComponent },\r\n {\r\n path: \"listqrpayment\",\r\n loadChildren: () =>\r\n import(\"./component/listqrpayment/listqrpayment.component\").then(\r\n (m) => m.ListQrPaymentComponent\r\n ), canActivate: [AuthGuard]\r\n },\r\n { path: \"listqrpayment\", pathMatch: \"full\", redirectTo: \"listqrpayment\"},\r\n { path: \"systemcomponent\", component: SystemPageComponent },\r\n { path: \"registstatus\", component: RegisStatusPageCreateComponent, canActivate: [AuthGuard] },\r\n // { path: \"waiting\", component: WaitingpageComponent },\r\n {\r\n path: \"waiting\",\r\n loadChildren: () =>\r\n import(\"./component/waitingpage/waitingpage.component\").then(\r\n (m) => m.WaitingpageComponent\r\n ),\r\n },\r\n { path: \"waiting\", pathMatch: \"full\", redirectTo: \"waiting\" },\r\n // { path: \"waiting\", component: WaitingpageComponent },\r\n\r\n { path: \"accept\", component: AcceptanceComponent, canActivate: [AuthGuard] },\r\n { path: \"**\", component: PagenotfoundComponent },\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n CourseComponent,\r\n FooterCreateComponent,\r\n ConfirmComponent,\r\n PaymentComponent,\r\n HomeMenuCreateComponent,\r\n InfoCreateComponent,\r\n RegisAllCourseCreateComponent,\r\n HisRegisAllCreateComponent,\r\n RecieptAllCreateComponent,\r\n PolicyCreateComponent,\r\n QrpagelistCreateComponent,\r\n ProfileComponent,\r\n TestComponent,\r\n LandingPageComponent,\r\n SliptComponent,\r\n ListQrPaymentComponent,\r\n SystemPageComponent,\r\n RegisStatusPageCreateComponent,\r\n PublicDialogComponent,\r\n WaitingpageComponent,\r\n PagenotfoundComponent,\r\n AcceptanceComponent,\r\n NumberDirective,\r\n CourseOnlineSelectComponent,\r\n ConfirmCourseOnlineSelectComponent,\r\n LoginComponent,\r\n //CustomMaterialModule\r\n ],\r\n imports: [\r\n BrowserModule,\r\n HttpModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatCardModule,\r\n MatTableModule,\r\n MatCheckboxModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n MatDividerModule,\r\n HttpClientModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatProgressSpinnerModule,\r\n // QRCodeModule,\r\n MatRadioModule,\r\n SocialLoginModule,\r\n // DataTablesModule,\r\n //BsModalService,\r\n ModalModule.forRoot(),\r\n BackButtonDisableModule.forRoot({ preserveScrollPosition: true }),\r\n RouterModule.forRoot(appRoutes, {\r\n useHash: true,\r\n relativeLinkResolution: \"legacy\",\r\n }),\r\n ],\r\n exports: [RouterModule],\r\n providers: [\r\n MatDatepickerModule,\r\n ApiFetchCourseService,\r\n ApiGetTermValService,\r\n ApiFetchAllCourseRegisService,\r\n ApiFetchETCourseService,\r\n ApiFetchProfileService,\r\n ApiFetchCounterService,\r\n ApiFetchDateService,\r\n ApiFetchDateSectionService,\r\n ApiConfirmService,\r\n BsModalService,\r\n ApiFetchQrPaymentService,\r\n ApiFetchRecieptService,\r\n ApiCheckSelectDateService,\r\n BnNgIdleService,\r\n ApiFectSelectPayQrService,\r\n ApiFetchPaymentService,\r\n ApiCheckSystemService,\r\n ApiRecieptMsgService,\r\n ApiGetPaymentService,\r\n ApiSaveConfirmAcceptService,\r\n ApiAuthenService,\r\n ApiCalendaService,\r\n //{provide: LOCALE_ID, useValue: 'en' },\r\n //{ provide: LOCALE_ID, useValue: \"th-TH\" }\r\n {\r\n provide: \"SocialAuthServiceConfig\",\r\n useValue: {\r\n autoLogin: false,\r\n providers: [\r\n {\r\n id: GoogleLoginProvider.PROVIDER_ID,\r\n provider: new GoogleLoginProvider(\r\n \"563320372547-0au2j4cp1tps3db1cdvphlh2hmb8384u.apps.googleusercontent.com\",\r\n { scope: \"profile email\", pluginName: \"webappetest-342713\" }\r\n ),\r\n },\r\n ],\r\n onError: (err) => {\r\n console.error(err);\r\n },\r\n } as SocialAuthServiceConfig,\r\n },\r\n // { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\r\n ],\r\n //declarations: [ ConfirmDialogComponent],\r\n // entryComponents: [ConfirmDialogComponent],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n constructor( private router: Router, ){}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n const user = sessionStorage.getItem(\"stdcode\");\n \n if (user) {\n\n return true;\n }\n\n //sessionStorage.clear();\n // this.router.navigate(['checkregis']);\n return false;\n }\n \n}\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\nimport {MatRadioModule} from '@angular/material/radio';\n\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\n//import { ApiSaveConfirmAcceptService } from 'src/app/services/ApiSaveConfirmAccept';\nimport { PublicDialogComponent } from '../publicdialog/dialog.component';\n\n\n@Component({\n selector: 'app-acceptance',\n templateUrl: './acceptance.component.html',\n styleUrls: ['./acceptance.component.css']\n})\nexport class AcceptanceComponent implements OnInit {\n //----------------------------\n //get Date\n curDate = new Date();\n public arrDateToStr: any[] = [];\n public msgmodal = '';\n public txtmsg ='';\n\n //var --------\"\n public stdcode = '';\n public sem = '';\n public year = '';\n public pcstatus = '';\n public mbstatus = ''\n public telno = '';\n public todoAccept: any = [];\n //-------------------------\n\n value='';\n counter = 0;\n\n constructor(\n // private apiSave: ApiSaveConfirmAcceptService,\n public dialog: MatDialog,\n private router: Router,\n private route: ActivatedRoute) { }\n\n ngOnInit(): void {\n this.loadData();\n }\n\n onChange(event) {\n this.counter = this.counter + 1;\n }\n\n async loadData() {\n this.stdcode = sessionStorage.getItem(\"stdcode\");\n this.sem = sessionStorage.getItem(\"sem\");\n this.year = sessionStorage.getItem(\"year\");\n }\n\n showSpinner = false;\n loading() {\n setTimeout(() => {\n this.showSpinner = false;\n }, 2000);\n }\n\n\n backClicked() {\n // this._location.back();\n sessionStorage.clear();\n this.router.navigate(['/']);\n //window.location.href = 'https://beta-e-service.ru.ac.th/';\n }\n\n\n confirmAccept() {\n // alert(this.pcstatus)\n if (this.telno.length <10 || this.telno[0] != '0') {\n this.openAlertDialogRegisNotSuccess();\n } else {\n this.todoAccept.push({\n \"status1\": this.pcstatus,\n \"status2\": this.mbstatus,\n \"telno\": this.telno\n });\n sessionStorage.setItem(\"accepted\", ((this.todoAccept)));\n sessionStorage.setItem(\"pupdate\", JSON.stringify(this.telno) );\n this.router.navigate(['course']);\n }\n\n\n }\n\n\n\n async openAlertDialogRegisNotSuccess() {\n await this.dialog.open(PublicDialogComponent, {\n width: '500px',\n data: {\n header: 'ข้อความจากระบบ!',\n txt: 'ท่านกรอกหมายเลขโทรศัพท์ไม่ถูกต้อง',\n },\n disableClose: true,\n });\n await setTimeout(() => {\n this.showSpinner = false;\n // this.router.navigate(['/']);\n this.telno ='';\n }, 1200);\n //this.router.navigate(['/confirm']);\n }\n}\n","\n
\n\n \n
\n \n \n
\n
\n
\n

manage_accounts\n ระเบียบการสอบ E-testing online

\n
\n
\n
\n
\n \n
\n
\n
\n

\n fact_check   อุปกรณ์ที่นักศึกษาต้องมีเพื่อใช้ในการสอบ\n

\n

\n
\n 1.นักศึกษามีเครื่องคอมพิวเตอร์ (PC) และกล้อง Webcam\n \n
\n

\n
\n 1.นักศึกษาได้ทำทดลองโปรแกรมสอบ online ของสถาบันแล้ว \n
\n
\n schedule_send  \n \n
\n \n
\n
\n
\n \n \n\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n\n \n \n
\n
\n
\n\n
\n\n

\n
\n
\n \n \n \n \n\n\n \n
\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'input[numbersOnly]'\r\n})\r\nexport class NumberDirective {\r\n\r\n constructor(private _el: ElementRef) { }\r\n\r\n @HostListener('input', ['$event']) onInputChange(event) {\r\n const initalValue = this._el.nativeElement.value;\r\n this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\r\n if ( initalValue !== this._el.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, TemplateRef } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport * as moment from 'moment';\nimport { ApiConfirmService } from '../../services/ApiConfirm.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { PublicDialogComponent } from '../publicdialog/dialog.component';\n\n@Component({\n selector: 'app-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.css'],\n})\nexport class ConfirmComponent implements OnInit {\n coursetest = [\n { courseno: 'COS2101', credit: 3, status: false },\n { courseno: 'COS2102', credit: 3, status: false },\n ];\n modalRef: BsModalRef;\n message: string;\n //todotest: any = localStorage.getItem(\"todo\");\n public cntTodoCourse;\n\n public perCourse = 200;\n public chkDupDateAndSec: boolean = false;\n public chkDupButton: boolean = true;\n\n //-----------------------------\n public todoregist: any = [];\n public todoCourse: any = [];\n public tmptodoCourse: any = [];\n public tmpCourse: any = [];\n public sumCredit: number;\n public iCourse: any = [];\n public iCredit: any = [];\n public iFeelab: any = [];\n public iCourclass: any = [];\n public iSection: any = [];\n public cntCourseNo;\n public iExamdate: any = [];\n public sumMoney;\n public subyear;\n public year;\n public semester;\n public facno;\n public txtsem = sessionStorage.getItem('txtsem');\n\n public todocredit: any = [];\n public todo: any = [];\n public aCredit;\n public aCreditCost;\n public aMa;\n public aMaCost;\n public aStastd;\n public aStastdCost;\n public aNews;\n public aNewsCost;\n public aLab;\n public aLabCost;\n public aCommu;\n public aCommuCost;\n public stdstatus;\n public totalCredit;\n public fac;\n public majorno;\n public total;\n public name;\n public grad;\n public us;\n public feeTemp;\n public feeNo;\n public adddroptype;\n public sumCreditTodo;\n public sumCreditTmp;\n public isenabled: boolean = false;\n public alert = '';\n public stdcodeEnc;\n public tel;\n public stdyear;\n public creditMax;\n public creditMin;\n public creditMaxEnd;\n public sta = '';\n public expText;\n //----------------------------\n //get Date\n curDate = new Date();\n public arrDateToStr: any[] = [];\n public msgmodal = '';\n public txtmsg = '';\n\n constructor(\n private httpClient: HttpClient,\n private confirmservice: ApiConfirmService,\n public dialog: MatDialog,\n private modalService: BsModalService,\n private router: Router,\n private route: ActivatedRoute\n ) {}\n\n async openAlertDialogRegisNotSuccess() {\n await this.dialog.open(PublicDialogComponent, {\n width: '500px',\n data: {\n header: 'ข้อความจากระบบ!',\n txt: this.txtmsg, // 'ท่านไม่มีวิชาที่สามารถลงทะเบียนสอบได้',\n },\n disableClose: true,\n });\n await setTimeout(() => {\n this.showSpinner = false;\n this.router.navigate(['/home']);\n }, 3000);\n //this.router.navigate(['/confirm']);\n }\n\n ngOnInit() {\n if (sessionStorage.getItem('stdcode') == null) {\n alert('please login again');\n this.backClicked();\n } else {\n this.loading();\n\n this.chkTodoSelectCourse();\n }\n\n //this.chbkconfirm();\n }\n\n showSpinner = false;\n loading() {\n if (\n this.todoCourse == '' ||\n this.todoCourse == null ||\n this.todoCourse == undefined\n ) {\n // window.location.reload();\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n }, 2000);\n }\n }\n\n backClicked() {\n // this._location.back();\n sessionStorage.clear();\n this.router.navigate(['/']);\n // window.location.href = 'https://beta-e-service.ru.ac.th/';\n }\n\n async chkTodoSelectCourse() {\n let temp = await sessionStorage.getItem('todoSelectCourse');\n if (temp == null) {\n alert('ทำรายการไม่สำเร็จ กรุณาทำรายการใหม่');\n this.router.navigate(['/home']);\n } else {\n this.grad = await sessionStorage.getItem('neargrad');\n this.us = await sessionStorage.getItem('stdcode');\n this.semester = await sessionStorage.getItem('sem');\n this.year = await sessionStorage.getItem('year');\n this.facno = await sessionStorage.getItem('facno');\n this.grad = await sessionStorage.getItem('grad');\n this.todoCourse = await JSON.parse(\n sessionStorage.getItem('todoSelectCourse')\n );\n this.cntTodoCourse = await Object.keys(this.todoCourse).length;\n this.tmptodoCourse = await JSON.parse(\n sessionStorage.getItem('todoSelectCourse')\n );\n\n var tmpA = await this.tmptodoCourse;\n tmpA.filter((arr) => {\n if (arr.section == '1') {\n arr.sectime = '9:00 - 11:30';\n } else if (arr.section == '2') {\n arr.sectime = '12:00 - 14:30'; //alert(\"6666\");\n } else if (arr.section == '3') {\n arr.sectime = '15:00-17:30';\n } else if (arr.section == '4') {\n arr.sectime = '18:00-20:30';\n }\n //console.log('sectime = ' + arr.sectime);\n // arr.sectime = sectime;\n });\n sessionStorage.setItem('todoSelectCourse', JSON.stringify(tmpA));\n\n let chkExamdate: any[],\n chkSec: any[],\n cntSame = 0;\n\n for (let i = 0; i < tmpA.length; i++) {\n chkExamdate = tmpA[i].examdate;\n chkSec = tmpA[i].section;\n cntSame++;\n for (let j = 0; j < i; j++) {\n // console.log('chkExamdate = ' + chkExamdate);\n if (chkExamdate == tmpA[j].examdate && chkSec == tmpA[j].section) {\n this.chkDupDateAndSec = true;\n this.chkDupButton = false;\n this.isenabled = true;\n alert('ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่');\n } else {\n this.chkDupDateAndSec = false;\n this.chkDupButton = true;\n this.isenabled = false;\n }\n }\n }\n\n // console.log('tmptodoCourse = ' + JSON.stringify(this.tmptodoCourse));\n this.total = Number(this.cntTodoCourse) * this.perCourse;\n if (this.total != 0) {\n sessionStorage.setItem('total', this.total);\n }\n\n if (this.tmptodoCourse != null || this.tmptodoCourse != '') {\n // this.testCheckconfirmevent()\n this.checkconfirmevent();\n } else {\n alert('Please Select courses again');\n this.router.navigate(['payment']);\n }\n }\n }\n\n //isenabled = true;\n async chekconfirm() {\n await this.checkconfirmevent();\n await this.confirm();\n this.modalRef.hide();\n }\n\n async confirm() {\n // load data to save.\n let tempA = await JSON.parse(sessionStorage.getItem('todoSelectCourse'));\n\n if (tempA == null) {\n this.isenabled = false;\n this.loading();\n } else {\n this.isenabled = true;\n }\n //console.log('tempA confirm = ' + JSON.stringify(tempA));\n this.sumCredit = 0;\n let x: any = [];\n this.cntCourseNo = Object.keys(tempA).length;\n for (let i = 0; i < tempA.length; i++) {\n this.sumCredit = this.sumCredit + parseInt(tempA[i].credit);\n this.iCredit.push(tempA[i].credit);\n this.iCourse.push(tempA[i].courseno);\n this.iExamdate.push(tempA[i].examdate);\n this.iSection.push(tempA[i].section);\n // x.push(tempA[i].section);\n } //console.log('this.iSection confirm = ' + JSON.stringify(x));\n\n this.arrDateToStr.push(this.curDate);\n let tmpDateCurrent = moment(new Date(this.arrDateToStr.join())).format(\n 'DDMMYY'\n );\n\n this.sta = await sessionStorage.getItem('sta');\n this.confirmservice\n .doConfirm(\n this.us,\n this.year,\n this.semester,\n this.cntCourseNo,\n this.grad,\n this.total,\n this.facno,\n this.iExamdate,\n this.iSection,\n this.iCourse,\n this.iCredit,\n tmpDateCurrent,\n this.iCredit\n )\n .then((data: any) => {\n // console.log(data);\n if (Number(data.results[0].bookstatus) == 1) {\n sessionStorage.setItem('save', 'Y');\n sessionStorage.setItem('todoresults', JSON.stringify(data));\n sessionStorage.setItem('refkey', data.results[0].refkey);\n sessionStorage.setItem('fullrefkey', data.results[0].fullrefkey);\n this.modalRef.hide();\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n //this.router.navigate(['qrpagelist']);\n this.router.navigate(['waiting']);\n }, 1000);\n } else {\n sessionStorage.setItem('save', 'N');\n this.txtmsg = data.results[0].msg;\n\n alert('ลงทะเบียนไม่สำเร็จ!');\n this.router.navigate(['course']);\n //this.openAlertDialogRegisNotSuccess();\n //\n }\n });\n /*\n .then((data: any) => {\n console.log('save --- '+JSON.stringify(data));\n\n if (Number(data.results[0].bookstatus) == 1) {\n sessionStorage.setItem('save', 'Y');\n sessionStorage.setItem('todoresults', JSON.stringify(data));\n sessionStorage.setItem('refkey', data.results[0].refkey);\n sessionStorage.setItem('fullrefkey', data.results[0].fullrefkey);\n this.modalRef.hide();\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n //this.router.navigate(['qrpagelist']);\n this.router.navigate(['waiting']);\n }, 1000);\n } else {\n sessionStorage.setItem('save', 'N');\n this.txtmsg = data.results[0].msg;\n\n alert('ลงทะเบียนไม่สำเร็จ!');\n this.router.navigate(['course']);\n //this.openAlertDialogRegisNotSuccess();\n //\n }\n }\n\n );*/\n\n this.iExamdate = [];\n this.iSection = [];\n this.iCourse = [];\n this.iCredit = [];\n this.iCourclass = [];\n\n this.modalRef.hide();\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n //this.router.navigate(['qrpagelist']);\n //this.router.navigate(['waiting']);\n }, 1000);\n\n //this.router.navigate(['registstatus']);\n }\n\n openModalBackHome(template: TemplateRef) {\n this.msgmodal = 'ยกเลิกการลงทะเบียน!';\n this.modalRef = this.modalService.show(template, { class: 'modal-md' });\n }\n\n openModal(template: TemplateRef) {\n this.msgmodal = 'Do you want to confirm?';\n this.modalRef = this.modalService.show(template, { class: 'modal-md' });\n }\n\n btnconfirm(): void {\n this.message = 'Confirmed!';\n this.chekconfirm();\n }\n\n btndecline(): void {\n this.message = 'Declined!';\n this.modalRef.hide();\n }\n\n btndhome(): void {\n sessionStorage.removeItem('todoSelectCourse');\n sessionStorage.removeItem('todoHis');\n sessionStorage.removeItem('tmpdatetoStr');\n sessionStorage.removeItem('total');\n this.modalRef.hide();\n this.router.navigate(['home']);\n }\n\n async checkconfirmevent() {\n let iExamdate: any[] = [],\n iCourse: any[] = [],\n iSection: any[] = [],\n tmp: any[] = [],\n inx = 0;\n let tempA = await JSON.parse(sessionStorage.getItem('todoSelectCourse'));\n for (let i = 0; i < tempA.length; i++) {\n iCourse.push(tempA[i].courseno);\n iExamdate.push(tempA[i].examdate);\n iSection.push(tempA[i].section);\n }\n\n let res = await this.confirmservice\n .doCheckConfirm(\n this.us,\n this.semester,\n this.year,\n iExamdate,\n iSection,\n iCourse\n )\n .toPromise();\n //console.log(JSON.stringify(res));\n if (res) {\n tmp = res.result;\n for (let i = 0; i < tmp.length; i++) {\n if (Number(tmp[i].resultSeat) == 0) {\n this.isenabled = true;\n this.tmptodoCourse[i].tmpSection = '!คาบสอบที่เลือกเต็ม';\n }\n }\n } else {\n inx = inx + 1;\n this.loading();\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n sessionStorage.setItem('chkdup', inx.toString());\n if (inx < 2) {\n this.checkconfirmevent();\n } else {\n alert('คาบสอบที่เลือกเต็ม');\n }\n }, 2000);\n }\n\n iExamdate = [];\n iSection = [];\n iCourse = [];\n }\n\n chkOldRegisCourse(tempA: any) {\n // console.log('tempA check = ' + JSON.stringify(tempA));\n let tempTodoHis = JSON.parse(sessionStorage.getItem('todoHis'));\n let iExamdate: [];\n let iExamDateHis: [];\n for (let i = 0; i < tempA.length; i++) {\n iExamdate = tempA[i].examdate;\n for (let j = 0; j < tempTodoHis.length; j++) {\n iExamDateHis = tempTodoHis[j].examdate;\n if (iExamdate == iExamDateHis) {\n this.chkDupDateAndSec = true;\n // this.isEnable = true;\n alert('ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่!!');\n } else {\n // this.chkDupDateAndSec = false;\n //this.isEnable = false;\n }\n }\n }\n }\n}\n","\n\n\n\n \n
\n
\n \n \n
\n
\n
\n

\n \n backup_table\n ยืนยันวิชาที่นักศึกษาได้ทำการลงทะเบียนสอบ E-testing ปีการศึกษา {{txtsem}}/{{year}}\n

\n
\n
\n
\n\n\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
#วิชาวันที่สอบคาบสอบ
{{i+1}}{{item.courseno}} {{item.examdate}}{{item.sectime}} น. ({{item.section}})
 {{item.tmpSection}}
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n
ค่าลงทะเบียนสอบวิชาละ\n {{perCourse}} บาท
จำนวนวิชาลงทะเบียน\n      {{cntTodoCourse}} วิชา
\n จำนวนเงินที่ต้องชำระ\n {{total}} บาท
\n
\n
\n\n \n
\n

ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่

\n  \n \n

\n
\n
\n \n

\n\n \n
\n
\n
\n
\n \n\n  \n  \n \n
\n
\n
\n
\n
\n\n

\n


\n
\n
\n
\n
\n
\n
loading...
\n\n

\n\n\n\n\n \n
\n\n

\n {{msgmodal}}\n

\n  \n \n
\n
\n\n \n
\n\n

\n {{msgmodal}}\n

\n  \n \n
\n
\n\n
\n\n\n\n","import {\r\n Component,\r\n OnInit,\r\n inject,\r\n Output,\r\n EventEmitter,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport * as moment from 'moment';\r\nimport { ApiConfirmService } from '../../services/ApiConfirm.service';\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from '@angular/material/dialog';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { PublicDialogComponent } from '../publicdialog/dialog.component';\r\n\r\n@Component({\r\n selector: 'app-confirm',\r\n templateUrl: './confirm.component.html',\r\n styleUrls: ['./confirm.component.css'],\r\n})\r\nexport class ConfirmCourseOnlineSelectComponent implements OnInit {\r\n coursetest = [\r\n { courseno: 'COS2101', credit: 3, status: false },\r\n { courseno: 'COS2102', credit: 3, status: false },\r\n ];\r\n modalRef: BsModalRef;\r\n message: string;\r\n //todotest: any = localStorage.getItem(\"todo\");\r\n public cntTodoCourse;\r\n\r\n public perCourse = 200;\r\n public chkDupDateAndSec: boolean = false;\r\n public chkDupButton: boolean = true;\r\n\r\n //-----------------------------\r\n public todoregist: any = [];\r\n public todoCourse: any = [];\r\n public tmptodoCourse: any = [];\r\n public tmpCourse: any = [];\r\n public sumCredit: number;\r\n public iCourse: any = [];\r\n public iCredit: any = [];\r\n public iFeelab: any = [];\r\n public iCourclass: any = [];\r\n public iSection: any = [];\r\n public cntCourseNo;\r\n public iExamdate: any = [];\r\n public sumMoney;\r\n public subyear;\r\n public year;\r\n public semester;\r\n public facno;\r\n public txtsem = sessionStorage.getItem('txtsem');\r\n\r\n public todocredit: any = [];\r\n public todo: any = [];\r\n public aCredit;\r\n public aCreditCost;\r\n public aMa;\r\n public aMaCost;\r\n public aStastd;\r\n public aStastdCost;\r\n public aNews;\r\n public aNewsCost;\r\n public aLab;\r\n public aLabCost;\r\n public aCommu;\r\n public aCommuCost;\r\n public stdstatus;\r\n public totalCredit;\r\n public fac;\r\n public majorno;\r\n public total;\r\n public name;\r\n public grad;\r\n public us;\r\n public feeTemp;\r\n public feeNo;\r\n public adddroptype;\r\n public sumCreditTodo;\r\n public sumCreditTmp;\r\n public isenabled: boolean = false;\r\n public alert = '';\r\n public stdcodeEnc;\r\n public tel;\r\n public stdyear;\r\n public creditMax;\r\n public creditMin;\r\n public creditMaxEnd;\r\n public sta = '';\r\n public expText;\r\n public pupdate = sessionStorage.getItem('pupdate');\r\n //----------------------------\r\n //get Date\r\n curDate = new Date();\r\n public arrDateToStr: any[] = [];\r\n public msgmodal = '';\r\n public txtmsg ='';\r\n public redirectUrl = '';\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private confirmservice: ApiConfirmService,\r\n public dialog: MatDialog,\r\n private modalService: BsModalService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) {}\r\n\r\n async openAlertDialogRegisNotSuccess() {\r\n await this.dialog.open(PublicDialogComponent, {\r\n width: '500px',\r\n data: {\r\n header: 'ข้อความจากระบบ!',\r\n txt: this.txtmsg,// 'ท่านไม่มีวิชาที่สามารถลงทะเบียนสอบได้',\r\n },\r\n disableClose: true,\r\n });\r\n await setTimeout(() => {\r\n this.showSpinner = false;\r\n // this.router.navigate(['/']);\r\n }, 1200);\r\n //this.router.navigate(['/confirm']);\r\n }\r\n\r\n ngOnInit() {\r\n if (sessionStorage.getItem('stdcode') == null) {\r\n alert('please login again');\r\n this.backClicked();\r\n } else {\r\n this.loading();\r\n // console.log(this.pupdate);\r\n this.chkTodoSelectCourse();\r\n }\r\n\r\n //this.chbkconfirm();\r\n }\r\n\r\n showSpinner = false;\r\n loading() {\r\n if (\r\n this.todoCourse == '' ||\r\n this.todoCourse == null ||\r\n this.todoCourse == undefined\r\n ) {\r\n // window.location.reload();\r\n this.showSpinner = true;\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n }, 2000);\r\n }\r\n\r\n\r\n }\r\n\r\n backClicked() {\r\n // this._location.back();\r\n sessionStorage.clear();\r\n this.router.navigate(['/']);\r\n //window.location.href = 'https://beta-e-service.ru.ac.th/';\r\n }\r\n\r\n async chkTodoSelectCourse() {\r\n let temp = await sessionStorage.getItem('todoSelectCourse');\r\n if (temp == null) {\r\n alert('ทำรายการไม่สำเร็จ กรุณาทำรายการใหม่');\r\n this.router.navigate(['/']);\r\n } else {\r\n this.grad = await sessionStorage.getItem('neargrad');\r\n this.us = await sessionStorage.getItem('stdcode');\r\n this.semester = await sessionStorage.getItem('sem');\r\n this.year = await sessionStorage.getItem('year');\r\n this.facno = await sessionStorage.getItem('facno');\r\n this.grad = await sessionStorage.getItem('grad');\r\n this.todoCourse = await JSON.parse(\r\n sessionStorage.getItem('todoSelectCourse')\r\n );\r\n\r\n this.cntTodoCourse = await Object.keys(this.todoCourse).length;\r\n this.tmptodoCourse = await JSON.parse(\r\n sessionStorage.getItem('todoSelectCourse')\r\n );\r\n\r\n var tmpA = await this.tmptodoCourse;\r\n tmpA.filter((arr) => {\r\n if (arr.section == '1') {\r\n arr.sectime = '9:00 - 12:00';\r\n } else if (arr.section == '2') {\r\n arr.sectime = '13:00 - 15:30'; //alert(\"6666\");\r\n }/* else if (arr.section == '3') {\r\n arr.sectime = '15:00-17:30';\r\n } else if (arr.section == '4') {\r\n arr.sectime = '18:00-20:30';\r\n }*/\r\n //console.log('sectime = ' + arr.sectime);\r\n // arr.sectime = sectime;\r\n });\r\n sessionStorage.setItem('todoSelectCourse', JSON.stringify(tmpA));\r\n\r\n let chkExamdate: any[],\r\n chkSec: any[],\r\n cntSame = 0;\r\n\r\n for (let i = 0; i < tmpA.length; i++) {\r\n chkExamdate = tmpA[i].examdate;\r\n chkSec = tmpA[i].section;\r\n cntSame++;\r\n for (let j = 0; j < i; j++) {\r\n // console.log('chkExamdate = ' + chkExamdate);\r\n if (chkExamdate == tmpA[j].examdate && chkSec == tmpA[j].section) {\r\n this.chkDupDateAndSec = true;\r\n this.chkDupButton = false;\r\n this.isenabled = true;\r\n alert('ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่');\r\n } else {\r\n this.chkDupDateAndSec = false;\r\n this.chkDupButton = true;\r\n this.isenabled = false;\r\n }\r\n }\r\n }\r\n\r\n // console.log('tmptodoCourse = ' + JSON.stringify(this.tmptodoCourse));\r\n this.total = Number(this.cntTodoCourse) * this.perCourse;\r\n if (this.total != 0) {\r\n sessionStorage.setItem('total', this.total);\r\n }\r\n\r\n if (this.tmptodoCourse != null || this.tmptodoCourse != '') {\r\n // this.testCheckconfirmevent()\r\n this.checkconfirmevent();\r\n } else {\r\n alert('Please Select courses again');\r\n this.router.navigate(['payment']);\r\n }\r\n }\r\n }\r\n\r\n //isenabled = true;\r\n async chekconfirm() {\r\n await this.checkconfirmevent();\r\n await this.confirm();\r\n await this.modalRef.hide();\r\n }\r\n\r\n async confirm() {\r\n // load data to save.\r\n let tempA = await JSON.parse(sessionStorage.getItem('todoSelectCourse'));\r\n\r\n if (tempA == null) {\r\n this.isenabled = false;\r\n this.loading();\r\n } else {\r\n this.isenabled = true;\r\n }\r\n //console.log('tempA confirm = ' + JSON.stringify(tempA));\r\n this.sumCredit = 0;\r\n let x: any = [];\r\n this.cntCourseNo = Object.keys(tempA).length;\r\n for (let i = 0; i < tempA.length; i++) {\r\n this.sumCredit = this.sumCredit + parseInt(tempA[i].credit);\r\n this.iCredit.push(tempA[i].credit);\r\n this.iCourse.push(tempA[i].courseno);\r\n this.iExamdate.push(tempA[i].examdate);\r\n this.iSection.push(tempA[i].section);\r\n // x.push(tempA[i].section);\r\n } //console.log('this.iSection confirm = ' + JSON.stringify(x));\r\n\r\n this.arrDateToStr.push(this.curDate);\r\n let tmpDateCurrent = moment(new Date(this.arrDateToStr.join())).format(\r\n 'DDMMYY'\r\n );\r\n\r\n this.sta = await sessionStorage.getItem('sta');\r\n // console.log('this.iSection confirm = ' + JSON.stringify(this.iCourse));\r\n // if (this.sta != \"1\" ) {\r\n this.confirmservice\r\n .doConfirm(\r\n this.us,\r\n this.year,\r\n this.semester,\r\n this.cntCourseNo,\r\n this.grad,\r\n this.total,\r\n this.facno,\r\n this.iExamdate,\r\n this.iSection,\r\n this.iCourse,\r\n this.iCredit,\r\n tmpDateCurrent,\r\n this.pupdate\r\n )\r\n /*.then((data: any) => {\r\n // console.log('save --- '+JSON.stringify(data));\r\n\r\n let res = data.results;\r\n // console.log('save --- '+ res[0].bookstatus);\r\n if (Number(res[0].bookstatus) == 1) {\r\n sessionStorage.setItem('save', 'Y');\r\n sessionStorage.setItem('todoresults', JSON.stringify(data));\r\n sessionStorage.setItem('refkey', res[0].refkey);\r\n sessionStorage.setItem('fullrefkey', res[0].fullrefkey);\r\n this.modalRef.hide();\r\n this.txtmsg = JSON.stringify(res[0].msg);\r\n this.showSpinner = true;\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n //this.router.navigate(['qrpagelist']);\r\n this.router.navigate(['waiting']);\r\n }, 1000);\r\n } else {\r\n sessionStorage.setItem('save', 'N');\r\n this.txtmsg = JSON.stringify(res[0].msg);\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n //this.router.navigate(['qrpagelist']);\r\n this.openAlertDialogRegisNotSuccess();\r\n }, 1000);\r\n\r\n //alert('Register Not seccess!');\r\n }\r\n });*/\r\n\r\n this.iExamdate = [];\r\n this.iSection = [];\r\n this.iCourse = [];\r\n this.iCredit = [];\r\n this.iCourclass = [];\r\n\r\n this.modalRef.hide();\r\n this.showSpinner = true;\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n //this.router.navigate(['qrpagelist']);\r\n this.router.navigate(['waiting']);\r\n }, 1000);\r\n\r\n //this.router.navigate(['registstatus']);\r\n }\r\n\r\n openModalBackHome(template: TemplateRef) {\r\n this.msgmodal = 'ยกเลิกการลงทะเบียน!';\r\n this.modalRef = this.modalService.show(template, { class: 'modal-md' });\r\n }\r\n\r\n openModal(template: TemplateRef) {\r\n this.msgmodal = 'Do you want to confirm?';\r\n this.modalRef = this.modalService.show(template, { class: 'modal-md' });\r\n }\r\n\r\n btnconfirm(): void {\r\n this.message = 'Confirmed!';\r\n this.chekconfirm();\r\n }\r\n\r\n btndecline(): void {\r\n this.message = 'Declined!';\r\n this.modalRef.hide();\r\n }\r\n\r\n btndhome(): void {\r\n sessionStorage.removeItem('todoSelectCourse');\r\n sessionStorage.removeItem('todoHis');\r\n sessionStorage.removeItem('tmpdatetoStr');\r\n sessionStorage.removeItem('total');\r\n this.modalRef.hide();\r\n this.router.navigate(['/']);\r\n }\r\n\r\n async checkconfirmevent() {\r\n let iExamdate: any[] = [],\r\n iCourse: any[] = [],\r\n iSection: any[] = [],\r\n tmp: any[] = [],\r\n inx = 0;\r\n let tempA = await JSON.parse(sessionStorage.getItem('todoSelectCourse'));\r\n for (let i = 0; i < tempA.length; i++) {\r\n iCourse.push(tempA[i].courseno);\r\n iExamdate.push(tempA[i].examdate);\r\n iSection.push(tempA[i].section);\r\n }\r\n\r\n let res = await this.confirmservice\r\n .doCheckConfirm(\r\n this.us,\r\n this.semester,\r\n this.year,\r\n iExamdate,\r\n iSection,\r\n iCourse\r\n )\r\n .toPromise();\r\n //console.log(JSON.stringify(res));\r\n if (res) {\r\n tmp = res.result;\r\n for (let i = 0; i < tmp.length; i++) {\r\n if (Number(tmp[i].resultSeat) == 0) {\r\n this.isenabled = true;\r\n this.tmptodoCourse[i].tmpSection = '!คาบสอบที่เลือกเต็ม';\r\n }\r\n }\r\n } else {\r\n inx = inx + 1;\r\n this.loading();\r\n this.showSpinner = true;\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n sessionStorage.setItem('chkdup', inx.toString());\r\n if (inx < 2) {\r\n this.checkconfirmevent();\r\n } else {\r\n alert('คาบสอบที่เลือกเต็ม');\r\n }\r\n }, 2000);\r\n }\r\n\r\n iExamdate =[];\r\n iSection = [];\r\n iCourse= [];\r\n }\r\n\r\n chkOldRegisCourse(tempA: any) {\r\n // console.log('tempA check = ' + JSON.stringify(tempA));\r\n let tempTodoHis = JSON.parse(sessionStorage.getItem('todoHis'));\r\n let iExamdate: [];\r\n let iExamDateHis: [];\r\n for (let i = 0; i < tempA.length; i++) {\r\n iExamdate = tempA[i].examdate;\r\n for (let j = 0; j < tempTodoHis.length; j++) {\r\n iExamDateHis = tempTodoHis[j].examdate;\r\n if (iExamdate == iExamDateHis) {\r\n this.chkDupDateAndSec = true;\r\n // this.isEnable = true;\r\n alert('ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่!!');\r\n } else {\r\n // this.chkDupDateAndSec = false;\r\n //this.isEnable = false;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n \r\n backup_table\r\n ยืนยันวิชาที่นักศึกษาได้ทำการลงทะเบียนสอบ E-testing ปีการศึกษา {{txtsem}}/{{year}}\r\n

\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
#วิชาวันที่สอบคาบสอบ
{{i+1}}{{item.courseno}} {{item.examdate}}{{item.sectime}} น. ({{item.section}})
 {{item.tmpSection}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ค่าลงทะเบียนสอบวิชาละ\r\n {{perCourse}} บาท
จำนวนวิชาลงทะเบียน\r\n      {{cntTodoCourse}} วิชา
\r\n จำนวนเงินที่ต้องชำระ\r\n {{total}} บาท
\r\n
\r\n
\r\n\r\n \r\n
\r\n

ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่

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

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

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

\r\n


\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
loading...
\r\n\r\n

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

\r\n {{msgmodal}}\r\n

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

\r\n {{msgmodal}}\r\n

\r\n  \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n","import { Component, ViewEncapsulation, OnInit, Inject,TemplateRef } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatCalendarCellCssClasses, MatDatepickerInputEvent,} from '@angular/material/datepicker';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport {\r\n FormGroup,\r\n FormArray,\r\n FormControl\r\n} from '@angular/forms';\r\nimport { ApiFetchETCourseService } from 'src/app/services/ApiFetchETCourse.service';\r\nimport * as moment from 'moment';\r\nimport { Location } from '@angular/common';\r\nimport { ApiCheckSelectDateService } from 'src/app/services/ApiCheckSelectDate.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PublicDialogComponent } from '../publicdialog/dialog.component';\r\nimport { GlobalUrlToRedirect,MessegeNoti } from '../../interfaces/GlobalUrlToRedirect';\r\n\r\nexport interface PeriodicElement {\r\n courseno: string;\r\n coursename: string;\r\n credit: string;\r\n // symbol: string;\r\n}\r\n\r\nexport class newArray {\r\n index: number;\r\n couse: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-course',\r\n templateUrl: './course.component.html',\r\n styleUrls: ['./course.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CourseOnlineSelectComponent implements OnInit {\r\n coursetest = [\r\n { courseno: 'COS2101', credit: 3, status: false },\r\n { courseno: 'COS2102', credit: 3, status: false },\r\n ];\r\n\r\n sectionfix = [{ section: 1 }, { section: 2 }, { section: 3 }, { section: 4 }];\r\n private baseUrlRedirec = GlobalUrlToRedirect.BASE_REDIRECT_URL;\r\n public stdcode = sessionStorage.getItem('stdcode');\r\n public sem = sessionStorage.getItem('sem');\r\n public year = sessionStorage.getItem('year');\r\n public txtsem = sessionStorage.getItem('txtsem');\r\n public newData: newArray[] = [];\r\n\r\n public todoCourse: any = [];\r\n public todoSelectCourse: any = [];\r\n public todoSection: any = [];\r\n public todoHis: any = [];\r\n json_tmp: any = [];\r\n\r\n public selectCourseCmplt: boolean = false;\r\n public selectCourse: boolean = true;\r\n public isChecked = false;\r\n public sectionselect: boolean = false;\r\n public dateselect: string = '';\r\n public selectArr = [];\r\n public tempChkCourse = [];\r\n public tempChkCourseName = [];\r\n public tempChkCourseDate = [];\r\n public tempChkCourseSec = [];\r\n form: FormGroup;\r\n public chkCourseData = [];\r\n public cntCourseNo = 0;\r\n public selectedSection = [];\r\n public chkDupDateAndSec: boolean = false;\r\n public strDate;\r\n public endDate;\r\n public subStrYear;\r\n public subStrEndYear;\r\n public subStrMonth;\r\n public subStrEndMonth;\r\n public subStrDate;\r\n public subStrEndDate;\r\n public events: string[] = [];\r\n public selectedDay: string[] = [];\r\n public eventstmp = [{ date: null }];\r\n public startDate;\r\n public endtDate;\r\n public isEnable: boolean = true;\r\n public registerForm: FormGroup;\r\n public submitted = false;\r\n public dateCurrent = new Date();\r\n public arrDateToStr: any = [];\r\n public todoCalendar: any = [];\r\n public tempTodoHis: any = [];\r\n public msgSectionsta = false;\r\n public statusSectSelect = false;\r\n public cntDate=0;\r\n public chktodoCourse = true;\r\n public checkSection = false;\r\n public showSpinner = false;\r\n constructor(\r\n private apiFetchETCourse: ApiFetchETCourseService,\r\n private apiCheckSelectDate: ApiCheckSelectDateService,\r\n private _location: Location,\r\n private modalService: BsModalService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public dialog: MatDialog\r\n ) {\r\n //this.addCheckboxes();\r\n }\r\n\r\n // -------------- dialog component ----------------\r\n openDialog() {\r\n this.dialog.open(PublicDialogComponent, {\r\n width: '950px',\r\n data: { header: 'ข้อความจากระบบ!', txt: 'wtf' },\r\n disableClose: true,\r\n });\r\n sessionStorage.setItem('xdialog', 'Y');\r\n }\r\n\r\n async openAlertDialog() {\r\n this.dialog.open(PublicDialogComponent, {\r\n width: '500px',\r\n data: { header: 'ข้อความจากระบบ!', txt: 'ท่านไม่มีวิชาที่สามารถลงทะเบียนสอบได้' },\r\n disableClose: true,\r\n });\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n this.router.navigate(['/']);\r\n }, 1200);\r\n //this.router.navigate(['/confirm']);\r\n }\r\n\r\nasync openAlertDialogLogin() {\r\n this.dialog.open(PublicDialogComponent, {\r\n width: '400px',\r\n data: { header: 'ข้อความจากระบบ!', txt: 'Please login again' },\r\n disableClose: true,\r\n });\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n }, 1200);\r\n this.backClicked();\r\n }\r\n\r\n async openAlertDialogSystemClose() {\r\n await this.dialog.open(PublicDialogComponent, {\r\n width: '400px',\r\n data: { header: 'ข้อความจากระบบ!', txt: 'ปิดการลงทะเบียน' },\r\n disableClose: true,\r\n });\r\n await setTimeout(() => {\r\n this.showSpinner = false;\r\n this.router.navigate(['/']);\r\n }, 1200);\r\n }\r\n // ------------------------------------------------\r\n\r\n submit() {\r\n const selectedOrderIds = this.form.value.tempChkCourse\r\n .map((v, i) => (v ? this.coursetest[i].courseno : null))\r\n .filter((v) => v !== null);\r\n // console.log(selectedOrderIds);\r\n }\r\n\r\n ngOnInit() {\r\n this.clearDataOnLoad();\r\n this.onLoadPage();\r\n this.setCalendar();\r\n //this.getEtCourse();\r\n }\r\n\r\n async setCalendar() {\r\n var tmpdate = await this.dateCurrent;\r\n var numberOfDaysToAdd = 5;\r\n tmpdate.setDate(tmpdate.getDate() + numberOfDaysToAdd);\r\n\r\n this.arrDateToStr.push(this.dateCurrent);\r\n var tmpDateCurrent = moment(new Date(this.arrDateToStr.join())).format(\r\n 'DDMMYYYY'\r\n );\r\n\r\n this.startDate = new Date(\r\n Number(tmpDateCurrent.substring(4)),\r\n Number(tmpDateCurrent.substring(2, 4)) - 1,\r\n Number(tmpDateCurrent.substring(0, 2))\r\n );\r\n this.endtDate = new Date(2020, 7, 31);\r\n }\r\n\r\n async onLoadPage() {\r\n let us = await sessionStorage.getItem('stdcode');\r\n if (us == null) {\r\n this.openAlertDialogLogin();\r\n // alert('Please login again');\r\n //this.backClicked();\r\n } else {\r\n this.stdcode = await sessionStorage.getItem('stdcode');\r\n this.sem = await sessionStorage.getItem('sem');\r\n this.year = await sessionStorage.getItem('year');\r\n this.strDate = await sessionStorage.getItem('enddate');\r\n this.endDate = await sessionStorage.getItem('startdate');\r\n // this.getCalendar(this.sem, this.year);\r\n this.getEtCourse();\r\n }\r\n }\r\n\r\n confirm() {\r\n this.router.navigate(['/confirm']);\r\n }\r\n\r\n //paint alert day\r\n dateClass = (d: Date): MatCalendarCellCssClasses => {\r\n const date = d.getDate();\r\n\r\n // Highlight the 1st and 20th day of each month.\r\n return date === 0 || date === 0 ? 'dateAleart-class' : '';\r\n };\r\n\r\n holidayList: any[] = [];\r\n //disable select dayList\r\n myFilter = (d: Date | null): boolean => {\r\n for (let i = 0; i < this.todoCalendar.length; i++) {\r\n //this.holidayList=[new Date(Number(this.todoCalendar[i].tmpYear), Number(this.todoCalendar[i].tmpMonth), Number(this.todoCalendar[i].tmpDate)).getTime()];\r\n this.holidayList.push(\r\n new Date(\r\n Number(this.todoCalendar[i].tmpYear),\r\n Number(this.todoCalendar[i].tmpMonth) - 1,\r\n Number(this.todoCalendar[i].tmpDate)\r\n ).getTime()\r\n );\r\n\r\n }\r\n\r\n const time = d.getTime();\r\n //console.log(\"Gettime : \" + time);\r\n return this.holidayList.find((x) => x == time);\r\n };\r\n\r\n loading(todo) {\r\n if (todo == null) {\r\n this.showSpinner = true;\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n }, 1200);\r\n }\r\n }\r\n\r\n loadingWait() {\r\n this.showSpinner = true;\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n }, 1200);\r\n }\r\n\r\n backClicked() {\r\n // this._location.back();\r\n sessionStorage.clear();\r\n window.location.href = this.baseUrlRedirec;\r\n }\r\n\r\n async checkConfirm() {\r\n //alert('ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่!!');\r\n var tempA = this.todoSelectCourse;\r\n //console.log('tempA = ' + JSON.stringify(tempA));\r\n for (let i = 0; i < tempA.length; i++) {\r\n if (tempA[i].section == '') {\r\n this.isEnable = true;\r\n break;\r\n } else {\r\n this.isEnable = false;\r\n }\r\n }\r\n\r\n this.tempTodoHis = await JSON.parse(sessionStorage.getItem('todoHis'));\r\n //console.log('this.tempTodoHis = ' + JSON.stringify(this.tempTodoHis));\r\n var tmpA = this.todoSelectCourse;\r\n var chkExamdate: any[];\r\n var chkSec: any[];\r\n var cntSame = 0;\r\n var cntSame2 = 0;\r\n var iExamDateHis: [];\r\n var iSectionHis: [];\r\n for (let i = 0; i < tmpA.length; i++) {\r\n chkExamdate = this.todoSelectCourse[i].examdate;\r\n chkSec = tmpA[i].section;\r\n for (let j = 0; j < i; j++) {\r\n // console.log('chkExamdate = ' + chkExamdate);\r\n if (chkExamdate == tmpA[j].examdate && chkSec == tmpA[j].section) {\r\n cntSame++;\r\n this.chkDupDateAndSec = true;\r\n this.isEnable = true;\r\n } else {\r\n //alert('ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่!!');break;\r\n //this.chkDupDateAndSec = false;\r\n // this.isEnable = false;\r\n }\r\n }\r\n var tmpcourseno;\r\n this.tempTodoHis.forEach((e) => {\r\n tmpcourseno = e.courseno;\r\n });\r\n //console.log('this.tempTodoHis.courseno = ' + tmpcourseno);\r\n var x = 0;\r\n //check his data\r\n if (tmpcourseno != 'N') {\r\n for (let k = 0; k < this.tempTodoHis.length; k++) {\r\n if (\r\n chkExamdate == this.tempTodoHis[k].examdate &&\r\n this.tempTodoHis[k].sec == chkSec\r\n ) {\r\n cntSame2++;\r\n this.chkDupDateAndSec = true;\r\n this.isEnable = true;\r\n } else {\r\n this.chkDupDateAndSec = false;\r\n // this.isEnable = false;\r\n }\r\n x++;\r\n }\r\n } //console.log('cntSame2 = ' + cntSame2);\r\n }\r\n if (cntSame > 0 || cntSame2 > 0) {\r\n this.chkDupDateAndSec = true;\r\n this.isEnable = true;\r\n } else {\r\n this.chkDupDateAndSec = false;\r\n // this.isEnable = false;\r\n }\r\n }\r\n\r\n async getEtCourse() {\r\n let chk = '';\r\n let res = await this.apiFetchETCourse.getJsonData(this.stdcode,this.sem,this.year).toPromise();\r\n this.showSpinner = true;\r\n // console.log(JSON.stringify(res) );\r\n let x;\r\n res.resultsCalendar.forEach(e => {\r\n x= e.tmpMonth;\r\n });\r\n // console.log(Object.keys(res).length );\r\n\r\n if (x != \"\") {\r\n this.todoCalendar = res.resultsCalendar;\r\n this.todoCalendar.forEach((e) => {\r\n if (e.tmpMonth == \"\") {\r\n alert('จำนวนการลงทะเบียนเต็มแล้ว');\r\n this.router.navigate(['/']);\r\n }});\r\n } else {\r\n alert('จำนวนการลงทะเบียนเต็มแล้ว');\r\n this.router.navigate(['/']);\r\n }\r\n\r\n if (res.results != null) {\r\n res.results.forEach((e) => {\r\n chk = e.courseno;\r\n });\r\n\r\n if (res.results != null && chk != 'N') {\r\n sessionStorage.setItem('todoHis', JSON.stringify(res.his));\r\n this.todoCourse = res.results;\r\n let tmp;\r\n this.todoCourse.forEach((e) => {\r\n tmp = e.status;\r\n\r\n });\r\n\r\n this.cntCourseNo = Object.keys(res).length;\r\n //console.log('this.cntCourseNo = ' + this.cntCourseNo);\r\n if (\r\n sessionStorage.getItem('enddate') != '' &&\r\n sessionStorage.getItem('startdate') != '' &&\r\n sessionStorage.getItem('stdcode') != null\r\n ) {\r\n this.subStrYear = Number(this.strDate.substring(6, 10)) - 543;\r\n this.subStrEndYear = Number(this.endDate.substring(6, 10)) - 543;\r\n this.subStrMonth = this.strDate.substring(0, 2);\r\n this.subStrEndMonth = this.endDate.substring(0, 2);\r\n this.subStrDate = this.strDate.substring(3, 5);\r\n this.subStrEndDate = this.endDate.substring(3, 5);\r\n\r\n // this.getEtHisregister();\r\n } else {\r\n this.openAlertDialog();\r\n //this.checkRegisCourseNull();\r\n //this.backClicked();\r\n }\r\n\r\n if (this.todoCourse == null || this.todoCourse == '' || tmp == 'N') {\r\n // alert('iffff ' + this.cntCourseNo);\r\n this.openAlertDialog();\r\n this.chktodoCourse = true;\r\n } else {\r\n // alert('ELSE ' + this.cntCourseNo);\r\n this.chktodoCourse = false;\r\n }\r\n } else {\r\n this.openAlertDialog();\r\n // this.checkRegisCourseNull();\r\n }\r\n } else {\r\n this.loading(res);\r\n }\r\n }\r\n\r\n async checkRegisCourseNull() {\r\n //this.openAlertDialog()\r\n alert('ท่านไม่มีวิชาที่สามารถลงทะเบียนสอบได้');\r\n await this.router.navigate(['/']);\r\n // this._location.back();\r\n // sessionStorage.clear();\r\n // window.location.href = 'https://www.ru.ac.th/';\r\n }\r\n\r\n //check box event\r\n checkValue(event: any) {\r\n if (event != 'B') {\r\n this.selectCourse = false;\r\n // console.log(' เข้า ' + event);\r\n } else {\r\n this.selectCourse = true;\r\n // console.log(' เข้า - ' + event);\r\n }\r\n\r\n //console.log(event);\r\n }\r\n\r\n pushtest: any = [];\r\n checked: boolean[] = [];\r\n selectedCourse;\r\n\r\n toggleVisibility(courseno, inx) {\r\n this.todoCourse.filter((arr) => {\r\n if (arr.courseno == courseno) {\r\n arr.status = !arr.status;\r\n if (arr.status === false) {\r\n // alert(this.pushtest.indexOf(courseno));\r\n this.selectedDay[inx] = '';\r\n this.selectedSection[inx] = '';\r\n arr.secstatus = false;\r\n\r\n for (var i = 0; i < this.todoSelectCourse.length; i++)\r\n if (this.todoSelectCourse[i].courseno === courseno) {\r\n this.todoSelectCourse.splice(i, 1);\r\n this.pushtest.splice(i, 1);\r\n break;\r\n }\r\n sessionStorage.setItem('todoSelectCourse', JSON.stringify(this.todoSelectCourse));\r\n } else {\r\n //this.selectedDay[inx] = arr.exam_date;\r\n this.pushtest.push(arr.courseno);\r\n this.todoSelectCourse.push({\r\n courseno: arr.courseno,\r\n credit: parseInt(arr.credit),\r\n examdate: arr.exam_date,\r\n section: '',\r\n sectime: '',\r\n tmpSection: '',\r\n });\r\n sessionStorage.setItem('todoSelectCourse', JSON.stringify(this.todoSelectCourse));\r\n }\r\n }\r\n this.checkConfirm();\r\n });\r\n }\r\n\r\n dateselected = [];\r\n Date = new Date();\r\n chkdate: Date;\r\n\r\n ss = [];\r\n public onDate(event): void {\r\n this.ss = event;\r\n // console.log(this.ss);\r\n // this.getData(this.roomsFilter.date);\r\n }\r\n\r\n async selected(event: any) {\r\n this.selectedSection = await event.target.value;\r\n //sessionStorage.setItem(\"ssss\", this.selectedSection);\r\n // console.log('sec = ' + this.selectedSection);\r\n // alert(this.selectedSection);\r\n }\r\n\r\n //event handler for the select element's change event\r\n changeDropdown(obj: any, index: any) {\r\n var tmpsec = '';\r\n var sectime = '';\r\n\r\n for (let i = 0; i < this.selectedSection.length; i++) {\r\n tmpsec = this.selectedSection[i];\r\n }\r\n\r\n var tempA = this.todoSelectCourse;\r\n tempA.filter((arr) => {\r\n if (arr.courseno == obj) {\r\n arr.section = this.selectedSection[index];\r\n if (tmpsec == '1') {\r\n sectime = '9.30 - 12.00';\r\n } else if (tmpsec == '2') {\r\n sectime = '13.00 - 15.30'; //alert(\"6666\");\r\n } /*else if (tmpsec == '3') {\r\n sectime = '15:00-17:30';\r\n } else if (tmpsec == '4') {\r\n sectime = '18:00-20:30';\r\n }*/\r\n // arr.sectime = sectime;\r\n }\r\n });\r\n // console.log('sectime = ' + sectime);\r\n\r\n sessionStorage.setItem('todoSelectCourse', JSON.stringify(tempA));\r\n this.checkConfirm();\r\n }\r\n\r\n async chkOldRegisCourse(tempA) {\r\n // console.log('tempA check = ' + JSON.stringify(tempA));\r\n this.tempTodoHis = await JSON.parse(sessionStorage.getItem('todoHis'));\r\n if (this.tempTodoHis == null) {\r\n sessionStorage.removeItem('todoHis');\r\n alert('Loade data faild please try again.');\r\n this.router.navigate(['/']);\r\n }\r\n\r\n // console.log('tempTodoHis = ' + this.tempTodoHis);\r\n var iExamdate: [];\r\n var iExamDateHis: [];\r\n var iSectionHis: [];\r\n\r\n for (let i = 0; i < tempA.length; i++) {\r\n iExamdate = tempA[i].examdate;\r\n iSectionHis = tempA[i].section;\r\n for (let j = 0; j < this.tempTodoHis.length; j++) {\r\n // iExamDateHis = tempTodoHis[j].examdate;\r\n if (\r\n iExamdate == this.tempTodoHis[j].examdate &&\r\n iSectionHis == this.tempTodoHis[j].sec\r\n ) {\r\n this.chkDupDateAndSec = true;\r\n this.isEnable = true;\r\n alert('ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่!!');\r\n } else {\r\n //alert('xท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่!!');\r\n //this.chkDupDateAndSec = false;\r\n // this.isEnable = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n addData(obj: any, index: any): void {\r\n this.selectedSection[index] = '';\r\n var tempA = null;\r\n tempA = this.todoSelectCourse;\r\n var tmpstr = this.selectedDay;\r\n }\r\n\r\n changeEvent(obj: any, index: any) {\r\n this.selectedSection[index] = '';\r\n var tempA = this.todoCourse;\r\n this.todoCourse.filter((arr) => {\r\n if (arr.courseno == obj.courseno) {\r\n arr.secstatus = false;\r\n // console.log('arr.secstatus = ' + arr.secstatus);\r\n }\r\n });\r\n }\r\n\r\n isSelectdate = false;\r\n addEvent(event: MatDatepickerInputEvent, index: any, courseno) {\r\n this.selectedSection[index] = '';\r\n console.clear();\r\n this.events.push(`${event.value}`);\r\n //console.log('this.events = ' + JSON.stringify(this.events));\r\n var tmpdatetoStr = moment(new Date(this.events.join())).format(\r\n 'DD/MM/YYYY'\r\n );\r\n var tmpdatetoStr2 = moment(new Date(this.events.join())).format('DDMMYYYY');\r\n sessionStorage.setItem('tmpdatetoStr', tmpdatetoStr);\r\n var tempA = this.todoSelectCourse;\r\n var tmpDate = `${event.value}`;\r\n\r\n tempA.filter((arr) => {\r\n if (arr.courseno == courseno) {\r\n arr.examdate = tmpdatetoStr;\r\n arr.section = '';\r\n\r\n this.checkConfirm();\r\n //arr.secstatus = !arr.secstatus;\r\n }\r\n });\r\n\r\n if (tmpdatetoStr != null) {\r\n this.getSection(tmpdatetoStr, courseno, tmpdatetoStr2, tmpDate, index);\r\n }\r\n\r\n this.todoSelectCourse = tempA;\r\n sessionStorage.setItem('todoSelectCourse', JSON.stringify(tempA));\r\n this.events.splice(0, 1);\r\n }\r\n\r\n getSection(tmpdatetoStr, courseno, tmpdatetoStr2, tmpDate, index) {\r\n if (courseno != null) {\r\n /*this.apiCheckSelectDate\r\n .getJSON(\r\n this.stdcode,\r\n this.sem,\r\n this.year,\r\n tmpdatetoStr,\r\n courseno,\r\n tmpdatetoStr2\r\n )\r\n .subscribe((res) => {\r\n this.todoSection = res;\r\n var seemCourseno = false;\r\n var inxJson_tmp = 0;\r\n\r\n for (let i = 0; i < this.json_tmp.length; i++) {\r\n if (this.json_tmp[i].courseno == this.todoSection[0].courseno) {\r\n seemCourseno = true;\r\n inxJson_tmp = i;\r\n }\r\n }\r\n\r\n if (seemCourseno) {\r\n this.json_tmp[inxJson_tmp].examdate = this.todoSection[0].examdate;\r\n this.json_tmp[inxJson_tmp].section = this.todoSection[0].section;\r\n // console.log('tmps seemCourseno = ' + this.todoSection[0].cntdate);\r\n } else {\r\n this.json_tmp.push(this.todoSection[0]);\r\n }\r\n\r\n if (this.json_tmp.length == 0) {\r\n // console.log('null');\r\n this.json_tmp.push(this.todoSection[0]);\r\n }\r\n\r\n // console.log('json_tmp =' + JSON.stringify(this.json_tmp));\r\n this.todoSection = this.json_tmp;\r\n\r\n if (this.todoSection.examdate == null) {\r\n this.todoCourse.filter((arr) => {\r\n // console.log('todoCourse =' + JSON.stringify(this.todoCourse));\r\n if (arr.courseno == courseno) {\r\n arr.secstatus = true;\r\n }\r\n });\r\n }\r\n });*/\r\n }\r\n }\r\n\r\n async checkSystemStatus() {\r\n var tempA = await JSON.parse(sessionStorage.getItem('todosys'));\r\n // console.log('tempA = ' + JSON.stringify(tempA));\r\n if (Object.keys(tempA).length === 0 || tempA == null) {\r\n window.location.reload();\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n }, 2000);\r\n }\r\n\r\n var tmp;\r\n setTimeout(function () {\r\n tmp = JSON.stringify(tempA.close);\r\n }, 100);\r\n\r\n // console.log('tempA.close = ' + JSON.stringify(tempA.close));\r\n if (tempA.close === 'N') {\r\n //alert('System Close!');\r\n this.openAlertDialogSystemClose();\r\n // this.router.navigate(['systemcomponent']);\r\n }\r\n }\r\n\r\n modalRef: BsModalRef;\r\n message;\r\n openModal(template: TemplateRef) {\r\n this.modalRef = this.modalService.show(template, {class: 'modal-md'});\r\n }\r\n\r\n btnconfirm(): void {\r\n this.message = 'Confirmed!';\r\n this.router.navigate(['/']);\r\n }\r\n\r\n btndecline(): void {\r\n this.message = 'Declined!';\r\n this.modalRef.hide();\r\n }\r\n\r\n clearDataOnLoad(): void {\r\n sessionStorage.removeItem(\"refkey\");\r\n sessionStorage.removeItem(\"dataregister\");\r\n sessionStorage.removeItem(\"reloadpayment\");\r\n sessionStorage.removeItem(\"todoCourse\");\r\n sessionStorage.removeItem(\"todoSelectCourse\");\r\n sessionStorage.removeItem(\"Etsno\");\r\n sessionStorage.removeItem(\"getrefkey\");\r\n sessionStorage.removeItem(\"subrefkey\");\r\n sessionStorage.removeItem(\"total\");\r\n sessionStorage.removeItem(\"todoHis\");\r\n sessionStorage.removeItem(\"fullrefkey\");\r\n sessionStorage.removeItem(\"tmpdatetoStr\");\r\n sessionStorage.removeItem(\"todoresults\");\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n

\r\n event\r\n   แสดงวิชาที่สามารถลงทะเบียนสอบ E-testing ได้ ปีการศึกษา {{txtsem}}/{{year}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ลำดับ        วิชา\r\n                 \r\n หน่วยกิต \r\n
\r\n \r\n \r\n # {{i+1}}        {{dt.courseno}}       \r\n ({{dt.credit}}) {{dt.x}}\r\n \r\n \r\n\r\n
\r\n

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

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

\r\n

**ท่านเลือกวิชาที่มีการจองเต็มแล้วหรือมีคาบสอบตรงกัน กรุณาทำการเลือกใหม่

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

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

\r\n


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

\r\n

ท่านไม่มีวิชาที่สามารถลงทะเบียนสอบได้

\r\n

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

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

Do you want to confirm?

\r\n \r\n  \r\n \r\n
\r\n
\r\n \r\n
\r\n
loading...
\r\n
\r\n\r\n
\r\n\r\n","import { Component, ViewEncapsulation, OnInit, Inject, TemplateRef } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatCalendarCellCssClasses, MatDatepickerInputEvent, } from '@angular/material/datepicker';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ApiFetchETCourseService } from 'src/app/services/ApiFetchETCourse.service';\nimport * as moment from 'moment';\nimport { Location } from '@angular/common';\nimport { ApiCheckSelectDateService } from 'src/app/services/ApiCheckSelectDate.service';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { PublicDialogComponent } from '../publicdialog/dialog.component';\nimport { GlobalUrlToRedirect } from '../../interfaces/GlobalUrlToRedirect';\nimport { CHECK_SEAT, Course_Extend, Result_Courses } from 'src/app/interfaces/course.interface';\n\n\nexport class newArray {\n index: number;\n couse: string;\n}\n\n\n@Component({\n selector: 'app-course',\n templateUrl: './course.component.html',\n styleUrls: ['./course.component.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CourseComponent implements OnInit {\n\n public course_Extend: Course_Extend[] = [];\n public result_Courses: Result_Courses[] = [];\n\n public check_date: CHECK_SEAT;\n\n coursetest = [\n { courseno: 'COS2101', credit: 3, status: false },\n { courseno: 'COS2102', credit: 3, status: false },\n ];\n\n sectionfix = [{ section: 1 }, { section: 2 }, { section: 3 }, { section: 4 }];\n private baseUrlRedirec = GlobalUrlToRedirect.BASE_REDIRECT_URL;\n public stdcode = sessionStorage.getItem('stdcode');\n public sem = sessionStorage.getItem('sem');\n public year = sessionStorage.getItem('year');\n public txtsem = sessionStorage.getItem('txtsem');\n public newData: newArray[] = [];\n\n public todoCourse: any = [];\n public todoCourseR1: any = [];\n public todoCourseR2: any = [];\n public todoSelectCourse: any = [];\n public todoSection: any = [];\n public todoSection1: any = [];\n public todoSection2: any = [];\n public todoHis: any = [];\n json_tmp: any = [];\n\n public selectCourseCmplt: boolean = false;\n public selectCourse: boolean = true;\n public isChecked = false;\n public sectionselect: boolean = false;\n public dateselect: string = '';\n public selectArr = [];\n public tempChkCourse = [];\n public tempChkCourseName = [];\n public tempChkCourseDate = [];\n public tempChkCourseSec = [];\n form: FormGroup;\n public chkCourseData = [];\n public cntCourseNo = 0;\n public selectedSection = [];\n public selectedSection1 = [];\n public selectedSection2 = [];\n public chkDupDateAndSec: boolean = false;\n public strDate;\n public endDate;\n public subStrYear;\n public subStrEndYear;\n public subStrMonth;\n public subStrEndMonth;\n public subStrDate;\n public subStrEndDate;\n public events: string[] = [];\n public selectedDay: string[] = [];\n public selectedDay1: string[] = [];\n public selectedDay2: string[] = [];\n public eventstmp = [{ date: null }];\n public startDate;\n public endtDate;\n public isEnable: boolean = true;\n public registerForm: FormGroup;\n public submitted = false;\n public dateCurrent = new Date();\n public arrDateToStr: any = [];\n public todoCalendar: any = [];\n public todoCalendar1: any = [];\n public todoCalendar2: any = [];\n public tempTodoHis: any = [];\n public msgSectionsta = false;\n public statusSectSelect = false;\n public cntDate = 0;\n public chktodoCourse = true;\n constructor(\n private apiFetchETCourse: ApiFetchETCourseService,\n private apiCheckSelectDate: ApiCheckSelectDateService,\n private _location: Location,\n private modalService: BsModalService,\n private router: Router,\n private route: ActivatedRoute,\n public dialog: MatDialog,\n private formBuilder: FormBuilder\n ) {\n //this.addCheckboxes();\n }\n\n // -------------- dialog component ----------------\n openDialog() {\n this.dialog.open(PublicDialogComponent, {\n width: '950px',\n data: { header: 'ข้อความจากระบบ!', txt: 'wtf' },\n disableClose: true,\n });\n sessionStorage.setItem('xdialog', 'Y');\n }\n\n async openAlertDialog() {\n this.dialog.open(PublicDialogComponent, {\n width: '500px',\n data: { header: 'ข้อความจากระบบ!', txt: 'ท่านไม่มีวิชาที่สามารถลงทะเบียนสอบได้' },\n disableClose: true,\n });\n setTimeout(() => {\n this.showSpinner = false;\n this.router.navigate(['home']);\n }, 1200);\n //this.router.navigate(['/confirm']);\n }\n\n async openAlertDialogLogin() {\n this.dialog.open(PublicDialogComponent, {\n width: '400px',\n data: { header: 'ข้อความจากระบบ!', txt: 'Please login again' },\n disableClose: true,\n });\n setTimeout(() => {\n this.showSpinner = false;\n }, 1200);\n this.backClicked();\n }\n\n async openAlertDialogSystemClose() {\n await this.dialog.open(PublicDialogComponent, {\n width: '400px',\n data: { header: 'ข้อความจากระบบ!', txt: 'ปิดการลงทะเบียน' },\n disableClose: true,\n });\n await setTimeout(() => {\n this.showSpinner = false;\n this.router.navigate(['home']);\n }, 1200);\n }\n // ------------------------------------------------\n\n submit() {\n const selectedOrderIds = this.form.value.tempChkCourse\n .map((v, i) => (v ? this.coursetest[i].courseno : null))\n .filter((v) => v !== null);\n // console.log(selectedOrderIds);\n }\n\n formGroup: FormGroup;\n\n ngOnInit() {\n this.clearDataOnLoad();\n this.onLoadPage();\n this.setCalendar(); \n this.formGroup = this.formBuilder.group({\n dateJoined: ''\n });\n // this.testcount();\n }\n\n\n\n async setCalendar() {\n var tmpdate = await this.dateCurrent;\n var numberOfDaysToAdd = 5;\n tmpdate.setDate(tmpdate.getDate() + numberOfDaysToAdd);\n\n this.arrDateToStr.push(this.dateCurrent);\n var tmpDateCurrent = moment(new Date(this.arrDateToStr.join())).format(\n 'DDMMYYYY'\n );\n\n this.startDate = new Date(\n Number(tmpDateCurrent.substring(4)),\n Number(tmpDateCurrent.substring(2, 4)) - 1,\n Number(tmpDateCurrent.substring(0, 2))\n );\n\n console.log(this.startDateTmp);\n this.endtDate = new Date(2020, 7, 31);\n }\n\n async onLoadPage() {\n let us = await sessionStorage.getItem('stdcode');\n if (us == null) {\n this.openAlertDialogLogin();\n // alert('Please login again');\n //this.backClicked();\n } else {\n this.stdcode = await sessionStorage.getItem('stdcode');\n this.sem = await sessionStorage.getItem('sem');\n this.year = await sessionStorage.getItem('year');\n this.strDate = await sessionStorage.getItem('enddate');\n this.endDate = await sessionStorage.getItem('startdate');\n // this.getCalendar(this.sem, this.year);\n this.getEtCourse();\n }\n }\n\n confirm() {\n this.router.navigate(['/confirm']);\n }\n\n //paint alert day\n dateClass = (d: Date): MatCalendarCellCssClasses => {\n const date = d.getDate();\n\n // Highlight the 1st and 20th day of each month.\n return date === 0 || date === 0 ? 'dateAleart-class' : '';\n };\n\n\n /* calculate calenda */\n public startDateTmp: any;\n public dayList: any[] = [];\n public dayList1: any[] = [];\n public dayList2: any[] = [];\n //disable select dayList\n myFilter = (d: Date | null): boolean => {\n for (let i = 0; i < this.todoCalendar.length; i++) {\n /* this.dayList=[new Date(Number(this.todoCalendar[i].tmpYear),\n Number(this.todoCalendar[i].tmpMonth),\n Number(this.todoCalendar[i].tmpDate)).getTime()]; */\n this.dayList.push(\n new Date(\n Number(this.todoCalendar[i].tmpYear),\n Number(this.todoCalendar[i].tmpMonth) - 1,\n Number(this.todoCalendar[i].tmpDate)\n ).getTime()\n );\n }\n\n const time = d.getTime();\n // console.log(\"Gettime : \" + this.dayList.find((x) => x == time));\n return this.dayList.find((x) => x == time);\n };\n\n myFilter1 = (d: Date | null): boolean => {\n for (let i = 0; i < this.todoCalendar1.length; i++) {\n /* this.dayList=[new Date(Number(this.todoCalendar[i].tmpYear),\n Number(this.todoCalendar[i].tmpMonth),\n Number(this.todoCalendar[i].tmpDate)).getTime()]; */\n\n this.dayList1.push(\n new Date(\n Number(this.todoCalendar1[i].tmpYear),\n Number(this.todoCalendar1[i].tmpMonth) - 1,\n Number(this.todoCalendar1[i].tmpDate)\n ).getTime()\n );\n }\n\n const time = d.getTime();\n //console.log(\"Gettime : \" + this.dayList1.find((x) => x == time));\n return this.dayList1.find((x) => x == time);\n };\n\n myFilter2 = (d: Date | null): boolean => {\n for (let i = 0; i < this.todoCalendar2.length; i++) {\n this.dayList2.push(\n new Date(\n Number(this.todoCalendar2[i].tmpYear),\n Number(this.todoCalendar2[i].tmpMonth) - 1,\n Number(this.todoCalendar2[i].tmpDate)\n ).getTime()\n );\n }\n\n const time = d.getTime();\n //console.log(\"Gettime : \" + this.dayList2.find((x) => x == time));\n return this.dayList2.find((x) => x == time);\n };\n\n\n /* end calculate calenda */\n\n showSpinner: boolean = false;\n loading(todo) {\n if (todo == null) {\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n }, 1200);\n }\n }\n\n loadingWait() {\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n }, 1200);\n }\n\n backClicked() {\n // this._location.back();\n sessionStorage.clear();\n window.location.href = this.baseUrlRedirec;\n }\n\n async checkConfirm() {\n //alert('ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่!!');\n var tempA = this.todoSelectCourse;\n //console.log('tempA = ' + JSON.stringify(tempA));\n for (let i = 0; i < tempA.length; i++) {\n if (tempA[i].section == '') {\n this.isEnable = true;\n break;\n } else {\n this.isEnable = false;\n }\n }\n\n this.tempTodoHis = await JSON.parse(sessionStorage.getItem('todoHis'));\n //console.log('this.tempTodoHis = ' + JSON.stringify(this.tempTodoHis));\n var tmpA = this.todoSelectCourse;\n var chkExamdate: any[];\n var chkSec: any[];\n var cntSame = 0;\n var cntSame2 = 0;\n var iExamDateHis: [];\n var iSectionHis: [];\n for (let i = 0; i < tmpA.length; i++) {\n chkExamdate = this.todoSelectCourse[i].examdate;\n chkSec = tmpA[i].section;\n for (let j = 0; j < i; j++) {\n // console.log('chkExamdate = ' + chkExamdate);\n if (chkExamdate == tmpA[j].examdate && chkSec == tmpA[j].section) {\n cntSame++;\n this.chkDupDateAndSec = true;\n this.isEnable = true;\n } else {\n //alert('ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่!!');break;\n //this.chkDupDateAndSec = false;\n // this.isEnable = false;\n }\n }\n var tmpcourseno;\n this.tempTodoHis.forEach((e) => {\n tmpcourseno = e.courseno;\n });\n //console.log('this.tempTodoHis.courseno = ' + tmpcourseno);\n var x = 0;\n //check his data\n if (tmpcourseno != 'N') {\n for (let k = 0; k < this.tempTodoHis.length; k++) {\n if (\n chkExamdate == this.tempTodoHis[k].examdate &&\n this.tempTodoHis[k].sec == chkSec\n ) {\n cntSame2++;\n this.chkDupDateAndSec = true;\n this.isEnable = true;\n } else {\n this.chkDupDateAndSec = false;\n // this.isEnable = false;\n }\n x++;\n }\n } //console.log('cntSame2 = ' + cntSame2);\n }\n if (cntSame > 0 || cntSame2 > 0) {\n this.chkDupDateAndSec = true;\n this.isEnable = true;\n } else {\n this.chkDupDateAndSec = false;\n // this.isEnable = false;\n }\n }\n\n courser01 = false;\n courser02 = false;\n async getEtCourse() {\n let chk = '';\n let res = await this.apiFetchETCourse.getJsonData(this.stdcode, this.sem, this.year).toPromise();\n\n\n // console.log((res.resultsCalendar) );\n this.showSpinner = true;\n if (Number(Object.keys(res.resultsCalendar).length) >= 1) {\n\n this.todoCalendar = res.resultsCalendar;\n\n this.todoCalendar.forEach((e) => {\n if (e.tmpMonth == \"\") {\n //alert('น.ศ. ไม่มีวิชาที่สามารถลงทะเบียนสอบได้');\n alert('น.ศ. ไม่มีวิชาที่สามารถลงทะเบียนสอบได้ หรือ จำนวนการลงทะเบียนเต็มแล้ว');\n // alert('น.ศ. ไม่มีวิชาที่สามารถลงทะเบียนสอบได้');\n this.router.navigate(['home']);\n }\n });\n } else {\n //alert('จำนวนการลงทะเบียนเต็มแล้ว');\n alert('น.ศ. ไม่มีวิชาที่สามารถลงทะเบียนสอบได้ หรือ จำนวนการลงทะเบียนเต็มแล้ว.');\n this.router.navigate(['home']);\n }\n\n if (res.results != null) {\n res.results.forEach((e) => {\n chk = e.courseno;\n });\n\n if (res.results != null && chk != 'N') {\n sessionStorage.setItem('todoHis', JSON.stringify(res.his));\n let tmpres = res.results;\n //this.todoCourse = res.results;\n\n tmpres.filter((data: any) => {\n if (Number(data.COURSE_ID) == 0) {\n this.course_Extend.push({ course_no: data.courseno, course_id: data.COURSE_ID, statusCourse: data.statusCourse });\n }\n\n if (Number(data.COURSE_ID) === 1) {\n this.todoCourseR1.push(data);\n } else if (Number(data.COURSE_ID) === 2) {\n this.todoCourseR2.push(data);\n // this.courser02 = true;\n } else {\n this.todoCourse.push(data);\n }\n\n this.result_Courses.push({\n msg: data.msg,\n updateExpire: data.updateExpire,\n year: data.year,\n insertDate: data.insertDate,\n COURSE_ID: data.COURSE_ID,\n secstatus: data.secstatus,\n secmsgstatus: data.secmsgstatus,\n statusCourse: data.statusCourse,\n courseno: data.courseno,\n semester: data.semester,\n credit: data.credit,\n grad: data.grad,\n status: data.status,\n }\n );\n });\n\n let tmp;\n this.todoCourse.forEach((e) => {\n tmp = e.status;\n });\n\n if (this.todoCourseR1.length > 0) {\n let res = await this.apiFetchETCourse.getJsonDataById(this.stdcode, this.sem, this.year, this.todoCourseR1[0].COURSE_ID).toPromise();\n if (res.success) {\n this.todoCalendar1 = res.resultsCalendar;\n if (Object.keys(res.resultsCalendar).length > 0) {\n this.courser01 = true;\n }\n }\n }\n\n if (this.todoCourseR2.length > 0) {\n let res = await this.apiFetchETCourse.getJsonDataById(this.stdcode, this.sem, this.year, this.todoCourseR2[0].COURSE_ID).toPromise();\n if (res.success) {\n this.todoCalendar2 = res.resultsCalendar;\n if (Object.keys(res.resultsCalendar).length > 0) {\n this.courser02 = true;\n }\n }\n }\n\n this.cntCourseNo = Object.keys(res).length;\n if (sessionStorage.getItem('enddate') != '' && sessionStorage.getItem('startdate') != '' &&\n sessionStorage.getItem('stdcode') != null) {\n this.subStrYear = Number(this.strDate.substring(6, 10)) - 543;\n this.subStrEndYear = Number(this.endDate.substring(6, 10)) - 543;\n this.subStrMonth = this.strDate.substring(0, 2);\n this.subStrEndMonth = this.endDate.substring(0, 2);\n this.subStrDate = this.strDate.substring(3, 5);\n this.subStrEndDate = this.endDate.substring(3, 5);\n\n // this.getEtHisregister();\n } else {\n this.openAlertDialog();\n //this.checkRegisCourseNull();\n //this.backClicked();\n }\n\n if (((this.todoCourse == null || this.todoCourse == '') && \n (this.todoCourseR1 == null || this.todoCourseR1 == '')&& \n (this.todoCourseR2 == null || this.todoCourseR2 == '')) || tmp == 'N') {\n // alert('iffff ' + this.cntCourseNo);\n this.openAlertDialog();\n this.chktodoCourse = true;\n } else {\n // alert('ELSE ' + this.cntCourseNo);\n this.chktodoCourse = false;\n }\n } else {\n this.openAlertDialog();\n // this.checkRegisCourseNull();\n }\n this.showSpinner = false;\n } else {\n this.loading(res);\n }\n }\n\n async checkRegisCourseNull() {\n //this.openAlertDialog()\n alert('ท่านไม่มีวิชาที่สามารถลงทะเบียนสอบได้');\n await this.router.navigate(['home']);\n // this._location.back();\n // sessionStorage.clear();\n // window.location.href = 'https://www.ru.ac.th/';\n }\n\n //check box event\n checkValue(event: any) {\n if (event != 'B') {\n this.selectCourse = false;\n // console.log(' เข้า ' + event);\n } else {\n this.selectCourse = true;\n // console.log(' เข้า - ' + event);\n }\n\n //console.log(event);\n }\n\n pushtest: any = [];\n checked: boolean[] = [];\n selectedCourse;\n\n toggleVisibility(courseno: any, inx: string | number, COURSE_ID: string | number) {\n\n //console.log(this.todoCalendar2);\n let arrTmp, arrSec, arrDay: any;\n\n if (Number(COURSE_ID) == 0) {\n arrTmp = this.todoCourse;\n } else if (Number(COURSE_ID) == 1) {\n arrTmp = this.todoCourseR1;\n } else if (Number(COURSE_ID) == 2) {\n arrTmp = this.todoCourseR2;\n }\n\n arrTmp.filter((arr) => {\n if (arr.courseno == courseno) {\n arr.status = !arr.status;\n if (arr.status === false) {\n if (Number(COURSE_ID) == 0) {\n // console.log('t0 = ',COURSE_ID);\n this.selectedDay[inx] = '';\n this.selectedSection[inx] = '';\n } else if (Number(COURSE_ID) == 1) {\n // console.log('t1 = ',COURSE_ID + ' ' +inx);\n this.selectedDay1[inx] = '';\n this.selectedSection1[inx] = '';\n } else if (Number(COURSE_ID) == 2) {\n // console.log('t2 = ',COURSE_ID);\n this.selectedDay2[inx] = '';\n this.selectedSection2[inx] = '';\n }\n\n arr.secstatus = false;\n for (var i = 0; i < this.todoSelectCourse.length; i++)\n if (this.todoSelectCourse[i].courseno === courseno) {\n this.todoSelectCourse.splice(i, 1);\n this.pushtest.splice(i, 1);\n break;\n }\n sessionStorage.setItem('todoSelectCourse', JSON.stringify(this.todoSelectCourse));\n } else {\n this.pushtest.push(arr.courseno);\n this.todoSelectCourse.push({\n courseno: arr.courseno,\n credit: parseInt(arr.credit),\n examdate: '',\n section: '',\n sectime: '',\n tmpSection: '',\n });\n sessionStorage.setItem('todoSelectCourse', JSON.stringify(this.todoSelectCourse));\n }\n }\n this.checkConfirm();\n });\n\n\n }\n\n dateselected = [];\n Date = new Date();\n chkdate: Date;\n\n ss = [];\n public onDate(event): void {\n this.ss = event;\n // console.log(this.ss);\n // this.getData(this.roomsFilter.date);\n }\n\n //event handler for the select element's change event\n changeDropdown(event: any, obj: any, index: any, COURSE_ID: string | number) {\n let ev = event.target.value;\n var tmpsec = '';\n var sectime = '';\n\n let arrSec: any;\n if (Number(COURSE_ID) == 0) {\n arrSec = this.selectedSection;\n } else if (Number(COURSE_ID) == 1) {\n arrSec = this.selectedSection1;\n } else if (Number(COURSE_ID) == 2) {\n arrSec = this.selectedSection2;\n }\n\n for (let i = 0; i < arrSec.length; i++) {\n tmpsec = arrSec[i];\n }\n\n var tempA = this.todoSelectCourse;\n tempA.filter((arr) => {\n if (arr.courseno == obj) {\n arr.section = arrSec[index];\n if (tmpsec == '1') {\n sectime = '9.30 - 12.00';\n } else if (tmpsec == '2') {\n sectime = '12.00 - 14.30'; //alert(\"6666\");\n } else if (tmpsec == '3') {\n sectime = '15:00-17:30';\n } else if (tmpsec == '4') {\n sectime = '18:00-20:30';\n }\n // arr.sectime = sectime;\n }\n });\n\n sessionStorage.setItem('todoSelectCourse', JSON.stringify(tempA));\n this.checkConfirm();\n }\n\n async chkOldRegisCourse(tempA) {\n this.tempTodoHis = await JSON.parse(sessionStorage.getItem('todoHis'));\n if (this.tempTodoHis == null) {\n sessionStorage.removeItem('todoHis');\n alert('Loade data faild please try again.');\n this.router.navigate(['home']);\n }\n\n var iExamdate: [];\n var iSectionHis: [];\n\n for (let i = 0; i < tempA.length; i++) {\n iExamdate = tempA[i].examdate;\n iSectionHis = tempA[i].section;\n for (let j = 0; j < this.tempTodoHis.length; j++) {\n if (\n iExamdate == this.tempTodoHis[j].examdate &&\n iSectionHis == this.tempTodoHis[j].sec\n ) {\n this.chkDupDateAndSec = true;\n this.isEnable = true;\n alert('ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่!!');\n } else {\n //alert('xท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่!!');\n //this.chkDupDateAndSec = false;\n // this.isEnable = true;\n }\n }\n }\n }\n\n /* addData(obj: any, index: any): void {\n this.selectedSection[index] = '';\n var tempA = null;\n tempA = this.todoSelectCourse;\n var tmpstr = this.selectedDay;\n }\n\n // ------------- date select section ------------------------------\n changeEvent(obj: any, index: any) {\n var tempA = this.todoCourse;\n this.todoCourse.filter((arr) => {\n if (arr.courseno == obj.courseno) {\n arr.secstatus = false;\n // console.log('arr.secstatus = ' + arr.secstatus);\n }\n });\n } */\n\n changeEvent(obj: any, index: any, COURSE_ID: string | number) {\n let arrTmp: any;\n\n if (Number(COURSE_ID) == 0) {\n arrTmp = this.todoCourse;\n } else if (Number(COURSE_ID) == 1) {\n arrTmp = this.todoCourseR1;\n } else if (Number(COURSE_ID) == 2) {\n arrTmp = this.todoCourseR2;\n }\n\n arrTmp.filter((arr) => {\n if (arr.courseno == obj.courseno) {\n arr.secstatus = false;\n }\n });\n }\n\n\n // ------------------ end --------------------------------------------\n\n isSelectdate = false;\n addEvent(event: MatDatepickerInputEvent, index: any, courseno: any, COURSE_ID: string) {\n if (Number(COURSE_ID) == 0) {\n this.selectedSection[index] = '';\n } else if (Number(COURSE_ID) == 1) {\n this.selectedSection1[index] = '';\n } else if (Number(COURSE_ID) == 2) {\n this.selectedSection2[index] = '';\n }\n\n //this.selectedSection[index] = '';\n console.clear();\n this.events.push(`${event.value}`);\n // console.log('this.events = ' + JSON.stringify(this.events));\n var tmpdatetoStr = moment(new Date(this.events.join())).format('DD/MM/YYYY');\n var tmpdatetoStr2 = moment(new Date(this.events.join())).format('DDMMYYYY');\n sessionStorage.setItem('tmpdatetoStr', tmpdatetoStr);\n\n var tempA = this.todoSelectCourse;\n var tmpDate = `${event.value}`;\n\n tempA.filter((arr) => {\n if (arr.courseno == courseno) {\n arr.examdate = tmpdatetoStr;\n arr.section = ''; \n this.checkConfirm();\n //arr.secstatus = !arr.secstatus;\n }\n });\n\n if (tmpdatetoStr != null) {\n this.getSection(tmpdatetoStr, courseno, tmpdatetoStr2, tmpDate, index, COURSE_ID);\n }\n\n this.todoSelectCourse = tempA;\n sessionStorage.setItem('todoSelectCourse', JSON.stringify(tempA));\n this.events.splice(0, 1);\n }\n\n getSection(tmpdatetoStr, courseno, tmpdatetoStr2, tmpDate, index, COURSE_ID: string) {\n\n if (courseno != null) {\n this.check_date = {\n stdcode: this.stdcode,\n sem: this.sem,\n year: this.year,\n tmpdatetoStr: tmpdatetoStr,\n courseno: courseno,\n tmpdatetoStr2: tmpdatetoStr2\n }\n\n this.apiCheckSelectDate.getJSON(this.check_date)\n .subscribe((res) => {\n let arrTodoSec: any;\n if (Number(COURSE_ID) == 0) {\n this.todoSection = res;\n arrTodoSec = res;\n } else if (Number(COURSE_ID) == 1) {\n this.todoSection1 = res;\n arrTodoSec = res;\n } else if (Number(COURSE_ID) == 2) {\n this.todoSection2 = res;\n arrTodoSec = res;\n }\n\n // this.todoSection = arrTodoSec;\n var seemCourseno = false;\n var inxJson_tmp = 0;\n\n for (let i = 0; i < this.json_tmp.length; i++) {\n if (this.json_tmp[i].courseno == arrTodoSec[0].courseno) {\n seemCourseno = true;\n inxJson_tmp = i;\n }\n }\n\n if (seemCourseno) {\n console.log('courseno = ' + arrTodoSec[0].examdate);\n this.json_tmp[inxJson_tmp].examdate = arrTodoSec[0].examdate;\n this.json_tmp[inxJson_tmp].section = arrTodoSec[0].section;\n // console.log('tmps seemCourseno = ' + this.todoSection[0].cntdate);\n } else {\n this.json_tmp.push(arrTodoSec[0]);\n }\n\n if (this.json_tmp.length == 0) {\n this.json_tmp.push(arrTodoSec[0]);\n }\n\n // swap section selection by course id\n let tmpTodoSection: any;\n if (Number(COURSE_ID) == 0) {\n this.todoSection = this.json_tmp;\n tmpTodoSection = this.todoSection;\n } else if (Number(COURSE_ID) == 1) {\n tmpTodoSection = this.todoSection1;\n this.todoSection1 = this.json_tmp;\n } else if (Number(COURSE_ID) == 2) {\n this.todoSection2 = this.json_tmp;\n tmpTodoSection = this.todoSection2;\n }\n // this.todoSection = this.json_tmp;\n\n // update section selection by course id\n if (tmpTodoSection.examdate == null) {\n let arrTmp: any;\n\n if (Number(COURSE_ID) == 0) {\n arrTmp = this.todoCourse;\n } else if (Number(COURSE_ID) == 1) {\n arrTmp = this.todoCourseR1;\n } else if (Number(COURSE_ID) == 2) {\n arrTmp = this.todoCourseR2;\n }\n\n arrTmp.filter((arr: any) => {\n if (arr.courseno == courseno) {\n arr.secstatus = true;\n // console.log('todoCourse =' + arr.courseno);\n }\n });\n }\n });\n }\n }\n\n async checkSystemStatus() {\n var tempA = await JSON.parse(sessionStorage.getItem('todosys'));\n if (Object.keys(tempA).length === 0 || tempA == null) {\n window.location.reload();\n setTimeout(() => {\n this.showSpinner = false;\n }, 2000);\n }\n\n var tmp;\n setTimeout(function () {\n tmp = JSON.stringify(tempA.close);\n }, 1000);\n\n if (tempA.close === 'N') {\n //alert('System Close!');\n this.openAlertDialogSystemClose();\n // this.router.navigate(['systemcomponent']);\n }\n }\n\n modalRef: BsModalRef;\n message;\n openModal(template: TemplateRef) {\n this.modalRef = this.modalService.show(template, { class: 'modal-md' });\n }\n\n btnconfirm(): void {\n this.message = 'Confirmed!';\n this.router.navigate(['home']);\n }\n\n btndecline(): void {\n this.message = 'Declined!';\n this.modalRef.hide();\n }\n\n backhome(): void {\n this.router.navigate(['home']);\n }\n\n clearDataOnLoad(): void {\n sessionStorage.removeItem(\"refkey\");\n sessionStorage.removeItem(\"dataregister\");\n sessionStorage.removeItem(\"reloadpayment\");\n sessionStorage.removeItem(\"todoCourse\");\n sessionStorage.removeItem(\"todoSelectCourse\");\n sessionStorage.removeItem(\"Etsno\");\n sessionStorage.removeItem(\"getrefkey\");\n sessionStorage.removeItem(\"subrefkey\");\n sessionStorage.removeItem(\"total\");\n sessionStorage.removeItem(\"todoHis\");\n sessionStorage.removeItem(\"fullrefkey\");\n sessionStorage.removeItem(\"tmpdatetoStr\");\n sessionStorage.removeItem(\"todoresults\");\n }\n}\n","\n\n\n
\n
\n \n \n \n
\n
\n
\n

\n event\n   แสดงวิชาที่สามารถลงทะเบียนสอบ E-testing ได้ ปีการศึกษา {{txtsem}}/{{year}}\n

\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n ลำดับ        วิชา\n                 \n หน่วยกิต \n
\n \n \n # {{i+1}}        {{dt.courseno}}       \n ({{dt.credit}}) {{dt.x}}\n \n
\n

\n \n Choose a date\n \n \n \n   \n\n  \n \n \n  \n
\n \n

\n
\n
\n \n \n # {{i+1}}        {{dt.courseno}}       \n ({{dt.credit}}) {{dt.x}}\n \n
\n

\n \n Choose a date\n \n \n \n   \n\n  \n \n \n  \n
\n \n

\n
\n
\n \n \n # {{i+1}}        {{dt.courseno}}       \n ({{dt.credit}}) {{dt.x}}\n \n
\n

\n \n Choose a date\n \n \n \n   \n\n  \n \n \n  \n
\n \n

\n
\n
\n \n
\n
\n

\n

**ท่านเลือกวันที่มีคาบสอบตรงกัน กรุณาทำการเลือกใหม่

\n
\n
\n
\n \n
\n
\n

\n  \n \n
\n
\n

\n


\n
\n
\n\n \n
\n
\n

\n

ท่านไม่มีวิชาที่สามารถลงทะเบียนสอบได้

\n

\n \n\n\n \n\n

\n
\n
\n
\n\n\n\n
\n \n \n\n\n \n
\n\n

Do you want to confirm?

\n \n  \n \n
\n
\n \n
\n
loading...
\n
\n\n
\n\n","import { Router } from '@angular/router';\nimport { Component, HostListener, OnInit, TemplateRef } from '@angular/core';\nimport { BnNgIdleService } from 'bn-ng-idle';\nimport { clear } from 'console';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { GlobalUrlToRedirect, MessegeNoti } from '../../interfaces/GlobalUrlToRedirect';\nimport { SocialAuthService } from 'angularx-social-login';\nimport { PublicDialogComponent } from '../publicdialog/dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css'],\n})\nexport class HeaderComponent implements OnInit {\n public stdcode = '';\n private modalRef: BsModalRef;\n public message = '';\n time: any;\n\n\n private baseUrlRedirec = GlobalUrlToRedirect.BASE_REDIRECT_URL;\n constructor(\n private bnIdle: BnNgIdleService,\n private modalService: BsModalService,\n private router: Router,\n private dialog: MatDialog,\n private socialAuthService: SocialAuthService\n ) {\n console.clear();\n /* this.bnIdle.startWatching(1800).subscribe((res) => {\n if (res) {\n //console.log(\"session expired\");\n alert('Session expired, Please login again.');\n this.logout();\n }\n }); */\n }\n\n resetTimer() {\n clearTimeout(this.time);\n console.log(this.time);\n this.time = setTimeout(() => {\n alert('Session expired, Please login system again');\n this.sessionLogout();\n }, 300000);\n }\n\n async closeAlertDialog() {\n this.dialog.closeAll();\n }\n\n\n open(menu) {\n menu.openMenu();\n }\n\n ngOnInit() {\n // this.resetTimer();\n this.stdcode = sessionStorage.getItem('stdcode');\n if (this.stdcode == null) {\n alert('Please login again');\n this.logout();\n }\n }\n\n logout() {\n sessionStorage.removeItem('stdcode');\n sessionStorage.clear();\n localStorage.clear();\n //window.location.href = this.baseUrlRedirec;\n this.logOut();\n this.closeAlertDialog();\n this.modalRef.hide();\n this.router.navigate(['/']);\n }\n\n logOut(): void {\n this.socialAuthService.signOut(true);\n }\n\n sessionLogout() {\n sessionStorage.removeItem('stdcode');\n sessionStorage.clear();\n localStorage.clear();\n this.socialAuthService.signOut(true);\n //window.location.href = this.baseUrlRedirec;\n this.logOut();\n this.router.navigate(['/']);\n }\n\n\n backClicked() {\n sessionStorage.clear();\n // window.location.href = this.baseUrlRedirec;\n this.router.navigate(['/home']);\n }\n\n openModal(template: TemplateRef) {\n this.modalRef = this.modalService.show(template, { class: 'modal-md' });\n }\n\n btnconfirm(): void {\n this.message = 'Confirmed!';\n this.logout();\n }\n\n btndecline(): void {\n this.message = 'Declined!';\n this.modalRef.hide();\n }\n\n btnNav(str: Number): void {\n this.clearDataOnLoad(str);\n }\n\n clearDataOnLoad(str: Number): void {\n sessionStorage.removeItem('refkey');\n sessionStorage.removeItem('dataregister');\n sessionStorage.removeItem('reloadpayment');\n sessionStorage.removeItem('todoCourse');\n sessionStorage.removeItem('todoSelectCourse');\n sessionStorage.removeItem('Etsno');\n sessionStorage.removeItem('getrefkey');\n sessionStorage.removeItem('subrefkey');\n sessionStorage.removeItem('total');\n sessionStorage.removeItem('todoHis');\n sessionStorage.removeItem('fullrefkey');\n sessionStorage.removeItem('tmpdatetoStr');\n sessionStorage.removeItem('todoresults');\n\n\n\n setTimeout(() => {\n if (Number(str) === 1) {\n this.router.navigate(['/home']);\n } else if (Number(str) === 2) {\n this.router.navigate(['qrpagelist']);\n } else if (Number(str) === 3) {\n this.router.navigate(['regisall']);\n } else if (Number(str) === 4) {\n this.router.navigate(['recieptall']);\n } else if (Number(str) === 5) {\n this.router.navigate(['policy']);\n } else if (Number(str) === 6) {\n this.router.navigate(['info']);\n }\n }, 500);\n }\n}\n","\n\n\n\n\n\n \n\n \"\" Testing system\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n\n\n\n\n\n\n
\n\n

ท่านต้องการออกจากระบบ?

\n \n  \n \n
\n
\n","import { Component } from '@angular/core';\n\n\n@Component({\n selector: 'app-hisregisall',\n templateUrl: './hisregister.component.html',\n styleUrls: ['./hisregister.component.css']\n\n})\nexport class HisRegisAllCreateComponent{\n\n _dtmocrep = [\n {}\n ]\n\n constructor(){\n\n }\n\n}\n","import { ApiFetchProfileService } from \"./../../services/ApiFetchProfile.service\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { Router, NavigationEnd } from \"@angular/router\";\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { PublicDialogComponent } from \"../publicdialog/dialog.component\";\nimport {\n GlobalUrlToRedirect,\n MessegeNoti,\n} from \"../../interfaces/GlobalUrlToRedirect\";\n\n@Component({\n selector: \"app-menu\",\n templateUrl: \"./homemenu.component.html\",\n styleUrls: [\"./homemenu.component.css\"],\n})\nexport class HomeMenuCreateComponent implements OnInit {\n public stdcode = sessionStorage.getItem(\"stdcode\");\n public todoProfile: any = [];\n public todoCounter: any[];\n public us = \"\";\n //todos:TodoProfile[] = [];\n public chkcoursefull: boolean = false;\n public chkStatus: boolean = false;\n public todoHis: any = [];\n public chkisnull = 0;\n //public urlRedirect = 'https://beta-e-service.ru.ac.th/';\n private baseUrlRedirec = GlobalUrlToRedirect.BASE_REDIRECT_URL;\n messegeNoti: MessegeNoti[] = [\n {\n MESSEGE_HEADER: \"\",\n MESSEGE_TEXT1: \"\",\n MESSEGE_TEXT2: \"\",\n MESSEGE_STATUS: \"\",\n },\n ];\n //-----------spinner----------------------\n\n public message = \"\";\n public showLoading = true;\n public title = \"mat-dialog-example\";\n //----------------------------------------\n public id = \"\";\n public todoCalendar: any = [];\n public showSpinner = false;\n //-----------------------------------------\n public sem = sessionStorage.getItem(\"sem\");\n public year = sessionStorage.getItem(\"year\");\n public txtsem = \"\";\n public mySubscription: any;\n public todomsghome: any = [];\n public seatfull = \"จำนวนที่นั่งเต็ม\";\n\n constructor(\n private apiCheckPhoneNo: ApiFetchProfileService,\n private _router: Router,\n private dialog: MatDialog\n ) {}\n\n openDialog() {\n this.dialog.open(PublicDialogComponent, {\n width: \"950px\",\n data: { header: \"ข้อความจากระบบ!\", txt: \"wtf\" },\n disableClose: true,\n });\n sessionStorage.setItem(\"xdialog\", \"Y\");\n }\n\n async openNotiDialog() {\n let res = await JSON.parse(sessionStorage.getItem(\"todomsghome\"));\n\n if (res) {\n this.todomsghome = res;\n // console.log(res);\n res.forEach((e) => {\n this.messegeNoti[0].MESSEGE_HEADER = e.TXT_HEADER;\n this.messegeNoti[0].MESSEGE_TEXT1 = e.TXT_MSG1;\n this.messegeNoti[0].MESSEGE_TEXT2 = e.TXT_MSG2;\n });\n\n this.dialog.open(PublicDialogComponent, {\n width: \"950px\",\n data: {\n header: this.messegeNoti[0].MESSEGE_HEADER,\n txt: this.messegeNoti[0].MESSEGE_TEXT1,\n txt2: this.messegeNoti[0].MESSEGE_TEXT2,\n },\n disableClose: true,\n });\n sessionStorage.setItem(\"xdialog\", \"Y\");\n }\n }\n\n ngOnInit() { \n window.scroll(0, 0);\n this.chekLoadInit();\n }\n\n async checkSeatIsfull() {\n let xdialog = await sessionStorage.getItem(\"xdialog\");\n if (xdialog != \"Y\") {\n setTimeout(() => {\n this.openNotiDialog();\n }, 1000);\n }\n }\n\n async chekLoadInit() {\n let getStd = sessionStorage.getItem(\"stdcode\");\n // let seat = await JSON.parse(sessionStorage.getItem('todosys'));\n if (getStd == null || getStd.length < 10 || getStd == undefined) {\n alert(\"Please login again\");\n this.backClicked();\n }\n\n if (sessionStorage.getItem(\"chkop\") == \"N\") {\n this.chkStatus = false;\n } else {\n // console.log(\"chkop = \" + sessionStorage.getItem(\"chkop\"));\n this.chkStatus = true;\n }\n\n this.checkSeatIsfull();\n await this.loading();\n this.getProfile();\n sessionStorage.removeItem(\"subrefkey\");\n sessionStorage.removeItem(\"refkey\");\n }\n\n backClicked() {\n // this._location.back();\n sessionStorage.clear();\n localStorage.clear();\n this._router.navigate(['/']);\n //window.open('https://www.ru.ac.th/th/','_self');\n //window.location.replace(\"https://www.ru.ac.th/th/\");\n //window.location.href = this.baseUrlRedirec;\n }\n\n async loading() {\n let us = await sessionStorage.getItem(\"stdcode\");\n let namethai = await sessionStorage.getItem(\"namethai\");\n let chkop = await sessionStorage.getItem(\"chkop\");\n if (us == \"\" || us == null || us == undefined) {\n sessionStorage.clear();\n window.open(this.baseUrlRedirec);\n } else {\n if (namethai) {\n // location.reload();\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n }, 2000);\n } else {\n //STATUS N IS DISABLE REGISTER BUTTON SET DEFULT IS N\n if (chkop === \"N\" || chkop == null || chkop == undefined) {\n //alert(\"chkop = \" + sessionStorage.getItem(\"chkop\"));\n this.chkStatus = false;\n // alert('wtf')\n } else {\n // console.log(\"chkop = \" + sessionStorage.getItem(\"chkop\"));\n this.chkStatus = true;\n }\n }\n }\n }\n\n async getProfile() {\n let us = await sessionStorage.getItem(\"stdcode\");\n if (us != \"\") {\n this.id = sessionStorage.getItem(\"stdcode\");\n // this.getEtHisregister();\n } else {\n this._router.routeReuseStrategy.shouldReuseRoute = function () {\n return false;\n };\n\n this.mySubscription = this._router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n // Trick the Router into believing it's last link wasn't previously loaded\n this._router.navigated = false;\n }\n });\n this.loading();\n }\n\n // let res = await this.apiFetchProfile.getJSON(this.id).toPromise();\n let tel = \"\",\n NameThai = \"\";\n let res = await JSON.parse(sessionStorage.getItem(\"todoProfile\"));\n this.todoProfile = res;\n let cnt = 0;\n this.chkisnull = Object.keys(this.todoProfile).length;\n //console.log(\"chkisnull = \" + JSON.stringify(this.chkisnull));\n if (Number(this.chkisnull) == 0) {\n //location.reload();\n alert(\"Loading data faild, Please close and access system again.\");\n } else {\n this.todoProfile.forEach((e) => {\n sessionStorage.setItem(\"namethai\", e.NameThai);\n sessionStorage.setItem(\"facno\", e.FacNo);\n sessionStorage.setItem(\"majorno\", e.MajorNo);\n sessionStorage.setItem(\"majornamthai\", e.MajorNameThai);\n sessionStorage.setItem(\"facName\", e.FacNameThai);\n sessionStorage.setItem(\"birth\", e.Birth);\n tel = e.tel;\n NameThai = e.NameThai;\n });\n\n if (NameThai === \"\") {\n alert(\"ไม่สามารถเข้าสู่ระบบได้่\");\n this.logout();\n } else {\n if (tel == \"\" || tel == null) {\n alert(\n \"ท่านยังไม่ได้ระบุหมายเลขโทรศัพท์ กรุณาเพิ่มหมายเลขโทรศัพท์ที่สามารถติดต่อได้ที่ระบบ e-service. ก่อนทำการลงทะเบียน\"\n );\n this.logout();\n } else {\n sessionStorage.setItem(\"tel\", tel);\n }\n }\n }\n }\n\n logout() {\n sessionStorage.removeItem(\"stdcode\");\n sessionStorage.clear();\n localStorage.clear();\n this._router.navigate(['/']);\n // window.location.href = this.baseUrlRedirec;\n }\n\n async checkSystemStatus() {\n let tempA = await sessionStorage.getItem(\"chkop\");\n let seat = await JSON.parse(sessionStorage.getItem(\"todosys\"));\n\n let status = 0;\n // let res = await this.apiCheckPhoneNo.getJSON(this.stdcode,this.sem,this.year).toPromise();\n //status = res.phoneStatus;\n //alert(status)\n // console.log(status);\n //console.log('tempA = ' + tempA);\n if (Object.keys(tempA).length === 0 || tempA == null) {\n window.location.reload();\n setTimeout(() => {\n this.showSpinner = false;\n }, 1000);\n }\n\n //var tmp;\n setTimeout(function () {\n let tmp = JSON.stringify(tempA);\n }, 1000);\n //this.getCalendar();\n if (tempA === \"N\") {\n alert(\"การลงทะเบียนเต็มแล้ว!\");\n sessionStorage.setItem(\"pstatus\", \"0\");\n //get course online\n //--this._router.navigate(['accept']);\n // this._router.navigate([\"course\"]);\n // this.router.navigate(['systemcomponent']);\n } else if (seat == null) {\n alert(\"ไม่สามารถโหลดข้อมูลการลงทะเบียนได้!\");\n location.reload();\n } else if (Number(seat.sumseat) == 0) {\n alert(\"จำนวนการลงทะเบียนเต็ม!\");\n } else if (Number(status) == 0 || status == null) {\n sessionStorage.setItem(\"pstatus\", \"0\");\n //get course online\n //--this._router.navigate(['accept']);\n this._router.navigate([\"course\"]);\n } else {\n sessionStorage.setItem(\"pstatus\", \"1\");\n this._router.navigate([\"course\"]);\n // this.getCalendar();\n }\n }\n}\n","\n\n\n\n
\n\n
\n
\n
\n
\n \"header\"\n
\n
\n
\n
\n
\n
\n
\n
 
\n
\n
\n
\n
\n
\n \"button\"\n
\n
\n \"button\"
\n
\"button\"\n
\n
\"button\"
\n
\n
\n
\n
\n \n
\"button\"
\n
\n
\n
\n
\n
 
\n
\n
\n\n
\n

\n \n \n
\n
loading...
\n
\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n\n@Component({\n selector: 'app-info',\n templateUrl: './info.component.html',\n styleUrls: ['./info.component.css']\n\n})\nexport class InfoCreateComponent implements OnInit{\n\n _dtmocrep = [\n {}\n ]\n\n public chkdatainfo = false;\n\n constructor(private router: Router){\n\n }\n ngOnInit() {\n if (sessionStorage.getItem('stdcode') == null) {\n alert('please login again');\n this.backClicked();\n }\n }\n\n backClicked() {\n // this._location.back();\n sessionStorage.clear();\n this.router.navigate(['/']);\n // window.location.href = 'https://www.ru.ac.th/th/';\n }\n}\n","\n\n\n\n\n\n\n\n
\n \n
\n
\n
\n\n
\n
\n
\n\n \n
\n
\n

\n

\n info\n ไม่มีข่าวประชาสัมพันธ์

\n

\n

\n
\n
\n
\n\n\n \n
\n
\n
\n \n\n
\n
\n

\n


\n
\n
\n\n \n\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApiFetchCounterService } from 'src/app/services/ApiFetchCounter.service';\r\nimport { BnNgIdleService } from 'bn-ng-idle';\r\nimport { stringify } from '@angular/compiler/src/util';\r\nimport { GlobalUrlToRedirect, MessegeNoti } from '../../interfaces/GlobalUrlToRedirect';\r\n\r\n@Component({\r\n selector: 'app-landing',\r\n templateUrl: './landing.component.html',\r\n styleUrls: ['./landing.component.css'],\r\n})\r\nexport class LandingPageComponent implements OnInit {\r\n public id;\r\n public todosys: any = [];\r\n public todomsghome: any = [];\r\n public todoProfile: any = [];\r\n public allCourse: any = [];\r\n public chkisnull = 0;\r\n public isEnabled: boolean = false;\r\n public showSpinner = false;\r\n\r\n private baseUrlRedirec = GlobalUrlToRedirect.BASE_REDIRECT_URL;\r\n checkClose = false;\r\n todoCounter: any = [];\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private apiGetCounter: ApiFetchCounterService,\r\n private bnIdle: BnNgIdleService\r\n ) {\r\n this.bnIdle.startWatching(1800).subscribe((res) => {\r\n if (res) {\r\n //console.log(\"session expired\");\r\n alert('Session expired, Please access system again');\r\n this.logout();\r\n }\r\n });\r\n }\r\n\r\n logout() {\r\n /*sessionStorage.removeItem('stdcode');\r\n sessionStorage.clear();\r\n localStorage.clear();//*/\r\n window.open(this.baseUrlRedirec);\r\n // window.location.href = 'https://www.ru.ac.th/th/';\r\n }\r\n\r\n ngOnInit() {\r\n //sessionStorage.clear();\r\n //localStorage.clear();\r\n\r\n this.loading();\r\n this.getLogin();\r\n\r\n\r\n }\r\n\r\n async getLogin() {\r\n /* sessionStorage.removeItem('stdcode');\r\n sessionStorage.clear();\r\n localStorage.clear();*/\r\n let stdcode = ''\r\n\r\n // this.id = '6354001353'\r\n // this.getCounter(this.id);\r\n // this.id = sessionStorage.setItem('stdcode', this.id);\r\n // alert(this.id);\r\n /*this.route.paramMap.subscribe((params) => {\r\n let encstd = params.get('id');\r\n // this.id = atob(encstd);\r\n this.id = params.get('id');\r\n\r\n // console.log(\"idddd = \" + this.id);\r\n if (this.id === null || this.id.length < 10) {\r\n\r\n // if (this.id === null) {\r\n alert('ไม่สามารถเข้าสู่ระบบได้');\r\n this.closePage();\r\n } else {\r\n // alert(\"not null\");\r\n\r\n this.id = sessionStorage.setItem('stdcode', this.id);\r\n stdcode = sessionStorage.getItem('stdcode');\r\n // this.loading();\r\n if (stdcode) {\r\n this.getCounter(stdcode);\r\n } else {\r\n alert('error');\r\n }\r\n }\r\n });*/\r\n\r\n this.id = atob(sessionStorage.getItem('stdcode'));\r\n // console.log(\"idddd = \" + this.id);\r\n if (this.id === null || this.id.length < 10) {\r\n\r\n // if (this.id === null) {\r\n alert('ไม่สามารถเข้าสู่ระบบได้l');\r\n //this.closePage();\r\n } else {\r\n // alert(\"not null\");\r\n\r\n this.id = sessionStorage.setItem('stdcode', this.id);\r\n stdcode = sessionStorage.getItem('stdcode');\r\n // this.loading();\r\n if (stdcode) {\r\n this.getCounter(stdcode);\r\n } else {\r\n alert('error');\r\n }\r\n }\r\n }\r\n\r\n loading() {\r\n if (\r\n sessionStorage.getItem('stdcode') == '' ||\r\n sessionStorage.getItem('stdcode') == null ||\r\n sessionStorage.getItem('stdcode') == undefined\r\n ) {\r\n this.showSpinner = true;\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n }, 2000);\r\n }\r\n // this.checkSystemStatus();\r\n }\r\n\r\n async getCounter(stdcode: string) {\r\n\r\n let sem = '';\r\n let chktel = '';\r\n let res = await this.apiGetCounter.getJsonData(stdcode).toPromise();\r\n this.showSpinner = false;\r\n if (res) {\r\n this.todoCounter = res.counter || {};\r\n this.todosys = res.counter;\r\n this.todoProfile = res.profile;\r\n this.allCourse = res.registercourse;\r\n this.todomsghome = res.notimsg;\r\n\r\n this.chkisnull = Object.keys(this.todoProfile).length;\r\n // console.log(\"todoProfile\" + JSON.stringify(this.chkisnull));\r\n\r\n if (Number(this.chkisnull) > 0) {\r\n //get data to session -\r\n // this.todoCounter.forEach((e) => {\r\n sem = this.todoCounter[0].semester;\r\n sessionStorage.setItem('sem', this.todoCounter[0].semester);\r\n sessionStorage.setItem('year', this.todoCounter[0].year);\r\n sessionStorage.setItem('enddate', this.todoCounter[0].enddate);\r\n sessionStorage.setItem('startdate', this.todoCounter[0].startdate);\r\n sessionStorage.setItem('SYS_CLOSE', this.todoCounter[0].SYS_CLOSE);\r\n // });\r\n\r\n\r\n if (this.todoProfile[0].tel == null) {\r\n alert('ไม่สามารใช้งานระบบได้ ท่านยังไม่ได้ลงทะเบียนหมายเลขโทรศัพท์ที่ระบบ e-service ');\r\n this.closePage();\r\n } else {\r\n if (sem == '3') {\r\n sessionStorage.setItem('txtsem', 'ฤดูร้อน');\r\n } else {\r\n sessionStorage.setItem('txtsem', sem);\r\n }\r\n sessionStorage.setItem('todosys', JSON.stringify(this.todosys));\r\n sessionStorage.setItem('todoProfile', JSON.stringify(this.todoProfile));\r\n sessionStorage.setItem('todoRegisallcourse', JSON.stringify(this.allCourse));\r\n sessionStorage.setItem('todomsghome', JSON.stringify((this.todomsghome)));\r\n }\r\n }\r\n this.isEnabled = false;\r\n\r\n } else {\r\n this.isEnabled = true;\r\n this.loading();\r\n this.getCounter(this.id);\r\n\r\n res = await this.apiGetCounter.getJSON().toPromise();\r\n if (Number(this.chkisnull) == 0) {\r\n alert('Loading data faild, Please close and access system again.');\r\n }\r\n }\r\n\r\n //sessionStorage.setItem(\"chkop\", this.todosys.close);\r\n sessionStorage.setItem('chkop', this.todoCounter[0].SYS_STATUS);\r\n // console.log(\"todoCounter\" + JSON.stringify(res))\r\n setTimeout(() => {\r\n this.showSpinner = false;\r\n this.getHome();\r\n }, 3000);\r\n if (this.todosys.SYS_CLOSE === 'N') {\r\n this.checkClose = true;\r\n //alert('System Close!');\r\n // this.router.navigate(['systemcomponent']);\r\n }\r\n }\r\n\r\n\r\n\r\n async closePage() {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n window.open(this.baseUrlRedirec, '_self');\r\n // win.close()\r\n }\r\n getHome() {\r\n\r\n if (Number(this.chkisnull) == 0) {\r\n alert('Loading data faild, Please close and access system again.');\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n } else {\r\n this.router.navigate(['home']);\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
loading...
\r\n
\r\n
\r\n
\r\n
\r\n \"\"
\r\n

Login success.
Redirect to system please wait..

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { MatDialog } from '@angular/material/dialog';\nimport { Component, OnInit } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { ApiFectSelectPayQrService } from 'src/app/services/ApiFecthSelectPayQr.service';\nimport { PublicDialogComponent } from '../publicdialog/dialog.component';\nimport { switchMap } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { GlobalUrlToRedirect, MessegeNoti } from '../../interfaces/GlobalUrlToRedirect';\nimport { ApiGetPaymentService } from 'src/app/services/ApiGetPeyment.service';\nimport { environment } from 'src/environments/environment.prod';\n\n\n@Component({\n selector: 'app-listqrpayment',\n templateUrl: './listqrpayment.component.html',\n styleUrls: ['./listqrpayment.component.css'],\n providers: [DatePipe]\n})\nexport class ListQrPaymentComponent implements OnInit {\n\n private baseUrlRedirec = GlobalUrlToRedirect.BASE_REDIRECT_URL;\n private baseUrlQR = GlobalUrlToRedirect.BASE_QRPAYMENT_URL;\n private baseUrlQRTest = GlobalUrlToRedirect.BASE_QRPAYMENT_URL_TEST;\n public us;\n public currentTime = new Date();\n public todoQrdatalist: any = [];\n // public us;\n public sem;\n public year;\n public telnum;\n public refkey;\n public total;\n public duedate;\n public datetime;\n public fullrefkey;\n\n ///public urfltest = 'https://devtest.ru.ac.th/ThaiQR/eTestQR?totalAmount=1&username=6299999991&tel=0812345678&duedate=200820&yearsem=631&refnum=000001';\n public urlFecthqar;\n public todoCourse: any = [];\n public tmptodoCourse: any = [];\n public cntTodoCourse;\n public txtsem;\n public namethai;\n qrdata = 'err';\n payStatus: boolean = false;\n public expText;\n //get Date\n curDate = new Date();\n public arrDateToStr: any[] = [];\n constructor(\n private router: Router,\n private apifecthSelecPayQr: ApiFectSelectPayQrService,\n private dialog: MatDialog,\n private http: HttpClient,\n private apiGetPayment: ApiGetPaymentService,\n private sanitizer: DomSanitizer\n ) { }\n\n async openAlertDialog() {\n this.dialog.open(PublicDialogComponent, {\n width: '500px',\n data: {\n header: 'ข้อความจากระบบ!',\n txt: 'กรุณาชำระเงินภายในวันที่: ' + this.expText + ' เวลา 21.30 น.',\n txt2: 'ท่านสามารถตรวจสอบผลการลงทะเบียนได้ที่เมนูใบเสร็จลงทะเบียน กรณีชำระเงินแล้วระบบไม่แสดงผลการชำระเงิน',\n },\n disableClose: true,\n });\n }\n\n closeDialog() {\n this.dialog.closeAll();\n }\n\n ngOnInit() {\n //console.log('this.currentTime = ' + this.currentTime);\n if (sessionStorage.getItem('stdcode') == null) {\n alert('please login again');\n this.backClicked();\n } else {\n this.us = sessionStorage.getItem('stdcode');\n this.loading();\n this.getQrDatalist();\n }\n }\n\n\n showSpinner = false;\n async loading() {\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n }, 2000);\n\n }\n\n async reCheckPayment() {\n let res = await this.apiGetPayment.checkPayment(this.us, this.sem, this.year, this.fullrefkey).toPromise();\n console.log(JSON.stringify(res))\n if (res.success) {\n this.reCheckStatus = false;\n this.payStatus = true;\n this.closeDialog();\n this.getSlip(this.fullrefkey);\n this.cleardata(3);\n } else if (!res.success) {\n this.payStatus = false;\n this.cntTime++;\n if (this.cntTime < 7) {\n this.startTimer();\n }else if (this.cntTime = 6) {\n this.reCheckStatus = false;\n }\n //this.getSlip(this.fullrefkey);\n //this.cleardata(3);\n }\n }\n\n async getSlip(refkey) {\n if (refkey) {\n window.open(`${environment.Get_Slip}${btoa(this.us)}&refkey=${btoa(refkey)}&sem=`\n //window.open('http://localhost:8113/etestgbackend/GetSlipt?stdcode=' + btoa(this.stdcode) + '&refkey='\n + btoa(this.sem) + '&year=' + btoa(this.year), \"_blank\");\n } else {\n alert(\"Can't load Data please reload now!\");\n this.router.navigate(['recieptall']);\n }\n }\n\n public cntTime: number = 0;\n public reCheckStatus: boolean = true;\n startTimer() {\n if (this.reCheckStatus) {\n setTimeout(() => { \n this.reCheckPayment();\n }, 15000)\n }\n }\n\n async getQrDatalist() {\n let refkey = await sessionStorage.getItem(\"refkey\");\n let subduedate = await sessionStorage.getItem(\"subduedate\");\n\n // var subrefkey;\n if (refkey != null || refkey != \"\" || subduedate != \"\") {\n this.refkey = await sessionStorage.getItem(\"refkey\");\n this.fullrefkey = await sessionStorage.getItem(\"fullrefkey\");\n } else {\n alert(\"Can't load Data please reload now!\");\n await this.router.navigate(['listqrpayment']);\n }\n\n this.sem = await sessionStorage.getItem(\"sem\");\n this.year = await sessionStorage.getItem(\"year\");\n this.us = await sessionStorage.getItem(\"stdcode\");\n this.telnum = await sessionStorage.getItem(\"tel\");\n this.namethai = await sessionStorage.getItem(\"namethai\");\n\n\n if (this.sem == '3') {\n this.txtsem = 'ฤดูร้อน'\n } else {\n this.txtsem = this.sem;\n }\n\n let res = await this.apifecthSelecPayQr.getJSON(this.us, this.sem, this.year, this.fullrefkey).toPromise();\n if (res) {\n this.tmptodoCourse = res.results;\n this.todoCourse = res.results;\n this.total = this.tmptodoCourse.total;\n\n /* this.tmptodoCourse.forEach(e => {\n //sessionStorage.setItem(\"total\",e.total);\n this.total = e.total;\n this.expText = e.txtpaydate;\n this.duedate = e.duedate;\n this.datetime = e.datetime;\n }); */\n\n this.total = this.tmptodoCourse[0].total;\n this.expText = this.tmptodoCourse[0].txtpaydate;\n this.duedate = this.tmptodoCourse[0].duedate;\n this.datetime = this.tmptodoCourse[0].datetime;\n console.log(' this.err = ', this.datetime);\n\n this.openAlertDialog();\n\n\n if (this.tmptodoCourse == \"\") {\n // console.log(' this.err = ');\n alert(\"Can't load Data, please reload now!\");\n this.router.navigate(['qrpagelist']);\n } else {\n //const blob = new Blob([this.baseUrlQRTest], { type: 'application/octet-stream' });\n if (this.telnum !== null && this.duedate !== null && this.year !== null && this.sem !== null && this.us !== null && this.refkey !== null) {\n // console.log('str = ' + str);\n let subStrYear = this.year.substring(2) + this.sem;\n let subStrRefkey = this.fullrefkey.substring(3);\n this.urlFecthqar = (this.baseUrlQR + this.total + '&username=' + this.us\n + '&tel=' + this.fullrefkey + '&duedate=' + this.duedate + '&semyear=' + subStrYear + '&refkey=' + subStrRefkey);//*/\n //console.log(this.urlFecthqar);\n\n setTimeout(() => {\n this.reCheckPayment();\n }, 15000);\n\n } else {\n alert('ไม่สามารถสร้าง Qr code ชำระเงินได้');\n setTimeout(() => {\n this.cleardata(1);\n }, 800);\n }\n }\n }\n }\n\n URL: string = `https://fireflysemantics.github.io/i/service-parts-help/electrocardiogram-36732.png`;\n image: Blob;\n imageURL: SafeUrl;\n loadImage(): Observable {\n return this.http.get(this.URL, {\n responseType: \"blob\"\n });\n }\n\n\n\n cleardata(key): void {\n sessionStorage.removeItem(\"todoCourse\");\n sessionStorage.removeItem(\"repdate\");\n sessionStorage.removeItem(\"todoSelectCourse\");\n\n sessionStorage.removeItem(\"dataregister\");\n sessionStorage.removeItem(\"Etsno\");\n sessionStorage.removeItem(\"refkey\");\n sessionStorage.removeItem('subrefkey');\n sessionStorage.removeItem(\"fullrefkey\");\n sessionStorage.removeItem(\"duedate\");\n sessionStorage.removeItem(\"datetime\");\n sessionStorage.removeItem(\"total\");\n sessionStorage.removeItem('subduedate');\n\n if (key === 1) {\n this.router.navigate(['/home']);\n } else if (key === 2) {\n this.router.navigate(['qrpagelist']);\n } else if (key === 3) {\n this.router.navigate(['recieptall']);\n }\n }\n\n private convertBase64ToBlob(Base64Image: any) {\n // SPLIT INTO TWO PARTS\n const parts = Base64Image.split(';base64,');\n // HOLD THE CONTENT TYPE\n const imageType = parts[0].split(':')[1];\n // DECODE BASE64 STRING\n const decodedData = window.atob(parts[1]);\n // CREATE UNIT8ARRAY OF SIZE SAME AS ROW DATA LENGTH\n const uInt8Array = new Uint8Array(decodedData.length);\n // INSERT ALL CHARACTER CODE INTO UINT8ARRAY\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i);\n }\n // RETURN BLOB IMAGE AFTER CONVERSION\n return new Blob([uInt8Array], { type: imageType });\n }\n backClicked() {\n // this._location.back();\n sessionStorage.clear();\n this.router.navigate(['/']);\n //window.location.href = this.baseUrlRedirec;\n }\n\n}\n\n","\n\n\n\n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \"Card\n \n \n {{imageURL}}\n \n
\n
\n
\n
\n
\n จำนวนเงิน : {{total}}.00 บาท (TH/B).\n
\n
\n
\n
ลงทะเบี่ยนสอบ E-Testing   ภาค {{txtsem}}/{{year}}
\n
\n
\n
{{namethai}}
\n
\n\n
\n
ชำระเงินภายในวันที่: {{expText}} เวลา 23:55 น.\n
\n
\n
\n
\n

\n
\n
\n
\n
\n

\n
\n
\n
\n
\n
\n
\n

\n
\n
\n
\n
\n
\n

\n
\n
\n
\n
\n
\n

\n \n backup_table\n วิชาที่นักศึกษาได้ทำการลงทะเบียนสอบ E-testing\n

\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
#Noวิชาวันที่สอบคาบสอบ
{{i+1}}{{dt.courseno}}{{dt.examdate}}{{dt.sectime}} น. ({{dt.section}})
\n\n \n

\n
\n
\n \n  \n \n\n
\n
\n\n
\n
\n
\n
\n
\n
\n
loading...

\n
\n\n\n\n\n\n","import { MatDialog } from \"@angular/material/dialog\";\nimport { Router } from \"@angular/router\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { ApiAuthenService } from \"src/app/services/ApiAuth.service\";\nimport { PublicDialogComponent } from \"../publicdialog/dialog.component\";\n\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { MatIconRegistry } from \"@angular/material/icon\";\n\nimport {\n GoogleLoginProvider,\n SocialAuthService,\n SocialUser,\n} from \"angularx-social-login\";\nimport { GoogleUser } from \"src/app/interfaces/singin\";\n\nconst googleLogoURL =\n \"https://raw.githubusercontent.com/fireflysemantics/logo/master/Google.svg\";\n\n@Component({\n selector: \"app-login\",\n templateUrl: \"./login.component.html\",\n styleUrls: [\"./login.component.css\"],\n})\nexport class LoginComponent implements OnInit {\n gUser: GoogleUser = {\n id: \"\",\n name: \"\",\n email: \"\",\n photoUrl: \"\",\n firstName: \"\",\n lastName: \"\",\n authToken: \"\",\n idToken: \"\",\n provider: \"\",\n };\n\n loginForm!: FormGroup;\n form: FormGroup;\n submitted = false;\n loading = false;\n returnUrl: string;\n errString: string;\n\n fusr = \"\";\n fpwd = \"\";\n\n //-----------------\n googleUser!: SocialUser;\n isLoggedin?: boolean;\n //-----------------\n\n constructor(\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer,\n private formBuilder: FormBuilder,\n private router: Router,\n private accountService: ApiAuthenService,\n private dialog: MatDialog,\n private socialAuthService: SocialAuthService\n ) {\n this.matIconRegistry.addSvgIcon(\n \"logo\",\n this.domSanitizer.bypassSecurityTrustResourceUrl(googleLogoURL)\n );\n }\n\n openDialog() {\n this.dialog.open(PublicDialogComponent, {\n width: \"400px\",\n data: { header: \"ข้อความจากระบบ!\", txt: this.errString },\n disableClose: true,\n });\n // sessionStorage.setItem('xdialog', 'Y');\n }\n\n openDialogLoginErr() {\n this.dialog.open(PublicDialogComponent, {\n width: \"400px\",\n data: { header: \"ข้อความจากระบบ!\", txt: \"เข้าสู่ระบบไม่สำเร็จ\" },\n disableClose: true,\n });\n // sessionStorage.setItem('xdialog', 'Y');\n }\n\n ngOnInit(): void {\n this.clearStorages();\n this.form = this.formBuilder.group({\n username: [\"\", Validators.required],\n password: [\"\", Validators.required],\n });\n }\n\n // convenience getter for easy access to form fields\n get f() {\n return this.form.controls;\n }\n\n // convenience getter for easy access to form fields\n clearStorages(): void {\n sessionStorage.removeItem(\"stdcode\");\n sessionStorage.clear();\n localStorage.clear();\n }\n\n onSubmit() {\n // usr = 6401002446 , pwf = aitsariya\n let usr = \"6401002446\";\n let pass = \"aitsariya\";\n this.submitted = true;\n\n var tmp = this.f.username.value.substring(4, 5);\n // var tmp2 = tmp.substring(4,5);\n\n // console.log(\"str =\" + tmp);\n\n // reset alerts on submit\n // this.alertService.clear();\n\n // stop here if form is invalid\n if (this.form.invalid) {\n return;\n } else if (tmp == \"4\" || tmp == \"6\"|| tmp == \"7\") {\n this.errString = \"ระบบนี้สำหรับนักศึกษาส่วนกลางเท่านั้น\";\n this.openDialog();\n this.fusr = null;\n this.fpwd = null;\n } else {\n // console.log(this.f.username.value+' = '+ this.f.password.value)\n //this.accountService.doLogin(usr,pass).then((data: any) => {\n this.accountService\n .doLogin(this.f.username.value, this.f.password.value)\n .then((data: any) => {\n //console.log(\"data --- \" + JSON.stringify(data.tf));\n if (data.tf) {\n //alert(data.tf);\n sessionStorage.setItem(\"stdcode\", btoa(this.f.username.value));\n this.router.navigate([\"landing\"]);\n } else if (!data.tf) {\n this.errString = \"ไม่สามารถเข้าสู่ระบบได้\";\n this.openDialog();\n this.fusr = null;\n this.fpwd = null;\n } else {\n //alert(data.tf);\n this.errString = \"ไม่สามารถเชื่อมต่อระบบได้\";\n this.openDialog();\n this.fusr = null;\n this.fpwd = null;\n }\n });\n }\n }\n //this.errString = 'เข้าสู่ระบบไม่สำเร็จ'\n loginWithGoogle(): void {\n this.clearStorages();\n this.socialAuthService\n .signIn(GoogleLoginProvider.PROVIDER_ID)\n .then((user) => {\n this.googleUser = user;\n this.isLoggedin = user != null;\n this.gUser = user;\n this.authenCheck();\n })\n .catch((err) => {\n //console.log(err)\n this.openDialogLoginErr();\n });\n // this.authServiceGoogle();\n }\n\n logOut(): void {\n this.socialAuthService.signOut(true);\n }\n\n authServiceGoogle(): void {\n this.socialAuthService.authState.subscribe((user) => {\n //this.googleUser = user;\n //this.isLoggedin = user != null;\n // this.gUser = user;\n // alert(this.isLoggedin);\n //this.authenCheck();\n });\n }\n\n authenCheck() {\n if (this.gUser.email != null) {\n var tmp = this.gUser.email.substring(0, 10);\n var tmp2 = tmp.substring(4, 5);\n var tmp3 = Number(tmp2);\n\n if (tmp3 == 4) {\n this.errString = \"ระบบนี้สำหรับนักศึกษาส่วนกลางเท่านั้น\";\n\n this.clearStorages();\n this.logOut();\n this.openDialog();\n } else {\n console.log(tmp3);\n if (tmp3.toString() === \"NaN\") {\n this.errString = \"ระบบนี้สำหรับนักศึกษามหาวิทยาลัยรามคำแหงเท่านั้น\";\n this.clearStorages();\n this.openDialog();\n } else {\n sessionStorage.setItem(\"stdcode\", btoa(tmp));\n this.router.navigate(['landing']);\n }\n }\n } else {\n this.openDialogLoginErr();\n }\n }\n\n geteservice(): void {\n window.open(\n \"https://beta-e-service.ru.ac.th/index.php?r=site/Register\",\n \"_blank\"\n );\n }\n getRumail(): void {\n window.open(\n \"http://beta-e-service.ru.ac.th/rumail/index.php?r=register/checkstatus\",\n \"_blank\"\n );\n }\n\n getruweb(): void {\n window.open(\"https://www.ru.ac.th/th/\", \"_self\");\n }\n}\n","\n\n\n\n\n\n
\n
\n
\n
\n
\n
\n \"\"\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \"\"\n \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n

เข้าสู่ระบบ

\n
\n
\n
\n \n \n
\n
Student code is required
\n
\n
\n
\n \n \n
\n
Password is required
\n
\n
\n
\n **ใช้รหัสนักศึกษาและรหัสผ่านเดียวกับระบบ e-service
\n \n  \n \n \n
\n Login with RU-mail \n
\n\n
\n \n
\n
\n
\n
\n
\n \n \"etest-page\" \n E-Testing Facebook page: \n

\n ©2020 Copyright by
\n Ramkhamhaeng University :\n \"\"\n www.ru.ac.th\n \n

\n
\n
\n
\n
\n\n \n \n\n \n   \n\n
\n\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-pagenotfound',\n templateUrl: './pagenotfound.component.html',\n styleUrls: ['./pagenotfound.component.css']\n})\nexport class PagenotfoundComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n\n\n\n
\n\n
\n
\n
\n \n

404 page not found

\n
\n\n\n
\n
\n
\n\n","import { MatDialog } from '@angular/material/dialog';\nimport { Component, OnInit } from '@angular/core';\nimport * as moment from 'moment';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ApiGetPaymentService } from 'src/app/services/ApiGetPeyment.service';\nimport { PublicDialogComponent } from '../publicdialog/dialog.component';\nimport { environment } from 'src/environments/environment.prod';\n\n@Component({\n selector: 'app-payment',\n templateUrl: './payment.component.html',\n styleUrls: ['./payment.component.css'],\n})\nexport class PaymentComponent implements OnInit {\n public stdcode = '';\n public sem = '';\n public year = '';\n public telnum = '';\n public refkey = '';\n public total = '';\n public duedate = '';\n public datetime = '';\n public urlFecthqar = '';\n public txtsem = '';\n public namethai = '';\n public expText = '';\n public fullrefkey: string = '';\n public todoCourse: any = [];\n public tmptodoCourse: any = [];\n public dataregister: any = [];\n public cntTodoCourse: any;\n public duetime = '2359';\n\n // payment: PAYMENT_DATA;\n\n\n //get Date\n curDate = new Date();\n public arrDateToStr: any[] = [];\n public testregis: any[] = [];\n qrdata = 'err';\n url = '';\n\n payStatus: boolean = false;\n\n showSpinner = false;\n constructor(private router: Router,\n private route: ActivatedRoute,\n private apiGetPayment: ApiGetPaymentService,\n private dialog: MatDialog,\n ) { }\n\n async openAlertDialog() {\n this.dialog.open(PublicDialogComponent, {\n width: '500px',\n data: {\n header: 'ข้อความจากระบบ!',\n txt: 'กรุณาชำระเงินภายในวันที่: ' + this.expText + ' เวลา 21.30 น.',\n txt2: 'ท่านสามารถตรวจสอบผลการลงทะเบียนได้ที่เมนูใบเสร็จลงทะเบียน กรณีชำระเงินแล้วระบบไม่แสดงผลการชำระเงิน',\n },\n disableClose: true,\n });\n }\n\n closeDialog() {\n this.dialog.closeAll();\n }\n\n ngOnInit() {\n if (sessionStorage.getItem('stdcode') == null) {\n alert('please login again');\n this.backClicked();\n } else {\n if (sessionStorage.getItem('reloadpayment') == null) {\n // location.reload();\n // sessionStorage.setItem('reloadpayment', 'Y');\n }\n this.fetcthUrl()\n }\n\n // this.startTimer();\n }\n\n async loading() {\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n }, 2000);\n\n }\n\n async fetcthUrl() {\n\n this.fullrefkey = sessionStorage.getItem(\"fullrefkey\");\n if (Object.keys(this.fullrefkey).length === 0) {\n location.reload();\n }\n this.sem = sessionStorage.getItem(\"sem\");\n this.txtsem = sessionStorage.getItem(\"txtsem\");\n this.year = sessionStorage.getItem(\"year\");\n this.stdcode = sessionStorage.getItem(\"stdcode\");\n this.refkey = sessionStorage.getItem(\"refkey\");\n this.telnum = sessionStorage.getItem(\"tel\");\n //this.total = sessionStorage.getItem(\"total\");\n this.namethai = sessionStorage.getItem(\"namethai\");\n\n this.arrDateToStr.push(this.curDate);\n var tmpDateCurrent = moment(new Date(this.arrDateToStr.join())).format('YYMMDD');\n\n if (this.sem == '3') {\n this.txtsem = 'ฤดูร้อน';\n } else {\n this.txtsem = this.sem;\n }\n\n\n if (this.fullrefkey != null) {\n // let res2 = await this.apiGetPayment.getJsonQrPayment(this.us, this.sem, this.year, this.fullrefkey).toPromise();\n\n let res = await this.apiGetPayment.getJsonPayment(this.stdcode, this.sem, this.year, this.fullrefkey).toPromise();\n\n this.dataregister = res;\n if (this.dataregister == null || Object.keys(this.dataregister).length == 0) {\n this.loading();\n } else {\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n }, 1500);\n\n this.expText = this.dataregister[0].expDate;\n this.total = this.dataregister[0].total;\n this.duedate = this.dataregister[0].duedate;\n }\n // console.log(this.dataregister);\n\n /* this.dataregister.forEach(e => {\n this.expText = e.expDate;\n this.total = e.total;\n this.duedate = e.duedate;\n // this.datetime = e.datetime;\n }); */\n\n\n\n // console.log(this.expText);\n\n setTimeout(() => {\n this.openAlertDialog();\n }, 1500);\n\n\n // console.log('Values is null' +this.fullrefkey);\n if (this.telnum !== null && this.duedate !== null\n && this.year !== null && this.sem !== null\n && this.stdcode !== null && this.fullrefkey !== null) {\n let subStrYear = this.year.substring(2) + this.sem;\n //let subStrRefkey = this.fullrefkey.substring(3);\n let subStrRefkey = this.fullrefkey.substring(3);\n this.qrdata = `${environment.GET_Qr_DATA}` + this.total + '&username=' + this.stdcode\n + '&tel=' + this.fullrefkey + '&duedate=' + this.duedate\n + '&semyear=' + subStrYear + '&refkey=' + subStrRefkey;\n //console.log(this.qrdata);\n\n setTimeout(() => {\n this.reCheckPayment();\n }, 15000);\n\n\n } else {\n //console.log('Values is null');\n alert('โหลดข้อมูลไม่สำเร็จ ไม่สามารถสร้าง Qr code ');\n this.showSpinner = true;\n setTimeout(() => {\n this.cleardata(1);\n }, 800);\n }\n }\n }\n\n public cntTime: number = 0;\n public reCheckStatus: boolean = true;\n startTimer() {\n if (this.reCheckStatus) {\n setTimeout(() => {\n //this.cntTime++;\n console.log(this.cntTime);\n this.reCheckPayment();\n }, 10000)\n }\n }\n\n backClicked() {\n // this._location.back();\n sessionStorage.clear();\n this.router.navigate(['/']);\n // window.location.href = 'https://www.ru.ac.th/th/';\n }\n\n async reCheckPayment() {\n let res = await this.apiGetPayment.checkPayment(this.stdcode, this.sem, this.year, this.fullrefkey).toPromise();\n // console.log(JSON.stringify(res))\n if (res.success) {\n this.reCheckStatus = false;\n this.closeDialog();\n this.payStatus = true;\n this.getSlip(this.fullrefkey);\n this.cleardata(1);\n this.router.navigate(['/recieptall']);\n //return break;\n } else if (!res.success) {\n this.payStatus = false;\n this.cntTime++;\n if (this.cntTime < 7) {\n this.startTimer();\n } else if (this.cntTime = 6) {\n this.reCheckStatus = false; \n }\n }\n }\n\n chkTodoSelectCourse() {\n this.todoCourse = JSON.parse(sessionStorage.getItem('todoSelectCourse'));\n this.cntTodoCourse = Object.keys(this.todoCourse).length;\n this.tmptodoCourse = JSON.parse(sessionStorage.getItem('todoSelectCourse'));\n console.log('tmptodoCourse = ' + JSON.stringify(this.tmptodoCourse));\n if (sessionStorage.getItem('todoSelectCourse') != null) {\n this.fetcthUrl();\n }\n }\n\n async getSlip(refkey) {\n if (refkey) {\n window.open(`${environment.Get_Slip}${btoa(this.stdcode)}&refkey=${btoa(refkey)}&sem=`\n //window.open('http://localhost:8113/etestgbackend/GetSlipt?stdcode=' + btoa(this.stdcode) + '&refkey='\n + btoa(this.sem) + '&year=' + btoa(this.year), \"_blank\");\n } else {\n alert(\"Can't load Data please reload now!\");\n this.router.navigate(['recieptall']);\n }\n }\n\n cleardata(key): void {\n console.log(key);\n if (key == 1) {\n sessionStorage.removeItem(\"refkey\");\n sessionStorage.removeItem(\"dataregister\");\n sessionStorage.removeItem(\"reloadpayment\");\n sessionStorage.removeItem(\"todoCourse\");\n sessionStorage.removeItem(\"todoSelectCourse\");\n sessionStorage.removeItem(\"Etsno\");\n sessionStorage.removeItem(\"getrefkey\");\n sessionStorage.removeItem(\"subrefkey\");\n sessionStorage.removeItem(\"total\");\n sessionStorage.removeItem(\"todoHis\");\n sessionStorage.removeItem(\"fullrefkey\");\n sessionStorage.removeItem(\"tmpdatetoStr\");\n sessionStorage.removeItem(\"todoresults\");\n this.router.navigate(['/home']);\n }\n\n }\n\n private convertBase64ToBlob(Base64Image: any) {\n // SPLIT INTO TWO PARTS\n const parts = Base64Image.split(';base64,');\n // HOLD THE CONTENT TYPE\n const imageType = parts[0].split(':')[1];\n // DECODE BASE64 STRING\n const decodedData = window.atob(parts[1]);\n // CREATE UNIT8ARRAY OF SIZE SAME AS ROW DATA LENGTH\n const uInt8Array = new Uint8Array(decodedData.length);\n // INSERT ALL CHARACTER CODE INTO UINT8ARRAY\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i);\n }\n // RETURN BLOB IMAGE AFTER CONVERSION\n return new Blob([uInt8Array], { type: imageType });\n }\n\n}\n","\n\n\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \"Card\n \n \n
\n
\n
\n\n
\n
\n จำนวนเงิน: {{ total }}.00 บาท (TH/B).\n
\n
\n
\n
\n ลงทะเบียนสอบ E-Testing   ภาค {{ txtsem }}/{{ year }}\n
\n
\n
\n
\n {{ namethai }}\n
\n
\n\n
\n
\n ชำระเงินภายในวันที่: {{ expText }} เวลา 23:55 น.\n
\n
\n
\n
\n
\n

\n
\n
\n
\n
\n
\n

\n
\n

\n
\n
\n
\n
\n

\n backup_table \n วิชาที่นักศึกษาได้ทำการลงทะเบียนสอบ E-testing {{ sem }}/{{\n year\n }}\n

\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
#Noวิชาวันที่สอบคาบสอบ
{{ i + 1 }}{{ dt.courseno }}{{ dt.examdate }}{{ dt.sectime }} น. ({{ dt.section }})
\n\n \n

\n
\n
\n
\n

\n
\n  \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
loading...
\n
\n \n \n","import { Component, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'app-policy',\n templateUrl: './policy.component.html',\n styleUrls: ['./policy.component.css']\n\n})\nexport class PolicyCreateComponent implements OnInit{\n\n _dtmocrep = [\n {}\n ]\n\n constructor(){\n\n }\n\n ngOnInit() {\n window.scroll(0,0);\n //this.chekLoadInit();\n }\n}\n","\n\n\n\n\n
\n \n
\n
\n
\n
\n \n verified_user\n \n ข้อกำหนดการลงทะเบียนสอบ e-Testing\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n label_important\n   1. กระบวนวิชาที่ลงทะเบียนสอบ e-Testing ได้ นักศึกษาต้องลงทะเบียนเรียนในภาคปกติก่อน
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n label_important\n   2. วันที่นักศึกษาเลือกสอบ e-Testing จะต้องห่างจากวันที่ทำการลงทะเบียนสอบ e-Testing 5\n วันขึ้นไป
           เช่น ลงทะเบียนวันที่ 1\n จะสามารถเลือกวันสอบได้คือ วันที่ 6 เป็นต้นไป
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n label_important\n   3. เมื่อทำขั้นตอนลงทะเบียนสอบ e-Testing เรียบร้อย ให้นักศึกษาชำระเงินก่อน 23.59 น.\n ของวันนั้น
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n label_important\n   4. ในกรณีที่ชำระเงินไม่ทันในเวลาที่กำหนด นักศึกษาจะต้องทำการลงทะเบียนสอบใหม่
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n label_important\n   5. สามารถลงทะเบียนสอบ e-Testing กระบวนวิชาละ 1 ครั้งต่อ 1 ภาคการศึกษา
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n label_important\n   6. เมื่อนักศึกษาสอบ e-Testing ผ่านแล้ว จะไม่มีสิทธิเข้าสอบปลายภาคของทางมหาวิทยาลัยได้\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n label_important\n   7. กรณีนักศึกษาสอบ e-Testing ไม่ผ่าน สามารถเข้าสอบปลายภาคตามตารางของทางมหาวิทยาลัยได้\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n label_important\n   8. หลังจากชำระเงินลงทะเบียนสอบ E-Testing เรียบร้อยแล้วให้พิมพ์ใบเสร็จลงทะเบียน\n เพื่อใช้เป็นหลักฐานในการเข้าสอบ\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n\n \n \n \n\n\n \n\n\n","import { Component, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'app-profilecomponent',\n templateUrl: './profilecomponent.html',\n //styleUrls: ['./profilecomponent.css']\n\n})\nexport class ProfileComponent implements OnInit {\n public stdcode = \"\";\n public sem = \"\";\n public year = \"\";\n public majorname = \"\";\n public namethai = \"\";\n public facname = \"\";\n public tel = \"\";\n constructor() {\n this.getProfile();\n }\n\n ngOnInit() {\n // this.getProfile();\n }\n\n async getProfile() {\n this.stdcode = await sessionStorage.getItem(\"stdcode\");\n this.sem = await sessionStorage.getItem(\"sem\");\n this.year = await sessionStorage.getItem(\"year\");\n this.majorname = await sessionStorage.getItem(\"majornamthai\");\n this.namethai = await sessionStorage.getItem(\"namethai\");\n this.facname = await sessionStorage.getItem(\"facName\");\n this.tel = await sessionStorage.getItem(\"tel\");\n }\n\n}\n","\n\n\n\n\n \n \n \n \n
\n
\n  {{stdcode}}\n

\n  {{namethai}}\n

\n\n
\n
\n \n history_edu\n \n  {{facname}}\n

\n\n  {{majorname}}\n

\n
\n
\n\n
\n

\n\n\n","import {\n MAT_DIALOG_DATA,\n MatDialog,\n} from '@angular/material/dialog';\nimport { Component, OnInit, Inject } from '@angular/core';\n\n@Component({\n selector: 'app-dialog',\n templateUrl: './dialog.component.html',\n // styleUrls: ['./confirm-dialog.component.css']\n})\nexport class PublicDialogComponent implements OnInit {\n constructor(@Inject(MAT_DIALOG_DATA) public data: any) {}\n\n ngOnInit() {}\n}\n","\n

{{ data['header'] }}

\n

\n\n

{{ data['txt'] }}

\n

{{ data['txt2'] }}\n\n \n\n

\n","import { Component, OnInit } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { ApiFetchQrPaymentService } from 'src/app/services/ApiFetchQrpayment.service';\nimport * as moment from 'moment';\nimport { Router, ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-qrlist',\n templateUrl: './qrpagelist.component.html',\n styleUrls: ['./qrpagelist.component.css'],\n providers: [DatePipe]\n})\nexport class QrpagelistCreateComponent implements OnInit {\n\n\n public stdcode ='';\n public sem ='';\n public year ='';\n public telnum ='';\n public refkey ='';\n public total ='';\n public duedate ='';\n public duetime = \"2359\";\n public urfltest = 'https://devtest.ru.ac.th/ThaiQR/etestQRCODE?totalAmount=100&username=6299999991&tel=0812345678&duedate=2359311221&semyear=633&refkey=1234567';\n public urlFecthqar ='';\n public todoCourse: any = [];\n public tmptodoCourse: any = [];\n public cntTodoCourse;\n public txtsem ='';\n public namethai ='';\n\n public currentTime = new Date();\n public todoQrdatalist: any = [];\n //get Date\n curDate = new Date();\n public arrDateToStr: any[] = [];\n public chkTodoCourse = false;\n constructor(private apiFetchQrPaylist: ApiFetchQrPaymentService,\n private router: Router,\n ) {\n\n }\n ngOnInit() {\n sessionStorage.removeItem('refkey');\n //console.log(this.currentTime);\n // this.getQrDatalist();\n if (sessionStorage.getItem('stdcode') == null) {\n alert('please login again');\n this.backClicked();\n } else {\n this.getQrDatalist();\n }\n\n\n }\n\n backClicked() {\n // this._location.back();\n sessionStorage.clear();\n this.router.navigate(['/']);\n //window.location.href = 'https://www.ru.ac.th/th/';\n }\n\n async getQrDatalist() {\n this.sem = await sessionStorage.getItem(\"sem\");\n this.txtsem = await sessionStorage.getItem(\"txtsem\");\n this.year = await sessionStorage.getItem(\"year\");\n this.stdcode = await sessionStorage.getItem(\"stdcode\");\n this.telnum = await sessionStorage.getItem(\"tel\");\n this.namethai = await sessionStorage.getItem(\"namethai\");\n this.arrDateToStr.push(this.curDate);\n var tmpDateCurrent = moment(new Date(this.arrDateToStr.join())).format('DDMMYY');\n this.duedate = tmpDateCurrent;\n\n let res = await this.apiFetchQrPaylist.getJsonQrData(this.stdcode,this.sem,this.year).toPromise();\n this.todoQrdatalist = res.results;\n if (this.todoQrdatalist == \"\") {\n this.chkTodoCourse = true;\n }\n\n }\n\n\n getQrcodefromlist(refkey:string, duedate:string, datetime:string, fullrefkey:string,repdate:string) {\n //console.log('refkey = ' + refkey);\n if (fullrefkey != '' || fullrefkey != null) {\n // sessionStorage.setItem(\"subrefkey\", subrefkey);\n sessionStorage.setItem(\"repdate\", repdate);\n sessionStorage.setItem(\"refkey\", refkey);\n sessionStorage.setItem(\"duedate\", duedate);\n //sessionStorage.setItem(\"datetime\", datetime);\n sessionStorage.setItem(\"fullrefkey\", fullrefkey);\n this.router.navigate(['listqrpayment']);\n } else {\n alert(\"Can't load Data please reload now!\");\n this.router.navigate(['qrpagelist']);\n }\n\n }\n\n backhome() {\n // this._location.back();\n sessionStorage.removeItem(\"reloadqrlist\");\n this.router.navigate(['/home']);\n }\n\n setArrStorage(refkey) {\n this.router.navigate(['payment']);\n }\n\n backbtn() {\n sessionStorage.removeItem(\"reloadqrlist\");\n sessionStorage.removeItem(\"dataregister\");\n sessionStorage.removeItem('refkey');\n sessionStorage.removeItem('fullrefkey');\n sessionStorage.removeItem('datetime');\n sessionStorage.removeItem('duedate');\n this.router.navigate(['/home']);\n }\n\n}\n","\n\n\n\n\n\n \n
\n\n\n
\n \n \n
\n
\n
\n

\n \n แสดงรายการที่รอการชำระเงิน\n

\n
\n
\n
\n\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
#Noกรุณาชำระเงินภายในวันที่รับ Qr Code
{{i+1}}{{dt.repdate}} 23.55 น.\n \n qr_code\n \n
\n
\n
\n\n\n \n\n \n
\n
\n

\n

ท่านไม่มีรายการชำระเงิน

\n

\n

\n
\n
\n
\n\n

\n
\n
\n \n\n
\n
\n

\n


\n
\n
\n
\n
\n

\n
\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { ApiFetchRecieptService } from 'src/app/services/ApiFetchReciept.service';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\nimport { ApiRecieptMsgService } from 'src/app/services/ApiRecieptMsg.service';\nimport { environment } from 'src/environments/environment.prod';\n\n\n\n\n@Component({\n selector: 'app-recieptall',\n templateUrl: './reciept.component.html',\n styleUrls: ['./reciept.component.css']\n\n})\nexport class RecieptAllCreateComponent implements OnInit {\n\n public stdcode;\n public currentTime = new Date();\n public todoQrdatalist: any = [];\n // public us;\n public sem;\n public year;\n public telnum;\n public refkey;\n public total;\n public duedate;\n public duetime = \"2359\";\n public urlFecthqar;\n public todolist: any = [];\n public todomsg: any = [];\n public tmptodoCourse: any = [];\n public cntTodoCourse;\n public txtsem;\n public namethai;\n public msg;\n public chkTodoCourse = false;\n //get Date\n curDate = new Date();\n public arrDateToStr: any[] = [];\n\n constructor(private ApiFetchReciept: ApiFetchRecieptService,\n private ApiRecieptMsg: ApiRecieptMsgService,\n private router: Router,\n private activerouter: ActivatedRoute,\n private http: HttpClient\n\n ) {\n\n }\n ngOnInit() {\n this.getProfileData();\n }\n\n async getProfileData() {\n\n this.stdcode = await sessionStorage.getItem('stdcode');\n this.sem = await sessionStorage.getItem(\"sem\");\n this.year = await sessionStorage.getItem(\"year\");\n this.telnum = await sessionStorage.getItem(\"tel\");\n this.namethai = await sessionStorage.getItem(\"namethai\");\n\n if (!this.stdcode && this.sem && this.year && this.telnum && this.namethai) {\n alert('please login again');\n this.backClicked();\n } else {\n await this.loading();\n }\n this.getRepList();\n }\n\n async getRepList() {\n /* this.ApiFetchReciept.getJSON().subscribe((data) => {\n this.todolist = data.results;\n let cnt = Object.keys(this.todolist).length;\n //alert(cnt);\n if (cnt === 0) {\n this.chkTodoCourse = true;\n } else {\n this.chkTodoCourse = false;\n }\n });//*/\n\n let data = await this.ApiFetchReciept.getJsonRegisSlipt(this.stdcode,this.sem,this.year).toPromise();\n if (data) {\n this.todolist = data.results;\n let cnt = Object.keys(this.todolist).length;\n // alert(cnt);\n if (cnt === 0) {\n this.chkTodoCourse = true;\n } else {\n this.chkTodoCourse = false;\n }\n } else {\n this.loading();\n }\n\n //get msg\n let res = await this.ApiRecieptMsg.getJSON().toPromise();\n this.msg = res.msg;\n console.log(JSON.stringify(this.msg))\n }\n\n\n async getSlip(refkey) {\n if (refkey) {\n window.open(`${environment.Get_Slip}${btoa(this.stdcode)}&refkey=${btoa(refkey)}&sem=`\n //window.open('http://localhost:8113/etestgbackend/GetSlipt?stdcode=' + btoa(this.stdcode) + '&refkey='\n + btoa(this.sem) + '&year=' + btoa(this.year), \"_blank\");\n } else {\n alert(\"Can't load Data please reload now!\");\n this.router.navigate(['recieptall']);\n }\n }\n\n backClicked() {\n sessionStorage.removeItem(\"stdcode\");\n sessionStorage.clear();\n this.router.navigate(['/']);\n //window.location.href = 'https://beta-e-service.ru.ac.th/';\n }\n\n backhome() {\n // this._location.back();\n this.router.navigate(['/home']);\n }\n\n\n showSpinner: boolean = false;\n async loading() {\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n }, 1500);\n }\n}\n","\n\n\n \n\n\n\n\n
\n\n\n
\n \n \n
\n
\n
\n

ใบเสร็จชำระเงินลงทะเบียนสอบ E-Testing\n

\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
#Noวันที่ชำระเงินรายการใบเสร็จ
{{i+1}}{{dt.repdate}} \n sticky_note_2
Download
\n

{{msg}}

\n \n\n \n
\n
\n

\n

ท่านไม่มีรายการชำระเงิน

\n

\n

\n
\n
\n \n
\n
\n
\n\n
\n
\n\n

\n \n
\n
\n \n
\n
\n
\n

\n


\n
\n
\n
\n
\n\n
\n\n

\n\n
\n
loading...
\n\n \n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n\n@Component({\n selector: 'app-regisall',\n templateUrl: './regisallcourse.component.html',\n styleUrls: ['./regisallcourse.component.css']\n\n})\nexport class RegisAllCourseCreateComponent implements OnInit {\n\n public allCourse: any = [];\n public stdcode = '';\n public sem = \"\";\n public year = '';\n public majorname = '';\n public namethai = '';\n public facname = '';\n showSpinner: boolean = false;\n public checkCourseNull: boolean = false;\n constructor(\n private router: Router,\n private activerouter: ActivatedRoute,\n\n ) {\n\n }\n\n ngOnInit() {\n this.fecthStorage();\n\n }\n\n async fecthStorage() {\n this.stdcode = await sessionStorage.getItem(\"stdcode\");\n this.sem = await sessionStorage.getItem(\"sem\");\n if (this.sem === '3') {\n this.sem = \"ฤดูร้อน\";\n }\n this.year = await sessionStorage.getItem(\"year\");\n this.majorname = await sessionStorage.getItem(\"majornamthai\");\n this.namethai = await sessionStorage.getItem(\"sem\");\n this.facname = await sessionStorage.getItem(\"facName\");\n // console.log('data =' + this.stdcode +' '+this.sem+' '+this.year)\n this.getAllCourseRegis();\n }\n\n async getAllCourseRegis() {\n // console.log('data =' + this.stdcode +' '+this.sem+' '+this.year)\n if (this.stdcode && this.sem && this.year) {\n //let res = await this.apiFetchAllCourseRegis.getJsonFetchCourse(this.stdcode, this.sem, this.year).toPromise();\n let res = await JSON.parse(sessionStorage.getItem(\"todoRegisallcourse\"));\n if (res) {\n this.allCourse = res;\n if (Object.keys(this.allCourse).length > 0) {\n this.checkCourseNull = true;\n } else {\n this.checkCourseNull = false;\n }\n // console.log('data =' + Object.keys(this.allCourse).length);\n } else {\n this.loading();\n }\n } else {\n this.loading();\n }\n\n }\n\n loading() {\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n }, 3000);\n }\n\n backhome() {\n this.router.navigate(['/home']);\n }\n\n}\n","\n\n
\n
\n \n \n
\n
\n
\n

\n \n backup_table\n แสดงวิชาที่นักศึกษาได้ทำการลงทะเบียนปีการศึกษา {{sem}}/{{year}}\n

\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
#Noวิชาวันที่สอบ
{{i+1}}{{data.courseNo}} {{data.examperiod}}
\n
\n
\n

ท่านไม่มีวิชาลงทะเบียน

\n
\n\n \n

\n
\n

\n \n\n
\n
\n

\n


\n\n
\n
\n
\n
\n\n
\n\n\n

\n \n
\n
loading...
\n\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n\n@Component({\n selector: 'app-registstatus',\n templateUrl: './registstatus.component.html',\n styleUrls: ['./registstatus.component.css']\n\n})\nexport class RegisStatusPageCreateComponent implements OnInit {\n\n public allCourse: any = [];\n public us;\n public sem;\n public year;\n public majorname;\n public namethai;\n public facname;\n public todoresults: any = [];\n public flagcheck = false;\n constructor(\n private router: Router,\n private activerouter: ActivatedRoute,\n\n ) {\n\n }\n\n ngOnInit() {\n\n if (sessionStorage.getItem('chkregstatus') == '' || sessionStorage.getItem('chkregstatus') == null) {\n sessionStorage.setItem('chkregstatus', 'Y');\n location.reload();\n } else {\n this.todoresults = JSON.parse(sessionStorage.getItem('todoresults'));\n this.loading();\n }\n\n\n }\n\n\n showSpinner = false;\n loading() {\n if (this.todoresults == \"\" || this.todoresults == null || this.todoresults == undefined) {\n // window.location.reload();\n this.showSpinner = true;\n setTimeout(() => {\n this.showSpinner = false;\n }, 3000);\n }\n this.todoresults = JSON.parse(sessionStorage.getItem('todoresults'));\n this.chkregis(this.todoresults)\n }\n\n chkregis(obj) {\n let tmp;\n obj.forEach(e => {\n tmp = e.flag;\n });\n\n if (Number(tmp) > 0) {\n this.flagcheck;\n } else {\n this.flagcheck = true;\n }\n\n }\n\n backhome() {\n // this._location.back();\n sessionStorage.removeItem(\"todoresults\");\n sessionStorage.removeItem(\"chkregstatus\");\n this.router.navigate(['/home']);\n }\n\n backSelectCourse() {\n // this._location.back();\n sessionStorage.removeItem(\"todoresults\");\n sessionStorage.removeItem(\"chkregstatus\");\n this.router.navigate(['course']);\n }\n}\n","\n\n\n\n
\n
\n
\n
\n
\n

\n \n backup_table\n ผลการลงทะเบียนสอบ E-testing\n

\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
#Noวิชาวันที่สอบคาบสอบ
{{i+1}}{{item.course_no}} {{item.examdate}}{{item.sectime}} น. ({{item.section}})
 {{item.msg}}
\n
\n\n\n \n

\n\n
\n
\n
\n \n
\n

ทำรายการไม่สำเร็จ กรุณาทำการเลือกใหม่

\n  \n \n

\n
\n
\n
\n
\n
\n

\n


\n
\n
\n
\n\n\n >\n\n
\n
\n
\n
\n

\n \n backup_table\n ผลการลงทะเบียนสอบ E-testing\n

\n
\n
\n
\n\n
\n
\n \n

\n\n
\n
\n
\n \n
\n

\n

ทำรายการสำเร็จ

รอสักครู่ระบบจะนำท่านไปหน้าชำระเงิน

\n
\n
\n
\n
\n
\n
\n

\n


\n
\n
\n
\n\n\n\n
\n
loading...
\n\n
\n\n\n\n","import { Component, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'app-slipt',\n templateUrl: './slipt.component.html',\n styleUrls: ['./slipt.component.css']\n\n})\nexport class SliptComponent implements OnInit {\n\n public allCourse: any = [];\n public us;\n public sem;\n public year;\n public majorname;\n public namethai;\n public facname;\n\n constructor( ) {\n\n }\n\n ngOnInit( ) {\n console.log();\n }\n\n\n}\n","\n\n\n \n\n\n\n

\n
\n\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\"\"

มหาวิทยาลัยรามคำแหง

\n
\n
\n
\n
\n
\n
\n
\n
ภาคปีการศึกษา
วันที่ 08/08/2563
ผู้ชำระ ทำเนียน เหมือนเรียนมา
\n
ใบเสร็จรับเงิน
เลขประจำตัวผูํ้เสียภาษี 0000000000
\n
เลขที่่ ETS631000001
รหัสประจำตัว 6299199991
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n \n \n
ขอจบการศึกษารวม(บาท)กระบวนวิชาหน่วยกิตวันที่สอบคาบห้องสอบ
ค่าธรรมเนี่ยมการสอบ100ENG1001320/08/25634SKB801
รวมเงินทั้งหมด 100 บาท.
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n\n","import { Component, OnInit } from \"@angular/core\";\nimport { Router, ActivatedRoute } from '@angular/router';\n\n\n@Component({\n selector: 'app-chk-system',\n templateUrl: './system.component.html',\n styleUrls: ['./system.component.css']\n\n})\n\n\nexport class SystemPageComponent implements OnInit {\n\n constructor(\n private router: Router, private route: ActivatedRoute) {\n\n\n }\n\n ngOnInit() {\n\n this.loading();\n }\n\n loading() {\n if (sessionStorage.getItem(\"stdcode\") == \"\" || sessionStorage.getItem(\"stdcode\") == null || sessionStorage.getItem(\"stdcode\") == undefined) {\n //setTimeout(window.location.href = 'https://www.ru.ac.th/th/', 5000);\n setTimeout(() => {\n this.router.navigate(['/']);\n }, 5000);\n }\n }\n closeApp() {\n sessionStorage.clear();\n this.router.navigate(['/']);\n //window.location.href = 'https://www.ru.ac.th/th/';\n }\n\n}\n","\n\n\n\n\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n

\"close\"

\n

System close.

\n

ไม่อยู่ในช่วงการลงทะเบียน

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n \n \n \n","import { Component, TemplateRef } from '@angular/core';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\n\nimport {\n FormBuilder,\n FormGroup,\n FormArray,\n FormControl,\n ValidatorFn\n\n} from '@angular/forms';\n\n@Component({\n selector: 'test-course',\n templateUrl: './test.comp.html'\n})\n\n\nexport class TestComponent {\n modalRef: BsModalRef;\n message: string;\n form: FormGroup;\n ordersData = [\n { id: 100, name: 'order 1' },\n { id: 200, name: 'order 2' },\n { id: 300, name: 'order 3' },\n { id: 400, name: 'order 4' }\n ];\n\n constructor(private formBuilder: FormBuilder,private modalService: BsModalService) {\n this.form = this.formBuilder.group({\n orders: new FormArray([], minSelectedCheckboxes(1))\n });\n\n this.addCheckboxes();\n }\n\n openModal(template: TemplateRef) {\n this.modalRef = this.modalService.show(template, {class: 'modal-sm'});\n }\n\n confirm(): void {\n this.message = 'Confirmed!';\n this.modalRef.hide();\n }\n\n decline(): void {\n this.message = 'Declined!';\n this.modalRef.hide();\n }\n\n\n private addCheckboxes() {\n this.ordersData.forEach((o, i) => {\n const control = new FormControl(i === -1); // if first item set to true, else false\n (this.form.controls.orders as FormArray).push(control);\n });\n }\n\n submit() {\n const selectedOrderIds = this.form.value.orders\n .map((v, i) => (v ? this.ordersData[i].id : null))\n .filter(v => v !== null);\n console.log(selectedOrderIds);\n }\n}\n\n\nfunction minSelectedCheckboxes(min = 1) {\n const validator: ValidatorFn = (formArray: FormArray) => {\n const totalSelected = formArray.controls\n // get a list of checkbox values (boolean)\n .map(control => control.value)\n // total up the number of checked checkboxes\n .reduce((prev, next) => next ? prev + next : prev, 0);\n\n // if the total is not greater than the minimum, return the error message\n return totalSelected >= min ? null : { required: true };\n };\n\n return validator;\n}\n","\n

\n
{{message}}
\n\n
\n

Do you want to confirm?

\n \n \n
\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription, interval } from 'rxjs';\n\n@Component({\n selector: 'app-waitingpage',\n templateUrl: './waitingpage.component.html',\n styleUrls: ['./waitingpage.component.css']\n})\nexport class WaitingpageComponent implements OnInit {\n\n constructor(private router: Router) { }\n\n ngOnInit(): void {\n this.loadpage()\n }\n\n\n async loadpage() {\n await setTimeout(() => {\n this.router.navigate(['payment']);\n }, 3500);\n\n }\n\n}\n","
\n\n

ทำรายการลงทะเบียนสำเร็จ!

\n

\"waiting\"

\n

ระบบกำลังนำท่่านไปยังหน้าชำระเงิน..

\n\n\n
\n\n","import { Component } from '@angular/core';\n\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.html',\n styleUrls: ['./footers.component.css']\n})\n\nexport class FooterCreateComponent{\n\n}\n","\n\n\n \n \n \n\n\n\n \n \n \n","\r\nimport { Injectable } from '@angular/core'\r\nimport { HttpClient } from '@angular/common/http'; \r\n\r\n \r\n@Injectable()\r\nexport class ApiCalendaService {\r\n \r\n \r\n constructor(private http: HttpClient) { }\r\n \r\n //disable select dayList\r\n /* myFilter = (d: Date | null): boolean => {\r\n for (let i = 0; i < this.todoCalendar.length; i++) { \r\n\r\n this.dayList.push(\r\n new Date(\r\n Number(this.todoCalendar[i].tmpYear),\r\n Number(this.todoCalendar[i].tmpMonth) - 1,\r\n Number(this.todoCalendar[i].tmpDate)\r\n ).getTime()\r\n );\r\n }\r\n\r\n const time = d.getTime();\r\n //console.log(\"Gettime : \" + time);\r\n return this.dayList.find((x) => x == time);\r\n }; */\r\n}\r\n","\n\nexport const GlobalUrlToRedirect = Object.freeze({\n BASE_REDIRECT_URL: '/',\n BASE_QRPAYMENT_URL: 'https://devtest.ru.ac.th/ThaiQR/etestQRCODE?totalAmount=',\n BASE_QRPAYMENT_URL_TEST: 'https://devtest.ru.ac.th/ThaiQR/genQRAllSys?totalAmount=1&username=9999999999&tel=9999999999&duedate=290421&sysid=141&biller=8382',\n});\n\nexport interface MessegeNoti {\n MESSEGE_HEADER: string;\n MESSEGE_TEXT1: string;\n MESSEGE_TEXT2: string;\n MESSEGE_STATUS: string;\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n//import { Http, Headers, RequestOptions, URLSearchParams, HttpClient } from '@angular/common/http';\nimport { Http , Headers , RequestOptions,URLSearchParams} from '@angular/http';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment.prod';\n\n@Injectable()\nexport class ApiAuthenService {\n\nconstructor(private http: Http,private httpClient: HttpClient) { }\n\ndoLogin(username:string,password:string) {\n return new Promise((resolve,reject)=>{\n /* let headers = new HttpHeaders();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n const params = new HttpParams(); */\n\n var headers = new Headers();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n let options = new RequestOptions({headers:headers, method:'POST'});\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('username', username);\n urlSearchParams.append('password', password);\n\n let body = urlSearchParams.toString()\n //console.log(\"save = \"+JSON.stringify(body));\n this.http.post(`${environment.url_Authen}`,body,options)\n .pipe(map(res=>res.json()))\n .subscribe(data =>{\n resolve(data);\n },error => {\n //sessionStorage.setItem(\"save\",'N');\n reject(error);\n //alert('Register Not seccess!');\n })\n })\n}\n\n}\n","\nimport { Injectable } from '@angular/core'\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\nimport { map, catchError } from 'rxjs/operators';\nimport { BehaviorSubject, throwError } from 'rxjs';\nimport { environment } from 'src/environments/environment.prod';\nimport { CHECK_SEAT } from 'src/app/interfaces/course.interface';\n\n\nexport interface TodoProfile {\n STD_CODE: string\n NameThai: string;\n NameEng: string;\n Birth: string;\n}\n\n@Injectable()\nexport class ApiCheckSelectDateService {\n\n private loadingSubject = new BehaviorSubject(false);\n public us = sessionStorage.getItem(\"stdcode\");\n \n constructor(private http: HttpClient) { }\n\n //getJSON(std_code:string,sem:string,year:string,tmpdatetoStr:any,courseno:any,tmpdatetoStr2:any){\n getJSON(val: CHECK_SEAT) {\n\n /* let headers = new HttpHeaders();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n const params = new HttpParams();\n params.set('STD_CODE', val.stdcode);\n params.set('sem', val.sem);\n params.set('year', val.year);\n params.set('dateselect', val.tmpdatetoStr);\n params.set('courseno', val.courseno);\n params.set('tmpdateselect', val.tmpdatetoStr2);\n\n return this.http.get(`${environment.url_Fetch_ET_date_Course}`)\n .pipe(map((response: any) => response),\n catchError(this.handleError));*/\n\n return this.http.get(`${environment.url_Fetch_ET_date_Course}` +'?STD_CODE='+ val.stdcode + '&sem=' + val.sem + '&year=' + val.year\n + '&dateselect=' + val.tmpdatetoStr + '&courseno=' + val.courseno + '&tmpdateselect=' + val.tmpdatetoStr2)\n .pipe(map((response: any)=> response ),\n catchError(this.handleError));\n }\n\n\n private handleError(err: HttpErrorResponse) {\n let errorMessage = '';\n if (err.error instanceof ErrorEvent) {\n errorMessage = `An error occurred: ${err.error.message}`;\n } else {\n errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\n }\n console.error(errorMessage);\n return throwError(errorMessage);\n }\n\n}\n","import { Component,Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { element } from 'protractor';\nimport { map, catchError } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment.prod';\n\n\n@Injectable()\nexport class ApiCheckSystemService {\n\n\n public us = sessionStorage.getItem(\"stdcode\");\n public sem = sessionStorage.getItem(\"sem\");\n public year = sessionStorage.getItem(\"year\");\n //public tmpdatetoStr = sessionStorage.getItem(\"tmpdatetoStr\");\n\n \n\n\n\n constructor(private http: HttpClient) {\n //console.log(this.urlFetchAllCourse);\n this.getJSON().subscribe(response => {\n // console.log(\"response sys = \" +JSON.stringify(response));\n // sessionStorage.setItem(\"todosys\", JSON.stringify(response));\n // sessionStorage.setItem(\"chkop\",response.close)\n });\n }\n getJSON(): Observable {\n return this.http.get(`${environment.url_CheckSys}`)\n .pipe(map((res: any)=> res ),\n catchError(err => {return (err)}));\n }\n\n\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { Http, Headers, RequestOptions, URLSearchParams } from '@angular/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment.prod';\n\n@Injectable()\nexport class ApiConfirmService {\n\n constructor(private httpp: HttpClient, public http: Http) { }\n\n doConfirm(username: string, year: string, semester: string, cntCourseNo: string, grad: string, total: string,\n facno: string, iExamdate: any, iSection: any, iCourse: any, iCredit: any, iDuedate: string, pupdate: string) {\n return new Promise((resolve, reject) => {\n\n var headers = new Headers();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n let options = new RequestOptions({ headers: headers, method: 'POST' });\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('username', username);\n urlSearchParams.append('year', year);\n urlSearchParams.append('semester', semester);\n urlSearchParams.append('numCourse', cntCourseNo);\n urlSearchParams.append('grad', grad);\n urlSearchParams.append('total', total);\n urlSearchParams.append('facno', facno);\n urlSearchParams.append('examdate', iExamdate);\n urlSearchParams.append('section', iSection);\n urlSearchParams.append('course', iCourse);\n urlSearchParams.append('credit', iCredit);\n urlSearchParams.append('duedate', iDuedate);\n urlSearchParams.append('pupdate', sessionStorage.getItem('tel'));\n\n let body = urlSearchParams.toString()\n // console.log(\"save = \" + JSON.stringify(body));\n return this.http.post(`${environment.SAVE_DATA_BOOK}`, body, options).pipe(map(res => res.json()))\n .subscribe(data => {\n resolve(data);\n }, error => { \n reject(error); \n })\n });\n\n\n }\n\n doCheckConfirm(stdcode: string, sem: string, year: string, examdate: any, section: any, courseno: any): Observable {\n return this.httpp.get(`${environment.CHECK_DATE_BOOK}` + stdcode + '&sem=' + sem +\n '&year=' + year + '&dateselect=' + examdate + '&period=' + section + '&course=' + courseno)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n\n private handleError(err: HttpErrorResponse) {\n let errorMessage = '';\n if (err.error instanceof ErrorEvent) {\n errorMessage = `An error occurred: ${err.error.message}`;\n } else {\n errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\n }\n console.error(errorMessage);\n return throwError(errorMessage);\n }\n\n}\n","import { Component,Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { element } from 'protractor';\nimport { map, catchError } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment.prod';\n\n\n@Injectable()\nexport class ApiFetchDateSectionService {\n\n\n public us = sessionStorage.getItem(\"stdcode\");\n public sem = sessionStorage.getItem(\"sem\");\n public year = sessionStorage.getItem(\"year\");\n //public tmpdatetoStr = sessionStorage.getItem(\"tmpdatetoStr\");\n\n constructor(private http: HttpClient) {\n // console.log(this.urlFetchAllCourse);\n this.getJSON().subscribe(response => {\n // console.log(\"response sec = \" +response);\n });\n }\n getJSON(): Observable {\n return this.http.get(`${environment.url_CHECK_DATE_SECTION}`+this.us+\"&sem=\"+this.sem+\"&year=\"+this.year+\"&dateselect=\")\n .pipe(map((res: any)=> res ),\n catchError(err => {return (err)}));\n }\n\n\n}\n\n","\nimport { Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { map, catchError } from 'rxjs/operators';\n\n\nexport interface TodoProfile {\n STD_CODE: string\n NameThai: string;\n NameEng: string;\n Birth: string;\n}\n\n@Injectable()\nexport class ApiFectSelectPayQrService {\n\n url = \"https://sevkn.ru.ac.th/etest/getPayQr.jsp?STD_CODE=\";\n constructor(private http: HttpClient) { }\n\n getJSON(username:string,sem:string,year:string,refkey:string){\n return this.http.get(this.url+username+'&sem='+sem+'&year='+year+'&refkey='+refkey)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }\n\n\n\n}\n","import { Component,Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { element } from 'protractor';\nimport { map, catchError } from 'rxjs/operators';\n\n\n@Injectable()\nexport class ApiFetchAllCourseRegisService {\n\n/*\n public us = sessionStorage.getItem(\"stdcode\");\n public sem = sessionStorage.getItem(\"sem\");\n public year = sessionStorage.getItem(\"year\");*/\n\n\n //urlFetchAllCourse= \"http://uat.ru.ac.th//etest/getAllCourseRegis.jsp?STD_CODE=\"+this.us+\"&sem=\"+this.sem+\"&year=\"+this.year;\n urlFetchAllCourse= \"https://sevkn.ru.ac.th/etest/getAllCourseRegis.jsp?STD_CODE=\";\n\n\n\n constructor(private http: HttpClient) {\n // console.log(this.urlFetchAllCourse);\n /*this.getJSON().subscribe(response => {\n //console.log(response);\n //console.log(\"response std = \" + this.us);\n });*/\n }\n getJSON(): Observable {\n return this.http.get(this.urlFetchAllCourse)\n .pipe(map((res: any)=> res ),\n catchError(err => {return (err)}));\n }\n\n getJsonFetchCourse(stdcode:string,sem:string,year:string): Observable {\n return this.http.get(this.urlFetchAllCourse+stdcode+\"&sem=\"+sem+\"&year=\"+year)\n .pipe(map((res: any)=> res ),\n catchError(err => {return (err)}));\n }\n}\n\n","\nimport { Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { element } from 'protractor';\nimport { map, catchError } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment.prod';\n\n\nexport interface TodoCounter {\n STD_CODE: string\n NameThai: string;\n NameEng: string;\n Birth: string;\n}\n\n@Injectable()\nexport class ApiFetchCounterService {\n \n\n constructor(private http: HttpClient) {\n /* this.getJSON().subscribe(res => {\n sessionStorage.setItem(\"sem\", res.semester);\n sessionStorage.setItem(\"year\", res.year);\n sessionStorage.setItem(\"enddate\", res.enddate);\n sessionStorage.setItem(\"startdate\", res.startdate);\n //console.log(response);\n // sessionStorage.setItem(\"stdcode\", response.STD_CODE);\n });*/\n }\n getJSON(): Observable {\n return this.http.get(`${environment.url_COUNTER}`)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }\n\n getJsonData(stdcode:string): Observable {\n return this.http.get(`${environment.url_COUNTER}` + '?STD_CODE=' + stdcode)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }\n}\n","import { Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n\n@Injectable()\nexport class ApiFetchCourseService {\n\n urlFetchCourse = \"http://10.2.5.243/mregion/show_re.jsp?STUDENTID=6299499991\";\n\n constructor(private http: HttpClient) {\n this.getJSON().subscribe(data => {\n //console.log(data);\n });\n }\n getJSON(): Observable {\n return this.http.get(this.urlFetchCourse);\n }\n}\n\n","import { Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\n\n\n@Injectable()\nexport class ApiFetchDateService {\n\n public year = sessionStorage.getItem(\"year\");\n public sem = sessionStorage.getItem(\"sem\");\n\n urlFetch = \"https://sevkn.ru.ac.th/etest/getOPCalendar.jsp?year=\";\n\n constructor(private http: HttpClient) { }\n\n getJSON(): Observable {\n return this.http.get(this.urlFetch+this.year + '&sem=' + this.sem)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }\n\n getJsonCalendar(sem:string,year:string): Observable {\n return this.http.get(this.urlFetch + year + '&sem=' + sem)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }\n}\n\n","import { Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { element } from 'protractor';\nimport { map, catchError } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment.prod';\n\nexport interface ETCourse {\n year: string;\n semester: string;\n courseNo: string;\n credit: number;\n statusCourse: string;\n courseFee: string;\n insertDate: string;\n insertUser: string;\n updateDate: string;\n updateUser: string;\n status: boolean;\n // imageUrl: string;\n}\n\n@Injectable()\nexport class ApiFetchETCourseService {\n\n public us = sessionStorage.getItem(\"stdcode\");\n public sem = sessionStorage.getItem(\"sem\");\n public year = sessionStorage.getItem(\"year\");\n\n //urlFetchETCourse = \"http://uat.ru.ac.th/etest/getEtCourse.jsp?STD_CODE=\" + this.us + \"&sem=\" + this.sem + \"&year=\" + this.year;\n urlFetchHisETCourse = `${environment.url_Fetch_His_ETCourse}` + this.us + \"&sem=\" + this.sem + \"&year=\" + this.year;\n urlFetchHisCourse = `${environment.url_Fetch_HisCourse}`;\n // private urlFetchETCourse = \"https://sevkn.ru.ac.th/etest/getEtCourseOnline.jsp?STD_CODE=\";\n\n constructor(private http: HttpClient) {\n /* this.getJSON().subscribe(response => {\n if (response.grad === \"\") {\n sessionStorage.setItem('grad', '');\n } else {\n sessionStorage.setItem('grad', JSON.stringify(response.grad));\n // console.log('api = ' +response);\n }\n // sessionStorage.setItem('nocourse', JSON.stringify(response.results));\n sessionStorage.setItem('todoCourse', JSON.stringify(response));\n // console.log(response);\n });*/\n\n /*this.getHisregister().subscribe(res => {\n sessionStorage.setItem('todoHis', JSON.stringify(res.results));\n // console.log(response);\n });//*/\n }\n\n\n getJSON(): Observable {\n return this.http.get(`${environment.url_Fetch_ETCourse}`)\n .pipe(map((response: any) => response),\n catchError(err => { return (err) }));\n }\n\n getHisregister(): Observable {\n return this.http.get(`${environment.url_Fetch_His_ETCourse}` + this.us + \"&sem=\" + this.sem + \"&year=\" + this.year)\n .pipe(map((response: any) => response),\n catchError(err => { return (err) }));\n }\n\n getHisParsregister(sem: string, year: string) {\n return this.http.get(`${environment.url_Fetch_HisCourse}` + this.us + '&sem=' + sem + '&year=' + year)\n .pipe(map((response: any) => response),\n catchError(err => {\n // sessionStorage.setItem(\"dataregister\", response);\n return (err)\n }));\n }\n\n getJsonData(stdcode: string, sem: string, year: string): Observable {\n return this.http.get(`${environment.url_Fetch_ETCourse}` + stdcode + '&sem=' + sem + '&year=' + year)\n .pipe(map((response: any) => response),\n catchError(err => {\n msg => console.error(`Error: ${msg.status} ${msg.statusText}`);\n return (err);\n }));\n }\n\n getJsonDataById(stdcode: string, sem: string, year: string, COURSE_ID: string): Observable {\n return this.http.get(`${environment.url_Fetch_ETCourseById}` + stdcode + '&sem=' + sem + '&year=' + year +'&COURSE_ID=' + COURSE_ID)\n .pipe(map((response: any) => response),\n catchError(err => {\n msg => console.error(`Error: ${msg.status} ${msg.statusText}`);\n return (err);\n }));\n }\n}\n","import { Component,Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { element } from 'protractor';\nimport { map, catchError } from 'rxjs/operators';\nimport { Http } from '@angular/http';\n\n\n@Injectable()\nexport class ApiFetchPaymentService {\n\n\n //public tmpdatetoStr = sessionStorage.getItem(\"tmpdatetoStr\");\n\n\n urlFetch = \"https://sevkn.ru.ac.th/etest/getPayment.jsp?STD_CODE=\";\n\n\n\n constructor(private httppp: HttpClient,private http:Http) {\n /*9this.getJSON().subscribe(data => {\n //sessionStorage.setItem(\"stdcode\", data.STD_CODE);\n sessionStorage.setItem(\"namethai\", data.NameThai);\n\n //console.log(response);\n // sessionStorage.setItem(\"stdcode\", response.STD_CODE);\n });*/\n }\n\n\n getJSON(username:string,sem:string,year:string,refkey:string){\n return this.httppp.get(this.urlFetch+username+'&sem='+sem+'&year='+year+'&refkey='+refkey)\n .pipe(map((response: any)=> response ),\n catchError(err => {\n // sessionStorage.setItem(\"dataregister\", response);\n return (err)}));\n }\n}\n","\nimport { Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { element } from 'protractor';\nimport { map, catchError } from 'rxjs/operators';\nimport { Http } from '@angular/http';\n\n\nexport interface TodoProfile {\n STD_CODE: string\n NameThai: string;\n NameEng: string;\n Birth: string;\n}\n\n@Injectable()\nexport class ApiFetchProfileService {\n\n public us = sessionStorage.getItem(\"stdcode\");\n private urlCheckPhoneNo = 'https://sevkn.ru.ac.th/etest/chkTelephone.jsp?STD_CODE='\n\n\n //urlFetchETCourse = \"http://uat.ru.ac.th//etest/ADManage/apinessy/etest/getProfile.jsp?STD_CODE=6290508511\";\n //urlFetchETCourse = \"http://uat.ru.ac.th//etest/ADManage/apinessy/etest/getProfile.jsp?STD_CODE=\"+this.us;\n constructor(private httppp: HttpClient,private http:Http) {\n /*this.getJSON().subscribe(data => {\n //sessionStorage.setItem(\"stdcode\", data.STD_CODE);\n sessionStorage.setItem(\"namethai\", data.NameThai);\n sessionStorage.setItem(\"facno\", data.FacNo);\n sessionStorage.setItem(\"majorno\", data.MajorNo);\n sessionStorage.setItem(\"majornamthai\", data.MajorNameThai);\n sessionStorage.setItem(\"facName\", data.FacNameThai);\n sessionStorage.setItem(\"birth\", data.Birth);*/\n //console.log(response);\n // sessionStorage.setItem(\"stdcode\", response.STD_CODE);\n // });\n }\n /*getJSON(username:string){\n return this.httppp.get('https://sevkn.ru.ac.th/etest/getProfile.jsp?STD_CODE='+username)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }*/\n\n getJSON(stdcode:string,sem:string,year:string){\n return this.httppp.get(this.urlCheckPhoneNo + stdcode +'&sem=' +sem+'&year='+year)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }\n\n}\n","import { Component,Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { element } from 'protractor';\nimport { map, catchError } from 'rxjs/operators';\n\n\n@Injectable()\nexport class ApiFetchQrPaymentService {\n\n\n public us = sessionStorage.getItem(\"stdcode\");\n public sem = sessionStorage.getItem(\"sem\");\n public year = sessionStorage.getItem(\"year\");\n //public tmpdatetoStr = sessionStorage.getItem(\"tmpdatetoStr\");\n\n\n urlFetch = \"https://sevkn.ru.ac.th/etest/getQrpaylist.jsp?STD_CODE=\";\n\n\n\n constructor(private http: HttpClient) {\n /*this.getJSON().subscribe(response => {\n //console.log(response);\n // sessionStorage.setItem(\"stdcode\", response.STD_CODE);\n });*/\n }\n /*getJSON(): Observable {\n return this.http.get(this.urlFetch+this.us+\"&sem=\"+this.sem+\"&year=\"+this.year)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }*/\n\n getJsonQrData(stdcode:string,sem:string,year:string): Observable {\n return this.http.get(this.urlFetch+ stdcode + \"&sem=\" + sem + \"&year=\" + year)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }\n\n}\n\n","import { Component,Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { element } from 'protractor';\nimport { map, catchError } from 'rxjs/operators';\n\n\n@Injectable()\nexport class ApiFetchRecieptService {\n\n\n public us = sessionStorage.getItem(\"stdcode\");\n public sem = sessionStorage.getItem(\"sem\");\n public year = sessionStorage.getItem(\"year\");\n //public tmpdatetoStr = sessionStorage.getItem(\"tmpdatetoStr\");\n\n\n // urlFetch = \"http://uat.ru.ac.th//etest/getRepall.jsp?STD_CODE=\"+this.us+\"&sem=\"+this.sem+\"&year=\"+this.year;\n urlFetch = \"https://sevkn.ru.ac.th/etest/getRepall.jsp?STD_CODE=\";\n\n\n\n constructor(private http: HttpClient) {\n /*this.getJSON().subscribe(response => {\n //console.log(response);\n // sessionStorage.setItem(\"stdcode\", response.STD_CODE);\n });//*/\n }\n getJSON(): Observable {\n return this.http.get(this.urlFetch)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }\n\n getJsonRegisSlipt(stdcode:string,sem:string,year:string): Observable {\n return this.http.get(this.urlFetch + stdcode + \"&sem=\"+ sem + \"&year=\" + year)\n .pipe(map((response: any)=> response ),\n catchError(err => {return (err)}));\n }\n\n}\n\n","import { Injectable } from '@angular/core'\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment.prod';\n\n\n\n@Injectable()\nexport class ApiGetPaymentService {\n\n constructor(private http: HttpClient) { }\n\n getJSON(): Observable {\n return this.http.get(`${environment.GET_Payment}`);\n }\n\n getJsonPayment(username: string, sem: string, year: string, refkey: string) {\n\n let headers = new HttpHeaders();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n const params = new HttpParams();\n params.set('username', username);\n params.set('year', year);\n params.set('sem', sem);\n params.set('refkey', refkey);\n\n /* return this.http.post(`${environment.GET_Payment}`, params, { 'headers': headers })\n .pipe(map((response: any) => response),\n catchError(this.handleError)); */\n\n return this.http.get(`${environment.GET_Payment}` + username + '&sem=' + sem + '&year=' + year + '&refkey=' + refkey)\n .pipe(map((response: any) => response),\n catchError(err => { return (err) }));\n }\n\n getJsonQrPayment(username: string, sem: string, year: string, refkey: string) {\n\n let headers = new HttpHeaders();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n const params = new HttpParams();\n params.set('username', username);\n params.set('year', year);\n params.set('sem', sem);\n params.set('refkey', refkey);\n\n return this.http.post(`${environment.GET_Qr}`, params, { 'headers': headers })\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n\n /* return this.http.get(`${environment.GET_Qr}` + username + '&sem=' + sem + '&year=' + year + '&refkey=' + refkey)\n .pipe(map((response: any) => response),\n catchError(err => { return (err) })); */\n }\n\n checkPayment(username: string, sem: string, year: string, refkey: string) {\n\n let headers = new HttpHeaders();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n const params = new HttpParams();\n params.set('STD_CODE', username);\n params.set('year', year);\n params.set('sem', sem);\n params.set('refkey', refkey);\n\n /* return this.http.post(`${environment.GET_CheckPayment}`, params, { 'headers': headers })\n .pipe(map((response: any) => response),\n catchError(this.handleError));*/\n\n return this.http.get(`${environment.GET_CheckPayment}` + username + '&sem=' + sem + '&year=' + year + '&refkey=' + refkey)\n .pipe(map((response: any) => response),\n catchError(err => { return (err) })); \n }\n\n private handleError(err: HttpErrorResponse) {\n let errorMessage = '';\n if (err.error instanceof ErrorEvent) {\n errorMessage = `An error occurred: ${err.error.message}`;\n } else {\n errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\n }\n console.error(errorMessage);\n return throwError(errorMessage);\n }\n\n}\n\n","import { Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n\n@Injectable()\nexport class ApiGetTermValService {\n\n urlFetchCourse = \"https://sevkn.ru.ac.th/etest/apietests/msgtest.jsp\";\n\n constructor(private http: HttpClient) {\n this.getJSON().subscribe(data => {\n // console.log(data);\n });\n }\n getJSON(): Observable {\n return this.http.get(this.urlFetchCourse);\n }\n}\n\n","import { Component,Injectable } from '@angular/core'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { element } from 'protractor';\nimport { map, catchError } from 'rxjs/operators';\n\n\n@Injectable()\nexport class ApiRecieptMsgService {\n\n\n public us = sessionStorage.getItem(\"stdcode\");\n public sem = sessionStorage.getItem(\"sem\");\n public year = sessionStorage.getItem(\"year\");\n //public tmpdatetoStr = sessionStorage.getItem(\"tmpdatetoStr\");\n\n\n urlFetchAllCourse= \"https://sevkn.ru.ac.th/etest/repMsg.jsp\";\n\n\n\n constructor(private http: HttpClient) {\n /*console.log(this.urlFetchAllCourse);\n this.getJSON().subscribe(response => {\n console.log(\"response sec = \" + JSON.stringify(response));\n });*/\n }\n getJSON(): Observable {\n return this.http.get(this.urlFetchAllCourse)\n .pipe(map((res: any)=> res ),\n catchError(err => {return (err)}));\n }\n\n\n}\n\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n//import { Http, Headers, RequestOptions, URLSearchParams, HttpClient } from '@angular/common/http';\r\nimport { Http , Headers , RequestOptions,URLSearchParams} from '@angular/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ApiSaveConfirmAcceptService {\r\n private url = 'http://uat.ru.ac.th/etest/saveAcceptanceDetail.jsp';\r\nconstructor(private http: Http,private httpClient: HttpClient) { }\r\n//npm install @angular/http@latest\r\n\r\ndoConfirm(username:string,semester:string,year:string,pcstatus:string,mbstatus:string,telno:string) {\r\n return new Promise((resolve,reject)=>{\r\n var headers = new Headers();\r\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\r\n let options = new RequestOptions({headers:headers, method:'POST'});\r\n let urlSearchParams = new URLSearchParams();\r\n urlSearchParams.append('username', username);\r\n urlSearchParams.append('year', year);\r\n urlSearchParams.append('semester', semester);\r\n urlSearchParams.append('telno', telno);\r\n urlSearchParams.append('pcstatus', pcstatus);\r\n urlSearchParams.append('mbstatus', mbstatus);\r\n\r\n let body = urlSearchParams.toString()\r\n //console.log(\"save = \"+JSON.stringify(body));\r\n this.http.post(this.url,body,options)\r\n .pipe(map(res=>res.json()))\r\n .subscribe(data =>{\r\n resolve(data);\r\n },error => {\r\n //sessionStorage.setItem(\"save\",'N');\r\n reject(error);\r\n //alert('Register Not seccess!');\r\n })\r\n })\r\n}\r\n\r\n\r\n\r\n}\r\n","export const environment = {\n production: true,\n\n //--------- PRODUCTION -------------------------------------\n SAVE_PRODUCTION: 'https://sevkn.ru.ac.th/etest/saveEtest.jsp',\n urlFetchCourse: \"https://sevkn.ru.ac.th/etest/getPayment.jsp?STD_CODE=\",\n url_COUNTER:\"https://sevkn.ru.ac.th/etest/getCounter.jsp\",\n\n // get slip\n Get_Slip: 'https://sevkn.ru.ac.th/etestgbackend/GetSlipt?stdcode=',\n // --------------- test --------------------------\n url_COUNTER_TEST:\"https://sevkn.ru.ac.th/etest/getCounterTest.jsp\",\n SAVE_TEST: 'https://sevkn.ru.ac.th/etest/saveEtestTest.jsp',\n\n url_Fetch_His_ETCourse: \"https://sevkn.ru.ac.th/etest/gethisregiscourse.jsp?STD_CODE=\",\n url_Fetch_HisCourse: \"https://sevkn.ru.ac.th/etest/gethisregiscourse.jsp?STD_CODE=\",\n //url_Fetch_ETCourse: \"https://sevkn.ru.ac.th/etest/getEtCourse.jsp?STD_CODE=\",\n \n // url_Fetch_ETCourse: \"https://sevkn.ru.ac.th/etest/getEtCourse.jsp?STD_CODE=\",\n url_Fetch_ETCourse: \"https://sevkn.ru.ac.th/etest/getEtCourse266.jsp?STD_CODE=\",\n //url_Fetch_ETCourseById: \"https://sevkn.ru.ac.th/etest/getEtCourseById2.jsp?STD_CODE=\",\n url_Fetch_ETCourseById: \"https://sevkn.ru.ac.th/etest/getEtCourseById2.jsp?STD_CODE=\",\n\n // get counter\n url_Authen: 'https://sevkn.ru.ac.th/eservice-api/authen-etest.jsp',\n\n // check system\n url_CheckSys: \"https://sevkn.ru.ac.th/etest/chksystem.jsp\",\n // check date\n url_Fetch_ET_date_Course: \"https://sevkn.ru.ac.th/etest/getDateSection.jsp\",\n\n SAVE_DATA_BOOK: 'https://sevkn.ru.ac.th/etest/saveEtest.jsp',\n\n CHECK_DATE_BOOK: 'https://sevkn.ru.ac.th/etest/chkDateSection.jsp?STD_CODE=',\n\n // check date section\n url_CHECK_DATE_SECTION: 'https://sevkn.ru.ac.th/etest/chkDateSection.jsp?STD_CODE=',\n\n // payments check\n\n GET_Payment: \"https://sevkn.ru.ac.th/etest/getPayment.jsp?STD_CODE=\",\n // GET_Payment: \"https://sevkn.ru.ac.th/etest/getPayment.jsp\",\n\n GET_CheckPayment: \"https://sevkn.ru.ac.th/etest/reCheckPayment.jsp?STD_CODE=\",\n //GET_CheckPayment: \"https://sevkn.ru.ac.th/etest/reCheckPayment.jsp\",\n // get list r\n GET_Qr: \"https://sevkn.ru.ac.th/etest/getPayQr.jsp?STD_CODE=\",\n\n // get qr payment\n GET_Qr_DATA: \"https://devtest.ru.ac.th/ThaiQR/etestQRCODE?totalAmount=\",\n\n\n};\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","var map = {\n\t\"./af\": 8685,\n\t\"./af.js\": 8685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 2614,\n\t\"./ar-kw.js\": 2614,\n\t\"./ar-ly\": 8630,\n\t\"./ar-ly.js\": 8630,\n\t\"./ar-ma\": 8674,\n\t\"./ar-ma.js\": 8674,\n\t\"./ar-sa\": 9032,\n\t\"./ar-sa.js\": 9032,\n\t\"./ar-tn\": 4730,\n\t\"./ar-tn.js\": 4730,\n\t\"./ar.js\": 254,\n\t\"./az\": 3052,\n\t\"./az.js\": 3052,\n\t\"./be\": 150,\n\t\"./be.js\": 150,\n\t\"./bg\": 3069,\n\t\"./bg.js\": 3069,\n\t\"./bm\": 3466,\n\t\"./bm.js\": 3466,\n\t\"./bn\": 8516,\n\t\"./bn-bd\": 557,\n\t\"./bn-bd.js\": 557,\n\t\"./bn.js\": 8516,\n\t\"./bo\": 6273,\n\t\"./bo.js\": 6273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 9815,\n\t\"./bs.js\": 9815,\n\t\"./ca\": 3331,\n\t\"./ca.js\": 3331,\n\t\"./cs\": 1320,\n\t\"./cs.js\": 1320,\n\t\"./cv\": 2219,\n\t\"./cv.js\": 2219,\n\t\"./cy\": 8266,\n\t\"./cy.js\": 8266,\n\t\"./da\": 6427,\n\t\"./da.js\": 6427,\n\t\"./de\": 7435,\n\t\"./de-at\": 2871,\n\t\"./de-at.js\": 2871,\n\t\"./de-ch\": 2994,\n\t\"./de-ch.js\": 2994,\n\t\"./de.js\": 7435,\n\t\"./dv\": 2357,\n\t\"./dv.js\": 2357,\n\t\"./el\": 5649,\n\t\"./el.js\": 5649,\n\t\"./en-au\": 9961,\n\t\"./en-au.js\": 9961,\n\t\"./en-ca\": 9878,\n\t\"./en-ca.js\": 9878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 864,\n\t\"./en-ie.js\": 864,\n\t\"./en-il\": 1579,\n\t\"./en-il.js\": 1579,\n\t\"./en-in\": 940,\n\t\"./en-in.js\": 940,\n\t\"./en-nz\": 6181,\n\t\"./en-nz.js\": 6181,\n\t\"./en-sg\": 4301,\n\t\"./en-sg.js\": 4301,\n\t\"./eo\": 5291,\n\t\"./eo.js\": 5291,\n\t\"./es\": 4529,\n\t\"./es-do\": 3764,\n\t\"./es-do.js\": 3764,\n\t\"./es-mx\": 2584,\n\t\"./es-mx.js\": 2584,\n\t\"./es-us\": 3425,\n\t\"./es-us.js\": 3425,\n\t\"./es.js\": 4529,\n\t\"./et\": 5203,\n\t\"./et.js\": 5203,\n\t\"./eu\": 678,\n\t\"./eu.js\": 678,\n\t\"./fa\": 3483,\n\t\"./fa.js\": 3483,\n\t\"./fi\": 6262,\n\t\"./fi.js\": 6262,\n\t\"./fil\": 2521,\n\t\"./fil.js\": 2521,\n\t\"./fo\": 4555,\n\t\"./fo.js\": 4555,\n\t\"./fr\": 3131,\n\t\"./fr-ca\": 8239,\n\t\"./fr-ca.js\": 8239,\n\t\"./fr-ch\": 1702,\n\t\"./fr-ch.js\": 1702,\n\t\"./fr.js\": 3131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 3821,\n\t\"./ga.js\": 3821,\n\t\"./gd\": 1753,\n\t\"./gd.js\": 1753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 3780,\n\t\"./gom-deva.js\": 3780,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 2809,\n\t\"./gu.js\": 2809,\n\t\"./he\": 5402,\n\t\"./he.js\": 5402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 410,\n\t\"./hr.js\": 410,\n\t\"./hu\": 8288,\n\t\"./hu.js\": 8288,\n\t\"./hy-am\": 7928,\n\t\"./hy-am.js\": 7928,\n\t\"./id\": 1334,\n\t\"./id.js\": 1334,\n\t\"./is\": 6959,\n\t\"./is.js\": 6959,\n\t\"./it\": 4864,\n\t\"./it-ch\": 1124,\n\t\"./it-ch.js\": 1124,\n\t\"./it.js\": 4864,\n\t\"./ja\": 6141,\n\t\"./ja.js\": 6141,\n\t\"./jv\": 9187,\n\t\"./jv.js\": 9187,\n\t\"./ka\": 2136,\n\t\"./ka.js\": 2136,\n\t\"./kk\": 4332,\n\t\"./kk.js\": 4332,\n\t\"./km\": 8607,\n\t\"./km.js\": 8607,\n\t\"./kn\": 4305,\n\t\"./kn.js\": 4305,\n\t\"./ko\": 234,\n\t\"./ko.js\": 234,\n\t\"./ku\": 6003,\n\t\"./ku.js\": 6003,\n\t\"./ky\": 5061,\n\t\"./ky.js\": 5061,\n\t\"./lb\": 2786,\n\t\"./lb.js\": 2786,\n\t\"./lo\": 6183,\n\t\"./lo.js\": 6183,\n\t\"./lt\": 29,\n\t\"./lt.js\": 29,\n\t\"./lv\": 4169,\n\t\"./lv.js\": 4169,\n\t\"./me\": 8577,\n\t\"./me.js\": 8577,\n\t\"./mi\": 8177,\n\t\"./mi.js\": 8177,\n\t\"./mk\": 337,\n\t\"./mk.js\": 337,\n\t\"./ml\": 5260,\n\t\"./ml.js\": 5260,\n\t\"./mn\": 2325,\n\t\"./mn.js\": 2325,\n\t\"./mr\": 4695,\n\t\"./mr.js\": 4695,\n\t\"./ms\": 5334,\n\t\"./ms-my\": 7151,\n\t\"./ms-my.js\": 7151,\n\t\"./ms.js\": 5334,\n\t\"./mt\": 3570,\n\t\"./mt.js\": 3570,\n\t\"./my\": 7963,\n\t\"./my.js\": 7963,\n\t\"./nb\": 8028,\n\t\"./nb.js\": 8028,\n\t\"./ne\": 6638,\n\t\"./ne.js\": 6638,\n\t\"./nl\": 302,\n\t\"./nl-be\": 6782,\n\t\"./nl-be.js\": 6782,\n\t\"./nl.js\": 302,\n\t\"./nn\": 3501,\n\t\"./nn.js\": 3501,\n\t\"./oc-lnc\": 563,\n\t\"./oc-lnc.js\": 563,\n\t\"./pa-in\": 869,\n\t\"./pa-in.js\": 869,\n\t\"./pl\": 5302,\n\t\"./pl.js\": 5302,\n\t\"./pt\": 9687,\n\t\"./pt-br\": 4884,\n\t\"./pt-br.js\": 4884,\n\t\"./pt.js\": 9687,\n\t\"./ro\": 9107,\n\t\"./ro.js\": 9107,\n\t\"./ru\": 3627,\n\t\"./ru.js\": 3627,\n\t\"./sd\": 355,\n\t\"./sd.js\": 355,\n\t\"./se\": 3427,\n\t\"./se.js\": 3427,\n\t\"./si\": 1848,\n\t\"./si.js\": 1848,\n\t\"./sk\": 4590,\n\t\"./sk.js\": 4590,\n\t\"./sl\": 184,\n\t\"./sl.js\": 184,\n\t\"./sq\": 6361,\n\t\"./sq.js\": 6361,\n\t\"./sr\": 8965,\n\t\"./sr-cyrl\": 1287,\n\t\"./sr-cyrl.js\": 1287,\n\t\"./sr.js\": 8965,\n\t\"./ss\": 5456,\n\t\"./ss.js\": 5456,\n\t\"./sv\": 451,\n\t\"./sv.js\": 451,\n\t\"./sw\": 7558,\n\t\"./sw.js\": 7558,\n\t\"./ta\": 2702,\n\t\"./ta.js\": 2702,\n\t\"./te\": 3693,\n\t\"./te.js\": 3693,\n\t\"./tet\": 1243,\n\t\"./tet.js\": 1243,\n\t\"./tg\": 2500,\n\t\"./tg.js\": 2500,\n\t\"./th\": 5768,\n\t\"./th.js\": 5768,\n\t\"./tk\": 7761,\n\t\"./tk.js\": 7761,\n\t\"./tl-ph\": 5780,\n\t\"./tl-ph.js\": 5780,\n\t\"./tlh\": 9590,\n\t\"./tlh.js\": 9590,\n\t\"./tr\": 3807,\n\t\"./tr.js\": 3807,\n\t\"./tzl\": 3857,\n\t\"./tzl.js\": 3857,\n\t\"./tzm\": 654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 654,\n\t\"./ug-cn\": 845,\n\t\"./ug-cn.js\": 845,\n\t\"./uk\": 9232,\n\t\"./uk.js\": 9232,\n\t\"./ur\": 7052,\n\t\"./ur.js\": 7052,\n\t\"./uz\": 7967,\n\t\"./uz-latn\": 2233,\n\t\"./uz-latn.js\": 2233,\n\t\"./uz.js\": 7967,\n\t\"./vi\": 8615,\n\t\"./vi.js\": 8615,\n\t\"./x-pseudo\": 2320,\n\t\"./x-pseudo.js\": 2320,\n\t\"./yo\": 1313,\n\t\"./yo.js\": 1313,\n\t\"./zh-cn\": 4490,\n\t\"./zh-cn.js\": 4490,\n\t\"./zh-hk\": 5910,\n\t\"./zh-hk.js\": 5910,\n\t\"./zh-mo\": 8262,\n\t\"./zh-mo.js\": 8262,\n\t\"./zh-tw\": 4223,\n\t\"./zh-tw.js\": 4223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;"],"names":[],"sourceRoot":"webpack:///"}