{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/access-level-data-entry/access-level-data-entry.component.html","./src/app/access-level-data-entry/access-level-data-entry.component.ts","./src/app/admin-panel/admin-panel.component.html","./src/app/admin-panel/admin-panel.component.ts","./src/app/app-routing.module.ts","./src/app/app.component.html","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/application/application.component.html","./src/app/application/application.component.ts","./src/app/applicationcheck/applicationcheck.component.html","./src/app/applicationcheck/applicationcheck.component.ts","./src/app/auth.guard.ts","./src/app/auto-ded-entry/auto-ded-entry.component.html","./src/app/auto-ded-entry/auto-ded-entry.component.ts","./src/app/auto-ded/auto-ded.component.html","./src/app/auto-ded/auto-ded.component.ts","./src/app/auto-inc-entry/auto-inc-entry.component.html","./src/app/auto-inc-entry/auto-inc-entry.component.ts","./src/app/auto-inc/auto-inc.component.html","./src/app/auto-inc/auto-inc.component.ts","./src/app/change-password/change-password.component.html","./src/app/change-password/change-password.component.ts","./src/app/change-passwordst/change-passwordst.component.html","./src/app/change-passwordst/change-passwordst.component.ts","./src/app/class-manipulator.directive.ts","./src/app/currency.pipe.ts","./src/app/custom-event-listener.directive.ts","./src/app/dashboard/dashboard.component.html","./src/app/dashboard/dashboard.component.ts","./src/app/data-entry-base/data-entry-base.component.html","./src/app/data-entry-base/data-entry-base.component.ts","./src/app/data-entry-form/data-entry-form.component.html","./src/app/data-entry-form/data-entry-form.component.ts","./src/app/dynamic-form-module/containers/dynamic-form/components/dynamic-field/dynamic-field.directive.ts","./src/app/dynamic-form-module/containers/dynamic-form/components/form-button/form-button.component.ts.FormButtonComponent.html","./src/app/dynamic-form-module/containers/dynamic-form/components/form-button/form-button.component.ts","./src/app/dynamic-form-module/containers/dynamic-form/components/form-checkbox/form-checkbox.component.ts.FormCheckboxComponent.html","./src/app/dynamic-form-module/containers/dynamic-form/components/form-checkbox/form-checkbox.component.ts","./src/app/dynamic-form-module/containers/dynamic-form/components/form-currency/form-currency.component.ts.FormCurrencyComponent.html","./src/app/dynamic-form-module/containers/dynamic-form/components/form-currency/form-currency.component.ts","./src/app/dynamic-form-module/containers/dynamic-form/components/form-date/form-date.component.ts.FormDateComponent.html","./src/app/dynamic-form-module/containers/dynamic-form/components/form-date/form-date.component.ts","./src/app/dynamic-form-module/containers/dynamic-form/components/form-input-selector/form-input-selector.component.ts.FormInputSelectorComponent.html","./src/app/dynamic-form-module/containers/dynamic-form/components/form-input-selector/form-input-selector.component.ts","./src/app/dynamic-form-module/containers/dynamic-form/components/form-input/form-input.component.ts.FormInputComponent.html","./src/app/dynamic-form-module/containers/dynamic-form/components/form-input/form-input.component.ts","./src/app/dynamic-form-module/containers/dynamic-form/components/form-pass/form-pass.component.ts.FormPassComponent.html","./src/app/dynamic-form-module/containers/dynamic-form/components/form-pass/form-pass.component.ts","./src/app/dynamic-form-module/containers/dynamic-form/components/form-select/form-select.component.ts.FormSelectComponent.html","./src/app/dynamic-form-module/containers/dynamic-form/components/form-select/form-select.component.ts","./src/app/dynamic-form-module/containers/dynamic-form/dynamic-form.component.ts.DynamicFormComponent.html","./src/app/dynamic-form-module/containers/dynamic-form/dynamic-form.component.ts","./src/app/dynamic-form-module/dynamic-form-module.module.ts","./src/app/email-settings/email-settings.component.html","./src/app/email-settings/email-settings.component.ts","./src/app/employee.service.ts","./src/app/employees/employees.component.html","./src/app/employees/employees.component.ts","./src/app/enrollment/enrollment.component.html","./src/app/enrollment/enrollment.component.ts","./src/app/frm-approve/frm-approve.component.html","./src/app/frm-approve/frm-approve.component.ts","./src/app/general-service.service.ts","./src/app/globals.ts","./src/app/income.service.ts","./src/app/level/level.component.html","./src/app/level/level.component.ts","./src/app/login/login.component.html","./src/app/login/login.component.ts","./src/app/manage-loan-application/manage-loan-application.component.html","./src/app/manage-loan-application/manage-loan-application.component.ts","./src/app/message.service.ts","./src/app/modal-for-data-selection-v2/modal-for-data-selection-v2.component.html","./src/app/modal-for-data-selection-v2/modal-for-data-selection-v2.component.ts","./src/app/modal-for-data-selection/modal-for-data-selection.component.html","./src/app/modal-for-data-selection/modal-for-data-selection.component.ts","./src/app/modal-for-tabular-form/modal-for-tabular-form.component.html","./src/app/modal-for-tabular-form/modal-for-tabular-form.component.ts","./src/app/multi-checkbox-selection/multi-checkbox-selection.component.html","./src/app/multi-checkbox-selection/multi-checkbox-selection.component.ts","./src/app/myaccount/myaccount.component.html","./src/app/myaccount/myaccount.component.ts","./src/app/page-not-found/page-not-found.component.html","./src/app/page-not-found/page-not-found.component.ts","./src/app/paymentcheck/paymentcheck.component.html","./src/app/paymentcheck/paymentcheck.component.ts","./src/app/payroll-report/payroll-report.component.html","./src/app/payroll-report/payroll-report.component.ts","./src/app/payroll-summary-v2/payroll-summary-v2.component.html","./src/app/payroll-summary-v2/payroll-summary-v2.component.ts","./src/app/payslip-v2/payslip-v2.component.html","./src/app/payslip-v2/payslip-v2.component.ts","./src/app/populate-table-for-reports/populate-table-for-reports.component.html","./src/app/populate-table-for-reports/populate-table-for-reports.component.ts","./src/app/populate-table-for-trans/populate-table-for-trans.component.html","./src/app/populate-table-for-trans/populate-table-for-trans.component.ts","./src/app/populate-table/populate-table.component.html","./src/app/populate-table/populate-table.component.ts","./src/app/populate-textbox/populate-textbox.component.html","./src/app/populate-textbox/populate-textbox.component.ts","./src/app/post-period/post-period.component.html","./src/app/post-period/post-period.component.ts","./src/app/registration/registration.component.html","./src/app/registration/registration.component.ts","./src/app/registrationcheck/registrationcheck.component.html","./src/app/registrationcheck/registrationcheck.component.ts","./src/app/report-viewer/report-viewer.component.html","./src/app/report-viewer/report-viewer.component.ts","./src/app/reqenroll/reqenroll.component.html","./src/app/reqenroll/reqenroll.component.ts","./src/app/reqregister/reqregister.component.html","./src/app/reqregister/reqregister.component.ts","./src/app/scroll-tracker.directive.ts","./src/app/search-bar/search-bar.component.html","./src/app/search-bar/search-bar.component.ts","./src/app/searching-operations/searching-operations.component.html","./src/app/searching-operations/searching-operations.component.ts","./src/app/set-access/set-access.component.ts","./src/app/settings/settings.component.html","./src/app/settings/settings.component.ts","./src/app/site-administration/site-administration.component.html","./src/app/site-administration/site-administration.component.ts","./src/app/sss-base-entry/sss-base-entry.component.html","./src/app/sss-base-entry/sss-base-entry.component.ts","./src/app/student/student.component.html","./src/app/student/student.component.ts","./src/app/table-comp/table-comp.component.html","./src/app/table-comp/table-comp.component.ts","./src/app/table-modal-view/table-modal-view.component.html","./src/app/table-modal-view/table-modal-view.component.ts","./src/app/table-with-searchbar/table-with-searchbar.component.html","./src/app/table-with-searchbar/table-with-searchbar.component.ts","./src/app/tabular-form/tabular-form.component.html","./src/app/tabular-form/tabular-form.component.ts","./src/app/text-box/text-box.component.html","./src/app/text-box/text-box.component.ts","./src/app/user-data-entry/user-data-entry.component.html","./src/app/user-data-entry/user-data-entry.component.ts","./src/app/validatedpayments/validatedpayments.component.html","./src/app/validatedpayments/validatedpayments.component.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","\n","import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';\nimport { Validators } from '@angular/forms';\n\nimport { GeneralServiceService } from '../general-service.service';\nimport { DataEntryBaseComponent } from '../data-entry-base/data-entry-base.component';\n\n@Component({\n selector: 'app-access-level-data-entry',\n templateUrl: './access-level-data-entry.component.html',\n styleUrls: ['./access-level-data-entry.component.css']\n})\nexport class AccessLevelDataEntryComponent implements OnInit {\n\n @ViewChild(DataEntryBaseComponent, { static: false }) popTBl: DataEntryBaseComponent;\n\n prAccesslevel: any;\n selectedData: any = {};\n config: any = [];\n\n constructor(\n private genServ: GeneralServiceService\n ) { }\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n this.reloadData();\n }\n\n reloadData() {\n this.popTBl.refresh();\n }\n\n loadMenu() {\n this.genServ.GetDataNoLimit('menu', 'code,name,descr').subscribe((d) => {\n d.forEach((v, i) => {\n this.config.push({\n type: 'checkbox',\n label: v.name + \" \" + v.descr,\n name: v.code,\n value: ''\n })\n });\n },\n (err) => alert(err),\n () => this.config.push({\n type: 'button',\n label: 'Save',\n name: 'submit',\n disabled: true,\n title: \"Menu Access\"\n })\n );\n }\n\n initProperties() {\n //Form Properties\n this.config = [\n {\n type: 'input',\n label: 'Code',\n name: 'code',\n placeholder: 'Required*, [letters, number] minimun length 1',\n value: '',\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: 'input',\n label: 'Name',\n name: 'name',\n placeholder: 'Enter Employee Name*',\n value: '',\n validation: [Validators.required, Validators.minLength(1)]\n }\n ];\n this.loadMenu();\n var tblHeader =\n [\n { key: 'code', value: 'Code', hKey: 'code' },\n { key: 'name', value: 'Name', hKey: 'name' },\n { key: 'access', value: 'Access', hKey: 'access' },\n ];\n this.prAccesslevel = {\n table: \"accesslevel\", tblHeader: tblHeader, title: \"Access Level\",\n ps: 10, tblHeaderHidden: \"\"\n };\n }\n\n getSelected(event) {\n this.selectedData = event;\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p)\n .subscribe(resp => {\n let x = parseInt(resp.body);\n if (x == 2) {\n alert(`Duplicated Code`);\n } else if (x == 1) {\n alert(`Updated Record!`);\n } else if (x == 3) {\n alert(`Duplicated Name`);\n }\n },\n (resp) => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n }\n\n submit(event) {\n let value = event.value;\n let a = \"\";\n for (let i = 2; i <= this.config.length - 2; i++) {\n if (value[this.config[i].name] == true) {\n a += this.config[i].name + \",\";\n }\n }\n let v = `'${value.code}','${value.name}','${a.substring(0, a.length - 1)}'`;\n\n let p = \"\";\n\n if (event.mode == 1) {\n p = `call insertAccesslevel(${v})`;\n } else if (event.mode == 2) {\n v += `,${event.id}`;\n p = `call updateAccesslevel(${v})`;\n }\n this.showConfigResponse(p);\n }//submit\n\n}\n","
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n \r\n\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
{{title}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n Powered by HITC\r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Renderer2, ElementRef, AfterViewInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { SettingsComponent } from '../settings/settings.component';\nimport { Globals } from '../globals';\nimport { GeneralServiceService } from '../general-service.service';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\n\nimport { Dsmodel } from '../dsmodel.interface';\n\n\n@Component({\n selector: 'app-admin-panel',\n templateUrl: './admin-panel.component.html',\n styleUrls: ['./admin-panel.component.css']\n})\nexport class AdminPanelComponent implements OnInit, AfterViewInit {\n bsModalRef: BsModalRef;\n public scrollbarOptions = { axis: 'y', theme: 'minimal-dark' };\n sideNavBool: boolean = false;\n selectedUser: any = {};\n imageToShow: any = \"assets/images/employees/no-image.png\";\n currentPeriod: any;\n title = 'DashBoard';\n selectedMenu: any;\n hitcLogo: any;\n posted: number = 0;\n userid : any;\n deToggler = false;\n Menu = { dataEntry: [], Transaction: [], Reports: [], Settings: [] };\n uName : string;\n show: boolean;\n subs: any;\n currentyear: any ;\n oneuser: any=0;\n\n\n public isCollapsed = false;\n public isCollapsed2 = false;\n public isCollapsed3 = false;\n public isCollapsed4 = false;\n\n constructor(\n private route: ActivatedRoute,\n public modalService: BsModalService,\n private globals: Globals,\n public router: Router,\n public genserv: GeneralServiceService,\n private renderer: Renderer2,\n private elRef: ElementRef\n ) { }\n\n //lj: {lj1: 'i.incId', lj2: 'e.id', lj3: 'income e', lj4: 'LEFT'} };\n ngOnInit() {\n\n let an = this.globals.username;\n this.uName = an;\n this.userid = this.globals.userid;\n\n if(this.userid==1){\n this.oneuser = 1;\n this.title = \"\";\n } \n //this.getPayPeriod();\n this.getMenu();\n this.getYear();\n //this.globals.getAcclvl();\n this.genserv.getImageByCode(`${an}`).subscribe(d => {\n this.createImageFromBlob(d);\n }, error => {\n this.imageToShow = \"assets/images/employees/no-image.png\";\n console.log(error.message);\n }, () => {\n this.genserv.GetDataForTrans('user u', 'u.code, u.name, a.name as accesslevel', 0, 1, ['u.code'], [`${an}`],\n 'u.accesslevel', 'a.id', 'accesslevel a', 'LEFT').subscribe((d) => {\n this.selectedUser = d[0];\n \n });\n });\n }\n\n ngOnDestroy() {\n\n }\n\n ngAfterViewInit() {\n\n }\n\n toggleSideNav() {\n const sn = this.elRef.nativeElement.querySelector('#main');\n const snm = this.elRef.nativeElement.querySelector('#sidebar-menu');\n let menuNodelist = document.querySelector('#sidebar-menu').childNodes[0].childNodes;\n let subdrops = document.querySelectorAll('a.subdrop');\n if (this.sideNavBool) {\n\n this.renderer.removeClass(document.body, 'adminbody-void');\n this.renderer.removeClass(sn, 'enlarged');\n this.sideNavBool = !this.sideNavBool;\n\n \n } else {\n this.renderer.addClass(document.body, 'adminbody-void');\n this.renderer.addClass(sn, 'enlarged');\n\n /* if(el.childNodes.length<1){\n \n el.childNodes[1].style=\"\";\n }\n });*/\n this.sideNavBool = !this.sideNavBool;\n\n }\n\n\n }\n\n getMenu() {\n this.clearMenu();\n //this.globals.getAcclvl();\n let ci = this.globals.accesslevel;\n //console.log(this.globals.accesslevel);\n this.genserv.GetDataNoLimit('accesslevel', 'access', ['id'], ci['id']).subscribe((d) => {\n let menuAccess = d[0].access.split(\",\");\n menuAccess.forEach(v2 => {\n this.genserv.GetDataWithSingleWC('menu', 'name,link,grp', 'code', `${v2}`).subscribe((v) => {\n //console.log(`Posted: ${this.posted} -- from admmin-panel (getMenu())`)\n if (this.posted === 1) {\n (v[0].grp == 1) ? this.Menu.dataEntry.push(v[0]) : (v[0].grp == 3) ? this.Menu.Reports.push(v[0]) : false;\n } else {\n (v[0].grp == 1) ? this.Menu.dataEntry.push(v[0]) :\n (v[0].grp == 2) ? this.Menu.Transaction.push(v[0]) :\n (v[0].grp == 3) ? this.Menu.Reports.push(v[0]) :\n (v[0].grp == 4) ? this.Menu.Settings.push(v[0]) : false;\n }\n //console.log(v);\n });\n });\n //console.log(d[0].access.split(\",\"));\n });\n //console.log(this.menuAccess);\n }\n\n clearMenu() {\n this.Menu.dataEntry = [];\n this.Menu.Transaction = [];\n this.Menu.Reports = [];\n }\n\n createImageFromBlob(image: Blob) {\n let reader = new FileReader();\n reader.addEventListener(\"load\", () => {\n this.imageToShow = reader.result;\n }, false);\n if (image) {\n reader.readAsDataURL(image);\n }\n }\n\n getPayPeriod() {\n //this.globals.getCurrentPeriod();\n this.currentPeriod = this.globals.period;\n this.genserv.getSDataById('period', this.globals.period.id, 'posted').subscribe((d) => {\n this.posted = d[0].posted;\n });\n if (this.currentPeriod.id == 0) {\n alert('Please Select Pay Period First!');\n //this.loadModal();\n }\n }\n\n /*loadModal() {\n this.bsModalRef = this.modalService.show(PeriodSettingsComponent);\n this.bsModalRef.content.onSuccess.subscribe(r => {\n if (r) {\n // this.getPayPeriod();\n this.getMenu();\n }\n })\n } */\n\n logout() {\n this.genserv.setLoggedIn(false);\n this.router.navigate(['login']);\n }\n\n changeTitle(str) {\n this.title = str;\n }\n\n getYear() {\n //alert(this.globals.period.id);\n this.show = true;\n let params: Dsmodel = {\n cols: 'id,period, periodname',\n table: 'setup',\n wc: ``,\n order: 'id desc',\n limit: `0, 10000`,\n join: ''\n }\n this.subs = this.genserv.getDataWithJoinClause(params).subscribe(d => {\n this.currentyear = d;\n }, () => this.show = false, () => this.show = false);\n //this.globals.storeOnLocalStorage(this.currentYear, 'year');\n //localStorage.setItem('year','1232');\n //alert(this.currentyear.id);\n }\n \n\n}","import { NgModule } from \"@angular/core\";\nimport { RouterModule, Routes } from \"@angular/router\";\n\nimport { LoginComponent } from \"./login/login.component\";\nimport { PageNotFoundComponent } from \"./page-not-found/page-not-found.component\";\nimport { AdminPanelComponent } from \"./admin-panel/admin-panel.component\";\n\nimport { EmployeesComponent } from \"./employees/employees.component\";\nimport { DashboardComponent } from \"./dashboard/dashboard.component\";\nimport { ReportViewerComponent } from \"./report-viewer/report-viewer.component\";\nimport { UserDataEntryComponent } from \"./user-data-entry/user-data-entry.component\";\nimport { PayslipReportComponent } from \"./payslip-report/payslip-report.component\";\nimport { SetAccessComponent } from \"./set-access/set-access.component\";\nimport { AccessLevelDataEntryComponent } from \"./access-level-data-entry/access-level-data-entry.component\";\nimport { AutoIncComponent } from \"./auto-inc/auto-inc.component\";\nimport { AutoIncEntryComponent } from \"./auto-inc-entry/auto-inc-entry.component\";\nimport { AutoDedEntryComponent } from \"./auto-ded-entry/auto-ded-entry.component\";\nimport { AutoDedComponent } from \"./auto-ded/auto-ded.component\";\nimport { PayrollReportComponent } from \"./payroll-report/payroll-report.component\";\nimport { ChangePasswordComponent } from \"./change-password/change-password.component\";\nimport { PostPeriodComponent } from \"./post-period/post-period.component\";\nimport { PayrollSummaryComponent } from \"./payroll-summary/payroll-summary.component\";\nimport { SssBaseEntryComponent } from \"./sss-base-entry/sss-base-entry.component\";\n\nimport { AuthGuard } from \"./auth.guard\";\nimport { SiteAdministrationComponent } from \"./site-administration/site-administration.component\";\nimport { EmailSettingsComponent } from \"./email-settings/email-settings.component\";\nimport { PayslipV2Component } from \"./payslip-v2/payslip-v2.component\";\nimport { ManageLoanApplicationComponent } from \"./manage-loan-application/manage-loan-application.component\";\nimport { PayrollSummaryV2Component } from \"./payroll-summary-v2/payroll-summary-v2.component\";\nimport { ChangePasswordstComponent } from './change-passwordst/change-passwordst.component';\nimport { EnrollmentComponent } from './enrollment/enrollment.component';\nimport { PaymentcheckComponent } from './paymentcheck/paymentcheck.component';\nimport { ApplicationComponent } from './application/application.component';\nimport { RegistrationComponent } from './registration/registration.component';\nimport {ApplicationcheckComponent} from './applicationcheck/applicationcheck.component';\nimport { RegistrationcheckComponent } from './registrationcheck/registrationcheck.component';\nimport {LevelComponent} from './level/level.component';\nimport { StudentComponent } from './student/student.component';\nimport {ValidatedpaymentsComponent } from './validatedpayments/validatedpayments.component';\nimport { ReqenrollComponent } from './reqenroll/reqenroll.component';\nimport { ReqregisterComponent } from './reqregister/reqregister.component';\nimport { MyaccountComponent } from './myaccount/myaccount.component';\n\nconst routes: Routes = [\n { path: \"login\", component: LoginComponent },\n { path: \"\", redirectTo: \"/login\", pathMatch: \"full\" },\n {\n path: \"admin\",\n component: AdminPanelComponent,\n canActivate: [AuthGuard],\n children: [\n { path: \"\", redirectTo: \"dashboard\", pathMatch: \"full\" },\n { path: \"employees\", component: EmployeesComponent },\n { path: \"dashboard\", component: DashboardComponent },\n { path: \"reports\", component: ReportViewerComponent },\n { path: \"user\", component: UserDataEntryComponent },\n { path: \"payslip\", component: PayslipV2Component },\n { path: \"setAccess\", component: SetAccessComponent },\n { path: \"accesslevel\", component: AccessLevelDataEntryComponent },\n { path: \"autoIncome\", component: AutoIncEntryComponent },\n { path: \"autoIncomeDetails\", component: AutoIncComponent },\n { path: \"autoDeduct\", component: AutoDedEntryComponent },\n { path: \"autoDeductDetails\", component: AutoDedComponent },\n { path: \"payroll\", component: PayrollReportComponent },\n { path: \"changePassword\", component: ChangePasswordComponent },\n { path: \"PostPeriod\", component: PostPeriodComponent },\n { path: \"viewPayrollSummary\", component: PayrollSummaryV2Component },\n { path: \"sssBaseEntry\", component: SssBaseEntryComponent },\n { path: \"manageLoanApl\", component: ManageLoanApplicationComponent },\n { path: \"changepasswordst\", component: ChangePasswordstComponent },\n { path: \"enrollment\", component: EnrollmentComponent },\n { path: \"paymentcheck\", component: PaymentcheckComponent },\n { path: \"application\", component: ApplicationComponent },\n { path: \"registration\", component: RegistrationComponent},\n { path: \"applicationcheck\", component: ApplicationcheckComponent},\n { path: \"registrationcheck\", component: RegistrationcheckComponent},\n { path: \"level\", component: LevelComponent},\n { path: \"student\", component: StudentComponent},\n { path: \"validatedpayments\", component: ValidatedpaymentsComponent},\n { path: \"reqenroll\", component: ReqenrollComponent},\n { path: \"reqregister\", component: ReqregisterComponent},\n {path: \"myaccount\", component: MyaccountComponent},\n {\n path: \"siteAdministration\",\n component: SiteAdministrationComponent,\n canActivate: [AuthGuard],\n children: [\n { path: \"emailSettings\", component: EmailSettingsComponent },\n ]\n }\n ]\n },\n { path: \"**\", component: PageNotFoundComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes /* {enableTracing: true } */)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","","import { RouterOutlet } from '@angular/router';\nimport { slideInAnimation } from './animation';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css'],\n animations: [slideInAnimation]\n})\nexport class AppComponent {\n data: Array = [\n { \"Type\": \"Deduction\", \"name\": \"SSS\", \"amt\": 581.30 },\n { \"Type\": \"Deduction\", \"name\": \"Philhealth\", \"amt\": 550.00 },\n { \"Type\": \"Deduction\", \"name\": \"Personal Loan\", \"amt\": 700.00 },\n { \"Type\": \"Deduction\", \"name\": \"Personal Loan\", \"amt\": 500.00 }\n ];\n\n constructor(\n ) {\n\n }\n\n testCode() {\n try {\n let data2 = [\n { \"Type\": \"Deduction\", \"name\": \"SSS\", \"amt\": 363.30 },\n { \"Type\": \"Deduction\", \"name\": \"Philhealth\", \"amt\": 137.50 },\n { \"Type\": \"Deduction\", \"name\": \"Personal Loan\", \"amt\": 3000.00 }];\n const sortedData = data2.filter(v => v.Type === \"Deduction\");\n\n console.log(JSON.stringify(sortedData));\n } catch (err) {\n alert(err.name);\n }\n\n }\n\n getAnimationData(outlet: RouterOutlet) {\n return outlet && outlet.activatedRouteData && outlet.activatedRouteData['animation'];\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\n\nimport { HttpClientModule } from '@angular/common/http';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgbModule, NgbModalModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport { AppComponent } from './app.component';\nimport { EmployeesComponent } from './employees/employees.component';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { DashboardComponent } from './dashboard/dashboard.component';\n\nimport { EmployeeService } from './employee.service';\nimport { IncomeService } from './income.service';\n\n\nimport { FilterPipe } from './filter.pipe';\n\nimport { TableViewComponent } from './table-view/table-view.component';\nimport { TableCompComponent } from './table-comp/table-comp.component';\n\n\nimport { ScrollTrackerDirective } from './scroll-tracker.directive';\nimport { PopulateTextboxComponent } from './populate-textbox/populate-textbox.component';\n\nimport { TableWithSearchbarComponent } from './table-with-searchbar/table-with-searchbar.component';\nimport { ModalForDataSelectionComponent } from './modal-for-data-selection/modal-for-data-selection.component';\nimport { PopulateTableComponent } from './populate-table/populate-table.component';\nimport { CustomEventListenerDirective } from './custom-event-listener.directive';\nimport { TextBoxComponent } from './text-box/text-box.component';\n\nimport { DataEntryBaseComponent } from './data-entry-base/data-entry-base.component';\n\nimport { DynamicFormModuleModule } from './dynamic-form-module/dynamic-form-module.module';\nimport { DataEntryFormComponent } from './data-entry-form/data-entry-form.component';\nimport { SearchBarComponent } from './search-bar/search-bar.component';\nimport { DeductionsDataEntryComponent } from './deductions-data-entry/deductions-data-entry.component';\nimport { SettingsComponent } from './settings/settings.component';\n\nimport { Globals } from './globals';\nimport { GeneralServiceService } from './general-service.service';\nimport { PopulateTableForTransComponent } from './populate-table-for-trans/populate-table-for-trans.component';\nimport { DedTranComponent } from './ded-tran/ded-tran.component';\nimport { ReportViewerComponent } from './report-viewer/report-viewer.component';\nimport { PopulateTableForReportsComponent } from './populate-table-for-reports/populate-table-for-reports.component';\n\nimport { LoginComponent } from './login/login.component';\nimport { PageNotFoundComponent } from './page-not-found/page-not-found.component';\nimport { AdminPanelComponent } from './admin-panel/admin-panel.component';\nimport { DropdownComponent } from './dropdown/dropdown.component';\nimport { AuthGuard } from './auth.guard';\nimport { UserDataEntryComponent } from './user-data-entry/user-data-entry.component';\nimport { TabularFormComponent } from './tabular-form/tabular-form.component';\nimport { ModalForTabularFormComponent } from './modal-for-tabular-form/modal-for-tabular-form.component';\nimport { PayslipReportComponent } from './payslip-report/payslip-report.component';\n\nimport { SetAccessComponent } from './set-access/set-access.component';\nimport { AccessLevelDataEntryComponent } from './access-level-data-entry/access-level-data-entry.component';\nimport { SiblingComponent } from './sibling/sibling.component';\nimport { ChildComponent } from './child/child.component';\nimport { PtestComponent } from './ptest/ptest.component';\nimport { AutoIncComponent } from './auto-inc/auto-inc.component';\nimport { MultiCheckboxSelectionComponent } from './multi-checkbox-selection/multi-checkbox-selection.component';\nimport { AutoIncEntryComponent } from './auto-inc-entry/auto-inc-entry.component';\nimport { AutoDedEntryComponent } from './auto-ded-entry/auto-ded-entry.component';\nimport { AutoDedComponent } from './auto-ded/auto-ded.component';\nimport { InputSelectorComponent } from './input-selector/input-selector.component';\nimport { BaseControlValueAccessor } from './base-control-value-accessor/base-control-value-accessor.component';\nimport { HighlightDirective } from './highlight.directive';\nimport { PhoneMaskDirective } from './phone-mask.directive';\nimport { CurrencyMaskDirective } from './currency-mask.directive';\nimport { CurrencyPipe } from './currency.pipe';\nimport { DataEntryBaseForManualComponent } from './data-entry-base-for-manual/data-entry-base-for-manual.component';\nimport { ManualDataEntryFormComponent } from './manual-data-entry-form/manual-data-entry-form.component';\nimport { ColorPickerComponent } from './color-picker/color-picker.component';\nimport { PayrollReportComponent } from './payroll-report/payroll-report.component';\nimport { ChangePasswordComponent } from './change-password/change-password.component';\nimport { PostPeriodComponent } from './post-period/post-period.component';\nimport { PayrollSummaryComponent } from './payroll-summary/payroll-summary.component';\nimport { SssBaseEntryComponent } from './sss-base-entry/sss-base-entry.component';\nimport { SearchingOperationsComponent } from './searching-operations/searching-operations.component';\nimport { FrmApproveComponent } from './frm-approve/frm-approve.component';\nimport { AddEditDeleteButtonComponent } from './add-edit-delete-button/add-edit-delete-button.component';\nimport { TableModalViewComponent } from './table-modal-view/table-modal-view.component';\nimport { ClassManipulatorDirective } from './class-manipulator.directive';\nimport { CreateAnnouncementComponent } from './create-announcement/create-announcement.component';\nimport { PopulateTextboxV2Component } from './populate-textbox-v2/populate-textbox-v2.component';\nimport { AppTableWithSearchbarV2Component } from './app-table-with-searchbar-v2/app-table-with-searchbar-v2.component';\nimport { ModalForDataSelectionV2Component } from './modal-for-data-selection-v2/modal-for-data-selection-v2.component';\nimport { SearchBarV2Component } from './search-bar-v2/search-bar-v2.component';\nimport { TableWithSearchbarV2Component } from './table-with-searchbar-v2/table-with-searchbar-v2.component';\nimport { ViewLoanTransactionsComponent } from './view-loan-transactions/view-loan-transactions.component';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { SiteAdministrationComponent } from './site-administration/site-administration.component';\nimport { EmailSettingsComponent } from './email-settings/email-settings.component';\n\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { PayslipV2Component } from './payslip-v2/payslip-v2.component';\nimport { ManageLoanApplicationComponent } from './manage-loan-application/manage-loan-application.component';\nimport { PayrollSummaryV2Component } from './payroll-summary-v2/payroll-summary-v2.component';\nimport { ChangePasswordstComponent } from './change-passwordst/change-passwordst.component';\nimport { EnrollmentComponent } from './enrollment/enrollment.component';\nimport { PaymentcheckComponent } from './paymentcheck/paymentcheck.component';\nimport { ApplicationComponent } from './application/application.component';\nimport { RegistrationComponent } from './registration/registration.component';\nimport { ApplicationcheckComponent } from './applicationcheck/applicationcheck.component';\nimport { RegistrationcheckComponent } from './registrationcheck/registrationcheck.component';\nimport { StudentComponent } from './student/student.component';\nimport { LevelComponent } from './level/level.component';\nimport { MyaccountComponent } from './myaccount/myaccount.component';\nimport { ValidatedpaymentsComponent } from './validatedpayments/validatedpayments.component';\nimport { ReqenrollComponent } from './reqenroll/reqenroll.component';\nimport { ReqregisterComponent } from './reqregister/reqregister.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n EmployeesComponent,\n DashboardComponent,\n FilterPipe,\n TableViewComponent,\n TableCompComponent,\n ScrollTrackerDirective,\n PopulateTextboxComponent,\n TableWithSearchbarComponent,\n ModalForDataSelectionComponent,\n PopulateTableComponent,\n CustomEventListenerDirective,\n TextBoxComponent,\n DataEntryBaseComponent,\n\n DataEntryFormComponent,\n SearchBarComponent,\n DeductionsDataEntryComponent,\n SettingsComponent,\n\n PopulateTableForTransComponent,\n DedTranComponent,\n ReportViewerComponent,\n PopulateTableForReportsComponent,\n\n LoginComponent,\n PageNotFoundComponent,\n AdminPanelComponent,\n DropdownComponent,\n UserDataEntryComponent,\n TabularFormComponent,\n ModalForTabularFormComponent,\n PayslipReportComponent,\n SetAccessComponent,\n AccessLevelDataEntryComponent,\n SiblingComponent,\n ChildComponent,\n PtestComponent,\n AutoIncComponent,\n MultiCheckboxSelectionComponent,\n AutoIncEntryComponent,\n AutoDedEntryComponent,\n AutoDedComponent,\n InputSelectorComponent,\n BaseControlValueAccessor,\n HighlightDirective,\n PhoneMaskDirective,\n CurrencyMaskDirective,\n CurrencyPipe,\n DataEntryBaseForManualComponent,\n ManualDataEntryFormComponent,\n ColorPickerComponent,\n PayrollReportComponent,\n ChangePasswordComponent,\n PostPeriodComponent,\n PayrollSummaryComponent,\n SssBaseEntryComponent,\n SearchingOperationsComponent,\n FrmApproveComponent,\n AddEditDeleteButtonComponent,\n TableModalViewComponent,\n ClassManipulatorDirective,\n CreateAnnouncementComponent,\n PopulateTextboxV2Component,\n AppTableWithSearchbarV2Component,\n ModalForDataSelectionV2Component,\n SearchBarV2Component,\n TableWithSearchbarV2Component,\n ViewLoanTransactionsComponent,\n SiteAdministrationComponent,\n EmailSettingsComponent,\n PayslipV2Component,\n ManageLoanApplicationComponent,\n PayrollSummaryV2Component,\n ChangePasswordstComponent,\n EnrollmentComponent,\n PaymentcheckComponent,\n ApplicationComponent,\n RegistrationComponent,\n ApplicationcheckComponent,\n RegistrationcheckComponent,\n StudentComponent,\n LevelComponent,\n MyaccountComponent,\n ValidatedpaymentsComponent,\n ReqenrollComponent,\n ReqregisterComponent\n ],\n exports: [\n AppComponent,\n PhoneMaskDirective,\n CurrencyMaskDirective\n ],\n imports: [\n BrowserModule,\n FormsModule,\n HttpClientModule,\n BrowserAnimationsModule,\n NgbModule,\n ReactiveFormsModule,\n NgbModalModule,\n DynamicFormModuleModule,\n AppRoutingModule,\n BsDatepickerModule.forRoot(),\n TypeaheadModule.forRoot(),\n ModalModule.forRoot(),\n BsDropdownModule.forRoot(),\n ],\n providers: [\n EmployeeService,\n IncomeService,\n GeneralServiceService,\n Globals,\n DatePipe,\n AuthGuard\n ],\n bootstrap: [AppComponent],\n entryComponents: [\n ModalForTabularFormComponent,\n ModalForDataSelectionComponent,\n DataEntryFormComponent,\n SettingsComponent,\n FrmApproveComponent,\n TableModalViewComponent,\n ModalForDataSelectionV2Component,\n ],\n\n})\nexport class AppModule { }\n","\n\n\n\n
\n

\n {{title}} Form {{periodNameGet}}\n

\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n *First Name is required.\n \n
\n\n
\n \n \n
\n \n
\n \n \n
\n
\n *Last Name is required.\n
\n \n\n
\n \n \n
\n
\n *eMail Address is required.\n
\n\n \n \n \n\n
\n\n\n
\n
\n
\n \n \n \n
\n
\n *Date of birth is required.\n
\n
\n\n
\n \n Male\n Female \n
\n\n
\n Gender required. \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n *CP Number is required.\n \n
\n \n
\n
\n \n
\n \n \n
\n
\n \n *Place of Birth is required.\n \n
\n\n
\n \n \n
\n
\n \n *Present Address is required.\n \n
\n\n
\n
\n
\n \n \n
\n
\n \n *Father's Name is required.\n \n
\n \n \n
\n \n \n
\n
\n \n *Father's Contact Number is required.\n \n
\n
\n\n
\n \n
\n \n \n
\n
\n \n *Mother's Name is required.\n \n
\n \n
\n \n \n
\n
\n \n *Mother's Contact Number is required.\n \n
\n
\n\n
\n\n\n
\n \n \n
\n
\n \n *Parents' Address is required.\n \n
\n\n
\n
\n
\n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n \n
\n \n \n
\n \n\n
\n \n \n
\n
\n \n *School Last Attended is required.\n \n
\n\n \n \n
\n \n \n \n
\n \n
\n
\n \n SPCM\n Other Private\n Public School\n
\n \n
\n \n\n
\n Tuition Fee: {{tf | number: '.2'}}           Miscellaneous Fee: {{mf| number: '.2'}} \n \n
\n
\n Other Fee: {{of| number: '.2'}}          Student Services: {{lf| number: '.2'}} \n
\n
\n Total Assessment : {{assessmenttotal | number: '.2'}}           Downpayment: {{dp | number: '.2'}} \n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n\n\n \n\n
\n
\n\n
\n
\n
","\nimport { MailInfo } from \"../dsmodel.Interface\";\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\n\nimport { NgModule } from '@angular/core';\n//import { Component, OnInit } from '@angular/core';\nimport { Component, OnInit, ViewChild } from '@angular/core';\n//import { Component, OnInit, ViewChild, AfterContentInit, AfterViewInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport Swal from \"sweetalert2\";\nimport { GeneralServiceService } from '../general-service.service';\nimport { PopulateTableForTransComponent } from '../populate-table-for-trans/populate-table-for-trans.component';\nimport { Globals } from '../globals';\nimport { TextBoxComponent } from '../text-box/text-box.component';\nimport { PopulateTextboxComponent } from '../populate-textbox/populate-textbox.component';\nimport { Dsmodel } from '../dsmodel.Interface';\nimport { formatCurrency } from '@angular/common';\nimport { DataEntryBaseComponent } from \"../data-entry-base/data-entry-base.component\";\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { from } from 'rxjs';\n\n@NgModule({\n imports: [\n BrowserModule,\n ReactiveFormsModule\n ],\n declarations: [\n ApplicationComponent\n ],\n bootstrap: [ApplicationComponent]\n})\n\n@Component({\n selector: 'app-application',\n templateUrl: './application.component.html',\n styleUrls: ['./application.component.css']\n})\nexport class ApplicationComponent implements OnInit {\n\n @ViewChild(\"popLevelX\", { static: false }) popLevel: PopulateTextboxComponent;\n @ViewChild('popAmtX', { static: false }) txtBox: TextBoxComponent;\n @ViewChild('popDPX', { static: false }) txtBoxDP: TextBoxComponent;\n @ViewChild(DataEntryBaseComponent, { static: false })\n popTBl: DataEntryBaseComponent;\n title = 'Registration';\n selectedLevel: any = null;\n //selectedPeriod: any = null;\n\n selectedSpecs: any = {};\n selectedStrand: any = {};\n prEnroll: any;\n registerForm: FormGroup;\n submitted = false;\n stoten: any = 0;\n nto12: any =0;\n eto12: any =0;\n assessmenttotal: any=0.00\n tf: any=0.00;\n mf: any=0.00;\n lf: any=0.00;\n of: any=0.00;\n dp: any=0.00;\n assessmenttotalgov: any=0.00\n tfgov: any=0.00;\n mfgov: any=0.00;\n lfgov: any=0.00;\n ofgov: any=0.00;\n dpgov: any=0.00;\n assessmenttotalpriv: any=0.00\n tfpriv: any=0.00;\n mfpriv: any=0.00;\n lfpriv: any=0.00;\n ofpriv: any=0.00;\n dppriv: any=0.00;\n dateNow: Date;\n periodNameGet: any;\n useremail: any;\n \n // grid display\n tblData = [];\n tblHeader = [\n \n // value = header of grid\n // hkey = property of selected records fr d grid\n { value: \"Date\", hKey: \"date\", o: 1 },\n { value: \"Name\", hKey: \"name\", o: 1 },\n { value: \"Grade Level\", hKey: \"levelname\", o: 1 },\n { value: \"DP\", hKey: \"dp\", o: 1 },\n { value: \"Assessment\", hKey: \"assessmenttot\", o: 1 }\n ];\n caption = \"\";\n selectedSub: any;\n //selectedBD: any;\n uName : any;\n amt: any;\n DP: any;\n DPget: any;\n periodNewGet: any;\n periodNew: any;\n \n prLevel: {\n table: string;\n tableHeader: { key: string; value: string; hKey: string }[];\n label: string;\n tblHeaderHidden: string;\n wc: number;\n };\n prSpecs: {\n table: string;\n tableHeader: { key: string; value: string; hKey: string }[];\n label: string;\n tblHeaderHidden: string;\n wc: number;\n };\n prStrand: {\n table: string;\n tableHeader: { key: string; value: string; hKey: string }[];\n label: string;\n tblHeaderHidden: string;\n wc: number;\n };\n prDP: any;\n prAmount: any;\n \n frmEnroll: any;\n mode: number;\n prAmt: { label: string; valueX: number; };\n //frmBD: any;\n \n //constructor(private genServ: GeneralServiceService) {}\n constructor(\n private genServ: GeneralServiceService, \n public global: Globals,\n public router: Router,\n private fb: FormBuilder) {}\n\n ngOnInit() {\n this.initProperties();\n this.dateNow = new Date();\n this.periodNameGet = '('+ this.global.periodNameNew +')';\n \n this.uName = this.global.username;\n this.registerForm = this.fb.group({\n fname: ['', Validators.required],\n lname: ['', Validators.required],\n mname: [''],\n gender: ['', Validators.required],\n bdate: ['', Validators.required],\n placebirth: ['', Validators.required],\n telno: [''],\n cpno: ['', Validators.required],\n email: ['', Validators.email],\n address: ['', Validators.required],\n school: ['', Validators.required],\n level: [''],\n strand: [''],\n schooltype: [''],\n faname: ['', Validators.required],\n facontactno: ['', Validators.required],\n moname: ['', Validators.required],\n mocontactno: ['', Validators.required],\n paaddress: ['', Validators.required],\n guname: [''],\n gucontactno: [''],\n guaddress: [''],\n terms: ['']\n \n });\n\n }\n\n get f() { return this.registerForm.controls; }\n \n \n changetypepublic()\n {\n this.assessmenttotal = this.selectedLevel.assessmenttotgov; \n this.dp = this.selectedLevel.dpgov;\n this.tf = this.selectedLevel.tfgov;\n this.of = this.selectedLevel.ofgov;\n this.mf = this.selectedLevel.mfgov;\n this.lf = this.selectedLevel.lfgov;\n }\n\n omit_espchar(event) {\n var key;\n key = event.charCode; // key = event.keyCode; (Both can be used)\n return ((key > 44 && key < 200) || key == 40 || key == 41|| key == 32);\n //return ((key > 44 && key < 58) || key == 45 || key == 46);\n }\n \n changetypespcm()\n {\n this.assessmenttotal = this.selectedLevel.assessmenttot; \n this.dp = this.selectedLevel.dp;\n this.tf = this.selectedLevel.tf;\n this.of = this.selectedLevel.of;\n this.mf = this.selectedLevel.mf;\n this.lf = this.selectedLevel.lf;\n }\n\n\n changetypepriv()\n {\n this.assessmenttotal = this.selectedLevel.assessmenttotpriv; \n this.dp = this.selectedLevel.dppriv;\n this.tf = this.selectedLevel.tfpriv;\n this.of = this.selectedLevel.ofpriv;\n this.mf = this.selectedLevel.mfpriv;\n this.lf = this.selectedLevel.lfpriv;\n }\n\n \n onSubmit() {\n\n this.submitted = true;\n this.useremail = this.registerForm.get('email').value;\n\n // stop here if form is invalid\n if (this.registerForm.invalid) {\n return;\n }\n\n let v: string ='';\n let f = this.registerForm\n let a: Date = f.value.bdate;\n let bdatex = this.genServ.cd(a);\n \n let ngender: number =0;\n let levelx = this.selectedLevel.id;\n \n\n this.submitted = true;\n let fnamex = this.registerForm.get('fname').value; \n let lnamex = this.registerForm.get('lname').value;\n \n let mnamex= this.registerForm.get('mname').value;\n \n \n let genderx= this.registerForm.get('gender').value;\n if(genderx=='male'){\n ngender = 1;}\n if(genderx=='female')\n {\n ngender=2;\n }\n \n let placebirthx = this.registerForm.get('placebirth').value;\n \n \n let telnox = this.registerForm.get('telno').value;\n \n let cpnox = this.registerForm.get('cpno').value;\n let emailx = this.registerForm.get('email').value;\n let addressx = this.registerForm.get('address').value;\n let schoolx = this.registerForm.get('school').value;\n let strandx = this.selectedStrand.Id;\n if(this.selectedStrand.Id==undefined){\n strandx = 0;\n }\n \n let finaltype = 0;\n let schooltypex = this.registerForm.get('schooltype').value;\n if(schooltypex==undefined)\n {\n finaltype = 0;\n }\n \n if (schooltypex=='spcm')\n {\n finaltype = 1;\n \n }\n if (schooltypex=='private')\n {\n finaltype = 2;\n \n \n }\n if (schooltypex=='public')\n {\n finaltype = 3;\n \n }\n \n let getterms:number = 0;\n let termsx = this.registerForm.get('terms').value;\n if (termsx=='Cash'){\n getterms = 1;\n };\n if (termsx=='Semi-Annually'){\n getterms = 2;\n };\n if (termsx=='Quarterly'){\n getterms = 3;\n };\n if (termsx=='Semestral'){\n getterms = 4;\n };\n if (termsx=='Monthly'){\n getterms = 5;\n };\n\n let fanamex = this.registerForm.get('faname').value;\n let facontactnox = this.registerForm.get('facontactno').value;\n let monamex = this.registerForm.get('moname').value;\n let mocontactnox = this.registerForm.get('mocontactno').value;\n let paaddressx = this.registerForm.get('paaddress').value;\n let guname = this.registerForm.get('guname').value;\n let gucontactnox = this.registerForm.get('gucontactno').value;\n let guaddressx = this.registerForm.get('guaddress').value;\n let period = this.global.periodid;\n \n //registerme is for new student reg form\n //updatye registration table\n\n v = `${period},'${fanamex}','${facontactnox}','${monamex}','${mocontactnox}','${paaddressx}','${guname}','${gucontactnox}','${guaddressx}','${lnamex}', '${fnamex}', '${mnamex}', ${getterms},${ngender},'${addressx}', '${bdatex}', '${placebirthx}', '${telnox}', '${cpnox}', '${emailx}', '${schoolx}', ${levelx},${strandx},${finaltype}`; \n let p = `call registerme(${v})`;\n \n if (this.selectedLevel.id==undefined) {\n alert('No Selected Level');\n } else if (this.selectedLevel.id>0){\n this.showConfigResponse(p);\n }\n } //submit\n \n\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p).subscribe(\n resp => {\n let x = parseInt(resp.body);\n //alert(x);\n if (x == 0) {\n Swal.fire(\"Duplicate!\", \"You have previously registered. Please contact the finance office at (02) 982-1232 for more details. Thank you. \", \"error\"); \n } else if (x > 0) {\n Swal.fire(\"Enrollment Successful!\", \"Please deposit your payment to our BDO Account# 0041-7000-3309 and email the scanned copy to cashier@spcmakati.edu.ph. Check your mailbox for the bank settlement details. Thank you. \", \"success\");\n this.sendemail();\n this.tf =0;\n this.mf=0;\n this.lf=0;\n this.of=0;\n }\n },\n resp => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n }\n \n ngAfterViewInit() {\n let a = window.localStorage.getItem('onEnrollLevel') || \"\";\n let x = JSON.parse(a);\n this.popLevel.selectedData = x;\n this.popLevel.fnSelectData(x);\n // this.selectedLevel = x;\n }\n // for the search object\n initProperties() {\n \n var leveltblHeader = [\n { key: \"code\", value: \"Code\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" },\n { key: \"class\", value: \"Class\", hKey: \"class\" }\n ];\n \n this.prLevel = {\n table: \"level\", tableHeader: leveltblHeader,\n label: \"*Grade Level\", tblHeaderHidden: \"assessmenttot,dp,tf,mf,of,lf,gradelevel,assessmenttotgov,dpgov,tfgov,mfgov,ofgov,lfgov,assessmenttotpriv,dppriv,tfpriv,mfpriv,ofpriv,lfpriv\", wc: 0\n };\n \n var specstblHeader = [\n { key: \"code\", value: \"Code\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" }\n ];\n \n \n this.prSpecs = {\n table: \"specs\", tableHeader: specstblHeader,\n label: \"Specialization\", tblHeaderHidden: \"\", wc: 0\n };\n \n this.prStrand = {\n table: \"strand\", tableHeader: specstblHeader,\n label: \"*Strands(for Senior High ONLY)\", tblHeaderHidden: \"\", wc: 0\n };\n \n this.prAmt = {\n label: \"Assessment Total\",\n valueX: 0.00\n };\n \n this.prDP = {\n label: \"Down Payment: \",\n valueX: 0.00\n };\n \n }\n \n // selected data event(html)\n // this is for the where clause of the object seacrh link to the display of records(grid)\n \n \n getAmt(event) {\n this.amt = event;\n }\n getDP(event) {\n this.DP = event;\n }\n \n \n getLevel(event) {\n this.selectedLevel = event;\n \n\n this.assessmenttotal = 0;\n this.dp = 0;\n this.tf = 0;\n this.of = 0;\n this.mf = 0;\n this.lf = 0;\n\n if (event != undefined) {\n this.stoten =0;\n this.nto12 =0;\n this.eto12 =0;\n \n this.assessmenttotal = this.selectedLevel.assessmenttot; \n this.dp = this.selectedLevel.dp;\n this.tf = this.selectedLevel.tf;\n this.of = this.selectedLevel.of;\n this.mf = this.selectedLevel.mf;\n this.lf = this.selectedLevel.lf;\n\n this.assessmenttotalgov = this.selectedLevel.assessmenttotgov; \n this.dpgov = this.selectedLevel.dpgov;\n this.tfgov = this.selectedLevel.tfgov;\n this.ofgov = this.selectedLevel.ofgov;\n this.mfgov = this.selectedLevel.mfgov;\n this.lfgov = this.selectedLevel.lfgov;\n\n this.assessmenttotalpriv = this.selectedLevel.assessmenttotpriv; \n this.dppriv = this.selectedLevel.dppriv;\n this.tfpriv = this.selectedLevel.tfpriv;\n this.ofpriv = this.selectedLevel.ofpriv;\n this.mfpriv = this.selectedLevel.mfpriv;\n this.lfpriv = this.selectedLevel.lfpriv;\n \n\n // window.localStorage.setItem('onEnrollLevel', JSON.stringify(event));\n if(this.selectedLevel.gradelevel>6 && this.selectedLevel.gradelevel<11)\n {\n this.stoten = 1;\n }\n if(this.selectedLevel.gradelevel>8 && this.selectedLevel.gradelevel<13)\n {\n this.nto12 = 1;\n }\n if(this.selectedLevel.gradelevel>10 && this.selectedLevel.gradelevel<13)\n {\n this.eto12 = 1;\n //////\n let schooltypex = this.registerForm.get('schooltype').value;\n \n if (schooltypex=='spcm')\n {\n this.assessmenttotal = this.selectedLevel.assessmenttot; \n this.dp = this.selectedLevel.dp;\n this.tf = this.selectedLevel.tf;\n this.of = this.selectedLevel.of;\n this.mf = this.selectedLevel.mf;\n this.lf = this.selectedLevel.lf;\n \n }\n if (schooltypex=='private')\n {\n this.assessmenttotal = this.selectedLevel.assessmenttotpriv; \n this.dp = this.selectedLevel.dppriv;\n this.tf = this.selectedLevel.tfpriv;\n this.of = this.selectedLevel.ofpriv;\n this.mf = this.selectedLevel.mfpriv;\n this.lf = this.selectedLevel.lfpriv;\n \n \n }\n if (schooltypex=='public')\n {\n this.assessmenttotal = this.selectedLevel.assessmenttotgov; \n this.dp = this.selectedLevel.dpgov;\n this.tf = this.selectedLevel.tfgov;\n this.of = this.selectedLevel.ofgov;\n this.mf = this.selectedLevel.mfgov;\n this.lf = this.selectedLevel.lfgov;\n \n }\n //////\n\n }\n\n }}\n\n \n getSpecs(event) {\n \n if (event != undefined) {\n this.selectedSpecs = event;\n }\n }\n \n getStrand(event) {\n this.selectedStrand = event;\n\n if (event != undefined) {\n this.selectedStrand = event;\n }\n }\n // select statement to provide records on grid\n getData(wc?) {\n let params: Dsmodel = {\n cols: \"e.date,u.name,l.name levelname, l.assessmenttot,l.dp,l.tf,l.mf,l.of,l.lf\",\n table: \"enrollment e\",\n wc: wc ? wc : \"\",\n order: \"e.id desc\",\n limit: `0, 10000`,\n join: \"left join level l on l.id =e.level left join sub u on u.id=e.sub\"\n };\n this.genServ.getDataWithJoinClause(params).subscribe(d => {\n this.tblData = d;\n }); \n }\n \n sendemail()\n {\n let lname = this.registerForm.get('lname').value; \n let name = this.registerForm.get('fname').value +' '+ this.registerForm.get('lname').value +' '; \n let useremail = this.registerForm.get('email').value;\n let levelselected = this.selectedLevel.name;\n\n let a: MailInfo = {\n from: \"spcmfinance@gmail.com\",\n to: `${useremail}`,\n subject: `${name} : Application for Enrollment`,\n message: `
Dear Mr/Ms ${lname},
\n

\n Thank you for taking time to register.

\n


\n In order for your account to be officially enrolled,

\n please deposit your Payment to our BDO Bank with details below:
\n

\n Account No.: 0041-7000-3309
\n
\n Account Name: St. Paul College of Makati
\n


\n Tuition Fee: ${this.tf}\n
\n Student Services: ${this.lf}\n
\n Miscellaneous Fee: ${this.mf}\n
\n Other Fee: ${this.of}\n
\n Total Assessment: ${this.assessmenttotal}\n
\n Down Payment: ${this.dp}
\n

\n Grade Level: ${levelselected}


\n\n

\n Please contact the finance office at (02) 982-1232 for more details. Thank you.
\n
\n `, password: '0917tyhKoiP',\n smtp: \"smtp.gmail.com\",\n enableSSL: true,\n port: 587\n }; \n this.genServ.sendEmail(a).subscribe(); \n this.router.navigate(['/login']);\n\n }\n \n \n reloadData() {\n this.popTBl.refresh();\n }\n \n getUserName()\n {\n this.uName = this.global\n }\n \n onSelect(e) {\n this.selectedSub = e.data;\n console.debug(e);\n }\n}\n","
\n
Validate Application
\n Click refresh to view all pending requests\n
\n \n
\n \n \n ","\nimport { MailInfo } from \"../dsmodel.Interface\";\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { GeneralServiceService } from '../general-service.service';\nimport { Subscription } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FrmApproveComponent } from '../frm-approve/frm-approve.component';\nimport { Globals } from '../globals';\nimport Swal from 'sweetalert2';\nvar jsPDF = require('jspdf');\nrequire('jspdf-autotable');\n\nimport { Dsmodel } from '../dsmodel.Interface';\n\n@Component({\n selector: 'app-applicationcheck',\n templateUrl: './applicationcheck.component.html',\n styleUrls: ['./applicationcheck.component.css']\n})\n\n\nexport class ApplicationcheckComponent implements OnInit {\n data: Subscription;\n email: any;\n fullname: any;\n amount: any;\n\n tblData = [];\n tblHeader = [\n { key: 'r.id', value: 'Doc #', hKey: 'id', o: 1 },\n { key: 'l.name as levelX', value: 'Level', hKey: 'levelX', o: 1 },\n { key: 'DATE_FORMAT(r.date,\"%m-%d-%Y\") AS dateFiled', value: 'Date', hKey: 'dateFiled', o: 0 },\n { key: 'r.lname', value: 'Last Name', hKey: 'lname', o: 0 }, \n { key: 'r.fname', value: 'First Name', hKey: 'fname', o: 0 }, \n { key: 'l.dp', value: 'DP', hKey: 'dp', o: 0 },\n { key: 'r.email', value: 'eMail Address', hKey: 'email', o: 0 },\n { key: \"r.paid\", value: 'Status', hKey: 'paid', o: 0 },\n ];\n caption = \"\";\n tblHeaderHidden = \"\";\n col1: string = this.tblHeader.map(x => x.key).join(',');\n cols = this.col1.concat(this.tblHeaderHidden);\n join = {\n j1: 'l.id',\n j2: 'r.level,p.id',\n j3: 'level l,period p',\n j4: 'LEFT,LEFT'\n };\n isSearching: boolean = false;\n optionsProperties: any;\n o2Header = [\n { value: 'Last Name', hKey: 'lname' },\n { value: 'First Name', hKey: 'fname' },\n { value: 'eMail Address', hKey: 'email' },\n { value: 'Paid', hKey: 'paid' }\n ];\n selectedPeriod: any;\n\n constructor(\n private gs: GeneralServiceService,\n public modal: NgbModal,\n public globals: Globals\n ) { }\n\n ngOnInit() {\n this.initProperties();\n this.getLeaveList();\n }\n\n initProperties() {\n this.selectedPeriod = this.globals.periodid\n let a = this.tblHeader.filter((v) => v.o === 1);\n this.optionsProperties = { o1: a, o2: this.o2Header }\n }\n\n mapOt(d) {\n this.tblData = d.map(x => {\n return {\n id: x.id,\n lname: x.lname,\n mname: x.mname,\n fname: x.fname,\n levelX: x.levelX,\n dateFiled: x.dateFiled,\n dp: x.dp,\n email: x.email,\n paid: x.paid === 1 ? 'Approved' : x.status === 2 ? 'Declined' : 'Pending',\n }\n });\n }\n\n getLeaveList() {\n this.isSearching = false;\n let j = this.join;\n this.data = this.gs.GetDataForTrans('registration r', this.cols, 0, 1000, ['r.paid', 'r.period'], [0, this.globals.periodid], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n }\n\n onNextPage() {\n let c = this.tblData.length;\n let j = this.join;\n if (this.isSearching !== true) {\n this.data = this.gs.GetDataForTrans('registration r', this.cols, c, 10, ['r.paid', 'r.period'], [0, this.selectedPeriod], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.tblData = this.tblData.concat(d));\n }\n }\n\n onSearch(e) {\n this.isSearching = true;\n let j = this.join;\n let a: number = e.options2 === \"pending\" ? 0 : e.options2 === \"declined\" ? 2 : 1;\n switch (e.options) {\n case \"fname\":\n this.data = this.gs.GetDataForTrans('registration r', this.cols, 0, 1000, ['r.fname', 'paid', 'period'], [Number(e.term), a, this.selectedPeriod], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n break;\n case \"paid\":\n this.data = this.gs.GetDataForTrans('registration r', this.cols, 0, 1000, ['r.paid', 'paid', 'period'], [e.term, a, this.selectedPeriod], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n break;\n default:\n this.data = this.gs.GetDataForTrans('registration r', this.cols, 0, 1000, ['r.lname', 'paid', 'period'], [e.term, a, this.selectedPeriod], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n }\n }\n\n onSelect(e) {\n const mr = this.modal.open(FrmApproveComponent);\n let a = {\n id: e.id,\n name: e.fname + ' ' + e.lname,\n levelX: e.levelX,\n status: e.paid,\n email: e.emailX\n };\n\n mr.componentInstance.propertiesX = a;\n mr.componentInstance.title = \"Payment\";\n mr.componentInstance.onSuccess.subscribe((x) => {\n let v = `${e['id']}`;\n this.fullname = e.fname + ' ' + e.lname;\n this.email = e.email;\n this.amount = x.data;\n let studname = this.fullname;\n\n\n //alert(this.amount);\n let p = \"\";\n let user = this.globals.userid;\n if (x.mode === 1) {\n // id here is the id in registration since no record on sub table for new students\n p = `call confirmpaymentreg(${e['id']}, '${studname}', '${x.data}',${e['id']}, ${user})`;\n this.sendemail()\n this.showConfigResponse(p);\n\n }\n else if (x.mode === 2) {\n p = `call deletereg(${e['id']}, ${user})`; \n Swal.fire(`Registration Request Deleted!`, \"\", \"success\");\n this.showConfigResponse(p);\n\n } \n\n });\n }\n\n showConfigResponse(p) {\n this.gs.getConfigResponse(p)\n .subscribe(resp => {\n let x = parseInt(resp.body);\n if (x) {\n Swal.fire(`Payment Confirmation sent via email. Record Updated!`, \"\", \"success\");\n }\n },\n (resp) => alert(resp.error.ExceptionMessage),\n () => this.getLeaveList()\n );\n }\n\n sendemail()\n {\n let name = this.fullname;\n let useremail = this.email;\n //let levelselected = this.selectedLevel.name;\n let amount = this.amount;\n\n let a: MailInfo = {\n from: \"spcmfinance@gmail.com\",\n to: `${useremail}`,\n subject: `${name} : Payment Confirmation`,\n message: `
Dear Mr/Ms ${name},
\n

\n This is to confirm your payment with details below .

\n


\n \n

\n Deposited to Account No.: 0041-7000-3309
\n
\n

\n Amount Deposited: ${this.amount}\n

\n Congratulations! You are now officially enrolled.\n

\n Please contact the finance office at (02) 982-1232 for more details. Thank you.
\n
\n `, password: '0917tyhKoiP',\n smtp: \"smtp.gmail.com\",\n enableSSL: true,\n port: 587\n }; \n this.gs.sendEmail(a).subscribe(); \n //this.router.navigate(['/login']);\n\n } \n\n onRefresh() {\n this.getLeaveList();\n }\n\n print() {\n var name = this.globals.period['name'];\n var imgData = this.globals.hitcLogo;\n var columns = [\n { title: 'Doc #', dataKey: 'docno', o: 1 },\n { title: 'Employee', dataKey: 'employeeX', o: 1 },\n { title: 'Type', dataKey: 'leaveX', o: 0 },\n { title: 'Date Filed', dataKey: 'dateFiled', o: 0 },\n { title: 'Date From', dataKey: 'dateFrom', o: 0 },\n { title: 'Date To', dataKey: 'dateTo', o: 0 },\n { title: 'Status', dataKey: 'status', o: 0 }\n ];\n var doc = new jsPDF('l', 'pt', 'legal');\n var totalPagesExp = \"{total_pages_count_string}\";\n doc.autoTable(columns, this.tblData, {\n startY: false, // false (indicates margin top value) or a number\n tableWidth: 'auto', // 'auto', 'wrap' or a number\n showHead: 'everyPage', // 'everyPage', 'firstPage', 'never'\n tableLineColor: 200, // number, array (see color section below)\n tableLineWidth: 0,\n headStyles: {\n fontStyle: 'bold',\n halign: 'center'\n },\n margin: { top: 160 },\n columnStyles: {\n amt: {\n halign: 'right',\n fontStyle: 'bold'\n },\n },\n didDrawPage: function (dataToPrint) {\n doc.addImage(imgData, 'PNG', 25, 35, 80, 60);\n doc.setFontSize(18);\n doc.text(`Leave Request`, 110, 80);\n doc.setFontSize(14);\n doc.text(`${name}`, 40, 120);\n doc.setFontSize(12);\n // FOOTER\n var str = \"Page \" + dataToPrint.pageCount;\n // Total page number plugin only available in jspdf v1.0+\n if (typeof doc.putTotalPages === 'function') {\n str = str + \" of \" + totalPagesExp;\n }\n doc.setFontSize(10);\n var pageHeight = doc.internal.pageSize.height || doc.internal.pageSize.getHeight();\n doc.text(str, dataToPrint.settings.margin.left, pageHeight - 10);\n }\n });\n if (typeof doc.putTotalPages === 'function') {\n doc.putTotalPages(totalPagesExp);\n }\n var blob = doc.output('blob');\n window.open(URL.createObjectURL(blob));\n\n }//print()\n\n ngOnDestroy(): void {\n this.data.unsubscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport {GeneralServiceService} from './general-service.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n\n constructor(private genServ: GeneralServiceService){\n }\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean {\n return this.genServ.isLoggedIn;\n }\n}\n","\n\n","import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';\nimport { Validators } from '@angular/forms';\n\nimport { GeneralServiceService } from '../general-service.service';\nimport { DataEntryBaseComponent } from '../data-entry-base/data-entry-base.component';\n\n@Component({\n selector: 'app-auto-ded-entry',\n templateUrl: './auto-ded-entry.component.html',\n styleUrls: ['./auto-ded-entry.component.css']\n})\nexport class AutoDedEntryComponent implements OnInit {\n\n @ViewChild(DataEntryBaseComponent, { static: false }) popTBl: DataEntryBaseComponent;\n\n prAutoded: any;\n selectedData: any = {};\n config = [\n {\n type: 'input',\n label: 'Code',\n name: 'code',\n placeholder: 'Enter Code',\n value: '',\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: 'input',\n label: 'Name',\n name: 'name',\n placeholder: 'Enter Name',\n value: '',\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: 'button',\n label: 'Save',\n name: 'submit',\n disabled: true,\n title: \"Income\"\n }\n ];\n\n constructor(\n private genServ: GeneralServiceService\n ) { }\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n this.reloadData();\n }\n\n reloadData() {\n this.popTBl.refresh();\n }\n\n initProperties() {\n //Income Transaction Properties\n var tblHeader =\n [\n { key: 'code', value: 'Code', hKey: 'code' },\n { key: 'name', value: 'Name', hKey: 'name' }\n ];\n this.prAutoded = {\n table: \"autoded\", tblHeader: tblHeader,\n ps: 10, tblHeaderHidden: \"\"\n };\n }\n\n getSelected(event) {\n this.selectedData = event.data;\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p)\n .subscribe(resp => {\n let x = parseInt(resp.body);\n if (x == 2) {\n alert(`Duplicated Code`);\n } else if (x == 1) {\n alert(`Updated Record!`);\n } else if (x == 3) {\n alert(`Duplicated Name`);\n }\n },\n (resp) => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n }\n\n submit(event) {\n let value = event.value;\n let p = \"\";\n let v = `'${value.code}','${value.name}'`;\n\n if (event.mode == 1) {\n p = `call insertAutoded(${v})`;\n } else if (event.mode == 2) {\n v += `,${event.id}, '${this.selectedData.code}','${this.selectedData.name}'`;\n p = `call updateAutoded(${v})`;\n }\n this.showConfigResponse(p);\n }//submit\n\n}\n","\n\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n\n Save\n\n
\n\n","import { Component, OnInit, ViewChild, AfterContentInit, AfterViewInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Validators } from '@angular/forms';\n\nimport { GeneralServiceService } from '../general-service.service';\nimport { PopulateTableForTransComponent } from '../populate-table-for-trans/populate-table-for-trans.component';\nimport { EmployeeService } from '../employee.service';\nimport { Globals } from '../globals';\nimport { TextBoxComponent } from '../text-box/text-box.component';\nimport { PopulateTextboxComponent } from '../populate-textbox/populate-textbox.component';\nimport { MultiCheckboxSelectionComponent } from '../multi-checkbox-selection/multi-checkbox-selection.component';\n\n\n@Component({\n selector: 'app-auto-ded',\n templateUrl: './auto-ded.component.html',\n styleUrls: ['./auto-ded.component.css']\n})\nexport class AutoDedComponent implements OnInit {\n @ViewChild('txtAinc', { static: false }) popAInc: PopulateTextboxComponent;\n @ViewChild('txtInc', { static: false }) popInc: PopulateTextboxComponent;\n @ViewChild('cboEmpX', { static: false }) cboEmp: MultiCheckboxSelectionComponent;\n @ViewChild('cboPeriodX', { static: false }) cboPeriod: MultiCheckboxSelectionComponent;\n @ViewChild(TextBoxComponent, { static: false }) txtAmt: TextBoxComponent;\n @ViewChild(PopulateTableForTransComponent, { static: false }) tblTran: PopulateTableForTransComponent;\n\n prInc: any;\n prAuto: any;\n prAInc: any;\n refId: any;\n prAmt: any;\n selectedInc: any;\n selectedAInc: any;\n empConfig: any = [];\n periodConfig: any = [];\n selectedEmp: any = [];\n amt = \"\";\n mode = 1;\n tblHeader: Array = [];\n tblData: Array = [];\n btnListDed: Array = [];\n\n constructor(\n public modalService: NgbModal,\n private genServ: GeneralServiceService,\n private globals: Globals\n ) { }\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n //this.cboEmp.config=this.empConfig;\n //this.cboPeriod.config=this.periodConfig;\n this.tblTran.loadDataWithJOinWOCL();\n }\n\n loadPeriod() {\n this.genServ.GetDataNoLimit('period', 'code,name').subscribe((d) => {\n d.forEach((v, i) => {\n this.periodConfig.push({\n type: 'checkbox',\n label: v.name,\n name: v.id,\n value: ''\n })\n });\n },\n (err) => alert(err),\n () => this.periodConfig.push({\n type: 'button',\n label: 'Save',\n name: 'submit',\n disabled: false,\n title: \"Select Period\"\n })\n );\n }\n\n loadEmp() {\n this.genServ.GetDataNoLimit('employee', 'code,name').subscribe((d) => {\n d.forEach((v, i) => {\n this.empConfig.push({\n type: 'checkbox',\n label: v.name,\n name: v.id,\n value: ''\n })\n });\n },\n (err) => alert(err),\n () => this.empConfig.push({\n type: 'button',\n label: 'Save',\n name: 'submit',\n disabled: false,\n title: \"Select Employees\"\n })\n );\n }\n\n initProperties() {\n this.tblHeader = [\n { hKey: 'name', value: 'Name' }\n ];\n this.genServ.GetDataNoLimit('employee', 'name').subscribe((d) => {\n this.tblData = d;\n //console.log(this.emp);\n }, () => alert('error!'),\n () => {\n this.genServ.GetDataNoLimit('period', 'code,name').subscribe((d) => {\n this.btnListDed = d;\n });\n }\n );\n this.loadEmp();\n this.loadPeriod();\n //Income Properties\n var ainctblHeader = [\n { key: 'code', value: 'Code', hKey: 'code' },\n { key: 'name', value: 'Name', hKey: 'name' }\n ];\n this.prAInc = {\n table: \"autoded\", tableHeader: ainctblHeader,\n label: \"Auto Deduction\", tblHeaderHidden: \"\", wc: 0\n };\n //Income Properties\n var inctblHeader = [\n { key: 'code', value: 'Code', hKey: 'code' },\n { key: 'name', value: 'Name', hKey: 'name' },\n { key: 'amount', value: 'Amount', hKey: 'amount' }\n ];\n this.prInc = {\n table: \"ded\", tableHeader: inctblHeader,\n label: \"Deduction\", tblHeaderHidden: \"\", wc: 0\n };\n //Amount text box Properties\n this.prAmt = {\n label: \"Amount\",\n valueX: 0\n };\n //Income Transaction Properties\n var inctranstblHeader =\n [\n { key: 'Distinct(i.name) as details', value: 'Details', hKey: 'details' },\n { key: 'amt as amt', value: 'Amount', hKey: 'amt' }\n ];\n this.prAuto = {\n table: \"autodeddet a\", tblHeader: inctranstblHeader,\n ps: 10, tblHeaderHidden: \"a.ded,a.amt,a.autoded as id\", wc: { 'key': \"i.period\", value: this.globals.period.id },\n lj: { lj1: 'a.autoded', lj2: 'i.id', lj3: 'autoded i', lj4: 'LEFT' },\n autoModule: true, deleteWc: \"autoded\"\n };\n }\n\n getInc(event) {\n this.selectedInc = event;\n //this.txtBox.getAmount(this.selectedInc.amount);\n //this.selectedInc=this.popInc.selectedData;\n }\n\n getAInc(event) {\n this.selectedAInc = event;\n //this.txtBox.getAmount(this.selectedInc.amount);\n //this.selectedInc=this.popInc.selectedData;\n }\n\n getSelectedEmp(event) {\n let ev = event.value;\n for (let i = 0; i <= this.empConfig.length - 2; i++) {\n if (ev[this.empConfig[i].name] == true) {\n let a = { id: this.empConfig[i].name, v: this.empConfig[i].label };\n let empIndex = this.cboEmp.chips.findIndex(x => x.id == a.id);\n if (empIndex < 0) {\n this.cboEmp.chips.push(a);\n }\n }\n }\n }\n\n getSelectedPeriod(event) {\n let ev = event.value;\n for (let i = 0; i <= this.periodConfig.length - 2; i++) {\n if (ev[this.periodConfig[i].name] == true) {\n let a = { id: this.periodConfig[i].name, v: this.periodConfig[i].label };\n let periodIndex = this.cboPeriod.chips.findIndex(x => x.id == a.id);\n if (periodIndex < 0) {\n this.cboPeriod.chips.push(a);\n }\n }\n }\n }\n\n getAmt(event) {\n this.amt = event;\n }\n\n submit() {\n if (this.mode == 2) {\n let v = `${this.refId}`;\n let p = `call updateAutodeddet(${v})`;\n this.showConfigResponse(p);\n }\n let e = this.cboEmp.chips;\n let pr = this.cboPeriod.chips;\n //IN p_emp INT(10), IN p_inc INT(10), IN p_amt VARCHAR(10), IN p_period INT(10)\n //let v = \"`${this.selectedEmp.id}, ${this.selectedInc.id}, ${this.amt}, ${this.globals.period.id}`\";\n let p = \"\";\n e.forEach(i => {\n pr.forEach(j => {\n //let a =Number(i.substring(1, i.length-1));\n //let b =Number(j.substring(1, j.length-1));\n let v = `${Number(i.id)}, ${this.selectedInc.id}, ${this.amt}, ${Number(j.id)}, ${this.selectedAInc.id}`;\n //if(this.mode==1){\n let p = `call insertAutodeddet(${v})`;\n this.showConfigResponse(p);\n //}\n //console.log(`i=: ${i.id}`);\n //console.log(`j: ${j.id}`);\n });\n });\n alert('record updated!');\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p)\n .subscribe(resp => {\n let x = parseInt(resp.body);\n },\n (resp) => alert(resp.error.ExceptionMessage),\n () => {\n this.tblTran.loadDataWithJOinWOCL();\n //this.txtBox.getAmount(0);\n }\n );\n }\n\n edit(event) {\n this.mode = 2;\n this.genServ.getSDataById('ded', event.ded, 'code,name').subscribe((d) => {\n this.popInc.selectedData = d[0];\n this.popInc.fnSelectData(d[0]);\n });\n this.genServ.getSDataById('autoded', event.id, 'code,name').subscribe((d) => {\n this.popAInc.selectedData = d[0];\n this.popAInc.fnSelectData(d[0]);\n });\n //lj: { lj1: 'a.incId', lj2: 'e.id', lj3: 'income e', lj4: 'LEFT' }\n this.genServ.GetDataForTrans('autodeddet a', 'e.name as ename, e.id as eid, p.name as pname, p.id as pid', 0, 1000,\n ['autoded'], [event.id], \"a.emp,a.period\", \"e.id,p.id\", \"employee e, period p\", \"LEFT, LEFT\").subscribe((d) => {\n //console.log(d);\n this.cboEmp.chips = [];\n this.cboPeriod.chips = [];\n d.forEach(e => {\n let empIndex = this.cboEmp.chips.findIndex(x => x.id == e.eid);\n if (empIndex < 0) {\n let a = { id: e.eid, v: e.ename };\n this.cboEmp.chips.push(a);\n }\n let periodIndex = this.cboPeriod.chips.findIndex(x => x.id == e.pid);\n if (periodIndex < 0) {\n let b = { id: e.pid, v: e.pname };\n this.cboPeriod.chips.push(b);\n }\n });\n this.txtAmt.getAmount(event.amt);\n this.getAmt(event.amt);\n this.refId = event.id;\n });\n }//Edit()\n\n addColumn(btn) {\n let a = { hKey: btn['id'].toString(), value: btn.name };\n this.tblHeader.push(a);\n this.tblData.forEach((v, i) => {\n this.tblData[i][btn['id'].toString()] = 0;\n });\n }//AddColumn\n\n removeColumn(i, header) {\n this.tblHeader.splice(i, 1);\n this.tblData.forEach((v, j) => {\n delete this.tblData[j][header.toString()];\n });\n }\n}\n","\n","import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';\nimport { Validators } from '@angular/forms';\n\nimport { GeneralServiceService } from '../general-service.service';\nimport { DataEntryBaseComponent } from '../data-entry-base/data-entry-base.component';\n\n@Component({\n selector: 'app-auto-inc-entry',\n templateUrl: './auto-inc-entry.component.html',\n styleUrls: ['./auto-inc-entry.component.css']\n})\nexport class AutoIncEntryComponent implements OnInit {\n\n @ViewChild(DataEntryBaseComponent, { static: false }) popTBl: DataEntryBaseComponent;\n\n prAutoinc: any;\n selectedData: any = {};\n config = [\n {\n type: 'input',\n label: 'Code',\n name: 'code',\n placeholder: 'Enter Code',\n value: '',\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: 'input',\n label: 'Name',\n name: 'name',\n placeholder: 'Enter Name',\n value: '',\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: 'button',\n label: 'Save',\n name: 'submit',\n disabled: true,\n title: \"Income\"\n }\n ];\n\n constructor(\n private genServ: GeneralServiceService\n ) { }\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n this.reloadData();\n }\n\n reloadData() {\n this.popTBl.refresh();\n }\n\n initProperties() {\n //Income Transaction Properties\n var tblHeader =\n [\n { key: 'code', value: 'Code', hKey: 'code' },\n { key: 'name', value: 'Name', hKey: 'name' }\n ];\n this.prAutoinc = {\n table: \"autoinc\", tblHeader: tblHeader,\n ps: 10, tblHeaderHidden: \"\"\n };\n }\n\n getSelected(event) {\n this.selectedData = event.data;\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p)\n .subscribe(resp => {\n let x = parseInt(resp.body);\n if (x == 2) {\n alert(`Duplicated Code`);\n } else if (x == 1) {\n alert(`Updated Record!`);\n } else if (x == 3) {\n alert(`Duplicated Name`);\n }\n },\n (resp) => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n }\n\n submit(event) {\n let value = event.value;\n let p = \"\";\n let v = `'${value.code}','${value.name}'`;\n\n if (event.mode == 1) {\n p = `call insertAutoinc(${v})`;\n } else if (event.mode == 2) {\n v += `,${event.id}, '${this.selectedData.code}','${this.selectedData.name}'`;\n p = `call updateAutoinc(${v})`;\n }\n this.showConfigResponse(p);\n }//submit\n\n}\n","\n\n
\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n\n Save\n\n
\n\n","import { Component, OnInit, ViewChild, AfterContentInit, AfterViewInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Validators } from '@angular/forms';\n\nimport { GeneralServiceService } from '../general-service.service';\nimport { PopulateTableForTransComponent } from '../populate-table-for-trans/populate-table-for-trans.component';\nimport { EmployeeService } from '../employee.service';\nimport { Globals } from '../globals';\nimport { TextBoxComponent } from '../text-box/text-box.component';\nimport { PopulateTextboxComponent } from '../populate-textbox/populate-textbox.component';\nimport { MultiCheckboxSelectionComponent } from '../multi-checkbox-selection/multi-checkbox-selection.component';\n\n@Component({\n selector: 'app-auto-inc',\n templateUrl: './auto-inc.component.html',\n styleUrls: ['./auto-inc.component.css']\n})\nexport class AutoIncComponent implements OnInit, AfterViewInit {\n @ViewChild('txtAinc', { static: false }) popAInc: PopulateTextboxComponent;\n @ViewChild('txtInc', { static: false }) popInc: PopulateTextboxComponent;\n @ViewChild('cboEmpX', { static: false }) cboEmp: MultiCheckboxSelectionComponent;\n @ViewChild('cboPeriodX', { static: false }) cboPeriod: MultiCheckboxSelectionComponent;\n @ViewChild(TextBoxComponent, { static: false }) txtAmt: TextBoxComponent;\n @ViewChild(PopulateTableForTransComponent, { static: false }) tblTran: PopulateTableForTransComponent;\n\n prInc: any;\n prAuto: any;\n prAInc: any;\n refId: any;\n prAmt: any;\n selectedInc: any;\n selectedAInc: any;\n empConfig: any = [];\n periodConfig: any = [];\n selectedEmp: any = [];\n amt = \"\";\n mode = 1;\n\n constructor(\n public modalService: NgbModal,\n private genServ: GeneralServiceService,\n private globals: Globals\n ) { }\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n //this.cboEmp.config=this.empConfig;\n //this.cboPeriod.config=this.periodConfig;\n this.tblTran.loadDataWithJOinWOCL();\n }\n\n loadPeriod() {\n this.genServ.GetDataNoLimit('period', 'code,name').subscribe((d) => {\n d.forEach((v, i) => {\n this.periodConfig.push({\n type: 'checkbox',\n label: v.name,\n name: v.id,\n value: ''\n })\n });\n },\n (err) => alert(err),\n () => this.periodConfig.push({\n type: 'button',\n label: 'Save',\n name: 'submit',\n disabled: false,\n title: \"Select Period\"\n })\n );\n }\n\n loadEmp() {\n this.genServ.GetDataNoLimit('employee', 'code,name').subscribe((d) => {\n d.forEach((v, i) => {\n this.empConfig.push({\n type: 'checkbox',\n label: v.name,\n name: v.id,\n value: ''\n })\n });\n },\n (err) => alert(err),\n () => this.empConfig.push({\n type: 'button',\n label: 'Save',\n name: 'submit',\n disabled: false,\n title: \"Select Employees\"\n })\n );\n }\n\n initProperties() {\n this.loadEmp();\n this.loadPeriod();\n //Income Properties\n var ainctblHeader = [\n { key: 'code', value: 'Code', hKey: 'code' },\n { key: 'name', value: 'Name', hKey: 'name' }\n ];\n this.prAInc = {\n table: \"autoinc\", tableHeader: ainctblHeader,\n label: \"Auto Income\", tblHeaderHidden: \"\", wc: 0\n };\n //Income Properties\n var inctblHeader = [\n { key: 'code', value: 'Code', hKey: 'code' },\n { key: 'name', value: 'Name', hKey: 'name' },\n { key: 'amount', value: 'Amount', hKey: 'amount' }\n ];\n this.prInc = {\n table: \"income\", tableHeader: inctblHeader,\n label: \"Income\", tblHeaderHidden: \"\", wc: 0\n };\n //Amount text box Properties\n this.prAmt = {\n label: \"Amount\",\n valueX: 0\n };\n //Income Transaction Properties\n var inctranstblHeader =\n [\n { key: 'Distinct(i.name) as details', value: 'Details', hKey: 'details' },\n { key: 'amt as amt', value: 'Amount', hKey: 'amt' }\n ];\n this.prAuto = {\n table: \"autoincdet a\", tblHeader: inctranstblHeader,\n ps: 10, tblHeaderHidden: \"a.inc,a.autoinc as id\", wc: { 'key': \"i.period\", value: this.globals.period.id },\n lj: { lj1: 'a.autoinc', lj2: 'i.id', lj3: 'autoinc i', lj4: 'LEFT' },\n autoModule: true, deleteWc: \"autoinc\"\n };\n }\n\n getInc(event) {\n this.selectedInc = event;\n //this.txtBox.getAmount(this.selectedInc.amount);\n //this.selectedInc=this.popInc.selectedData;\n }\n\n getAInc(event) {\n this.selectedAInc = event;\n //this.txtBox.getAmount(this.selectedInc.amount);\n //this.selectedInc=this.popInc.selectedData;\n }\n\n getSelectedEmp(event) {\n let ev = event.value;\n for (let i = 0; i <= this.empConfig.length - 2; i++) {\n if (ev[this.empConfig[i].name] == true) {\n let a = { id: this.empConfig[i].name, v: this.empConfig[i].label };\n let empIndex = this.cboEmp.chips.findIndex(x => x.id == a.id);\n if (empIndex < 0) {\n this.cboEmp.chips.push(a);\n }\n }\n }\n }\n\n getSelectedPeriod(event) {\n let ev = event.value;\n for (let i = 0; i <= this.periodConfig.length - 2; i++) {\n if (ev[this.periodConfig[i].name] == true) {\n let a = { id: this.periodConfig[i].name, v: this.periodConfig[i].label };\n let periodIndex = this.cboPeriod.chips.findIndex(x => x.id == a.id);\n if (periodIndex < 0) {\n this.cboPeriod.chips.push(a);\n }\n }\n }\n }\n\n getAmt(event) {\n this.amt = event;\n }\n\n submit() {\n if (this.mode == 2) {\n let v = `${this.refId}`;\n let p = `call updateAutoincdet(${v})`;\n this.showConfigResponse(p);\n }\n let e = this.cboEmp.chips;\n let pr = this.cboPeriod.chips;\n //IN p_emp INT(10), IN p_inc INT(10), IN p_amt VARCHAR(10), IN p_period INT(10)\n //let v = \"`${this.selectedEmp.id}, ${this.selectedInc.id}, ${this.amt}, ${this.globals.period.id}`\";\n let p = \"\";\n e.forEach(i => {\n pr.forEach(j => {\n //let a =Number(i.substring(1, i.length-1));\n //let b =Number(j.substring(1, j.length-1));\n let v = `${Number(i.id)}, ${this.selectedInc.id}, ${this.amt}, ${Number(j.id)}, ${this.selectedAInc.id}`;\n //if(this.mode==1){\n let p = `call insertAutoincdet(${v})`;\n this.showConfigResponse(p);\n //}\n //console.log(`i=: ${i.id}`);\n //console.log(`j: ${j.id}`);\n });\n });\n alert('record updated!');\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p)\n .subscribe(resp => {\n let x = parseInt(resp.body);\n },\n (resp) => alert(resp.error.ExceptionMessage),\n () => {\n this.tblTran.loadDataWithJOinWOCL();\n //this.txtBox.getAmount(0);\n }\n );\n }\n\n edit(event) {\n this.mode = 2;\n this.genServ.getSDataById('income', event.inc, 'code,name').subscribe((d) => {\n this.popInc.selectedData = d[0];\n this.popInc.fnSelectData(d[0]);\n });\n this.genServ.getSDataById('autoinc', event.id, 'code,name').subscribe((d) => {\n this.popAInc.selectedData = d[0];\n this.popAInc.fnSelectData(d[0]);\n });\n //lj: { lj1: 'a.incId', lj2: 'e.id', lj3: 'income e', lj4: 'LEFT' }\n this.genServ.GetDataForTrans('autoincdet a', 'e.name as ename, e.id as eid, p.name as pname, p.id as pid', 0, 1000,\n ['autoinc'], [event.id], \"a.emp,a.period\", \"e.id,p.id\", \"employee e, period p\", \"LEFT, LEFT\").subscribe((d) => {\n //console.log(d);\n this.cboEmp.chips = [];\n this.cboPeriod.chips = [];\n d.forEach(e => {\n let empIndex = this.cboEmp.chips.findIndex(x => x.id == e.eid);\n if (empIndex < 0) {\n let a = { id: e.eid, v: e.ename };\n this.cboEmp.chips.push(a);\n }\n let periodIndex = this.cboPeriod.chips.findIndex(x => x.id == e.pid);\n if (periodIndex < 0) {\n let b = { id: e.pid, v: e.pname };\n this.cboPeriod.chips.push(b);\n }\n });\n this.txtAmt.getAmount(event.amt);\n this.getAmt(event.amt);\n this.refId = event.id;\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 { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport {Globals} from '../globals';\nimport {GeneralServiceService} from '../general-service.service';\nimport Swal from \"sweetalert2\";\n\n\n@Component({\n selector: 'app-change-password',\n templateUrl: './change-password.component.html',\n styleUrls: ['./change-password.component.css']\n})\nexport class ChangePasswordComponent implements OnInit {\n selectedUser: Object={};\n formX: FormGroup;\n\n constructor(\n public genServ: GeneralServiceService,\n public globals: Globals,\n private fb: FormBuilder,\n public router: Router\n ) { }\n\n ngOnInit() {\n this.selectedUser['code']=this.globals.acclvl['name'];\n this.initProperties();\n }\n\n initProperties(){\n this.formX=this.fb.group({\n code: [{value: this.selectedUser['code'], disabled: true}, Validators.required],\n newpassword: ['', Validators.required],\n oldpassword: ['1234567890', Validators.required],\n confirmpassword: ['', Validators.required]\n });\n }\n\n onSubmit() {\n let code = this.formX.controls['code'].value;\n let oldpassword = this.formX.controls['oldpassword'].value;\n let newpassword = this.formX.controls['newpassword'].value;\n let confirmpassword = this.formX.controls['confirmpassword'].value;\n \n //alert(oldpassword);\n if(newpassword===confirmpassword){\n //code,old,new\n let v=`'${code}','${oldpassword}','${newpassword}'`;\n let p=`call changePassword(${v})`;\n this.showConfigResponse(p);\n }else{\n Swal.fire(\"Invalid Entry!\", \"Passsword did not matched\", \"error\");\n //alert(`Passsword did not matched!`);\n }\n }\n \n\n showConfigResponse(p){\n this.genServ.getConfigResponse(p)\n .subscribe(resp => { \n let x=parseInt(resp.body);\n if(x==1){\n Swal.fire(\"Records updated!\", \"Password changed.\", \"success\");\n\n this.genServ.setLoggedIn(false);\n this.router.navigate(['login']);\n }else if(x==2){\n Swal.fire(\"Invalid Password!\", \"Please check Old and New Password.\", \"error\");\n }\n },\n (resp) => alert(resp.error.ExceptionMessage),\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 { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport {Globals} from '../globals';\nimport {GeneralServiceService} from '../general-service.service';\nimport Swal from \"sweetalert2\";\n\n\n@Component({\n selector: 'app-change-passwordst',\n templateUrl: './change-passwordst.component.html',\n styleUrls: ['./change-passwordst.component.css']\n})\nexport class ChangePasswordstComponent implements OnInit {\n selectedUser: Object={};\n formX: FormGroup;\n\n constructor(\n public genServ: GeneralServiceService,\n public globals: Globals,\n private fb: FormBuilder,\n public router: Router\n ) { }\n\n ngOnInit() {\n this.selectedUser['code']=this.globals.acclvl['name'];\n this.initProperties();\n }\n\n initProperties(){\n this.formX=this.fb.group({\n code: [{value: this.selectedUser['code'], disabled: true}, Validators.required],\n newpassword: ['', Validators.required],\n oldpassword: ['1234567890', Validators.required],\n confirmpassword: ['', Validators.required]\n });\n }\n\n onSubmit() {\n let code = this.formX.controls['code'].value;\n let oldpassword = this.formX.controls['oldpassword'].value;\n let newpassword = this.formX.controls['newpassword'].value;\n let confirmpassword = this.formX.controls['confirmpassword'].value;\n \n //alert(oldpassword);\n if(newpassword===confirmpassword){\n //code,old,new\n let v=`'${code}','${oldpassword}','${newpassword}'`;\n let p=`call changePasswordst(${v})`;\n this.showConfigResponse(p);\n }else{\n Swal.fire(\"Invalid Entry!\", \"Passsword did not matched\", \"error\");\n //alert(`Passsword did not matched!`);\n }\n }\n \n\n showConfigResponse(p){\n this.genServ.getConfigResponse(p)\n .subscribe(resp => { \n let x=parseInt(resp.body);\n if(x==1){\n Swal.fire(\"Records updated!\", \"Password changed.\", \"success\");\n\n this.genServ.setLoggedIn(false);\n this.router.navigate(['login']);\n }else if(x==2){\n Swal.fire(\"Invalid Password!\", \"Please check Old and New Password.\", \"error\");\n }\n },\n (resp) => alert(resp.error.ExceptionMessage),\n );\n }\n\n}\n","import { Directive, Renderer2, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[appClassManipulator]'\n})\nexport class ClassManipulatorDirective {\n\n constructor(\n private renderer: Renderer2,\n private el: ElementRef\n ) {\n \n }\n\n ngOnInit() {\n \n }\n\n @HostListener('click') onClick() {\n //let part = this.el.nativeElement.querySelector('.card-text') (3)\n //this.renderer.setElementStyle(part, 'display', 'block'); (4)\n let a=this.el.nativeElement;\n let parent=this.renderer.parentNode(this.el.nativeElement);\n let ul = parent.querySelector('ul');\n if(a.classList.contains('subdrop')){\n this.renderer.removeStyle(ul, 'display');\n this.renderer.removeClass(a, 'subdrop');\n }else{\n this.renderer.setStyle(ul, 'display', 'block');\n this.renderer.addClass(a, 'subdrop');\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'currencyKo' })\r\nexport class CurrencyPipe{\r\n transform(amount: number): string{\r\n let a = parseFloat(amount.toString());\r\n let b = a.toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n return b;\r\n }\r\n}","import { Directive, HostListener, ElementRef, HostBinding, Output, EventEmitter, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[cel]'\n})\nexport class CustomEventListenerDirective {\n @Output() hitF8 = new EventEmitter();\n @Output() hitF9 = new EventEmitter();\n @Output() hitF4 = new EventEmitter();\n @Output() hoverMode = new EventEmitter();\n //@HostBinding('class.bg-primary') ishovering: boolean; \n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) { }\n\n @HostListener('keyup', ['$event']) keyup(event){\n //console.log(event);\n if(event.key===\"F8\"){\n this.hitF8.emit(true);\n }else if(event.key===\"F9\"){\n this.hitF9.emit(true);\n }else if(event.key===\"F4\"){\n this.hitF4.emit(true);\n }\n //this.ishovering = true; \n }\n}\n","\r\n \r\n
\r\n Welcome {{uName}} {{periodName}}\r\n \r\n\r\n
\r\n
\r\n
\r\n

Note: For students, click Transactions Menu to enroll.

\r\n
\r\n

Payment details:

\r\n

Bank : BDO

\r\n

Account Name: St. Paul College of Makati

\r\n

Account No.: 0041-7000-3309

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

Please contact the finance office at (02) 982-1232 for more details.\r\n\r\n

\r\n\r\n\r\n \r\n\r\n\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\n\r\nimport { Globals } from \"../globals\";\r\nimport { GeneralServiceService } from \"../general-service.service\";\r\nimport { PopulateTableComponent } from \"../populate-table/populate-table.component\";\r\n\r\n@Component({\r\n selector: \"app-dashboard\",\r\n templateUrl: \"./dashboard.component.html\",\r\n styleUrls: [\"./dashboard.component.css\"]\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n //new\r\n @ViewChild(PopulateTableComponent, { static: false })\r\n popTbl: PopulateTableComponent;\r\n selectedData: any = null;\r\n sp: number;\r\n //\r\n cLeave: number = 0;\r\n cOvertime: number = 0;\r\n cLoan: number = 0;\r\n cEmp: number = 0;\r\n user = \"\";\r\n e: boolean = true;\r\n uName: string;\r\n periodName: string;\r\n periodNameGet : string;\r\n\r\n constructor(public genserv: GeneralServiceService, public global: Globals) {}\r\n\r\n ngOnInit() {\r\n \r\n\r\n this.uName = this.global.username;\r\n this.periodNameGet = this.global.periodNameNew;\r\n this.periodName = '('+ this.periodNameGet +')';\r\n \r\n if (this.global.accesslevel[\"empX\"] === 0) {\r\n this.e = false;\r\n } else {\r\n this.e = true;\r\n }\r\n \r\n }\r\n\r\n \r\n}\r\n","\r\n
\r\n
\r\n\r\n\r\n
    \r\n\r\n\r\n   \r\n   \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n Welcome!\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ViewChild\n} from \"@angular/core\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\n\nimport { DataEntryFormComponent } from \"../data-entry-form/data-entry-form.component\";\nimport { PopulateTableComponent } from \"../populate-table/populate-table.component\";\nimport { GeneralServiceService } from \"../general-service.service\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Component({\n selector: \"app-data-entry-base\",\n templateUrl: \"./data-entry-base.component.html\",\n styleUrls: [\"./data-entry-base.component.css\"]\n})\nexport class DataEntryBaseComponent implements OnInit {\n private _config = new BehaviorSubject([]);\n @ViewChild(DataEntryFormComponent, { static: false })\n form: DataEntryFormComponent;\n @Input() prTable: any;\n @Output() submitEvent = new EventEmitter();\n @Output() deleteEvent = new EventEmitter();\n @Output() selectedDataEvent = new EventEmitter();\n @ViewChild(PopulateTableComponent, { static: false })\n popTbl: PopulateTableComponent;\n imgPath: string = \"assets/images/refresh.png\";\n selectedData: any = null;\n mode = 1;\n x;\n @Input() set config(value) {\n this._config.next(value);\n }\n\n get config() {\n return this._config.getValue();\n }\n\n constructor(\n public modalService: NgbModal,\n private genServ: GeneralServiceService\n ) {}\n\n ngOnInit() {\n //this.showConfigResponse();\n // /this.genServ.Test();\n }\n\n loadModal(mode) {\n if (this.x == 1) {\n alert(this.x);\n }\n this.mode = mode;\n if (mode == 2) {\n //this.passData();\n } else if (mode == 1) {\n this.selectedData = null;\n this.config.forEach(element => {\n element.value = \"\";\n });\n }\n const modalRef = this.modalService.open(DataEntryFormComponent);\n modalRef.componentInstance.config = this.config;\n modalRef.componentInstance.selectedData = this.selectedData;\n modalRef.componentInstance.submitEvent.subscribe(data => {\n if (mode == 2) {\n this.fnSubmitEvent(data, 2, this.selectedData.id);\n } else {\n this.fnSubmitEvent(data, 1);\n }\n });\n }\n\n passData() {\n for (let x in this.selectedData) {\n this.form.passData(x, this.selectedData[x]);\n }\n }\n\n fnPassDataToForm() {\n let i = 0;\n for (let x in this.selectedData) {\n if (x == \"id\") {\n continue;\n }\n this.config[i].value = this.selectedData[x];\n if (x == \"dateFr\" || x == \"dateTo\") {\n let a = this.selectedData[x].toString();\n let b = \"-\";\n let position = -4;\n this.config[i].value = [\n a.slice(0, position),\n b,\n a.slice(position, -2),\n b,\n a.slice(-2)\n ].join(\"\");\n }\n i++;\n }\n }\n\n fnSubmitEvent(data, mode, id?) {\n this.submitEvent.emit({ value: data, mode: mode, id: id });\n }\n\n getSelectedData(event) {\n this.selectedDataEvent.emit(event);\n this.selectedData = event.data;\n }\n\n delete() {\n /* if (confirm(`are you sure you want to delete ${this.selectedData.name}`)) {\n this.genServ.deleteRecord(this.selectedData.id, this.prTable.table).subscribe(\n () => alert(`deleted Id: ${this.selectedData.id}`),\n () => alert('error'),\n () => this.refresh()\n );\n } */\n this.deleteEvent.emit(Number(this.selectedData.id));\n }\n\n searchData(event) {\n this.popTbl.searchData(event.term, event.wc);\n }\n\n refresh() {\n this.popTbl.loadData();\n this.selectedData = null;\n }\n}\n","
\n
{{title}}
\n \n
\n
\n
\n \n \n
\n
\n
\n \n
","import { Component, ViewChild, AfterViewInit, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { DynamicFormComponent } from '../dynamic-form-module/containers/dynamic-form/dynamic-form.component';\n\n@Component({\n selector: 'app-data-entry-form',\n templateUrl: './data-entry-form.component.html',\n styleUrls: ['./data-entry-form.component.scss']\n})\nexport class DataEntryFormComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild(DynamicFormComponent, { static: false }) form: DynamicFormComponent;\n\n @Input()\n config: any[] = [];\n\n @Input()\n selectedData: any[] = [];\n\n @Output()\n submitEvent = new EventEmitter();\n title = \"\";\n constructor(\n public activeModal: NgbActiveModal\n ) { }\n\n ngOnInit() {\n this.title = this.config[this.config.length - 1].title;\n }\n\n ngAfterViewInit() {\n let previousValid = this.form.valid;\n console.log(`Prev Valid: ${previousValid}`);\n this.form.changes.subscribe(() => {\n if (this.form.valid !== previousValid) {\n previousValid = this.form.valid;\n this.form.setDisabled('submit', !previousValid);\n }\n });\n if (this.selectedData) {\n for (let i = 0; i < this.config.length - 1; i++) {\n if (this.config[i].name == 'dateFr' || this.config[i].name == 'dateTo') {\n let a = this.selectedData[this.config[i].name].toString();\n let position = -4;\n let c = [a.slice(0, position), \"-\", a.slice(position, -2), \"-\", a.slice(-2)].join('');\n //console.log(c);\n this.form.setValue(this.config[i].name, c);\n } else if (this.config[i].name == 'accesslevel' || this.config[i].name == 'paymentterm') {\n let levelIndex = this.config[i].options.findIndex(x => x.id == this.selectedData[this.config[i].name]);\n let x = this.config[i].options[levelIndex].v;\n //let x= this.selectedData[this.config[i].name]==1? 'Admin': 'User'\n this.form.setValue(this.config[i].name, x);\n } else if (this.config[i].name == 'pword') {\n this.form.setValue(this.config[i].name, \"\");\n } else {\n this.form.setValue(this.config[i].name, this.selectedData[this.config[i].name]);\n }\n\n }\n }\n\n }\n\n\n passData(name: string, value: any) {\n this.form.setValue(name, value);\n }\n\n submit(value: { [name: string]: any }) {\n this.submitEvent.emit(value);\n this.activeModal.close();\n }\n\n ngOnDestroy() {\n this.form.setDisabled('submit', true);\n }\n\n}\n","import { ComponentFactoryResolver, ComponentRef, Directive, Input, OnChanges, OnInit, Type, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { FormButtonComponent } from '../form-button/form-button.component';\r\nimport { FormInputComponent } from '../form-input/form-input.component';\r\nimport { FormSelectComponent } from '../form-select/form-select.component';\r\nimport {FormDateComponent} from '../form-date/form-date.component';\r\nimport {FormCheckboxComponent} from '../form-checkbox/form-checkbox.component';\r\nimport { FormPassComponent } from '../form-pass/form-pass.component';\r\nimport { FormInputSelectorComponent} from '../form-input-selector/form-input-selector.component';\r\nimport {FormCurrencyComponent} from '../form-currency/form-currency.component';\r\n\r\nimport { Field } from '../../models/field.interface';\r\nimport { FieldConfig } from '../../models/field-config.interface';\r\n\r\nconst components: { [type: string]: Type } = {\r\n button: FormButtonComponent,\r\n input: FormInputComponent,\r\n select: FormSelectComponent,\r\n date: FormDateComponent,\r\n checkbox: FormCheckboxComponent,\r\n pass: FormPassComponent,\r\n selector: FormInputSelectorComponent,\r\n currency: FormCurrencyComponent\r\n};\r\n\r\n@Directive({\r\n selector: '[dynamicField]',\r\n})\r\nexport class DynamicFieldDirective implements Field, OnChanges, OnInit {\r\n @Input()\r\n config: FieldConfig;\r\n\r\n @Input()\r\n group: FormGroup;\r\n\r\n component: ComponentRef;\r\n\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n private container: ViewContainerRef\r\n ) { }\r\n\r\n ngOnChanges() {\r\n if (this.component) {\r\n this.component.instance.config = this.config;\r\n this.component.instance.group = this.group;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (!components[this.config.type]) {\r\n const supportedTypes = Object.keys(components).join(', ');\r\n throw new Error(\r\n `Trying to use an unsupported type (${this.config.type}).\r\n Supported types: ${supportedTypes}`\r\n );\r\n }\r\n const component = this.resolver.resolveComponentFactory(components[this.config.type]);\r\n this.component = this.container.createComponent(component);\r\n this.component.instance.config = this.config;\r\n this.component.instance.group = this.group;\r\n }\r\n}","\n
\n \n {{ config.label }}\n \n
\n ","import { Component } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { Field } from '../../models/field.interface';\r\nimport { FieldConfig } from '../../models/field-config.interface';\r\n\r\n@Component({\r\n selector: 'form-button',\r\n styleUrls: ['form-button.component.scss'],\r\n template: `\r\n
\r\n \r\n {{ config.label }}\r\n \r\n
\r\n `,\r\n})\r\nexport class FormButtonComponent implements Field {\r\n config: FieldConfig;\r\n group: FormGroup;\r\n}","\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n ","import { Component } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { Field } from '../../models/field.interface';\r\nimport { FieldConfig } from '../../models/field-config.interface';\r\n\r\n@Component({\r\n selector: 'form-checkbox',\r\n styleUrls: ['form-checkbox.component.scss'],\r\n template: `\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n `,\r\n})\r\nexport class FormCheckboxComponent implements Field {\r\n config: FieldConfig;\r\n group: FormGroup;\r\n}","\n
\n \n \n
\n ","import { Component, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { Field } from '../../models/field.interface';\r\nimport { FieldConfig } from '../../models/field-config.interface';\r\n\r\n@Component({\r\n selector: 'form-currency',\r\n styleUrls: ['form-currency.component.scss'],\r\n template: `\r\n
\r\n \r\n \r\n
\r\n `,\r\n})\r\nexport class FormCurrencyComponent implements Field {\r\n config: FieldConfig;\r\n group: FormGroup;\r\n \r\n}","\n
\n \n \n
\n ","import { Component, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { Field } from '../../models/field.interface';\r\nimport { FieldConfig } from '../../models/field-config.interface';\r\n\r\n@Component({\r\n selector: 'form-date',\r\n styleUrls: ['form-date.component.scss'],\r\n template: `\r\n
\r\n \r\n \r\n
\r\n `,\r\n})\r\nexport class FormDateComponent implements Field {\r\n config: FieldConfig;\r\n group: FormGroup;\r\n}","\n
\n \n \n
\n \n ","import { Component, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { Field } from '../../models/field.interface';\r\nimport { FieldConfig } from '../../models/field-config.interface';\r\n\r\n@Component({\r\n selector: 'form-input-selector',\r\n styleUrls: ['form-input-selector.component.scss'],\r\n template: `\r\n
\r\n \r\n \r\n
\r\n \r\n `,\r\n})\r\nexport class FormInputSelectorComponent implements Field {\r\n config: FieldConfig;\r\n group: FormGroup;\r\n}","\n
\n \n \n
\n ","import { Component, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { Field } from '../../models/field.interface';\r\nimport { FieldConfig } from '../../models/field-config.interface';\r\n\r\n@Component({\r\n selector: 'form-input',\r\n styleUrls: ['form-input.component.scss'],\r\n template: `\r\n
\r\n \r\n \r\n
\r\n `,\r\n})\r\nexport class FormInputComponent implements Field {\r\n config: FieldConfig;\r\n group: FormGroup;\r\n}","\n
\n \n \n
\n ","import { Component, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { Field } from '../../models/field.interface';\r\nimport { FieldConfig } from '../../models/field-config.interface';\r\n\r\n@Component({\r\n selector: 'form-pass',\r\n styleUrls: ['form-pass.component.scss'],\r\n template: `\r\n
\r\n \r\n \r\n
\r\n `,\r\n})\r\nexport class FormPassComponent implements Field {\r\n config: FieldConfig;\r\n group: FormGroup;\r\n}","\n
\n \n \n
\n ","import { Component } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { Field } from '../../models/field.interface';\r\nimport { FieldConfig } from '../../models/field-config.interface';\r\n\r\n@Component({\r\n selector: 'form-select',\r\n styleUrls: ['form-select.component.scss'],\r\n template: `\r\n
\r\n \r\n \r\n
\r\n `,\r\n })\r\n export class FormSelectComponent implements Field {\r\n config: FieldConfig;\r\n group: FormGroup;\r\n }","\n \n \n \n \n ","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\r\nimport { FormGroup, FormBuilder, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { FieldConfig } from '../dynamic-form/models/field-config.interface';\r\nimport {CurrencyPipe} from '../../../currency.pipe';\r\n\r\nexport const DATE_VALUE_ACCESSOR: any={\r\n provide: NG_VALUE_ACCESSOR\r\n};\r\n\r\n@Component({\r\n exportAs: 'dynamicForm',\r\n selector: 'dynamic-form',\r\n styleUrls: ['dynamic-form.component.scss'],\r\n providers: [CurrencyPipe],\r\n template: `\r\n \r\n \r\n \r\n \r\n `\r\n})\r\nexport class DynamicFormComponent implements OnInit {\r\n @Input()\r\n config: any[] = [];\r\n @Output()\r\n submitted: EventEmitter = new EventEmitter();\r\n form: FormGroup;\r\n\r\n get controls(){return this.config.filter(({type})=> type!== 'button'); }\r\n get changes() { return this.form.valueChanges; }\r\n get valid() { return this.form.valid; }\r\n get value() { return this.form.value; }\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private cpipe: CurrencyPipe\r\n ){}\r\n\r\n ngOnInit(){\r\n this.form=this.createGroup();\r\n }\r\n\r\n createGroup(){\r\n const group = this.fb.group({});\r\n this.controls.forEach(control => group.addControl(control.name, this.createControl(control)))\r\n return group;\r\n }\r\n\r\n createControl(config: FieldConfig){\r\n const {disabled, validation, value} = config;\r\n return this.fb.control({disabled, value}, validation);\r\n }\r\n\r\n setDisabled(name: string, disable: boolean) {\r\n if (this.form.controls[name]) {\r\n const method = disable ? 'disable': 'enable';\r\n this.form.controls[name][method]();\r\n return;\r\n }\r\n \r\n this.config = this.config.map((item) => {\r\n if (item.name === name) {\r\n item.disabled = disable;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n setValue(name: string, value: any) {\r\n //let v=this.cpipe.transform(value);\r\n this.form.controls[name].setValue(value, {emitEvent: true});\r\n }\r\n\r\n patchValue(name: string, value: any) {\r\n this.form.controls[name].patchValue(value, {emitEvent: true});\r\n }\r\n}","import { NgModule } from '@angular/core';\nimport { CommonModule, formatDate } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { DynamicFormComponent} from './containers/dynamic-form/dynamic-form.component';\nimport {FormButtonComponent} from './containers/dynamic-form/components/form-button/form-button.component';\nimport {FormInputComponent} from './containers/dynamic-form/components/form-input/form-input.component';\nimport {FormSelectComponent} from './containers/dynamic-form/components/form-select/form-select.component';\nimport {FormDateComponent} from './containers/dynamic-form/components/form-date/form-date.component';\nimport {FormCheckboxComponent} from './containers/dynamic-form/components/form-checkbox/form-checkbox.component';\nimport {DynamicFieldDirective} from './containers/dynamic-form/components/dynamic-field/dynamic-field.directive';\nimport { FormPassComponent } from './containers/dynamic-form/components/form-pass/form-pass.component';\nimport {FormInputSelectorComponent} from './containers/dynamic-form/components/form-input-selector/form-input-selector.component';\nimport {FormCurrencyComponent} from './containers/dynamic-form/components/form-currency/form-currency.component';\nimport {CurrencyMaskDirective} from '../currency-mask.directive';\n\n@NgModule({\n imports: [\n CommonModule, ReactiveFormsModule\n ],\n declarations: [\n DynamicFieldDirective,\n DynamicFormComponent,\n FormButtonComponent,\n FormInputComponent,\n FormSelectComponent,\n FormDateComponent,\n FormCheckboxComponent,\n FormPassComponent,\n FormInputSelectorComponent,\n FormCurrencyComponent\n ],\n exports: [\n DynamicFormComponent,\n \n ],\n entryComponents:[\n FormButtonComponent,\n FormInputComponent,\n FormSelectComponent,\n FormDateComponent,\n FormCheckboxComponent,\n FormPassComponent,\n FormInputSelectorComponent,\n FormCurrencyComponent\n ],\n})\nexport class DynamicFormModuleModule { \n\n}\n","
\n
\n
\n
\n

Email Account

\n
\n
\n
\n
\n Please use Gmail Account For Fast Sending\n
\n
","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { GeneralServiceService } from '../general-service.service';\nimport Swal from 'sweetalert2';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'app-email-settings',\n templateUrl: './email-settings.component.html',\n styleUrls: ['./email-settings.component.css']\n})\nexport class EmailSettingsComponent implements OnInit, OnDestroy {\n frmEmail: FormGroup;\n showLoading: boolean;\n data: Subscription;\n\n constructor(\n private fb: FormBuilder,\n private genServ: GeneralServiceService,\n ) { }\n\n ngOnInit() {\n this.initForm();\n }\n\n initForm() {\n this.frmEmail = this.fb.group({\n email: ['', Validators.required],\n password: ['', Validators.required]\n });\n }\n\n onSubmit() {\n this.showLoading = true;\n let f = this.frmEmail;\n let a = f.get('email').value;\n let b = f.get('password').value;\n let p = `call updateEmail('${a}','${b}')`;\n this.data = this.genServ.getConfigResponse(p).subscribe((r) => {\n let x = parseInt(r.body);\n if (x > 0) {\n Swal.fire(\"Updated Record!\", \"Email Account has been updated\", \"success\");\n }\n }, (e) => {\n Swal.fire(\"Err!\", e['message'], \"error\");\n this.showLoading = false;\n }, () => this.showLoading = false);\n }\n\n ngOnDestroy(): void {\n if (this.data) {\n this.data.unsubscribe();\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport {Employee} from './employee';\nimport { Observable, of } from 'rxjs';\nimport { MessageService } from './message.service';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {catchError, map, tap, delay} from 'rxjs/operators';\n\nconst httpOptions={\n headers: new HttpHeaders({'Content-Type': 'application/json'})\n};\n\n@Injectable({providedIn: 'root'})\nexport class EmployeeService {\n\n //private employeesUrl='http://192.168.1.62/SystemBackEnd/api/employees';\n private employeesUrl='http://localhost:36076/api/employees';\n //private empAddUrl='http://localhost:36076/api/employees/AddEmployee';\n delayMs=500;\n\n constructor(\n private http: HttpClient,\n private messageService:MessageService) { }\n\n /* getEmployees(page?: number, pageSize?: number): Observable{\n return this.http.get(`${this.employeesUrl}/getEmployeesLimit?pageNumber=${page}&pageSize=${pageSize}`)\n //return this.http.get(`http://localhost:13778/api/income/Test`)\n //return this.http.get(`http://localhost:13778/api/employees/getEmployees`)\n .pipe(\n tap(employees => this.log('fetched employees')),\n catchError(this.handleError('getEmployees', []))\n );\n } */\n\n getEmployee(code: string): Observable {\n const url = `${this.employeesUrl}/getEmp?code=${code}`;\n return this.http.get(url).pipe(\n tap(_ => this.log(`fetched employee code=${code}`)),\n catchError(this.handleError('getEmployee code=${code}'))\n );\n }\n\n getEmployeeById(id: number): Observable {\n const url = `${this.employeesUrl}/getEmp?id=${id}`;\n return this.http.get(url);\n }\n\n addEmployee(employee: Employee): Observable{\n return this.http.post(this.employeesUrl, employee, httpOptions).pipe(\n tap((employee: Employee) => this.log(`added employee w/ id=${employee.id}`)),\n catchError(this.handleError('addEmployee'))\n );\n }\n\n private handleError (operation = 'operation', result?: T) {\n return (error: any): Observable => {\n \n // TODO: send the error to remote logging infrastructure\n console.error(error); // log to console instead\n \n // TODO: better job of transforming error for user consumption\n this.log(`${operation} failed: ${error.message}`);\n \n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n\n updateEmployee(employee: Employee): Observable{\n return this.http.put(`${this.employeesUrl}/updateEmployee`, employee, httpOptions).pipe(\n tap(_ => this.log(`updated employee id=${employee.id}`)),\n catchError(this.handleError('updateEmployee'))\n );\n }\n\n searchEmployees(term: string, pageNumber: number, pageSize: number): Observable{\n if(!term.trim()){\n return of([]);\n }\n return this.http.get(`${this.employeesUrl}/getEmployeesByTerm?term=${term}&pageNumber=${pageNumber}&pageSize=${pageSize}`).pipe(\n tap(_ => this.log(`found employees matching \"${term}\"`)),\n catchError(this.handleError('searchEmployees', []))\n );\n }\n\n private log(message: string){\n this.messageService.add('EmployeeService ' + message);\n console.log('EmployeeService ' + message);\n }\n}\n","
\n
\n \n \n
\n","import {\n Component,\n OnInit,\n ViewChild,\n AfterViewInit,\n OnDestroy\n} from \"@angular/core\";\nimport { Validators } from \"@angular/forms\";\n\nimport { GeneralServiceService } from \"../general-service.service\";\nimport { DataEntryBaseComponent } from \"../data-entry-base/data-entry-base.component\";\nimport { Dsmodel } from \"../dsmodel.Interface\";\nimport { Subscription } from \"rxjs\";\nimport Swal from \"sweetalert2\";\n\n@Component({\n selector: \"app-employees\",\n templateUrl: \"./employees.component.html\",\n styleUrls: [\"./employees.component.css\"]\n})\nexport class EmployeesComponent implements OnInit, OnDestroy {\n @ViewChild(DataEntryBaseComponent, { static: false })\n popTBl: DataEntryBaseComponent;\n\n prEmployee: any;\n selectedData: any = {};\n config: any;\n position: any = [];\n showLoading: boolean;\n subs: Subscription;\n\n constructor(private genServ: GeneralServiceService) {\n this.getPosition();\n }\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n this.popTBl.config = this.config;\n this.reloadData();\n }\n\n reloadData() {\n this.popTBl.refresh();\n }\n\n initProperties() {\n //Employee Form PropertieS\n var tblHeader = [\n { key: \"code\", value: \"Code\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" },\n { key: \"position\", value: \"Position\", hKey: \"position\" },\n { key: \"active\", value: \"Active\", hKey: \"active\" }\n ];\n this.prEmployee = {\n table: \"employee\",\n tblHeader: tblHeader,\n title: \"Employee\",\n ps: 10,\n tblHeaderHidden:\n \"basicpay,pagibig,sss,philhealth,autoSSS,autoPagibig,autoPhilhealth\"\n };\n }\n\n getSelected(event) {\n this.selectedData = event;\n }\n\n getPosition() {\n this.showLoading = true;\n let params: Dsmodel = {\n cols: \"id,code,name as v\",\n table: \"position\",\n order: \"id desc\",\n limit: `0, 10000`,\n wc: \"\",\n join: \"\"\n };\n this.subs = this.genServ.getDataWithJoinClause(params).subscribe(\n d => {\n this.position = d;\n this.config = [\n {\n type: \"input\",\n label: \"Code\",\n name: \"code\",\n placeholder: \"Required*, [letters, number] minimun length 1\",\n value: \"\",\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: \"input\",\n label: \"Name\",\n name: \"name\",\n placeholder: \"Enter Employee Name*\",\n value: \"\",\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: \"select\",\n label: \"Position\",\n name: \"position\",\n options: this.position,\n placeholder: \"Select an option*\",\n value: \"\",\n validation: [Validators.required]\n },\n {\n type: \"currency\",\n label: \"Basic Pay\",\n name: \"basicpay\",\n placeholder: \"Enter Basic Pay*\",\n value: \"\",\n validation: [Validators.required, Validators.pattern(\"^[0-9.]*$\")]\n },\n {\n type: \"input\",\n label: \"Pagibig\",\n name: \"pagibig\",\n placeholder: \"Enter Pagibig Number*\",\n value: \"\",\n validation: []\n },\n {\n type: \"input\",\n label: \"SSS\",\n name: \"sss\",\n placeholder: \"Enter SSS Number*\",\n value: \"\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Philhealth\",\n name: \"philhealth\",\n placeholder: \"Enter Philhealth Number*\",\n value: \"\",\n validation: []\n },\n {\n type: \"checkbox\",\n label: \"Active Employee?\",\n name: \"active\",\n value: \"\"\n },\n {\n type: \"checkbox\",\n label: \"Auto Deduct SSS?\",\n name: \"autoSSS\",\n value: \"\"\n },\n {\n type: \"checkbox\",\n label: \"Auto Deduct Philhealth?\",\n name: \"autoPhilhealth\",\n value: \"\"\n },\n {\n type: \"checkbox\",\n label: \"Auto Deduct Pagibig?\",\n name: \"autoPagibig\",\n value: \"\"\n },\n {\n type: \"button\",\n label: \"Save\",\n name: \"submit\",\n disabled: true,\n title: \"Employee\"\n }\n ];\n },\n () => (this.showLoading = false),\n () => {\n this.showLoading = false;\n }\n );\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p).subscribe(\n resp => {\n let x = parseInt(resp.body);\n if (x == 2) {\n alert(`Duplicated Code`);\n } else if (x == 1) {\n alert(`Updated Record!`);\n } else if (x == 3) {\n alert(`Duplicated Name`);\n }\n },\n resp => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n }\n\n delete(e) {\n this.showLoading = true;\n const p = `CALL deleteEmployee(${e})`;\n this.genServ.getConfigResponse(p).subscribe(\n d => {\n const a = parseInt(d.body);\n if (a) {\n Swal.fire(\"Record updated!\", \"Successfully deleted\", \"success\");\n this.reloadData();\n } else {\n Swal.fire(\n \"Cannot Delete!\",\n \"Transaction has already been made.\",\n \"error\"\n );\n }\n },\n err => {\n console.debug(err);\n Swal.fire(`Error ${err.status}`, err.error.ExceptionMessage, \"error\");\n this.showLoading = false;\n },\n () => {\n this.showLoading = false;\n }\n );\n }\n\n submit(event) {\n let value = event.value;\n let v = `'${value.code}','${value.name}','${value.position}', '${\n value.basicpay\n }',\n '${value.pagibig}','${value.sss}',\n '${value.philhealth}',${value.active ? 1 : 0},${value.autoSSS ? 1 : 0},${\n value.autoPhilhealth ? 1 : 0\n },${value.autoPagibig ? 1 : 0}`;\n let p = \"\";\n\n if (event.mode == 1) {\n p = `call sp_InsertToEmp(${v})`;\n } else if (event.mode == 2) {\n v += `,${event.id},'${this.selectedData.data.code}','${this.selectedData.data.name}'`;\n p = `call sp_UpdateEmp(${v})`;\n }\n this.showConfigResponse(p);\n } //submit\n\n ngOnDestroy(): void {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n} //class\n","\n
\n
\n
\n
\n
\n Entry Form\n
\n
\n \n \n
\n\n

Email:
\n \n \n

\n\n \n\n\n
\n Enroll Now!\n
\n
\n
\n

\n
\n

\n
\n
Payment Info
\n\n
\n
Name: {{uName}}
\n \n

Miscellaneous Fees: {{selectedLevel.mf}}

\n

Other Fees: {{selectedLevel.of}}

\n

Laboratory Fees: {{selectedLevel.lf}}

\n
\n
\n

Total Assessment: {{selectedLevel.assessmenttot}}

\n

Down Payment: {{selectedLevel.dp}}

\n
\n
\n
\n
\n
\n \n
\n","//import { Component, OnInit } from '@angular/core';\nimport { Component, OnInit, ViewChild } from '@angular/core';\n//import { Component, OnInit, ViewChild, AfterContentInit, AfterViewInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport Swal from \"sweetalert2\";\nimport { GeneralServiceService } from '../general-service.service';\nimport { PopulateTableForTransComponent } from '../populate-table-for-trans/populate-table-for-trans.component';\nimport { Globals } from '../globals';\nimport { TextBoxComponent } from '../text-box/text-box.component';\nimport { PopulateTextboxComponent } from '../populate-textbox/populate-textbox.component';\nimport { FormBuilder } from '@angular/forms';\nimport { Dsmodel } from '../dsmodel.Interface';\nimport { formatCurrency } from '@angular/common';\nimport { DataEntryBaseComponent } from \"../data-entry-base/data-entry-base.component\";\n\n\n\n@Component({\n selector: 'app-enrollment',\n templateUrl: './enrollment.component.html',\n styleUrls: ['./enrollment.component.css']\n})\nexport class EnrollmentComponent implements OnInit {\n // constructor() { }\n\n@ViewChild(\"popLevelX\", { static: false }) popLevel: PopulateTextboxComponent;\n@ViewChild('popAmtX', { static: false }) txtBox: TextBoxComponent;\n@ViewChild('popDPX', { static: false }) txtBoxDP: TextBoxComponent;\n@ViewChild(DataEntryBaseComponent, { static: false })\npopTBl: DataEntryBaseComponent;\n\nselectedLevel: any = {};\nprEnroll: any;\n\n\n// grid display\ntblData = [];\ntblHeader = [\n\n // value = header of grid\n // hkey = property of selected records fr d grid\n { value: \"Date\", hKey: \"date\", o: 1 },\n { value: \"Name\", hKey: \"name\", o: 1 },\n { value: \"Grade Level\", hKey: \"levelname\", o: 1 },\n { value: \"DP\", hKey: \"dp\", o: 1 },\n { value: \"Assessment\", hKey: \"assessmenttot\", o: 1 }\n];\ncaption = \"\";\nselectedSub: any;\n//selectedBD: any;\nuName : any;\namt: any;\nDP: any;\nDPget: any;\nperiodNewGet: any;\nperiodNew: any;\n\nprLevel: {\n table: string;\n tableHeader: { key: string; value: string; hKey: string }[];\n label: string;\n tblHeaderHidden: string;\n wc: number;\n};\nprAmt: any;\nprDP: any;\n\nfrmEnroll: any;\nmode: number;\n//frmBD: any;\n\n//constructor(private genServ: GeneralServiceService) {}\nconstructor(\n private genServ: GeneralServiceService, \n public global: Globals,\n private fb: FormBuilder) {\n this.frmEnroll = this.fb.group({\n });\n \n}\nngOnInit() {\n this.initProperties();\n // this.getData();\n this.uName = this.global.username;\n }\n\n ngAfterViewInit() {\n let a = window.localStorage.getItem('onEnrollLevel') || \"\";\n let x = JSON.parse(a);\n this.popLevel.selectedData = x;\n this.popLevel.fnSelectData(x);\n this.selectedLevel = x;\n }\n// for the search object\ninitProperties() {\n \n var leveltblHeader = [\n { key: \"code\", value: \"Code\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" },\n { key: \"assessmenttot\", value: \"Assessment Total\", hKey: \"assessmenttot\" },\n { key: \"dp\", value: \"Down Payment\", hKey: \"dp\" }\n ];\n\n this.prLevel = {\n table: \"level\", tableHeader: leveltblHeader,\n label: \"Grade Level\", tblHeaderHidden: \"assessmenttot,dp,tf,mf,of,lf\", wc: 0\n };\n\n \n this.prAmt = {\n label: \"Assessment Total\",\n valueX: 0.00\n };\n\n this.prDP = {\n label: \"Down Payment: \",\n valueX: 0.00\n };\n\n}\n\n // selected data event(html)\n // this is for the where clause of the object seacrh link to the display of records(grid)\n \n\n getAmt(event) {\n this.amt = event;\n }\n getDP(event) {\n this.DP = event;\n }\n\n \n getLevel(event) {\n \n if (event != undefined) {\n this.selectedLevel = event;\n window.localStorage.setItem('onEnrollLevel', JSON.stringify(event));\n //this.DPget = this.selectedLevel.dp;\n //alert(this.DPget);\n }\n }\n\n // select statement to provide records on grid\n getData(wc?) {\n let params: Dsmodel = {\n cols: \"e.date,u.name,l.name levelname, l.assessmenttot,l.dp,l.tf,l.mf,l.of,l.lf\",\n table: \"enrollment e\",\n wc: wc ? wc : \"\",\n order: \"e.id desc\",\n limit: `0, 10000`,\n join: \"left join level l on l.id =e.level left join sub u on u.id=e.sub\"\n };\n this.genServ.getDataWithJoinClause(params).subscribe(d => {\n this.tblData = d;\n }); \n }\n \n onSubmit() {\n \n // nsub , nlevel ,nperiod ,nassessmenttot )\n let v = `${this.global.userid}, ${this.selectedLevel.id}, ${this.global.periodid}, ${this.selectedLevel.assessmenttot}`;\n let p = `call enrollment(${v})`;\n \n if (this.selectedLevel.id==0)\n {\n Swal.fire(\"Grade Level!\", \"No grade Level selected. Thank you. \", \"error\");\n } else if(this.selectedLevel.id>0){\n this.showConfigResponse(p);\n }\n \n } //submit\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p).subscribe(\n resp => {\n let x = parseInt(resp.body);\n if (x == 0) {\n Swal.fire(\"Duplicate!\", \"Please deposit you payment to BPI Account# 123213-13123123-2131 and email the scanned copy to spcmfinance@yahoo.com. You can check your student ledger if your payment has been confirmed. Thank you. \", \"error\"); \n } else if (x > 0) {\n Swal.fire(\"Enrollment Successful!\", \"Please deposit you payment to BPI Account# 123213-13123123-2131 and email the scanned copy to spcmfinance@yahoo.com. You can check your student ledger if your payment has been confirmed. Thank you. \", \"success\");\n }\n },\n resp => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n }\n\n \n reloadData() {\n this.popTBl.refresh();\n }\n\n getUserName()\n {\n this.uName = this.global\n }\n\n onSelect(e) {\n this.selectedSub = e.data;\n console.debug(e);\n }\n\n}\n","
\n

Message

\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n \n
","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\nimport { GeneralServiceService } from '../general-service.service';\nimport Swal from 'sweetalert2';\n\n@Component({\n selector: 'app-frm-approve',\n templateUrl: './frm-approve.component.html',\n styleUrls: ['./frm-approve.component.css']\n})\nexport class FrmApproveComponent implements OnInit {\n @Input() propertiesX: any;\n @Output() onSuccess = new EventEmitter();\n approvalForm: FormGroup;\n mode = 0;\n title = \"\";\n\n constructor(\n private genServ: GeneralServiceService,\n public ac: NgbActiveModal,\n private fb: FormBuilder\n ) {\n\n }\n\n ngOnInit() {\n this.approvalForm = this.fb.group({\n\n });\n\n /* if (this.title === 'Overtime') {\n const v = [Validators.required, Validators.pattern(\"^[0-9.]*$\")];\n this.approvalForm.addControl('amount', new FormControl('', v));\n } else {\n this.approvalForm.removeControl('amount');\n }\n this.approvalForm.updateValueAndValidity(); */\n }\n\n get amount() {\n return this.approvalForm.get('amount') as FormControl;\n }\n\n onDecline() {\n this.onSuccess.emit({ mode: 1 });\n this.ac.close();\n }\n\n onCancel() {\n this.ac.close();\n }\n\n onDelete() {\n this.onSuccess.emit({ mode: 2 });\n this.ac.close();\n }\n\n async onSubmit() {\n const { value: amount } = await Swal.fire({\n title: 'Enter Amount Deposited',\n input: 'number',\n inputPlaceholder: 'Amount'\n }).then();\n if (amount) {\n this.onSuccess.emit({ data: amount, mode: 1 });\n this.ac.close();\n } else {\n Swal.fire(\"Please enter the amount deposited based on the scanned deposit slip or online banking transaction!\");\n }\n }\n\n\n}\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpParams,\r\n HttpResponse,\r\n HttpErrorResponse\r\n} from \"@angular/common/http\";\r\nimport { Dsmodel, MailInfo } from \"./dsmodel.Interface\";\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ \"Content-Type\": \"application/json\" })\r\n};\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class GeneralServiceService {\r\n loggedInStatus = false;\r\n //genUrl: any; \r\n\r\n //private genUrl='http://localhost:180/SystemBackEnd/api/general';\r\n //private apiUrl='http://localhost:180/SystemBackEnd/api/';\r\n\r\n //for online\r\n private apiUrl = \"http://23.254.202.174:88/api/\";\r\n private genUrl = \"http://23.254.202.174:88/api/general\";\r\n\r\n //for localhost \r\n //private apiUrl = 'http://localhost:36076/api/';\r\n //private genUrl = 'http://localhost:36076/api/general';\r\n\r\n //private apiUrl='http://localhost:3001/api/';\r\n //private genUrl='http://localhost:3001/general';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n login(dataX: Object) {\r\n let url = `${this.genUrl}/login`;\r\n return this.http.post(url, dataX, httpOptions);\r\n }\r\n\r\n setLoggedIn(v) {\r\n this.loggedInStatus = v;\r\n }\r\n\r\n get isLoggedIn() {\r\n return this.loggedInStatus;\r\n }\r\n\r\n numFormat(n: number) {\r\n return n\r\n .toFixed(2)\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n deleteRecord(id: number, table: string, wc?: string) {\r\n let url = \"\";\r\n if (wc) {\r\n url = `${this.genUrl}/Delete?id=${id}&table=${table}&wc=${wc}`;\r\n } else {\r\n url = `${this.genUrl}/Delete?id=${id}&table=${table}`;\r\n }\r\n return this.http.delete(url, httpOptions);\r\n }\r\n\r\n getData(\r\n table: string,\r\n cols: string,\r\n pn: number,\r\n ps: number,\r\n term?: string\r\n ): Observable {\r\n var u = \"\";\r\n if (!term) {\r\n u = `${this.genUrl}/getDataLimit?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}`;\r\n } else {\r\n u = `${this.genUrl}/searchData?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}&term=${term}`;\r\n }\r\n return this.http.get(u);\r\n }\r\n\r\n getDataLimit(\r\n table: string,\r\n cols: string,\r\n pn: number,\r\n ps: number,\r\n wC?: string,\r\n term?: any\r\n ): Observable {\r\n var u = \"\";\r\n if (!term) {\r\n u = `${this.genUrl}/getDataLimit?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}`;\r\n } else if (typeof term === \"string\") {\r\n //u=`${this.genUrl}/searchData2?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}&wC=${wC}&term=${term}`;\r\n } else if (typeof term === \"number\") {\r\n //u=`${this.genUrl}/filterDataby?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}&wC=${wC}&term=${term}`;\r\n }\r\n return this.http.get(unescape(u));\r\n }\r\n\r\n FilterData(\r\n table: string,\r\n cols: string,\r\n pn: number,\r\n ps: number,\r\n wC: string[],\r\n term: any[]\r\n ): Observable {\r\n let params = new HttpParams();\r\n params = params.append(\"table\", `${table}`);\r\n params = params.append(\"cols\", `${cols}`);\r\n params = params.append(\"pn\", `${pn}`);\r\n params = params.append(\"ps\", `${ps}`);\r\n params = params.append(\"wC\", `${wC}`);\r\n params = params.append(\"term\", `${term}`);\r\n //var u=`${this.genUrl}/FilterData?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}&wC=${wC}&term=${term}`;\r\n var u = `${this.genUrl}/FilterData`;\r\n return this.http.get(u, { params });\r\n }\r\n\r\n GetDataForTrans(\r\n table: string,\r\n cols: string,\r\n pn: number,\r\n ps: number,\r\n wC: string[],\r\n term: any[],\r\n lj1: string,\r\n lj2: string,\r\n lj3: string,\r\n lj4: string\r\n ): Observable {\r\n let params = new HttpParams();\r\n params = params.append(\"table\", `${table}`);\r\n params = params.append(\"cols\", `${cols}`);\r\n params = params.append(\"pn\", `${pn}`);\r\n params = params.append(\"ps\", `${ps}`);\r\n params = params.append(\"wC\", `${wC}`);\r\n params = params.append(\"term\", `${term}`);\r\n params = params.append(\"lj1\", `${lj1}`);\r\n params = params.append(\"lj2\", `${lj2}`);\r\n params = params.append(\"lj3\", `${lj3}`);\r\n params = params.append(\"lj4\", `${lj4}`);\r\n //var u=`${this.genUrl}/FilterData?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}&wC=${wC}&term=${term}`;\r\n /* if(typeof(term)==\"number\"){\r\n\r\n } */\r\n var u = `${this.genUrl}/GetDataForTrans`;\r\n return this.http.get(u, { params });\r\n }\r\n\r\n GetDataForTransWOCL(\r\n table: string,\r\n cols: string,\r\n lj1,\r\n lj2,\r\n lj3,\r\n lj4\r\n ): Observable {\r\n let params = new HttpParams();\r\n params = params.append(\"table\", `${table}`);\r\n params = params.append(\"cols\", `${cols}`);\r\n params = params.append(\"lj1\", `${lj1}`);\r\n params = params.append(\"lj2\", `${lj2}`);\r\n params = params.append(\"lj3\", `${lj3}`);\r\n params = params.append(\"lj4\", `${lj4}`);\r\n //var u=`${this.genUrl}/FilterData?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}&wC=${wC}&term=${term}`;\r\n var u = `${this.genUrl}/GetDataForTransWOCL`;\r\n return this.http.get(u, { params });\r\n }\r\n\r\n InserData(c: string[], v: string[], fnName: string): Observable {\r\n let params = new HttpParams();\r\n params = params.append(\"w\", `${c}`);\r\n params = params.append(\"v\", `${v}`);\r\n params = params.append(\"fnName\", `${fnName}`);\r\n var u = `${this.genUrl}/InsertData?w=${c}&v=${v}&fnName=${fnName}`;\r\n return this.http.post(u, httpOptions);\r\n }\r\n\r\n getSData(table: string, term: string, cols): any {\r\n var u = `${this.genUrl}/GetSData?table=${table}&term=${term}&cols=${cols}`;\r\n return this.http.get(u);\r\n }\r\n\r\n getSDataById(table: string, id: number, cols): any {\r\n var u = `${this.genUrl}/GetSDataById?table=${table}&id=${id}&cols=${cols}`;\r\n return this.http.get(u);\r\n }\r\n\r\n getDataTest(\r\n table: string,\r\n cols: string,\r\n pn: number,\r\n ps: number,\r\n term?: string\r\n ) {\r\n var u = \"\";\r\n if (!term) {\r\n u = `${this.genUrl}/getData2?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}`;\r\n } else {\r\n u = `${this.genUrl}/searchData?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}&term=${term}`;\r\n }\r\n return this.http.get(u);\r\n }\r\n\r\n getIdFornav(table: string, wc: any[], term: any[]) {\r\n var u = `${this.genUrl}/GetIdForNav?table=${table}&wC=${wc}&term=${term}`;\r\n return this.http.get(u);\r\n }\r\n\r\n getIdFornavNoWc(table: string) {\r\n var u = `${this.genUrl}/GetIdForNavNoWc?table=${table}`;\r\n return this.http.get(u);\r\n }\r\n\r\n GetDataNoLimit(\r\n table: string,\r\n cols: string,\r\n wC?: string[],\r\n term?: any[]\r\n ): Observable {\r\n let params = new HttpParams();\r\n params = params.append(\"table\", `${table}`);\r\n params = params.append(\"cols\", `${cols}`);\r\n //var u=`${this.genUrl}/FilterData?table=${table}&cols=${cols}&pn=${pn}&ps=${ps}&wC=${wC}&term=${term}`;\r\n let u = ``;\r\n if (wC) {\r\n params = params.append(\"wC\", `${wC}`);\r\n params = params.append(\"term\", `${term}`);\r\n u = `${this.genUrl}/GetDataNoLimit`;\r\n } else {\r\n u = `${this.genUrl}/GetDataNoLimitNoWc`;\r\n }\r\n return this.http.get(u, { params });\r\n }\r\n\r\n GetDataWithOp(\r\n table: string,\r\n cols: string,\r\n wC?: string[],\r\n term?: any[],\r\n op?: string[]\r\n ) {\r\n let params = new HttpParams();\r\n params = params.append(\"table\", `${table}`);\r\n params = params.append(\"cols\", `${cols}`);\r\n params = params.append(\"wC\", `${wC}`);\r\n params = params.append(\"term\", `${term}`);\r\n params = params.append(\"op\", `${op}`);\r\n let u = `${this.genUrl}/GetDataWithOp`;\r\n return this.http.get(u, { params });\r\n }\r\n\r\n Test() {\r\n let x;\r\n var u = `${this.genUrl}/Test?a=call sp_InsertToDed('sss3', 'ssa')`;\r\n //return this.showConfigResponse(u);\r\n }\r\n\r\n uploadPic(file) {\r\n var u = `${this.apiUrl}fileupload/UploadFiles`;\r\n this.http.post(u, file).subscribe(\r\n data => {\r\n alert(data[\"Name\"]);\r\n },\r\n (err: HttpErrorResponse) => {\r\n alert(err.message); // SHOW ERRORS IF ANY.\r\n }\r\n );\r\n }\r\n\r\n getImage(id: number): Observable {\r\n var u = `${this.apiUrl}fileupload/DownloadFile?id=${id}`;\r\n return this.http.get(u, { responseType: \"blob\" });\r\n }\r\n\r\n getImageByCode(id: string): Observable {\r\n var u = `${this.apiUrl}fileupload/DownloadFileByCode?id=${id}`;\r\n return this.http.get(u, { responseType: \"blob\" });\r\n }\r\n\r\n getConfigResponse(p): Observable> {\r\n var u = `${this.genUrl}/Test?a=${p}`;\r\n return this.http.get(u, { observe: \"response\" });\r\n }\r\n\r\n GetSpResponse2return(p): Observable> {\r\n var u = `${this.genUrl}/GetSpResponse2return?a=${p}`;\r\n return this.http.get(u, { observe: \"response\" });\r\n }\r\n\r\n GetDataUnionAllTablesWithJoin(empId: number, periodId: number) {\r\n let params = new HttpParams();\r\n params = params.append(\"empId\", `${empId}`);\r\n params = params.append(\"periodId\", `${periodId}`);\r\n var u = `${this.genUrl}/GetDataUnionAllTablesWithJoin`;\r\n return this.http.get(u, { params });\r\n }\r\n\r\n GetDataUnion(\r\n table: string,\r\n joinTable: string,\r\n table2: string,\r\n tjr: string,\r\n periodX: number,\r\n isDed: boolean\r\n ) {\r\n let params = new HttpParams();\r\n params = params.append(\"table\", `${table}`);\r\n params = params.append(\"joinTable\", `${joinTable}`);\r\n params = params.append(\"table2\", `${table2}`);\r\n params = params.append(\"tjr\", `${tjr}`);\r\n params = params.append(\"periodX\", `${periodX}`);\r\n params = params.append(\"isDed\", `${isDed}`);\r\n var u = `${this.genUrl}/GetDataUnion`;\r\n return this.http.get(u, { params });\r\n }\r\n\r\n getIpAddress(): Observable> {\r\n var u = `https://api.ipify.org/?format=json`;\r\n return this.http.get(u, { observe: \"response\" });\r\n }\r\n\r\n GetDataWithSingleWC(table, cols, wc, term) {\r\n let params = new HttpParams();\r\n params = params.append(\"table\", `${table}`);\r\n params = params.append(\"cols\", `${cols}`);\r\n params = params.append(\"w\", `${wc}`);\r\n params = params.append(\"term\", `${term}`);\r\n var u = `${this.genUrl}/GetDataWithSingleWC`;\r\n return this.http.get(u, { params });\r\n }\r\n\r\n getJSON(): Observable {\r\n return this.http.get(\"./assets/kon.json\");\r\n }\r\n\r\n login2(dataX: Object) {\r\n let url = `${this.genUrl}/login`;\r\n return this.http.post(url, dataX, httpOptions);\r\n }\r\n\r\n callSP(dataX: Object) {\r\n let url = `${this.genUrl}/callSP`;\r\n return this.http.post(url, dataX, httpOptions);\r\n }\r\n\r\n getDataWithClause(\r\n table: string,\r\n cols: string,\r\n wc: string,\r\n op: string,\r\n term: any,\r\n orderby: string,\r\n sort: string,\r\n pn: number,\r\n ps: number\r\n ): Observable {\r\n const u = `${this.genUrl}/getDataWithClause/${table}/${cols}/${wc}/${op}/${term}/${orderby}/${sort}/${pn}/${ps}`;\r\n return this.http.get(u, httpOptions);\r\n }\r\n\r\n getDataWithJoinClause(p: Dsmodel) {\r\n var querystring = require(\"querystring\");\r\n //const u = `${this.genUrl}/getDataWithJoinClause?` + querystring.stringify({ 'params': JSON.stringify(p) });\r\n const u = `${this.genUrl}/getDataWithJoinClause?`;\r\n return this.http.post(u, p, httpOptions);\r\n }\r\n\r\n sendEmail(data: MailInfo) {\r\n const u = `${this.apiUrl}email/SendMail`;\r\n return this.http.post(u, data, httpOptions);\r\n // return this.http.post(u, httpOptions);\r\n }\r\n\r\n sendMyMail() {\r\n const u = `${this.apiUrl}email/SendMyMail`; \r\n //return this.http.post(u, data, httpOptions);\r\n return this.http.post(u, httpOptions);\r\n }\r\n\r\n \r\n getDataWithWcOrder(p: Dsmodel) {\r\n const u = `${this.genUrl}/getDataWithWcOrder?cols=${p.cols}&table=${p.table}&wc=${p.wc}&order=${p.order}`;\r\n return this.http.get(u, httpOptions);\r\n }\r\n\r\n getDataWithOrderWOCL(p: Dsmodel) {\r\n const u = `${this.genUrl}/getDataWithOrderWOCL?cols=${p.cols}&table=${p.table}&order=${p.order}`;\r\n return this.http.get(u, httpOptions);\r\n }\r\n\r\n cd(date: Date): string {\r\n let a = date.getMonth() + 1;\r\n return `${date.getFullYear()}-${a < 10 ? \"0\" + a : a}-${date.getDate()}`;\r\n }\r\n\r\n insertData(p) {\r\n //const u = `${this.genUrl}/getDataWithJoinClause?` + querystring.stringify({ 'params': JSON.stringify(p) });\r\n const u = `${this.genUrl}/insert?`;\r\n return this.http.post(u, p, httpOptions);\r\n }\r\n\r\n updateData(p) {\r\n //const u = `${this.genUrl}/getDataWithJoinClause?` + querystring.stringify({ 'params': JSON.stringify(p) });\r\n const u = `${this.genUrl}/update?`;\r\n return this.http.post(u, p, httpOptions);\r\n }\r\n \r\n deleteV2(t, w) {\r\n let url = `${this.genUrl}/DeleteV2?table=${t}&wc=${w}`;\r\n return this.http.delete(url, httpOptions);\r\n }\r\n private handleError(operation = \"operation\", result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n console.log(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\n\r\n\r\n@Injectable()\r\nexport class Globals {\r\n period: any;\r\n periodNew: any;\r\n periodNameNew: any;\r\n acclvl: Object = { id: 0 };\r\n hitcLogo: any;\r\n isEmp: boolean = false;\r\n storage: any;\r\n userid: any;\r\n username: any;\r\n periodid: any;\r\n \r\n\r\n constructor(\r\n ) {\r\n this.storage = window.localStorage;\r\n \r\n this.getCurrentPeriodNew();\r\n //this.getCurrentPeriod();\r\n //this.getAcclvl();\r\n this.initProperties();\r\n }\r\n\r\n initProperties() {\r\n this.hitcLogo = \"data:image/png;base64,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\";\r\n }\r\n\r\n get accesslevel() {\r\n return this.acclvl;\r\n }\r\n\r\n set accesslevel(value) {\r\n this.acclvl = value;\r\n }\r\n\r\n getCurrentPeriodNew()\r\n {\r\n const currentPeriod: any = this.storage.getItem('periodNameNew');\r\n this.periodNameNew = currentPeriod;\r\n \r\n }\r\n\r\n getCurrentPeriod() {\r\n const currentPeriod: any = JSON.parse(this.storage.getItem('periodNameNew')) || { id: 0, name: 'No Selected School Year' };\r\n this.period = currentPeriod;\r\n }\r\n\r\n getAcclvl() {\r\n const lvl: any = this.storage.getItem('acclvl');\r\n this.acclvl = lvl;\r\n }\r\n\r\n \r\n\r\n public storeOnLocalStorage(value, key): void {\r\n this.storage.setItem(key, JSON.stringify(value));\r\n }\r\n}","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { MessageService } from './message.service';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {catchError, tap} from 'rxjs/operators';\n\nimport {Income} from './data-model';\n\nconst httpOptions={\n headers: new HttpHeaders({'Content-Type': 'application/json'})\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IncomeService {\n\n private incomeUrl='http://192.168.1.62/SystemBackEnd/api/income';\n\n constructor(\n private http: HttpClient,\n private messageService:MessageService\n ) {\n\n }\n\n getIncomeList(table: string, page?: number, pageSize?: number): Observable{\n return this.http.get(`${this.incomeUrl}/getIncomeList?table=\n ${table}&pageSize=${pageSize}&pageNumber=${page}`)\n .pipe(\n tap(income => this.log(`fetched ${table}`)),\n catchError(this.handleError('getIncomeList', []))\n );\n }\n\n addIncome(income: Income, table: string): Observable{\n return this.http.post(`${this.incomeUrl}/AddIncome?table=${table}`, income, httpOptions).pipe(\n tap((employee: Income) => this.log(`added ${table} w/ id=${income.id}`)),\n catchError(this.handleError('addIncome'))\n );\n }\n\n private handleError (operation = 'operation', result?: T) {\n return (error: any): Observable => {\n \n // TODO: send the error to remote logging infrastructure\n console.error(error); // log to console instead\n \n // TODO: better job of transforming error for user consumption\n this.log(`${operation} failed: ${error.message}`);\n \n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n\n updateIncome(income: Income, table: string): Observable{\n return this.http.put(`${this.incomeUrl}/updateIncome/?table=${table}`, income, httpOptions).pipe(\n tap(_ => this.log(`updated ${table} id=${income.id}`)),\n catchError(this.handleError('updateIncome'))\n );\n }\n\n searchEmployees(term: string, pageNumber: number, pageSize: number, table: string): Observable{\n if(!term.trim()){\n return of([]);\n }\n return this.http.get(`${this.incomeUrl}/getIncomeByTerm?term=${term}&pageNumber=${pageNumber}&pageSize=${pageSize}&table=${table}`).pipe(\n tap(_ => this.log(`found employees matching \"${term}\"`)),\n catchError(this.handleError('searchEmployees', []))\n );\n }\n\n private log(message: string){\n this.messageService.add('EmployeeService ' + message);\n console.log('EmployeeService ' + message);\n }\n}\n","
\n\n\n","\nimport { Component, OnInit, ViewChild, AfterViewInit } from \"@angular/core\";\nimport { map } from \"rxjs/operators\";\nimport { Validators } from \"@angular/forms\";\n\nimport { GeneralServiceService } from \"../general-service.service\";\nimport { DataEntryBaseComponent } from \"../data-entry-base/data-entry-base.component\";\nimport Swal from \"sweetalert2\";\n\n@Component({\n selector: 'app-level',\n templateUrl: './level.component.html',\n styleUrls: ['./level.component.css']\n})\n\nexport class LevelComponent implements OnInit {\n @ViewChild(DataEntryBaseComponent, { static: false })\n popTBl: DataEntryBaseComponent;\n x = 0;\n prLevel: any;\n selectedData: any = {};\n config = [\n {\n type: \"input\",\n label: \"Code\",\n name: \"code\",\n placeholder: \"Enter Code\",\n value: \"\",\n validation: [Validators.required, Validators.minLength(2)]\n },\n {\n type: \"input\",\n label: \"Name\",\n name: \"name\",\n placeholder: \"Enter Description\",\n value: \"\",\n validation: [Validators.required, Validators.minLength(3)]\n },\n {\n type: \"input\",\n label: \"Class\",\n name: \"class\",\n placeholder: \"Enter Classification(Regular/Science)\",\n value: \"\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Tuition Fee\",\n name: \"tf\",\n placeholder: \"Enter Tuition Fee\",\n value: \"0\",\n validation: [Validators.pattern(\"^[0-9.]*$\")]\n },\n {\n type: \"input\",\n label: \"Miscellaneous Fee\",\n name: \"mf\",\n placeholder: \"Enter Miscellaneous Fee\",\n value: \"0\",\n validation: [Validators.pattern(\"^[0-9.]*$\")]\n },\n {\n type: \"input\",\n label: \"Other Fee\",\n name: \"of\",\n placeholder: \"Enter Other Fee\",\n value: \"0\",\n validation: [Validators.pattern(\"^[0-9.]*$\")]\n },\n {\n type: \"input\",\n label: \"Student Services\",\n name: \"lf\",\n placeholder: \"Enter Student Services\",\n value: \"0\",\n validation: [Validators.pattern(\"^[0-9.]*$\")]\n },\n {\n type: \"input\",\n label: \"Total Assessment\",\n name: \"assessmenttot\",\n placeholder: \"Enter Total Assessment\",\n value: \"0\",\n validation: [Validators.pattern(\"^[0-9.]*$\")]\n },\n {\n type: \"input\",\n label: \"Down Payment\",\n name: \"dp\",\n placeholder: \"Enter Down Payment\",\n value: \"0\",\n validation: [Validators.pattern(\"^[0-9.]*$\")]\n },\n {\n type: \"input\",\n label: \"Tuition Fee(Private)\",\n name: \"tfpriv\",\n placeholder: \"Enter Tuition Fee(Private)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Miscellaneous Fee(Private)\",\n name: \"mfpriv\",\n placeholder: \"Enter Miscellaneous Fee(Private)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Other Fee(Private)\",\n name: \"ofpriv\",\n placeholder: \"Enter Other Fee(Private)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Student Services(Private)\",\n name: \"lfpriv\",\n placeholder: \"Enter Student Services(Private)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Total Assessment(Private)\",\n name: \"assessmenttotpriv\",\n placeholder: \"Enter Total Assessment(Private)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Down Payment(Private)\",\n name: \"dppriv\",\n placeholder: \"Enter Down Payment(Private)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Tuition Fee(Gov't)\",\n name: \"tfgov\",\n placeholder: \"Enter Tuition Fee(Gov't)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Miscellaneous Fee(Gov't)\",\n name: \"mfgov\",\n placeholder: \"Enter Miscellaneous Fee(Gov't)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Other Fee(Gov't)\",\n name: \"ofgov\",\n placeholder: \"Enter Other Fee(Gov't)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Student Services(Gov't)\",\n name: \"lfgov\",\n placeholder: \"Enter Student Services(Gov't)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Total Assessment(Gov't)\",\n name: \"assessmenttotgov\",\n placeholder: \"Enter Total Assessment(Gov't)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"input\",\n label: \"Down Payment(Gov't)\",\n name: \"dpgov\",\n placeholder: \"Enter Down Payment(Gov't)\",\n value: \"0\",\n validation: []\n },\n {\n type: \"button\",\n label: \"Save\",\n name: \"submit\",\n disabled: true,\n title: \"Grade Level\"\n }\n ];\n showLoading: boolean;\n\n constructor(private genServ: GeneralServiceService) {}\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n this.reloadData();\n }\n\n reloadData() {\n this.popTBl.refresh();\n }\n\n initProperties() {\n //Income Transaction Properties\n var tblHeader = [\n { key: \"code\", value: \"Code\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" },\n { key: \"class\", value: \"Classification\", hKey: \"class\" }\n ];\n this.prLevel = {\n table: \"level\",\n tblHeader: tblHeader,\n ps: 10,\n tblHeaderHidden: \"assessmenttot,tf,mf,of,lf,dp,assessmenttotpriv,tfpriv,mfpriv,ofpriv,lfpriv,dppriv,assessmenttotgov,tfgov,mfgov,ofgov,lfgov,dpgov\"\n };\n }\n\n delete(e) {\n if (confirm(`This will delete the record ${this.selectedData.name}`)) {\n this.genServ.deleteV2(\"level\", \"id=\" + e).subscribe(() => {\n this.reloadData();\n });\n }\n }\n\n getSelected(event) {\n this.selectedData = event.data;\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p).subscribe(\n resp => {\n let x = parseInt(resp.body);\n if (x == 2) {\n Swal.fire(\"Cannot save\", \"Duplicate Code\", \"error\"); \n\n } else if (x == 1) {\n Swal.fire(\"Success\", \"Record updated\", \"success\"); \n } else if (x == 3) {\n Swal.fire(\"Cannot save\", \"Duplicate Description\", \"error\"); \n }\n },\n resp => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n }\n\n submit(e) {\n let v = e.value;\n if (v.assessmenttotpriv==''){\n v.assessmenttotpriv= 0;\n }\n \n if (v.assessmenttotgov==''){\n v.assessmenttotgov= 0;\n }\n if (v.assessmenttot==''){\n v.assessmenttot= 0;\n }\n if (v.dp==''){\n v.dp= 0;\n }\n if (v.tf==''){\n v.tf= 0;\n }\n if (v.mf==''){\n v.mf= 0;\n }\n if (v.of==''){\n v.of= 0;\n }\n if (v.lf==''){\n v.lf= 0;\n }\n ///\n if (v.dpgov==''){\n v.dpgov= 0;\n }\n if (v.dppriv==''){\n v.dppriv= 0;\n }\n if (v.tfgov==''){\n v.tfgov= 0;\n }\n if (v.mfgov==''){\n v.mfgov= 0;\n }\n if (v.ofgov==''){\n v.ofgov= 0;\n }\n if (v.lfgov==''){\n v.lfgov= 0;\n }\n if (v.tfgov==''){\n v.tfgov= 0;\n }\n if (v.mfgov==''){\n v.mfgov= 0;\n }\n if (v.ofgov==''){\n v.ofgov= 0;\n }\n if (v.lfgov==''){\n v.lfgov= 0;\n }\n ////\n if (v.tfpriv==''){\n v.tfpriv= 0;\n }\n if (v.mfpriv==''){\n v.mfpriv= 0;\n }\n if (v.ofpriv==''){\n v.ofpriv= 0;\n }\n if (v.lfpriv==''){\n v.lfpriv= 0;\n }\n\n if (e.mode == 1) {\n let p = {\n table: \"level\",\n cols: \"code,name,class,assessmenttot,tf,mf,of,lf,dp,assessmenttotpriv,tfpriv,mfpriv,ofpriv,lfpriv,dppriv,assessmenttotgov,tfgov,mfgov,ofgov,lfgov,dpgov\",\n val: `'${v.code}','${v.name}','${v.class}',${v.assessmenttot},${v.tf},${v.mf},${v.of},${v.lf},${v.dp},${v.assessmenttotpriv},${v.tfpriv},${v.mfpriv},${v.ofpriv},${v.lfpriv},${v.dppriv},${v.assessmenttotgov},${v.tfgov},${v.mfgov},${v.ofgov},${v.lfgov},${v.dpgov}`\n };\n this.genServ.insertData(p).subscribe(d => {\n if (d) {\n Swal.fire(\"Success\", \"Record Added\", \"success\"); \n\n this.reloadData();\n }\n });\n } else {\n \n let p = {\n table: \"level\",\n colval: `code='${v.code}',name='${v.name}',class='${v.class}',assessmenttot=${v.assessmenttot},tf=${v.tf},mf=${v.mf},of=${v.of},lf=${v.lf},dp=${v.dp},assessmenttotpriv=${v.assessmenttotpriv},tfpriv=${v.tfpriv},mfpriv=${v.mfpriv},ofpriv=${v.ofpriv},lfpriv=${v.lfpriv},dppriv=${v.dppriv},assessmenttotgov=${v.assessmenttotgov},tfgov=${v.tfgov},mfgov=${v.mfgov},ofgov=${v.ofgov},lfgov=${v.lfgov},dpgov=${v.dpgov}`,\n wc: `id=${e.id}`\n };\n this.genServ.updateData(p).subscribe(d => {\n if (d) {\n Swal.fire(\"Success\", \"Record Updated\", \"success\"); \n this.reloadData();\n }\n });\n }\n }\n\n}\n","\r\n \r\n \r\n \r\n \r\n Login Page\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \"Avatar\"\r\n \r\n \r\n
_
\r\n
Online Registration System
\r\n
_
\r\n
_
\r\n
_
\r\n
_
\r\n
_
\r\n
_
\r\n\r\n\r\n \r\n Powered by HITC\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n

Log In

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Enter User Code.\r\n \r\n
\r\n \r\n \r\n \r\n Enter Password.\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

Don't have an account? \r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n ","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { GeneralServiceService } from '../general-service.service';\nimport { Globals } from '../globals';\nimport Swal from \"sweetalert2\";\nimport { MailInfo } from \"../dsmodel.Interface\";\n\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent implements OnInit {\n isLoading: boolean = false;\n empConfig: any = [];\n tblData: Array = [];\n usernamerep: any;\n showLoading: boolean = false;\n emailCred: any;\n emailName: any;\n emailPass: any;\n invoiceService: any;\n imgLogo = \"assets/images/hitc-logo.png\";\n\n\n\n constructor(\n public router: Router,\n public genServ: GeneralServiceService,\n public globals: Globals\n ) {\n\n }\n\n ngOnInit() { \n this.getperiodsetup();\n\n }\n\n showConfigResponse(p, user) {\n this.genServ.GetSpResponse2return(p)\n .subscribe(resp => {\n let x = resp.body;\n let arr = x.split(\",\");\n \n if (arr[0] > 0) {\n this.globals.userid = arr[1];\n this.globals.isEmp = true;\n //username = arr[3];\n //let lname = arr[4];\n\n this.globals.username = arr[3];//fname + ' '+ lname;\n\n let a = { id: arr[0], name: user, idX: arr[2], empX: Number(arr[1]) };\n \n this.globals.accesslevel = a;\n this.genServ.setLoggedIn(true);\n this.router.navigate(['/admin']);\n } else if (arr[0] == 0) {\n Swal.fire(\"Login Failed!\", \"Invalid user or password\", \"error\");\n }\n }\n , () => { }, () => this.isLoading = false);\n }\n\n login(event) {\n this.isLoading = true;\n event.preventDefault();\n const t = event.target\n const user = t.querySelector('#uname').value;\n const psw = t.querySelector('#psw').value;\n\n\n this.genServ.getIpAddress()\n .subscribe(resp => {\n let ipaddress = resp.body['ip'];\n let v = `'${user}', '${psw}', '${ipaddress}'`;\n let p = `call login(${v})`;\n this.showConfigResponse(p, user);\n });\n\n let ipaddress = '192.168.1.1';\n let v = `'${user}', '${psw}', '${ipaddress}'`;\n let p = `call login(${v})`;\n this.showConfigResponse(p, user); \n }\n\n getperiodsetup()\n {\n this.genServ.GetDataNoLimit('setup', 'period,periodname').subscribe((d) => {\n this.tblData = d;\n this.globals.periodid = d[0].period;\n this.globals.periodNameNew = d[0].periodname;\n this.globals.storeOnLocalStorage(d[1].periodname, 'periodNameNew');\n } );\n }\n\n \n \n regme()\n {\n this.globals.userid = 1\n let a = { id: 199, name: 'reg', idX:1, empX: 1 };\n this.globals.accesslevel = a;\n this.genServ.setLoggedIn(true);\n this.router.navigate(['/admin/application']); \n\n }\n\n sendemail()\n {\n let a: MailInfo = {\n from: \"spcmfinance@gmail.com\",\n to: \"aaurbi@yahoo.com\",\n subject: \"email testing fr y=yahoo\",\n message: \"this is the message\",\n password: '0917tyhKoiP',\n smtp: \"smtp.gmail.com\",\n enableSSL: true,\n port: 587\n }; \n this.genServ.sendEmail(a).subscribe(); \n \n }\n }","
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Manage Loan Application {{countLoan}} Record(s) found!

\n
\n \n
\n
\n

Click check to Approve the Loan Application and click Cross (X) to Decline Loan Application

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{h.value}}Action
\n {{item[h.hKey]}}\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Dsmodel } from '../dsmodel.Interface';\nimport { GeneralServiceService } from '../general-service.service';\nimport { Globals } from '../globals';\nimport { Subscriber, Subscription } from 'rxjs';\nimport Swal from 'sweetalert2';\n\n@Component({\n selector: 'app-manage-loan-application',\n templateUrl: './manage-loan-application.component.html',\n styleUrls: ['./manage-loan-application.component.css']\n})\nexport class ManageLoanApplicationComponent implements OnInit {\n filter = new FormControl('');\n header: any;\n caption: string;\n cols: string;\n table: string;\n showLoading: boolean;\n subs: Subscription;\n tblData: any;\n optionsProperties: { o1: any; o2: any; };\n isSearching: boolean;\n countLoan: number = 0;\n\n constructor(\n private gs: GeneralServiceService,\n private globals: Globals\n ) { }\n\n ngOnInit() {\n this.showLoading = true;\n this.initProperties();\n this.getLoan('i.status=0');\n //console.debug('options', this.optionsProperties)\n }\n\n initProperties() {\n let o2Header = [\n { value: 'Approved', hKey: 'approved' },\n { value: 'Pending', hKey: 'pending' },\n { value: 'Declined', hKey: 'declined' }\n ];\n this.header = [\n { key: 'e.name', value: 'Name', hKey: 'name', o: 1 },\n { key: 'f.name as loanname', value: 'Loan', hKey: 'loanname', o: 1 },\n { key: 'i.amount', value: 'Amount', hKey: 'amount', o: 0 },\n { key: 'g.name as period', value: 'Start Period', hKey: 'period', o: 1 },\n { key: 'i.term', value: 'Term', hKey: 'term', o: 0 },\n { key: 'i.status', value: 'Status', hKey: 'status', o: 0 }\n ];\n this.caption = \"Loan Application\";\n this.cols = this.header.map(x => x.key).join(',');\n this.table = 'loandet i';\n let a = this.header.filter((v) => v.o === 1);\n this.optionsProperties = { o1: a, o2: o2Header }\n }\n\n getLoan(wc: string, order?: string) {\n let colHidden = \",i.id,i.paidInt\"\n let params: Dsmodel = {\n cols: this.cols + colHidden,\n table: this.table,\n wc: wc,\n order: `${order ? order : 'period desc'}`,\n join: 'Left Join employee e on e.id=i.emp Left Join loan f on f.id=i.loan Left Join period g on g.id=i.startPeriod',\n limit: '0,1000'\n }\n this.subs = this.gs.getDataWithJoinClause(params).subscribe(d => {\n this.tblData = d.map((x) => {\n return {\n name: x.name,\n loanname: x.loanname,\n amount: x.amount,\n period: x.period,\n term: x.term,\n status: x.status === 1 ? 'Approved' : x.status === 0 ? 'Pending' : 'Declined',\n id: x.id,\n paidInt: x.paidInt\n }\n });\n this.countLoan = d.length;\n }, () => { this.showLoading = false; }, () => {\n this.showLoading = false;\n });\n }\n\n onSearch(e) {\n this.isSearching = true;\n let a: number = e.options2 === \"approved\" ? 1 : e.options2 === \"declined\" ? 2 : 0;\n switch (e.options) {\n case \"name\":\n this.getLoan(`e.name like '%${e.term}%' and i.status=${a}`, 'name asc');\n break;\n case \"loanname\":\n this.getLoan(`f.name like '%${e.term}%' and i.status=${a}`, 'f.id asc');\n break;\n case \"period\":\n this.getLoan(`g.name like '%${e.term}%' and i.status=${a}`, 'g.id asc');\n break;\n }\n }\n\n approve(id: number) {\n this.showLoading = true;\n let a = {\n fn: `CALL approveLoanApplication(${id})`\n }\n this.gs.callSP(a).subscribe(\n resp => {\n if (resp) {\n Swal.fire('Record Updated!', 'Request has been approved.', 'success');\n }\n }, (err) => {\n Swal.fire('Error!', err.message, 'error');\n this.showLoading = false;\n }, () => {\n this.getLoan('i.status=0');\n this.showLoading = false;\n }\n );\n }\n\n decline(id: number) {\n let a = {\n fn: `CALL declineLoanApplication(${id})`\n }\n Swal.fire({\n title: 'Decline Application?',\n type: 'question',\n showCancelButton: true,\n confirmButtonColor: '#3085d6',\n cancelButtonColor: '#d33',\n confirmButtonText: 'Decline'\n }).then((result) => {\n if (result.value) {\n this.showLoading = true;\n this.gs.callSP(a).subscribe(\n resp => {\n if (resp) {\n Swal.fire('Record Updated!', 'Request has been declined.', 'warning');\n }\n }, (err) => {\n Swal.fire('Error!', err.message, 'error');\n this.showLoading = false;\n }, () => {\n this.getLoan('i.status=0');\n this.showLoading = false;\n }\n );\n } else {\n this.showLoading = false;\n }\n });\n }\n\n onRefresh() {\n this.showLoading = true;\n this.getLoan('status=0');\n }\n\n ngOnDestroy(): void {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class MessageService{\r\n messsages: string[] = [];\r\n\r\n add(message: string){\r\n this.messsages.push(message);\r\n }\r\n\r\n clear(){\r\n this.messsages=[];\r\n }\r\n}//class\r\n\r\n","
\n

List

\n\n \n
\n
\n
\n \n \n
\n \n \n
\n
\n
\n \n \n
","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges, SimpleChange, OnDestroy } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ChangeDetectionStrategy } from '@angular/compiler/src/core';\n\n@Component({\n selector: 'app-modal-for-data-selection-v2',\n templateUrl: './modal-for-data-selection-v2.component.html',\n styleUrls: ['./modal-for-data-selection-v2.component.css']\n})\nexport class ModalForDataSelectionV2Component implements OnInit, OnDestroy {\n\n tblData: Array = [{ data: 'No Records' }];\n @Input() p: any = {};\n @Output() onNextPageEvent = new EventEmitter();\n @Output() onSearchEvent = new EventEmitter();\n @Output() onSelectEvent = new EventEmitter();\n selectedData: any = {};\n\n constructor(public activeModal: NgbActiveModal) { }\n\n ngOnInit() {\n this.tblData = this.p['pTable']['tblData'];\n }\n\n nextPage() {\n this.onNextPageEvent.emit();\n }\n\n onSearch(e) {\n this.onSearchEvent.emit(e);\n }\n\n selectData(mode: number, e?: any, ) {\n let a = { data: e || this.selectedData, mode: mode };\n if (mode === 2) {\n this.onSelectEvent.emit(a);\n this.activeModal.close();\n } else {\n this.selectedData = e.data;\n }\n }\n\n changeData(data): number {\n this.tblData = data;\n return this.tblData.length;\n }\n\n ngOnDestroy() {\n this.tblData = [];\n this.onNextPageEvent.unsubscribe();\n }\n}\n","
\n

{{title}} List

\n \n \n
\n
\n
\n \n
\n
\n
\n \n \n
","import { Component, OnInit, HostListener, Output, Input, EventEmitter } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@HostListener(\"window:scroll\", [\"$event\"])\n\n@Component({\n selector: 'app-modal-for-data-selection',\n templateUrl: './modal-for-data-selection.component.html',\n styleUrls: ['./modal-for-data-selection.component.css']\n})\nexport class ModalForDataSelectionComponent implements OnInit {\n @Output() onOk= new EventEmitter();\n @Input() table;\n @Input() tblHeader: any;\n @Input() tblHeaderHidden;\n @Input() wc;\n @Input() lj: any;\n @Input() title: any;\n pageSize=10;\n selectedDataVal:any;\n\n constructor(\n public activeModal: NgbActiveModal\n ) { }\n\n ngOnInit() {\n }\n\n selectedData(event){\n this.selectedDataVal=event.data;\n if(event.dbl==1){\n this.fnOk();\n this.activeModal.close();\n }\n }\n\n fnOk(){\n this.onOk.emit(this.selectedDataVal);\n this.activeModal.close();\n //console.log(`from incometable: ${this.selectedDataVal.code}`);\n }\n}\n","
\n

Employee Details

\n \n
\n
\n \n \n
\n
\n \n
","import { Component, OnInit, HostListener, Output, Input, EventEmitter } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-modal-for-tabular-form',\n templateUrl: './modal-for-tabular-form.component.html',\n styleUrls: ['./modal-for-tabular-form.component.css']\n})\nexport class ModalForTabularFormComponent implements OnInit {\n @Input() empData: any={};\n\n constructor(\n public activeModal: NgbActiveModal\n ) { }\n\n ngOnInit() {\n }\n\n}\n","
\n
\n
\n
\n
\n Label\n
\n
\n \n
\n
\n
\n
\n
\n {{item.v}}\n ×\n
\n
\n
","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { DataEntryFormComponent } from '../data-entry-form/data-entry-form.component';\nimport { PopulateTableComponent } from '../populate-table/populate-table.component';\nimport { GeneralServiceService } from '../general-service.service';\nimport { DynamicFormComponent } from '../dynamic-form-module/containers/dynamic-form/dynamic-form.component';\n\n@Component({\n selector: 'app-multi-checkbox-selection',\n templateUrl: './multi-checkbox-selection.component.html',\n styleUrls: ['./multi-checkbox-selection.component.css']\n})\nexport class MultiCheckboxSelectionComponent implements OnInit {\n @ViewChild(DataEntryFormComponent, { static: false }) form: DataEntryFormComponent;\n @Input() properties: any;\n @Input() config: any = [];\n @Output() submitEvent = new EventEmitter();\n @Output() selectedDataEvent = new EventEmitter();\n @ViewChild(PopulateTableComponent, { static: false }) popTbl: PopulateTableComponent;\n imgPath: string = \"assets/images/refresh.png\";\n selectedData: any = null;\n mode = 1;\n x;\n chips: any = [];\n\n constructor(\n public modalService: NgbModal,\n private genServ: GeneralServiceService\n ) { }\n\n ngOnInit() {\n }\n\n loadModal() {\n if (this.x == 1) {\n alert(this.x);\n }\n //this.mode=mode;\n if (this.mode == 2) {\n //this.passData();\n } else if (this.mode == 1) {\n this.selectedData = null;\n this.config.forEach(element => {\n element.value = '';\n });\n }\n const modalRef = this.modalService.open(DataEntryFormComponent);\n modalRef.componentInstance.config = this.config;\n //modalRef.componentInstance.selectedData=this.selectedData;\n modalRef.componentInstance.submitEvent\n .subscribe((data) => {\n if (this.mode == 2) {\n this.fnSubmitEvent(data, 2, this.selectedData.id);\n } else {\n this.fnSubmitEvent(data, 1);\n }\n });\n }\n\n fnSubmitEvent(data, mode, id?) {\n this.submitEvent.emit({ value: data, mode: mode, id: id });\n }\n\n deleteChips(i) {\n this.chips.splice(i, 1);\n }\n\n}\n","\n\n\n\n\n
\n

\n {{title}} Form\n

\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n *eMail Address is required.\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n *CP Number is required.\n
\n
\n
\n\n\n
\n
\n
\n \n \n \n
\n
\n
\n *Date of birth is required.\n
\n
\n
\n\n
\n \n Male\n Female \n
\n\n
\n
\n Gender required. \n
\n
\n\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n *Place of Birth is required.\n
\n
\n\n
\n \n \n
\n
\n
\n *Address is required.\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n *Father's Name is required.\n
\n
\n \n \n
\n \n \n
\n
\n
\n *Father's Contact Number is required.\n
\n
\n
\n\n
\n \n
\n \n \n
\n
\n
\n *Mother's Name is required.\n
\n
\n \n
\n \n \n
\n
\n
\n *Mother's Contact Number is required.\n
\n
\n
\n\n
\n\n\n
\n \n \n
\n
\n
\n *Parents' Address is required.\n
\n
\n\n
\n
\n
\n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n \n
\n \n \n
\n \n \n \n
\n \n \n \n
\n \n
\n Assessment Total: {{assessmenttotal | number: '.2'}}           Downpayment: {{dp | number: '.2'}} \n
\n
\n Tuition Fee: {{tf | number: '.2'}}           Miscellaneous Fee: {{mf| number: '.2'}} \n
\n
\n Other Fee: {{of| number: '.2'}}          Student Services: {{lf| number: '.2'}} \n
\n
\n
\n \n
\n \n \n
\n
\n\n \n
\n
\n\n
\n
\n
","import { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { MailInfo } from \"../dsmodel.Interface\";\nimport { NgModule } from '@angular/core';\n//import { Component, OnInit } from '@angular/core';\nimport { Component, OnInit, ViewChild } from '@angular/core';\n//import { Component, OnInit, ViewChild, AfterContentInit, AfterViewInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport Swal from \"sweetalert2\";\nimport { GeneralServiceService } from '../general-service.service';\nimport { PopulateTableForTransComponent } from '../populate-table-for-trans/populate-table-for-trans.component';\nimport { Globals } from '../globals';\nimport { TextBoxComponent } from '../text-box/text-box.component';\nimport { PopulateTextboxComponent } from '../populate-textbox/populate-textbox.component';\nimport { Dsmodel } from '../dsmodel.Interface';\nimport { formatCurrency } from '@angular/common';\nimport { DataEntryBaseComponent } from \"../data-entry-base/data-entry-base.component\";\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n\n@Component({\n selector: 'app-myaccount',\n templateUrl: './myaccount.component.html',\n styleUrls: ['./myaccount.component.css']\n})\nexport class MyaccountComponent implements OnInit {\n\n @ViewChild(\"popLevelX\", { static: false }) popLevel: PopulateTextboxComponent;\n @ViewChild('popAmtX', { static: false }) txtBox: TextBoxComponent;\n @ViewChild('popDPX', { static: false }) txtBoxDP: TextBoxComponent;\n @ViewChild(DataEntryBaseComponent, { static: false })\n popTBl: DataEntryBaseComponent;\n title = 'Registration';\n selectedLevel: any = null;\n //selectedPeriod: any = null;\n\n selectedSpecs: any = {};\n selectedStrand: any = {};\n prEnroll: any;\n registerForm: FormGroup;\n submitted = false;\n stoten: any = 0;\n nto12: any =0;\n eto12: any =0;\n assessmenttotal: any=0.00\n tf: any=0.00;\n mf: any=0.00;\n lf: any=0.00;\n of: any=0.00;\n dp: any=0.00;\n assessmenttotalgov: any=0.00\n tfgov: any=0.00;\n mfgov: any=0.00;\n lfgov: any=0.00;\n ofgov: any=0.00;\n dpgov: any=0.00;\n assessmenttotalpriv: any=0.00\n tfpriv: any=0.00;\n mfpriv: any=0.00;\n lfpriv: any=0.00;\n ofpriv: any=0.00;\n dppriv: any=0.00;\n dateNow: Date;\n useremail: any;\n \n // grid display\n tblData = [];\n tblHeader = [\n \n // value = header of grid\n // hkey = property of selected records fr d grid\n { value: \"Date\", hKey: \"date\", o: 1 },\n { value: \"Name\", hKey: \"name\", o: 1 },\n { value: \"Grade Level\", hKey: \"levelname\", o: 1 },\n { value: \"DP\", hKey: \"dp\", o: 1 },\n { value: \"Assessment\", hKey: \"assessmenttot\", o: 1 }\n ];\n caption = \"\";\n selectedSub: any;\n //selectedBD: any;\n uName : any;\n amt: any;\n DP: any;\n DPget: any;\n periodNewGet: any;\n periodNew: any;\n \n prLevel: {\n table: string;\n tableHeader: { key: string; value: string; hKey: string }[];\n label: string;\n tblHeaderHidden: string;\n wc: number;\n };\n prSpecs: {\n table: string;\n tableHeader: { key: string; value: string; hKey: string }[];\n label: string;\n tblHeaderHidden: string;\n wc: number;\n };\n prStrand: {\n table: string;\n tableHeader: { key: string; value: string; hKey: string }[];\n label: string;\n tblHeaderHidden: string;\n wc: number;\n };\n prDP: any;\n prAmount: any;\n \n frmEnroll: any;\n mode: number;\n prAmt: { label: string; valueX: number; };\n //frmBD: any;\n \n //constructor(private genServ: GeneralServiceService) {}\n constructor(\n private genServ: GeneralServiceService, \n public router: Router,\n public global: Globals,\n private fb: FormBuilder) {}\n\n ngOnInit() {\n this.initProperties();\n this.dateNow = new Date();\n\n this.uName = this.global.username;\n this.registerForm = this.fb.group({\n \n gender: ['', Validators.required],\n bdate: ['', Validators.required],\n placebirth: ['', Validators.required],\n telno: [''],\n cpno: ['', Validators.required],\n email: ['', Validators.required],\n address: ['', Validators.required],\n level: [''],\n strand: [''],\n faname: ['', Validators.required],\n facontactno: ['', Validators.required],\n moname: ['', Validators.required],\n mocontactno: ['', Validators.required],\n paaddress: ['', Validators.required],\n guname: [''],\n gucontactno: [''],\n guaddress: [''],\n terms: ['']\n \n });\n\n }\n\n get f() { return this.registerForm.controls; }\n \n \n \n onSubmit() {\n let v: string ='';\n let f = this.registerForm\n let a: Date = f.value.bdate;\n let bdatex = this.genServ.cd(a);\n this.useremail = this.registerForm.get('email').value;\n\n let ngender: number =0;\n let levelx = this.selectedLevel.id;\n \n this.submitted = true;\n \n let genderx= this.registerForm.get('gender').value;\n if(genderx=='male'){\n ngender = 1;}\n if(genderx=='female')\n {\n ngender=2;\n }\n \n let placebirthx = this.registerForm.get('placebirth').value;\n \n \n let telnox = this.registerForm.get('telno').value;\n \n let cpnox = this.registerForm.get('cpno').value;\n let emailx = this.registerForm.get('email').value;\n let addressx = this.registerForm.get('address').value;\n let strandx = this.selectedStrand.Id;\n if(this.selectedStrand.Id==undefined){\n strandx = 0;\n }\n \n let getterms:number = 0;\n let termsx = this.registerForm.get('terms').value;\n if (termsx=='Cash'){\n getterms = 1;\n };\n if (termsx=='Semi-Annually'){\n getterms = 2;\n };\n if (termsx=='Quarterly'){\n getterms = 3;\n };\n if (termsx=='Semestral'){\n getterms = 4;\n };\n if (termsx=='Monthly'){\n getterms = 5;\n };\n\n let fanamex = this.registerForm.get('faname').value;\n let facontactnox = this.registerForm.get('facontactno').value;\n let monamex = this.registerForm.get('moname').value;\n let mocontactnox = this.registerForm.get('mocontactno').value;\n let paaddressx = this.registerForm.get('paaddress').value;\n let guname = this.registerForm.get('guname').value;\n let gucontactnox = this.registerForm.get('gucontactno').value;\n let guaddressx = this.registerForm.get('guaddress').value;\n let user = this.global.userid; \n let period = this.global.periodid;\n \n v = `${period},${user},'${fanamex}','${facontactnox}','${monamex}','${mocontactnox}','${paaddressx}','${guname}','${gucontactnox}','${guaddressx}', '${addressx}', '${bdatex}', '${placebirthx}', '${telnox}', '${cpnox}', '${emailx}'`; \n let p = `call enrollmeupdate(${v})`;\n \n this.showConfigResponse(p);\n \n } //submit\n \n showConfigResponse(p) {\n this.genServ.getConfigResponse(p).subscribe(\n resp => {\n let x = parseInt(resp.body);\n //alert(x);\n if (x == 0) {\n Swal.fire(\"Duplicate!\", \"You have previously registered. Please contact the finance office at (02) 982-1232 for more details. Thank you. \", \"error\"); \n } else if (x > 0) {\n Swal.fire(\"Enrollment Successful!\", \"Please deposit your payment to our BDO Account# 0041-7000-3309 and email the scanned copy to cashier@spcmakati.edu.ph. Check your mailbox for the bank settlement details. Thank you. \", \"success\");\n //this.sendemail();\n this.tf =0;\n this.mf=0;\n this.lf=0;\n this.of=0;\n }\n },\n resp => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n\n // this.closeme();\n }\n \n ngAfterViewInit() {\n let a = window.localStorage.getItem('onEnrollLevel') || \"\";\n let x = JSON.parse(a);\n this.popLevel.selectedData = x;\n this.popLevel.fnSelectData(x);\n // this.selectedLevel = x;\n }\n // for the search object\n initProperties() {\n \n var leveltblHeader = [\n { key: \"code\", value: \"Code\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" },\n { key: \"class\", value: \"Class\", hKey: \"class\" }\n ];\n \n this.prLevel = {\n table: \"level\", tableHeader: leveltblHeader,\n label: \"*Grade Level\", tblHeaderHidden: \"assessmenttot,dp,tf,mf,of,lf,gradelevel,assessmenttotgov,dpgov,tfgov,mfgov,ofgov,lfgov,assessmenttotpriv,dppriv,tfpriv,mfpriv,ofpriv,lfpriv\", wc: 0\n };\n \n var specstblHeader = [\n { key: \"code\", value: \"Code\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" }\n ];\n \n \n this.prSpecs = {\n table: \"specs\", tableHeader: specstblHeader,\n label: \"Specialization\", tblHeaderHidden: \"\", wc: 0\n };\n \n this.prStrand = {\n table: \"strand\", tableHeader: specstblHeader,\n label: \"*Strands(for Senior High ONLY)\", tblHeaderHidden: \"\", wc: 0\n };\n \n this.prAmt = {\n label: \"Assessment Total\",\n valueX: 0.00\n };\n \n this.prDP = {\n label: \"Down Payment: \",\n valueX: 0.00\n };\n \n }\n \n // selected data event(html)\n // this is for the where clause of the object seacrh link to the display of records(grid)\n \n \n getAmt(event) {\n this.amt = event;\n }\n getDP(event) {\n this.DP = event;\n }\n \n \n getLevel(event) {\n this.selectedLevel = event;\n \n\n this.assessmenttotal = 0;\n this.dp = 0;\n this.tf = 0;\n this.of = 0;\n this.mf = 0;\n this.lf = 0;\n\n if (event != undefined) {\n this.stoten =0;\n this.nto12 =0;\n this.eto12 =0;\n \n this.assessmenttotal = this.selectedLevel.assessmenttot; \n this.dp = this.selectedLevel.dp;\n this.tf = this.selectedLevel.tf;\n this.of = this.selectedLevel.of;\n this.mf = this.selectedLevel.mf;\n this.lf = this.selectedLevel.lf;\n\n this.assessmenttotalgov = this.selectedLevel.assessmenttotgov; \n this.dpgov = this.selectedLevel.dpgov;\n this.tfgov = this.selectedLevel.tfgov;\n this.ofgov = this.selectedLevel.ofgov;\n this.mfgov = this.selectedLevel.mfgov;\n this.lfgov = this.selectedLevel.lfgov;\n\n this.assessmenttotalpriv = this.selectedLevel.assessmenttotpriv; \n this.dppriv = this.selectedLevel.dppriv;\n this.tfpriv = this.selectedLevel.tfpriv;\n this.ofpriv = this.selectedLevel.ofpriv;\n this.mfpriv = this.selectedLevel.mfpriv;\n this.lfpriv = this.selectedLevel.lfpriv;\n \n\n // window.localStorage.setItem('onEnrollLevel', JSON.stringify(event));\n if(this.selectedLevel.gradelevel>6 && this.selectedLevel.gradelevel<11)\n {\n this.stoten = 1;\n }\n if(this.selectedLevel.gradelevel>8 && this.selectedLevel.gradelevel<13)\n {\n this.nto12 = 1;\n }\n if(this.selectedLevel.gradelevel>10 && this.selectedLevel.gradelevel<13)\n {\n this.eto12 = 1;\n //////\n let schooltypex = this.registerForm.get('schooltype').value;\n \n if (schooltypex=='spcm')\n {\n this.assessmenttotal = this.selectedLevel.assessmenttot; \n this.dp = this.selectedLevel.dp;\n this.tf = this.selectedLevel.tf;\n this.of = this.selectedLevel.of;\n this.mf = this.selectedLevel.mf;\n this.lf = this.selectedLevel.lf;\n \n }\n if (schooltypex=='private')\n {\n this.assessmenttotal = this.selectedLevel.assessmenttotpriv; \n this.dp = this.selectedLevel.dppriv;\n this.tf = this.selectedLevel.tfpriv;\n this.of = this.selectedLevel.ofpriv;\n this.mf = this.selectedLevel.mfpriv;\n this.lf = this.selectedLevel.lfpriv;\n \n \n }\n if (schooltypex=='public')\n {\n this.assessmenttotal = this.selectedLevel.assessmenttotgov; \n this.dp = this.selectedLevel.dpgov;\n this.tf = this.selectedLevel.tfgov;\n this.of = this.selectedLevel.ofgov;\n this.mf = this.selectedLevel.mfgov;\n this.lf = this.selectedLevel.lfgov; \n }\n }\n\n }}\n\n \n getSpecs(event) {\n \n if (event != undefined) {\n this.selectedSpecs = event;\n }\n }\n \n getStrand(event) {\n this.selectedStrand = event;\n\n if (event != undefined) {\n this.selectedStrand = event;\n }\n }\n \n getData(wc?) {\n let params: Dsmodel = {\n cols: \"e.date,u.name,l.name levelname, l.assessmenttot,l.dp,l.tf,l.mf,l.of,l.lf\",\n table: \"enrollment e\",\n wc: wc ? wc : \"\",\n order: \"e.id desc\",\n limit: `0, 10000`,\n join: \"left join level l on l.id =e.level left join sub u on u.id=e.sub\"\n };\n this.genServ.getDataWithJoinClause(params).subscribe(d => {\n this.tblData = d;\n }); \n }\n \n\n\n\n reloadData() {\n this.popTBl.refresh();\n }\n \n getUserName()\n {\n this.uName = this.global\n }\n \n onSelect(e) {\n this.selectedSub = e.data;\n console.debug(e);\n }\n\n}\n","

\n Error 404!\n Page Not Found\n

\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-page-not-found',\n templateUrl: './page-not-found.component.html',\n styleUrls: ['./page-not-found.component.css']\n})\nexport class PageNotFoundComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","
\n
Review Enrollment Requests
\n
\n\n
\n\n\n","import { Component, OnInit, OnDestroy, Output,EventEmitter,Input,ViewChild,AfterViewInit } from '@angular/core';\nimport { GeneralServiceService } from '../general-service.service';\nimport { Subscription } from 'rxjs';\n//import { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FrmApproveComponent } from '../frm-approve/frm-approve.component';\nimport { Globals } from '../globals';\nimport Swal from 'sweetalert2';\nimport { MailInfo } from \"../dsmodel.Interface\";\n\nimport { PopulateTextboxComponent } from \"../populate-textbox/populate-textbox.component\";\nimport { PopulateTableComponent } from \"../populate-table/populate-table.component\";\n\n\n\nvar jsPDF = require('jspdf');\nrequire('jspdf-autotable');\n\n\n//import { Component, OnInit } from '@angular/core';\n//import { NgbActiveModal } from \"@ng-bootstrap/ng-bootstrap\";\n//import { MailInfo } from \"../dsmodel.Interface\";\n//import { Component, OnInit, OnDestroy } from '@angular/core';\n//import { GeneralServiceService } from '../general-service.service';\n//import { Subscription } from 'rxjs';\n//import { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n//import { FrmApproveComponent } from '../frm-approve/frm-approve.component';\n//import { Globals } from '../globals';\n//import Swal from 'sweetalert2';\nimport { NgbModal, NgbActiveModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { FormGroup, FormBuilder, Validators } from \"@angular/forms\";\n\n@Component({\n selector: 'app-paymentcheck',\n templateUrl: './paymentcheck.component.html',\n styleUrls: ['./paymentcheck.component.css']\n})\nexport class PaymentcheckComponent implements OnInit {\n data: Subscription;\n @Output() onSuccess = new EventEmitter();\n @Input() pr: any;\n\n tblData = [];\n tblHeader = [\n { key: 'e.id', value: 'Doc #', hKey: 'id', o: 1 },\n { key: 'u.name as subname', value: 'Student', hKey: 'subname', o: 1 },\n { key: 'l.name as levelname', value: 'Grade Level', hKey: 'levelname', o: 1 },\n { key: 'DATE_FORMAT(e.date, \"%m-%d-%Y\") as datefiled', value: 'Date', hKey: 'datefiled', o: 0 },\n { key: 'e.email', value: 'email Address', hKey: 'email', o: 1 },\n { key: \"e.status\", value: 'Status', hKey: 'status', o: 0 },\n ];\n caption = \"\";\n tblHeaderHidden = \"\";\n col1: string = this.tblHeader.map(x => x.key).join(',');\n cols = this.col1.concat(this.tblHeaderHidden);\n join = {\n j1: 'e.sub,e.level',\n j2: 'u.id,l.id',\n j3: 'sub u,level l',\n j4: 'LEFT,LEFT'\n };\n isSearching: boolean = false;\n optionsProperties: any;\n o2Header = [\n { value: 'Approved', hKey: 'approved' },\n { value: 'Pending', hKey: 'pending' },\n { value: 'Declined', hKey: 'declined' }\n ];\n selectedPeriod: any;\n emailCred: any;\n emailto: any;\n showLoading: boolean = false;\n\n\n constructor(\n private gs: GeneralServiceService,\n //public ac: NgbActiveModal,\n public modal: NgbModal,\n public globals: Globals\n ) { }\n\n ngOnInit() {\n this.initProperties();\n this.getReqList();\n }\n\n initProperties() {\n // this.selectedPeriod = this.globals.period['id'];\n let a = this.tblHeader.filter((v) => v.o === 1);\n this.optionsProperties = { o1: a, o2: this.o2Header }\n }\n\n mapOt(d) {\n this.tblData = d.map(x => {\n return {\n id: x.id,\n subname : x.subname,\n levelname: x.levelname,\n datefiled: x.datefiled,\n email: x.email,\n status: x.status === 1 ? 'Approved' : x.status === 2 ? 'Declined' : 'Pending' \n }\n });\n }\n\n getReqList() {\n \n this.isSearching = false;\n let j = this.join;\n this.data = this.gs.GetDataForTrans('enrollment e', this.cols, 0, 1000, ['e.status', 'e.period'], [0, this.globals.periodid], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n }\n\n onNextPage() {\n let c = this.tblData.length;\n let j = this.join;\n if (this.isSearching !== true) {\n this.data = this.gs.GetDataForTrans('enrollment e', this.cols, c, 10, ['e.status', 'e.period'], [0, this.globals.periodid], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.tblData = this.tblData.concat(d));\n }\n }\n\n\n \n\n \n onSelect(e) {\n const mr = this.modal.open(FrmApproveComponent);\n let a = {\n id: e.id,\n sub: e.sub,\n subname: e.subname,\n levelname: e.levelname,\n datefiled: e.datefiled,\n email: e.email,\n status: e.status\n };\n mr.componentInstance.propertiesX = a;\n mr.componentInstance.title = \"Enrollment\";\n mr.componentInstance.onSuccess.subscribe((x) => {\n let v = `${e['id']}`;\n let p = \"\";\n if (x.mode === 1) {\n p = `call UpdateEnrollment(${v})`;\n } \n \n this.showConfigResponse(p);\n });\n }\n\n emailsending(p)\n {\n \n let a: MailInfo = {\n from: \"spcmfinance@gmail.com\",\n to: \"mail.aaurbi@gmail.com\",\n subject: `xxxx `,\n message: `xxxxx `,\n password: \"0917tyhKoiP\",\n smtp: \"smtp.gmail.com\",\n enableSSL: true,\n port: 587\n };\n alert(a);\n this.gs.sendEmail(a).subscribe(\n r => {\n if (r) {\n Swal.fire(\n \"Updated Record!\",\n \"your leave request has been filed\",\n \"success\"\n );\n ///this.onSuccess.emit(x);\n //this.ac.close();\n }\n },\n e => {\n Swal.fire(\"Err!\", e[\"message\"], \"error\");\n this.showLoading = false;\n },\n () => (this.showLoading = false)\n );\n}\n\n showConfigResponse(p) {\n this.gs.getConfigResponse(p)\n .subscribe(resp => {\n let x = parseInt(resp.body);\n if (x) {\n \n Swal.fire(`Record Updated!`, \"\", \"success\");\n //this.getEmailCred();\n this.emailsending(p);\n }\n },\n (resp) => alert(resp.error.ExceptionMessage),\n () => this.getReqList()\n );\n }\n\n getEmailCred() {\n this.gs\n .getSDataById(\"email\", 1, \"email,password\")\n .subscribe(d => (this.emailCred = d[0]));\n \n }\n\n\n onRefresh() {\n this.getReqList();\n }\n\n \n\n ngOnDestroy(): void {\n this.data.unsubscribe();\n }\n\n}\n\n\n","
\n
\n
\n Payroll Report\n
\n
\n
\n \n
\n \n
\n \n {{ selectedSize[\"val\"] }}\n \n\n
\n \n {{ item.val }}\n \n
\n
\n
\n \n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
No Records Found
\n \n
\n {{ header }}\n
\n {{ item[i] }}\n
\n
\n
\n","import {\n Component,\n OnInit,\n ViewChild,\n OnChanges,\n OnDestroy\n} from \"@angular/core\";\nconst jsPDF = require(\"jspdf\");\nrequire(\"jspdf-autotable\");\n\nimport { PopulateTableForReportsComponent } from \"../populate-table-for-reports/populate-table-for-reports.component\";\nimport { PopulateTextboxComponent } from \"../populate-textbox/populate-textbox.component\";\nimport { Globals } from \"../globals\";\nimport { EmployeeService } from \"../employee.service\";\nimport { GeneralServiceService } from \"../general-service.service\";\nimport { Subscription } from \"rxjs\";\nimport Swal from \"sweetalert2\";\n\n@Component({\n selector: \"app-payroll-report\",\n templateUrl: \"./payroll-report.component.html\",\n styleUrls: [\"./payroll-report.component.css\"]\n})\nexport class PayrollReportComponent implements OnInit, OnDestroy {\n @ViewChild(PopulateTableForReportsComponent, { static: false })\n popPayslip: PopulateTableForReportsComponent;\n @ViewChild(\"popPeriodX\", { static: false })\n popPeriod: PopulateTextboxComponent;\n\n prTable: any;\n prPeriod: any;\n selectedPeriod: any;\n wC: any = [];\n term: any = [];\n tblData: Array = [];\n pdfCol: Array = [];\n countInc = 0;\n countDed = 0;\n columns: Array = [\n { header: \"Name\", dataKey: \"ename\" },\n { header: \"Basic Pay\", dataKey: \"basicpay\" }\n ];\n pageSize: Array = [\n { key: \"legal\", val: \"legal\" },\n { key: \"letter\", val: \"letter\" },\n { key: \"a3\", val: \"a3\" },\n { key: \"a4\", val: \"a4\" },\n { key: \"a5\", val: \"a5\" }\n ];\n selectedSize: any = { key: \"a3\", val: \"a3\" };\n firstHeader: Array = [];\n secondHeader: Array = [\"Name\", \"Basic\"];\n bodyData: Array> = [];\n map1: Array> = [];\n totalRef: any = {};\n footerData: Array> = [[\"Total\"]];\n dsbLoadData = true;\n dsbPrint = true;\n dataToDiplayFin: Array = [];\n subs: Subscription;\n showLoading: boolean;\n\n constructor(\n public globals: Globals,\n public empServ: EmployeeService,\n public genServ: GeneralServiceService\n ) {}\n\n ngOnInit() {\n //console.debug(\"posted\", this.globals.period.posted);\n if (this.globals.period.posted === 1) {\n this.initProperties();\n this.dsbLoadData = false;\n this.dsbPrint = false;\n } else {\n Swal.fire(\n \"Not Yet Posted!\",\n \"Please make sure current Period is Posted!\",\n \"info\"\n );\n }\n }\n\n initProperties() {\n this.selectedPeriod = this.globals.period;\n let p = {\n fn: `CALL getAllColumnsForPayroll(${this.globals.period.id})`\n };\n this.genServ.callSP(p).subscribe(\n dataX => {\n let d = dataX as any[];\n d.sort((a, b) => {\n return a.type - b.type;\n }).forEach(v => {\n this.secondHeader.push(v.code.toString());\n if (v.type === 1) {\n this.countInc++;\n } else if (v.type === 2) {\n this.countDed++;\n }\n });\n this.secondHeader.splice(2 + this.countInc, 0, \"Gross\");\n this.secondHeader.push(\"Net\");\n //console.debug(\"SH\", this.secondHeader);\n },\n err => {\n Swal.fire(\"Error!\", JSON.parse(err), \"error\");\n this.showLoading = false;\n },\n () => (this.showLoading = false)\n );\n }\n\n generatePayroll() {\n this.print();\n }\n\n getPeriod() {\n this.secondHeader.forEach(valueX =>\n valueX !== \"Name\" ? (this.totalRef[valueX] = [0]) : false\n );\n this.bodyData = [];\n this.tblData = [];\n const rowTotal = new Array(this.secondHeader.length + 1);\n rowTotal[0] = \"Total\";\n this.bodyData.push(rowTotal);\n const dataToDisplay: any = {};\n this.genServ\n .GetDataForTrans(\n \"postedreference p\",\n \"p.emp as id,e.name,p.basicpay,p.gross,p.net\",\n 0,\n 1000,\n [\"period\"],\n [this.globals.period.id],\n \"p.emp\",\n \"e.id\",\n \"employee e\",\n \"LEFT\"\n )\n .subscribe(\n d => {\n d.forEach(v => {\n if (v.name) {\n const dataForDTDF: any = { name: v.name, data: [] };\n const s = this.selectedPeriod.paymentterm;\n const pt: number = s === 1 ? 0 : s === 2 ? 4 : s === 3 ? 2 : 1;\n const gross = 0;\n const netpay = 0;\n\n const bp: number = v.basicpay;\n const b = new Array(this.secondHeader.length);\n const headerCount = this.secondHeader.length;\n b[0] = v.name.toString() || \"Deleted\";\n b[1] = this.numFormat(bp);\n (this.totalRef.Basic as Array).push(v.basicpay);\n\n const dataForDisplay: any = {};\n dataToDisplay[v.name] = [];\n const p = {\n fn: `CALL generatePayrollReport(${this.globals.period.id},${v.id})`\n };\n this.genServ.callSP(p).subscribe(dataX => {\n const data = dataX as any[];\n data.forEach(vv => {\n (this.totalRef[vv.name] as Array).push(\n Number(vv.amt) || 0\n );\n // const bodyDataindex = this.secondHeader.indexOf(vv.name.toString());\n const reducer = (accumulator, currentValue) =>\n accumulator + currentValue;\n });\n const distinctData = data.map(x => x.name);\n for (const item of distinctData) {\n const dataSum = data\n // tslint:disable-next-line: no-shadowed-variable\n .filter(v => {\n return v.name === item;\n })\n // tslint:disable-next-line: no-shadowed-variable\n .reduce((a, b) => {\n return a + b.amt;\n }, 0);\n const bodyDataindex = this.secondHeader.indexOf(item);\n b[bodyDataindex] = this.numFormat(Number(dataSum.toFixed(2)));\n }\n\n (this.totalRef.Gross as Array).push(v.gross);\n (this.totalRef.Net as Array).push(v.net);\n b[this.countInc + 2] = this.numFormat(Number(v.gross));\n b[headerCount - 1] = this.numFormat(Number(v.net));\n });\n this.bodyData.splice(this.bodyData.length - 1, 0, b);\n }\n });\n },\n err => {\n Swal.fire(\"Error!\", JSON.parse(err), \"error\");\n this.showLoading = false;\n },\n () => {\n //console.debug(\"body data\", this.bodyData);\n this.showLoading = false;\n Swal.fire(\"Success!\", \"Request Completed!\", \"success\");\n }\n );\n }\n\n print() {\n this.bodyData[this.bodyData.length - 1][0] = \"Total\";\n for (const x in this.totalRef) {\n if (x) {\n const colRef = this.secondHeader.indexOf(x.toString());\n const reducer = (accumulator, currentValue) =>\n accumulator + currentValue;\n this.bodyData[this.bodyData.length - 1][colRef] = this.numFormat(\n this.totalRef[x].reduce(reducer)\n );\n }\n }\n\n const period = this.selectedPeriod.name;\n const sizeX: string = this.selectedSize.key.toString();\n const doc = new jsPDF(\"l\", \"pt\", `${sizeX}`);\n const totalPagesExp = \"{total_pages_count_string}\";\n const headX = [this.secondHeader];\n const width = doc.internal.pageSize.getWidth();\n const height = doc.internal.pageSize.getHeight();\n doc.setFontSize(18);\n doc.text(`PAYROLL ${period}`, width / 2, 90, { align: \"center\" });\n doc.autoTable({\n head: headX,\n body: this.bodyData,\n // foot: this.footerData,\n startY: 100,\n tableLineWidth: 1,\n theme: \"grid\",\n styles: {\n fontSize: 8,\n minCellHeight: \"auto\",\n cellWidth: \"wrap\"\n },\n headStyles: {\n fontStyle: \"bold\",\n halign: \"center\"\n },\n /* footStyles:{\n //fillColor: [77, 249, 175],\n halign: 'center'\n }, */\n bodyStyles: {\n halign: \"right\"\n },\n columnStyles: {\n 0: {\n halign: \"left\",\n fontStyle: \"bold\"\n },\n [this.countInc + 1]: {\n cellWidth: \"auto\"\n }\n },\n didDrawPage: data => {\n // Footer\n let str = \"Page \" + doc.internal.getNumberOfPages();\n if (typeof doc.putTotalPages === \"function\") {\n str = str + \" of \" + totalPagesExp;\n }\n doc.setFontSize(10);\n doc.text(str, data.settings.margin.left, height - 10);\n }\n });\n if (typeof doc.putTotalPages === \"function\") {\n doc.putTotalPages(totalPagesExp);\n }\n const blob = doc.output(\"blob\");\n window.open(URL.createObjectURL(blob));\n\n this.map1 = this.bodyData.map(x => {\n return x.map(xx => {\n return xx.replace(\",\", \"\");\n });\n });\n }\n\n selectSize(item) {\n this.selectedSize = item;\n }\n\n numFormat(n: number) {\n const a = n\n .toFixed(2)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n return a;\n }\n\n exportToCSV(filename) {\n const csv = [];\n const rows = document.querySelectorAll(\"table tr\");\n\n // tslint:disable-next-line: prefer-for-of\n for (let i = 0; i < rows.length; i++) {\n const row = [];\n const cols = rows[i].querySelectorAll(\"td, th\");\n // tslint:disable-next-line: prefer-for-of\n for (let j = 0; j < cols.length; j++) {\n row.push((cols[j] as HTMLElement).innerText);\n }\n csv.push(row.join(\",\"));\n }\n\n // Download CSV file\n this.downloadCSV(csv.join(\"\\n\"), filename);\n }\n\n downloadCSV(csv, filename) {\n let csvFile;\n let downloadLink;\n\n csvFile = new Blob([csv], { type: \"text/csv\" });\n\n downloadLink = document.createElement(\"a\");\n downloadLink.download = filename;\n downloadLink.href = window.URL.createObjectURL(csvFile);\n document.body.appendChild(downloadLink);\n downloadLink.click();\n }\n\n ngOnDestroy(): void {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n}\n","
\n
\n Summary Report\n
\n\n
\n
\n \n
\n
\n \n \n This section computes and displays the total expenses of employees\n salary\n
\n
\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n
\n \n {{ header }}\n \n
\n {{ item[i] }}\n
\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { PopulateTableForReportsComponent } from \"../populate-table-for-reports/populate-table-for-reports.component\";\nimport { PopulateTextboxComponent } from \"../populate-textbox/populate-textbox.component\";\nimport { Subscription } from \"rxjs/internal/Subscription\";\nimport { Globals } from \"../globals\";\nimport { EmployeeService } from \"../employee.service\";\nimport { GeneralServiceService } from \"../general-service.service\";\nimport Swal from \"sweetalert2\";\n\nvar jsPDF = require(\"jspdf\");\nrequire(\"jspdf-autotable\");\n\n@Component({\n selector: \"app-payroll-summary-v2\",\n templateUrl: \"./payroll-summary-v2.component.html\",\n styleUrls: [\"./payroll-summary-v2.component.css\"]\n})\nexport class PayrollSummaryV2Component implements OnInit {\n @ViewChild(PopulateTableForReportsComponent, { static: false })\n popPayslip: PopulateTableForReportsComponent;\n @ViewChild(\"popPeriodX\", { static: false })\n popPeriod: PopulateTextboxComponent;\n\n prTable: any;\n prPeriod: any;\n selectedPeriod: any;\n wC: any = [];\n term: any = [];\n tblData: Array = [];\n pdfCol: Array = [];\n countInc: number = 0;\n countDed: number = 0;\n columns: Array = [\n { header: \"Name\", dataKey: \"ename\" },\n { header: \"Basic Pay\", dataKey: \"basicpay\" }\n ];\n pageSize: Array = [\n { key: \"legal\", val: \"legal\" },\n { key: \"letter\", val: \"letter\" },\n { key: \"a3\", val: \"a3\" },\n { key: \"a4\", val: \"a4\" },\n { key: \"a5\", val: \"a5\" }\n ];\n selectedSize: Object = { key: \"a3\", val: \"a3\" };\n firstHeader: Array = [];\n secondHeader: Array = [\"Name\", \"Basic\"];\n bodyData: Array> = [];\n totalRef: Object = {};\n footerData: Array> = [[\"Total\"]];\n showLoading: boolean;\n subs: Subscription;\n\n constructor(\n public globals: Globals,\n public empServ: EmployeeService,\n public genServ: GeneralServiceService\n ) {}\n\n ngOnChanges() {}\n\n ngOnInit() {\n this.initProperties();\n }\n\n initProperties() {\n this.genServ\n .getSDataById(\"period\", this.globals.period.id, \"name,paymentterm\")\n .subscribe(d => {\n this.selectedPeriod = d[0];\n });\n let p = {\n fn: `CALL getAllColumnsForPayroll(${this.globals.period.id})`\n };\n this.genServ.callSP(p).subscribe(\n dataX => {\n let d = dataX as any[];\n d.sort((a, b) => {\n return a.type - b.type;\n }).forEach(v => {\n this.secondHeader.push(v.code.toString());\n if (v.type === 1) {\n this.countInc++;\n } else if (v.type === 2) {\n this.countDed++;\n }\n });\n this.secondHeader.splice(2 + this.countInc, 0, \"Gross\");\n this.secondHeader.push(\"Net\");\n //console.debug(\"SH\", this.secondHeader);\n this.firstHeader = [\n {\n content: \"Name\",\n rowSpan: 2,\n styles: { halign: \"center\", valign: \"center\" }\n },\n {\n content: \"Basic\",\n rowSpan: 2,\n styles: { halign: \"center\", valign: \"center\" }\n },\n {\n content: \"Income\",\n colSpan: this.countInc,\n styles: { halign: \"center\" }\n },\n {\n content: \"Gross\",\n rowSpan: 2,\n styles: { halign: \"center\", valign: \"center\" }\n },\n {\n content: \"Deduction\",\n colSpan: this.countDed,\n styles: { halign: \"center\" }\n },\n {\n content: \"Net\",\n rowSpan: 2,\n styles: { halign: \"center\", valign: \"center\" }\n }\n ];\n if (this.countInc < 0) {\n let incIndex = this.firstHeader.findIndex(\n x => x.content === \"Income\"\n );\n this.firstHeader.splice(incIndex, 1);\n }\n\n if (this.countDed < 0) {\n let dedIndex = this.firstHeader.findIndex(\n x => x.content === \"Deduction\"\n );\n this.firstHeader.splice(dedIndex, 1);\n }\n },\n err => {\n Swal.fire(\"Error!\", JSON.parse(err), \"error\");\n this.showLoading = false;\n },\n () => (this.showLoading = false)\n );\n }\n\n generatePayroll() {\n this.print();\n }\n\n getPeriod() {\n this.showLoading = true;\n this.totalRef = { Basic: 0, Gross: 0, Net: 0 };\n this.bodyData = [];\n this.tblData = [];\n let rowTotal = new Array(this.secondHeader.length + 1);\n rowTotal[0] = \"Total\";\n this.bodyData.push(rowTotal);\n //Rows\n this.genServ\n .GetDataNoLimit(\"employee\", \"name,basicpay\", [\"active\"], [1])\n .subscribe(\n d => {\n d.forEach(\n v => {\n let s = this.selectedPeriod.paymentterm;\n let pt: number = s == 1 ? 0 : s == 2 ? 4 : s == 3 ? 2 : 1;\n let gross: number = 0;\n let netpay: number = 0;\n\n let bp: number = v[\"basicpay\"];\n let add = 0,\n less = 0;\n let b = new Array(this.secondHeader.length);\n let headerCount = this.secondHeader.length;\n b[0] = v.name.toString();\n b[1] = this.numFormat(bp);\n let dataForDisplay: Object = {};\n this.totalRef[\"Basic\"] = this.totalRef[\"Basic\"] + v[\"basicpay\"];\n let params = {\n fn: `CALL generatePayrollReport(${this.globals.period.id},${v.id})`\n };\n this.subs = this.genServ.callSP(params).subscribe(dataSP => {\n let data = dataSP as any[];\n data.forEach(vv => {\n let dataRef: number = this.totalRef[vv[\"name\"]] || 0;\n this.totalRef[vv[\"name\"]] =\n dataRef + parseFloat(vv.amt.toString());\n //console.debug(`Data Ref: ${vv[\"name\"]}`, dataRef);\n var dfdr = dataForDisplay[vv[\"name\"]] | 0;\n dataForDisplay[vv[\"name\"]] = dfdr + Number(vv[\"amt\"]);\n if (vv.type === 1) {\n add += parseFloat(vv.amt.toString());\n } else if (vv.type === 2) {\n less += parseFloat(vv.amt.toString());\n }\n });\n const distinctData = data.map(x => x.name);\n for (let item of distinctData) {\n var dataSum = data\n .filter(v => v.name === item)\n .reduce((a, b) => a + b.amt, 0);\n let bodyDataindex = this.secondHeader.indexOf(item);\n b[bodyDataindex] = this.numFormat(dataSum);\n }\n //console.debug(\"add\", add);\n //console.debug(\"less\", less);\n gross = Number(bp / pt + add);\n netpay = Number(gross - less);\n this.totalRef[\"Gross\"] = this.totalRef[\"Gross\"] + gross;\n this.totalRef[\"Net\"] = this.totalRef[\"Net\"] + netpay;\n b[this.countInc + 2] = this.numFormat(gross);\n b[headerCount - 1] = this.numFormat(netpay);\n });\n this.bodyData.splice(this.bodyData.length - 1, 0, b);\n },\n err => {\n Swal.fire(\"Error!\", `${JSON.stringify(err)}`, \"error\");\n }\n );\n },\n err => {\n Swal.fire(\"Error!\", `${JSON.stringify(err)}`, \"error\");\n this.showLoading = false;\n },\n () => {\n Swal.fire(\"Request Completed!\", \"\", \"success\");\n this.showLoading = false;\n }\n );\n // console.debug(this.firstHeader);\n // console.debug(this.secondHeader);\n }\n\n computeTotal() {\n console.debug(\"totalRef\", this.totalRef);\n for (let x in this.totalRef) {\n let colRef = this.secondHeader.indexOf(x.toString());\n //console.log(`x: ${x}`);\n this.bodyData[this.bodyData.length - 1][colRef] = this.numFormat(\n this.totalRef[x]\n );\n }\n }\n\n print() {\n this.computeTotal();\n var period = this.selectedPeriod.name;\n let sizeX: string = this.selectedSize[\"key\"].toString();\n var doc = new jsPDF(\"l\", \"pt\", `${sizeX}`);\n var totalPagesExp = \"{total_pages_count_string}\";\n let headX = [this.secondHeader];\n var width = doc.internal.pageSize.getWidth();\n var height = doc.internal.pageSize.getHeight();\n doc.setFontSize(18);\n doc.text(`PAYROLL ${period}`, width / 2, 90, { align: \"center\" });\n doc.autoTable({\n head: headX,\n body: this.bodyData,\n // foot: this.footerData,\n startY: 100,\n tableLineWidth: 1,\n theme: \"grid\",\n styles: {\n fontSize: 8,\n minCellHeight: \"auto\",\n cellWidth: \"wrap\"\n },\n headStyles: {\n fontStyle: \"bold\",\n halign: \"center\"\n },\n /* footStyles:{\n //fillColor: [77, 249, 175],\n halign: 'center'\n }, */\n bodyStyles: {\n halign: \"right\"\n },\n columnStyles: {\n 0: {\n halign: \"left\",\n fontStyle: \"bold\"\n },\n [this.countInc + 1]: {\n cellWidth: \"auto\"\n }\n },\n didDrawPage: function(data) {\n //Footer\n var str = \"Page \" + doc.internal.getNumberOfPages();\n if (typeof doc.putTotalPages === \"function\") {\n str = str + \" of \" + totalPagesExp;\n }\n doc.setFontSize(10);\n doc.text(str, data.settings.margin.left, height - 10);\n }\n });\n if (typeof doc.putTotalPages === \"function\") {\n doc.putTotalPages(totalPagesExp);\n }\n var blob = doc.output(\"blob\");\n window.open(URL.createObjectURL(blob));\n }\n\n selectSize(item) {\n this.selectedSize = item;\n }\n\n numFormat(n: number) {\n const a = n\n .toFixed(2)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n return a;\n }\n\n ngOnDestroy(): void {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n}\n","
\n
\n\n
\n Select employee to generate and view payslip record.\n
\n\n\n
\n
Payslip Generator
\n
\n \n
\n
\n\n
\n\n
\n
\n \n
\n \n \n
\n
","import {\n Component,\n OnInit,\n OnDestroy,\n AfterViewInit,\n ViewChild\n} from \"@angular/core\";\nimport { Globals } from \"../globals\";\nimport { EmployeeService } from \"../employee.service\";\nimport { GeneralServiceService } from \"../general-service.service\";\nimport { Dsmodel } from \"../dsmodel.Interface\";\nimport { Subscription } from \"rxjs\";\nimport { TableCompComponent } from \"../table-comp/table-comp.component\";\nimport Swal from \"sweetalert2\";\nconst jsPDF = require(\"jspdf\");\nrequire(\"jspdf-autotable\");\n\n@Component({\n selector: \"app-payslip-v2\",\n templateUrl: \"./payslip-v2.component.html\",\n styleUrls: [\"./payslip-v2.component.css\"]\n})\nexport class PayslipV2Component implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild(TableCompComponent, { static: false }) tblComp: TableCompComponent;\n showLoading: boolean;\n subs: Subscription;\n tblData: any;\n tblHeader: { key: string; value: string; hKey: string }[];\n caption: string;\n dataPosted: any[];\n loanbalance: number;\n\n constructor(private globals: Globals, private gs: GeneralServiceService) {}\n\n ngOnInit() {\n this.initProperties();\n this.getData();\n this.getLoanBalance();\n this.loadPayslipRecord();\n }\n\n ngAfterViewInit() {\n this.tblComp.tblData = this.tblData;\n }\n\n initProperties() {\n this.tblHeader = [\n { key: \"type\", value: \"Type\", hKey: \"type\" },\n { key: \"name\", value: \"Details\", hKey: \"name\" },\n { key: \"amt\", value: \"Amount\", hKey: \"amt\" }\n ];\n // tslint:disable-next-line: quotemark\n this.caption = \"Payslip Overview\";\n }\n\n getLoanBalance() {\n this.showLoading = true;\n const a = this.globals.accesslevel[\"idX\"];\n const params: Dsmodel = {\n cols: \"sum(balance) as sum\",\n table: \"loandet\",\n wc: `emp=${a}`,\n order: \"sum desc\",\n join: \"\",\n limit: \"\"\n };\n this.subs = this.gs.getDataWithJoinClause(params).subscribe(\n d => {\n this.loanbalance = d[0].sum || 0;\n },\n () => {\n this.showLoading = false;\n },\n () => {\n this.showLoading = false;\n }\n );\n }\n\n getData() {\n this.showLoading = true;\n // tslint:disable-next-line: no-string-literal\n const a = this.globals.accesslevel[\"idX\"];\n const params: Dsmodel = {\n cols:\n \"e.code,e.name,p.emp as id,p.basicpay,p.totalDeduction,p.gross,p.net\",\n table: \"postedreference p\",\n wc: `p.emp=${a} and period=${this.globals.period.id}`,\n order: \"id desc\",\n join: \"Left Join employee e on e.id=p.emp\",\n limit: \"0,1000\"\n };\n this.subs = this.gs.getDataWithJoinClause(params).subscribe(\n d => {\n this.dataPosted = d[0];\n },\n () => {\n this.showLoading = false;\n },\n () => {\n this.showLoading = false;\n }\n );\n }\n\n loadPayslipRecord() {\n this.showLoading = true;\n let a = this.globals.accesslevel[\"idX\"];\n const p = {\n fn: `CALL generatePayslip(${this.globals.period.id},${a})`\n };\n this.gs.callSP(p).subscribe(\n dataX => {\n const data = dataX as any[];\n this.tblData = data.map(x => {\n return {\n type: x.type == 1 ? \"Income\" : \"Deduction\",\n name: x.name,\n amt: x.amt\n };\n });\n },\n err => {\n Swal.fire(\"Error!\", JSON.parse(err), \"error\");\n this.showLoading = false;\n },\n () => (this.showLoading = false)\n );\n }\n\n generatePayslip() {\n var p = this.dataPosted;\n let event = this.tblData;\n let dataHolder = [],\n incList = [],\n dedList = [];\n dataHolder.push({\n name: \"Basic Pay\",\n amt: this.gs.numFormat(p[\"basicpay\"])\n });\n\n incList.push({\n name: \" Additional Income:\",\n amt: \" \"\n });\n dedList.push({\n name: \" Deductions:\",\n amt: \" \"\n });\n\n for (let i in event) {\n let x = event[i].type;\n let a = parseFloat(event[i].amt.toString());\n let b = a\n .toFixed(2)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n if (x === \"Income\") {\n incList.push({\n name: \" \" + event[i].name,\n amt: b\n });\n } else if (x === \"Deduction\") {\n dedList.push({\n name: \" \" + event[i].name,\n amt: b\n });\n }\n }\n dataHolder = dataHolder.concat(incList, dedList);\n dataHolder.push({\n name: \" \",\n amt: \" \"\n });\n dataHolder.push({\n name: \"Loan Balance\",\n amt: this.gs.numFormat(this.loanbalance)\n });\n dataHolder.push({\n name: \"Gross Pay\",\n amt: this.gs.numFormat(p[\"gross\"])\n });\n dataHolder.push({\n name: \"Total Deduction\",\n amt: this.gs.numFormat(p[\"totalDeduction\"]) || 0\n });\n dataHolder.push({\n name: \"Net Pay\",\n amt: this.gs.numFormat(p[\"net\"])\n });\n //console.debug(dataHolder);\n this.print(dataHolder);\n }\n\n print(dataToPrint) {\n var imgData = this.globals.hitcLogo;\n var period = this.globals.period[\"name\"];\n var name = this.dataPosted[\"name\"];\n var columns = [\n { title: \"Description\", dataKey: \"name\" },\n { title: \"Amount\", dataKey: \"amt\" }\n ];\n var doc = new jsPDF(\"p\", \"pt\", \"a5\");\n var totalPagesExp = \"{total_pages_count_string}\";\n doc.autoTable(columns, dataToPrint, {\n startY: false, // false (indicates margin top value) or a number\n tableWidth: \"auto\", // 'auto', 'wrap' or a number\n showHead: \"everyPage\", // 'everyPage', 'firstPage', 'never'\n tableLineColor: 200, // number, array (see color section below)\n tableLineWidth: 0,\n headStyles: {\n fontStyle: \"bold\",\n halign: \"center\"\n },\n margin: { top: 160 },\n columnStyles: {\n amt: {\n halign: \"right\",\n fontStyle: \"bold\"\n }\n },\n didDrawPage: function(dataToPrint) {\n doc.addImage(imgData, \"PNG\", 25, 35, 80, 60);\n doc.setFontSize(18);\n doc.text(`PAYSLIP`, 110, 80);\n doc.setFontSize(14);\n doc.text(`${name}`, 40, 120);\n doc.setFontSize(12);\n doc.text(`For the Period: ${period}`, 40, 140);\n // FOOTER\n var str = \"Page \" + dataToPrint.pageCount;\n // Total page number plugin only available in jspdf v1.0+\n if (typeof doc.putTotalPages === \"function\") {\n str = str + \" of \" + totalPagesExp;\n }\n doc.setFontSize(10);\n var pageHeight =\n doc.internal.pageSize.height || doc.internal.pageSize.getHeight();\n doc.text(str, dataToPrint.settings.margin.left, pageHeight - 10);\n }\n });\n if (typeof doc.putTotalPages === \"function\") {\n doc.putTotalPages(totalPagesExp);\n }\n var blob = doc.output(\"blob\");\n window.open(URL.createObjectURL(blob));\n } //print()\n\n ngOnDestroy(): void {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n}\n","\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges,\n AfterContentInit, OnDestroy } from '@angular/core';\nimport {GeneralServiceService} from '../general-service.service';\nimport { Observable, Subject} from 'rxjs';\n\n@Component({\n selector: 'app-populate-table-for-reports',\n templateUrl: './populate-table-for-reports.component.html',\n styleUrls: ['./populate-table-for-reports.component.css']\n})\nexport class PopulateTableForReportsComponent implements OnInit {\n\n tblData: any[];\n @Input() properties: any;\n caption=\"\";\n cols=\"\";\n filtering: boolean=false;\n @Output() selectDataEvent= new EventEmitter();\n @Output() DataEvent= new EventEmitter();\n @Output() ActiveDataEvent= new EventEmitter();\n wcHolder={wc: \"\", term: \"\"};\n\n private ngUnsubscribe: Subject = new Subject();\n\n constructor(\n private genServ: GeneralServiceService\n ) { }\n\n ngOnChanges(){\n //this.loadData();\n }\n\n ngOnInit() {\n this.fnCols();\n //this.loadData();\n }\n\n ngAfterContentInit(){\n //this.getDataForReports();\n }\n\n fnCols(){\n this.cols='';\n this.caption=`List of ${this.properties.table}`;\n for(let i in this.properties.tblHeader){\n if(Number(i)==this.properties.tblHeader.length-1){\n this.cols+=this.properties.tblHeader[i].key;\n }else{\n this.cols+=this.properties.tblHeader[i].key+\",\";\n }\n }\n if(this.properties.tblHeaderHidden!=\"\"){\n this.cols+=`,${this.properties.tblHeaderHidden}`;\n } \n }\n\n loadData() {\n this.genServ.getDataLimit(\n this.properties.table, this.cols, 0, 10\n ).subscribe((data) => {\n this.tblData=data;\n });\n }\n\n loadDataWithJoin(){\n \n }\n\n loadDataPerPeriod(wc?, term?) {\n this.wcHolder.wc=wc;\n this.wcHolder.term=term;\n this.genServ.GetDataForTrans(\n this.properties.table, this.cols, 0, 1000, wc, term,\n this.properties.lj.lj1, this.properties.lj.lj2, this.properties.lj.lj3, this.properties.lj.lj4\n ).subscribe((data)=>{\n this.tblData=data;\n },\n () =>alert('error!'),\n () => this.filtering=true\n );\n }\n\n nextPage() {\n if (this.filtering==false) {\n let d2$= this.genServ.getData(\n this.properties.table, this.cols, this.tblData.length, this.properties.ps\n );\n if (d2$) {\n d2$.subscribe((data) => {\n data.forEach(i => {\n this.tblData.push(i);\n })\n });\n }\n }\n \n }//nextPage()\n\n filterData(term: number[], wC: string[]){\n if(term!=null){\n this.genServ.FilterData(\n this.properties.table, this.cols, 0, 1000, wC, term\n ).subscribe((data)=>{\n this.tblData=data;\n },\n () =>alert('error!'),\n () => this.filtering=true\n );\n }else{\n this.loadData();\n }\n }\n\n searchData(term, wc){\n /* this.genServ.getData2(\n this.properties.table, this.cols, 0, 1000, wc, term\n ).subscribe((data)=>{\n this.tblData=data;\n }); */\n }\n\n selectedData(event){\n this.selectDataEvent.emit(event);\n }\n\n getDataForReports(){\n //this.loadData();\n this.DataEvent.emit(this.tblData)\n }\n\n getActiveDataForReports(){\n //this.loadData();\n this.ActiveDataEvent.emit(this.tblData)\n }\n\n getTableDataForReports(){\n return this.tblData;\n }\n\n GetDataJoinUnion(emp: number,period: number){\n this.genServ.GetDataUnionAllTablesWithJoin(emp,period).subscribe((d)=>{\n this.tblData=d;\n });\n }\n\n \n}\n","\n\n\n\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges,\n AfterContentInit, OnDestroy } from '@angular/core';\nimport {GeneralServiceService} from '../general-service.service';\nimport { Observable, Subject} from 'rxjs'\n\n@Component({\n selector: 'app-populate-table-for-trans',\n templateUrl: './populate-table-for-trans.component.html',\n styleUrls: ['./populate-table-for-trans.component.css']\n})\nexport class PopulateTableForTransComponent implements OnInit{\n tblData: any[];\n @Input() properties: any;\n caption=\"\";\n cols=\"\";\n filtering: boolean=false;\n @Output() selectDataEvent= new EventEmitter();\n selectedData: any;\n wcHolder={wc: \"\", term: \"\"};\n\n private ngUnsubscribe: Subject = new Subject();\n\n constructor(\n private genServ: GeneralServiceService\n ) { }\n\n ngOnInit() {\n this.fnCols();\n }\n\n ngAfterContentInit(){\n if(this.properties.wc){\n //this.loadDataPerPeriod(this.properties.wc.key, this.properties.wc.value);\n }else{\n //this.loadData();\n }\n }\n\n fnCols(){\n this.cols='';\n this.caption=`List of ${this.properties.table}`;\n for(let i in this.properties.tblHeader){\n if(Number(i)==this.properties.tblHeader.length-1){\n this.cols+=this.properties.tblHeader[i].key;\n }else{\n this.cols+=this.properties.tblHeader[i].key+\",\";\n }\n }\n if(this.properties.tblHeaderHidden!=\"\"){\n this.cols+=`,${this.properties.tblHeaderHidden}`;\n } \n }\n\n loadData() {\n this.genServ.getData(\n this.properties.table, this.cols, 0, this.properties.ps\n ).subscribe((data) => {\n this.tblData=data;\n });\n }\n\n loadDataPerPeriod(wc?, term?) {\n this.wcHolder.wc=wc;\n this.wcHolder.term=term;\n this.genServ.GetDataForTrans(\n this.properties.table, this.cols, 0, 1000, wc, term,\n this.properties.lj.lj1, this.properties.lj.lj2, this.properties.lj.lj3, this.properties.lj.lj4\n ).subscribe((data)=>{\n this.tblData=data;\n },\n () =>alert('error!'),\n () => this.filtering=true\n );\n }\n\n loadDataWithJOinWOCL(){\n this.genServ.GetDataForTransWOCL(this.properties.table, this.cols, this.properties.lj.lj1,\n this.properties.lj.lj2, this.properties.lj.lj3, this.properties.lj.lj4).subscribe((data)=>{\n this.tblData=data;\n },\n () =>alert('error!'),\n () => this.filtering=true\n );\n }\n\n nextPage() {\n if (this.filtering==false) {\n let d2$= this.genServ.getData(\n this.properties.table, this.cols, this.tblData.length, this.properties.ps\n );\n if (d2$) {\n d2$.subscribe((data) => {\n data.forEach(i => {\n this.tblData.push(i);\n })\n });\n }\n }\n \n }//nextPage()\n\n filterData(term: number[], wC: string[], op: string[]){\n if(term!=null){\n this.genServ.FilterData(\n this.properties.table, this.cols, 0, 1000, wC, term\n ).subscribe((data)=>{\n this.tblData=data;\n },\n () =>alert('error!'),\n () => this.filtering=true\n );\n }else{\n this.loadData();\n }\n }\n\n searchData(term, wc){\n this.genServ.getDataLimit(\n this.properties.table, this.cols, 0, 1000, wc, term\n ).subscribe((data)=>{\n this.tblData=data;\n });\n }\n\n getSelectedData(event){\n this.selectedData=event.data;\n console.log(event);\n }\n\n edit(){\n this.selectDataEvent.emit(this.selectedData);\n }\n\n delete(){\n if(confirm(`Delete transaction: ${this.selectedData.id}?`)){\n let a=this.properties.table;\n var str=a.slice(0, a.length-2);\n /* if(this.properties.deleteWc){\n this.genServ.deleteRecord(this.selectedData.autoinc, str, this.properties.deleteWc).subscribe(()=>{\n alert(`Deleted!`)\n },\n () =>alert(`error!`),\n () => this.loadDataPerPeriod(this.wcHolder.wc, this.wcHolder.term)\n );\n }else{ */\n if(this.properties.autoModule){\n this.genServ.deleteRecord(this.selectedData.id, str, this.properties.deleteWc).subscribe(()=>{\n alert(`Deleted!`)\n },\n () =>alert(`error!`),\n () =>{\n if(this.properties.autoModule){\n this.loadDataWithJOinWOCL();\n }else{\n this.loadDataPerPeriod(this.wcHolder.wc, this.wcHolder.term)\n }\n }\n );\n }else{\n this.genServ.deleteRecord(this.selectedData.id, str).subscribe(()=>{\n alert(`Deleted!`)\n },\n () =>alert(`error!`),\n () =>{\n this.loadDataPerPeriod(this.wcHolder.wc, this.wcHolder.term)\n }\n );\n }\n }\n \n //}\n }//delete()\n\n}\n","\n\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges,\n AfterContentInit, OnDestroy } from '@angular/core';\nimport {GeneralServiceService} from '../general-service.service';\nimport { Observable, Subject} from 'rxjs'\n\n@Component({\n selector: 'app-populate-table',\n templateUrl: './populate-table.component.html',\n styleUrls: ['./populate-table.component.css']\n})\nexport class PopulateTableComponent implements OnChanges, OnInit, AfterContentInit {\n tblData: any[];\n @Input() properties: any;\n caption=\"\";\n cols=\"\";\n filtering: boolean=false;\n @Output() selectDataEvent= new EventEmitter();\n @Output() DataEvent= new EventEmitter();\n\n private ngUnsubscribe: Subject = new Subject();\n\n constructor(\n private genServ: GeneralServiceService\n ) { }\n\n ngOnChanges(){\n //this.loadData();\n }\n\n ngOnInit() {\n this.fnCols();\n }\n\n ngAfterContentInit(){\n this.loadData();\n }\n\n fnCols(){\n this.cols='';\n this.caption=`List of ${this.properties.table}`;\n for(let i in this.properties.tblHeader){\n if(Number(i)==this.properties.tblHeader.length-1){\n this.cols+=this.properties.tblHeader[i].key;\n }else{\n this.cols+=this.properties.tblHeader[i].key+\",\";\n }\n }\n if(this.properties.tblHeaderHidden!=\"\"){\n this.cols+=`,${this.properties.tblHeaderHidden}`;\n } \n }\n\n loadData() {\n this.genServ.getData(\n this.properties.table, this.cols, 0, this.properties.ps\n ).subscribe((data) => {\n this.tblData=data;\n });\n }\n\n nextPage() {\n if (this.filtering==false) {\n let d2$= this.genServ.getData(\n this.properties.table, this.cols, this.tblData.length, this.properties.ps\n );\n if (d2$) {\n d2$.subscribe((data) => {\n data.forEach(i => {\n this.tblData.push(i);\n })\n });\n }\n }\n \n }//nextPage()\n\n filterData(term: number[], wC: string[]){\n if(term!=null){\n this.genServ.FilterData(\n this.properties.table, this.cols, 0, 1000, wC, term\n ).subscribe((data)=>{\n this.tblData=data;\n },\n () =>alert('error!'),\n () => this.filtering=true\n );\n }else{\n this.loadData();\n }\n }\n\n searchData(term, wc){\n this.genServ.FilterData(\n this.properties.table, this.cols, 0, 1000, [wc], [term]\n ).subscribe((data)=>{\n this.tblData=data;\n });\n }\n\n selectedData(event){\n this.selectDataEvent.emit(event);\n }\n}\n","
\n
\n
\n {{properties.label}}
 \n \n
\n
  \n \n   \n \n
\n","import {\n Component, OnInit, Input, Output, EventEmitter, HostListener,\n AfterContentInit, OnDestroy\n} from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable, Subject, Subscription } from 'rxjs';\n\nimport { Globals } from '../globals';\nimport { ModalForDataSelectionComponent } from '../modal-for-data-selection/modal-for-data-selection.component';\nimport { EmployeeService } from '../employee.service';\nimport { GeneralServiceService } from '../general-service.service';\n\n@Component({\n selector: 'app-populate-textbox',\n templateUrl: './populate-textbox.component.html',\n styleUrls: ['./populate-textbox.component.css']\n})\nexport class PopulateTextboxComponent implements OnInit, OnDestroy {\n @Output() SelectedDataEvent = new EventEmitter();\n @Input() properties: any;\n selectedData: Object = { code: '' };\n ids: any = [];\n i: number = -2;\n tipContent: any;\n cols = \"\";\n subs: Subscription;\n\n constructor(\n public modalService: NgbModal,\n private empServ: EmployeeService,\n private genServ: GeneralServiceService,\n public globals: Globals\n ) { }\n\n ngOnInit() {\n this.fnCols();\n this.getIds();\n }\n\n loadModal() {\n if (!this.properties.disabled) {\n const modalRef = this.modalService.open(ModalForDataSelectionComponent);\n modalRef.componentInstance.table = this.properties.table;\n modalRef.componentInstance.tblHeader = this.properties.tableHeader;\n modalRef.componentInstance.tblHeaderHidden = this.properties.tblHeaderHidden;\n modalRef.componentInstance.wc = this.properties.wc;\n modalRef.componentInstance.lj = this.properties.lj;\n modalRef.componentInstance.title = this.properties.label;\n modalRef.componentInstance.onOk\n .subscribe((data) => {\n this.fnSelectData(data);\n });\n }\n }\n\n fnSelectData(data) {\n this.SelectedDataEvent.emit(data);\n this.selectedData = data;\n //console.debug(`From pop Inner: ${data.id}`);\n }\n\n\n fnCols() {\n for (let i in this.properties.tableHeader) {\n if (Number(i) == this.properties.tableHeader.length - 1) {\n this.cols += this.properties.tableHeader[i].key;\n } else {\n this.cols += this.properties.tableHeader[i].key + \",\";\n }\n }\n if (this.properties.tblHeaderHidden != \"\") {\n this.cols += `,${this.properties.tblHeaderHidden}`;\n }\n }\n\n keyDownFunction(id) {\n let lj: Object = this.properties.lj;\n if (!this.properties.disabled) {\n if (this.properties.idCol) {\n this.subs = this.genServ.GetDataForTrans(this.properties.table, this.cols, 0, 1,\n ['e.code', 'p.period'], [id, this.globals.period.id],\n lj['lj1'], lj['lj2'], lj['lj3'], lj['lj4']).subscribe((data) => {\n if (data && data.length > 0) {\n this.fnSelectData(data[0]);\n } else {\n var x = { id: 0 }\n this.fnSelectData(x);\n }\n });\n } else {\n this.subs = this.genServ.getSData(this.properties.table, id, this.cols).subscribe(\n (data) => {\n if (data && data.length > 0) {\n this.fnSelectData(data[0]);\n } else {\n var x = { id: 0 }\n this.fnSelectData(x);\n }\n }\n );\n }//innerIf1\n }//outerIf\n }\n\n getIds() {\n //alert(`poptxtbx: ${this.properties.wc}`);\n let pr = this.properties;\n if (this.properties.wc && this.properties.wc !== 1) {\n this.subs = this.genServ.getIdFornav(this.properties.table, [this.properties.wc.wc], [this.properties.wc.term]).subscribe((data) => {\n data.forEach((i) => this.ids.push(i));\n });\n } else if (this.properties.wc === 0) {\n this.subs = this.genServ.getIdFornavNoWc(this.properties.table).subscribe((data) => {\n data.forEach((i) => this.ids.push(i));\n });\n } else if (this.properties.wc) {\n if (this.properties.idCol) {\n this.subs = this.genServ.GetDataForTrans(pr.table, 'e.code', 0, 1000, ['p.period'], [this.globals.period.id],\n pr.lj['lj1'], pr.lj['lj2'], pr.lj['lj3'], pr.lj['lj4']).subscribe((d) => {\n d.forEach((i) => this.ids.push(i));\n });\n }\n }\n //debugger;\n }\n\n callF1() {\n this.i++;\n //console.log(this.i);\n if (this.i < this.ids.length && this.i >= 0) {\n this.keyDownFunction(this.ids[this.i].code);\n } else {\n this.i = this.ids.length - 1;\n }\n }\n\n callF2() {\n this.i--;\n if (this.i < this.ids.length && this.i >= 0) {\n this.keyDownFunction(this.ids[this.i].code);\n } else {\n this.i = 0;\n }\n //console.log(this.i);\n }\n\n callF4() {\n this.loadModal();\n }\n\n clear() {\n this.selectedData = {};\n }\n\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n\n}//Component\n","
\n
\n Post Period\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
","import { Component, OnInit } from '@angular/core';\r\nimport Swal from 'sweetalert2';\r\n\r\nimport { Globals } from '../globals';\r\nimport { GeneralServiceService } from '../general-service.service';\r\n\r\n@Component({\r\n selector: 'app-post-period',\r\n templateUrl: './post-period.component.html',\r\n styleUrls: ['./post-period.component.css']\r\n})\r\nexport class PostPeriodComponent implements OnInit {\r\n\r\n currentPeriod: Object = {};\r\n\r\n constructor(\r\n public globals: Globals,\r\n public genServ: GeneralServiceService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.initProperties();\r\n }\r\n\r\n initProperties() {\r\n this.genServ.getSDataById('period', this.globals.period.id, 'name,posted').subscribe((d) => {\r\n this.currentPeriod = d[0];\r\n });\r\n }\r\n\r\n closePeriod() {\r\n if (confirm(`Close Period: ${this.currentPeriod['name']}?`)) {\r\n let p = `call closePeriod(${this.globals.period.id},${this.globals.period['dateFr']})`;\r\n this.showConfigResponse(p);\r\n }\r\n }\r\n\r\n postSSS() {\r\n if (confirm(`POST: SSS/Pagibig/Philhealth?`)) {\r\n let p = `call postSSSPagibigPhilhealth(${this.globals.period.id}, ${this.globals.period['dateFr']})`;\r\n this.showConfigResponse2(p);\r\n }\r\n }\r\n\r\n showConfigResponse(p) {\r\n this.genServ.getConfigResponse(p)\r\n .subscribe(resp => {\r\n let x = parseInt(resp.body);\r\n if (x == 1) {\r\n alert('posted');\r\n } else {\r\n\r\n Swal.fire(\r\n 'Something went wrong!',\r\n `Cant Post! (${this.globals.period['name']})`,\r\n 'error'\r\n );\r\n }\r\n },\r\n (resp) => {\r\n Swal.fire(\r\n 'Something went wrong!',\r\n `Details: (${resp.error.ExceptionMessage})`,\r\n 'error'\r\n );\r\n },\r\n () => {\r\n window.location.reload();\r\n }\r\n );\r\n }\r\n\r\n showConfigResponse2(p) {\r\n this.genServ.getConfigResponse(p)\r\n .subscribe(resp => {\r\n let x = parseInt(resp.body);\r\n if (x === 1) {\r\n Swal.fire(\r\n 'Posted!',\r\n `Pay period (${this.globals.period['name']}) has been successfully posted`,\r\n 'success'\r\n );\r\n } else {\r\n Swal.fire(\r\n 'Something went wrong!',\r\n `Cant Post! (${this.globals.period['name']})`,\r\n 'error'\r\n );\r\n }\r\n },\r\n (resp) => Swal.fire(\r\n 'Something went wrong!',\r\n `Details: (${resp.error.ExceptionMessage})`,\r\n 'error'\r\n )\r\n );\r\n }\r\n\r\n}\r\n","\n\n\n\n\n
\n

\n {{title}} Form\n

\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n *eMail Address is required.\n
\n\n\n
\n \n \n
\n\n
\n \n \n
\n
\n \n *CP Number is required.\n \n
\n
\n\n
\n
\n
\n \n \n \n
\n \n
\n *Date of birth is required.\n
\n
\n\n\n
\n \n Male
\n Female
\n\n
\n\n
\n Gender required.\n
\n
\n
\n \n
\n \n \n
\n
\n *Place of Birth is required.\n
\n\n \n\n\n
\n \n \n
\n
\n *Address is required. \n
\n\n
\n
\n
\n \n \n
\n
\n \n *Father's Name is required.\n \n
\n \n \n
\n \n \n
\n
\n \n *Father's Contact Number is required.\n \n
\n
\n\n
\n \n
\n \n \n
\n
\n \n *Mother's Name is required.\n \n
\n \n
\n \n \n
\n
\n \n *Mother's Contact Number is required.\n \n
\n
\n\n
\n\n\n
\n \n \n
\n
\n \n *Parents' Address is required.\n \n
\n\n
\n
\n
\n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n \n
\n \n \n
\n \n \n \n
\n \n \n \n
\n \n
\n Assessment Total: {{assessmenttotal | number: '.2'}}           Downpayment: {{dp | number: '.2'}} \n
\n
\n Tuition Fee: {{tf | number: '.2'}}           Miscellaneous Fee: {{mf| number: '.2'}} \n
\n
\n Other Fee: {{of| number: '.2'}}          Student Services: {{lf| number: '.2'}} \n
\n
\n
\n \n
\n \n \n
\n
\n\n \n
\n
\n\n
\n
\n
","\nimport { DatePipe } from '@angular/common';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { MailInfo } from \"../dsmodel.Interface\";\nimport { NgModule } from '@angular/core';\n//import { Component, OnInit } from '@angular/core';\nimport { Component, OnInit, ViewChild } from '@angular/core';\n//import { Component, OnInit, ViewChild, AfterContentInit, AfterViewInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport Swal from \"sweetalert2\";\nimport { GeneralServiceService } from '../general-service.service';\nimport { PopulateTableForTransComponent } from '../populate-table-for-trans/populate-table-for-trans.component';\nimport { Globals } from '../globals';\nimport { TextBoxComponent } from '../text-box/text-box.component';\nimport { PopulateTextboxComponent } from '../populate-textbox/populate-textbox.component';\nimport { Dsmodel } from '../dsmodel.Interface';\nimport { formatCurrency } from '@angular/common';\nimport { DataEntryBaseComponent } from \"../data-entry-base/data-entry-base.component\";\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-registration',\n templateUrl: './registration.component.html',\n styleUrls: ['./registration.component.css']\n})\nexport class RegistrationComponent implements OnInit {\n\n @ViewChild(\"popLevelX\", { static: false }) popLevel: PopulateTextboxComponent;\n @ViewChild('popAmtX', { static: false }) txtBox: TextBoxComponent;\n @ViewChild('popDPX', { static: false }) txtBoxDP: TextBoxComponent;\n @ViewChild(DataEntryBaseComponent, { static: false })\n popTBl: DataEntryBaseComponent;\n title = 'Registration';\n selectedLevel: any = null;\n //selectedPeriod: any = null;\n\n selectedSpecs: any = {};\n selectedStrand: any = {};\n prEnroll: any;\n registerForm: FormGroup;\n submitted = false;\n stoten: any = 0;\n nto12: any =0;\n eto12: any =0;\n assessmenttotal: any=0.00\n tf: any=0.00;\n mf: any=0.00;\n lf: any=0.00;\n of: any=0.00;\n dp: any=0.00;\n assessmenttotalgov: any=0.00\n tfgov: any=0.00;\n mfgov: any=0.00;\n lfgov: any=0.00;\n ofgov: any=0.00;\n dpgov: any=0.00;\n assessmenttotalpriv: any=0.00\n tfpriv: any=0.00;\n mfpriv: any=0.00;\n lfpriv: any=0.00;\n ofpriv: any=0.00;\n dppriv: any=0.00;\n dateNow: Date;\n useremail: any;\n\n // 2021\n r_faname : any;\n r_facontactno : any;\n r_moname : any;\n r_mocontactno : any;\n r_paaddress : any;\n r_guname : any;\n r_gucontactno : any;\n r_guaddress : any;\n r_terms : any;\n genderget : any;\n r_address : any;\n r_birthdate : any;\n r_placebirth : any;\n r_telno : any;\n r_cpno : any;\n r_email : any;\n r_birthdatesource : any;\n \n // grid display\n tblData = [];\n tblHeader = [\n \n // value = header of grid\n // hkey = property of selected records fr d grid\n { value: \"Date\", hKey: \"date\", o: 1 },\n { value: \"Name\", hKey: \"name\", o: 1 },\n { value: \"Grade Level\", hKey: \"levelname\", o: 1 },\n { value: \"DP\", hKey: \"dp\", o: 1 },\n { value: \"Assessment\", hKey: \"assessmenttot\", o: 1 }\n ];\n caption = \"\";\n selectedSub: any;\n //selectedBD: any;\n uName : any;\n amt: any;\n DP: any;\n DPget: any;\n periodNewGet: any;\n periodNew: any;\n \n prLevel: {\n table: string;\n tableHeader: { key: string; value: string; hKey: string }[];\n label: string;\n tblHeaderHidden: string;\n wc: number;\n };\n prSpecs: {\n table: string;\n tableHeader: { key: string; value: string; hKey: string }[];\n label: string;\n tblHeaderHidden: string;\n wc: number;\n };\n prStrand: {\n table: string;\n tableHeader: { key: string; value: string; hKey: string }[];\n label: string;\n tblHeaderHidden: string;\n wc: number;\n };\n prDP: any;\n prAmount: any;\n \n frmEnroll: any;\n mode: number;\n prAmt: { label: string; valueX: number; };\n //frmBD: any;\n \n //constructor(private genServ: GeneralServiceService) {}\n constructor(\n private genServ: GeneralServiceService, \n public router: Router,\n public global: Globals,\n public datepipe: DatePipe,\n private fb: FormBuilder) {}\n\n ngOnInit() {\n this.initProperties();\n this.dateNow = new Date();\n \n this.uName = this.global.username;\n this.getreg();\n \n this.registerForm = this.fb.group({\n \n gender: ['', Validators.required],\n bdate: ['', Validators.required],\n placebirth: ['', Validators.minLength(2)],\n telno: [''],\n cpno: ['', Validators.minLength(11)],\n// email: ['', Validators.required],\n email: ['', Validators.email],\n address: ['', Validators.minLength(2)],\n level: [''],\n strand: [''],\n faname: ['', Validators.minLength(2)],\n facontactno: ['', Validators.minLength(2)],\n moname: ['', Validators.minLength(2)],\n mocontactno: ['', Validators.minLength(2)],\n paaddress: ['', Validators.minLength(2)],\n guname: [''],\n gucontactno: [''],\n guaddress: [''],\n terms: ['']\n \n })\n }\n\n omit_espchar(event) {\n var key;\n key = event.charCode; // key = event.keyCode; (Both can be used)\n return ((key > 44 && key < 200) || key == 40 || key == 41|| key == 32);\n //return ((key > 44 && key < 58) || key == 45 || key == 46);\n }\n\n get f() { return this.registerForm.controls; }\n \n onSubmit() {\n let v: string ='';\n let f = this.registerForm\n // let a: Date = f.value.bdate;\n// let bdatex = this.genServ.cd(a);\n\n let bdatex : any; \n let convertbdatesource = this.datepipe.transform(this.r_birthdatesource, 'yyyy-MM-dd');\n let getbdatex = this.r_birthdatesource;\n let bdateval = this.datepipe.transform(f.value.bdate, 'yyyy-MM-dd');\n\n if(convertbdatesource==bdateval){\n bdatex = convertbdatesource;\n }\n\n if(convertbdatesource!==bdateval){\n bdatex = bdateval;\n }\n\n ////\n this.useremail = this.registerForm.get('email').value;\n\n let ngender: number =0;\n let levelx = this.selectedLevel.id;\n \n\n this.submitted = true;\n \n \n let genderx= this.registerForm.get('gender').value;\n if(genderx=='male'){\n ngender = 1;}\n if(genderx=='female')\n {\n ngender=2;\n }\n \n let placebirthx = this.registerForm.get('placebirth').value;\n \n \n let telnox = this.registerForm.get('telno').value;\n \n let cpnox = this.registerForm.get('cpno').value;\n let emailx = this.registerForm.get('email').value;\n let addressx = this.registerForm.get('address').value;\n let strandx = this.selectedStrand.Id;\n if(this.selectedStrand.Id==undefined){\n strandx = 0;\n }\n \n let getterms:number = 0;\n let termsx = this.registerForm.get('terms').value;\n if (termsx=='Cash'){\n getterms = 1;\n };\n if (termsx=='Semi-Annually'){\n getterms = 2;\n };\n if (termsx=='Quarterly'){\n getterms = 3;\n };\n if (termsx=='Semestral'){\n getterms = 4;\n };\n if (termsx=='Monthly'){\n getterms = 5;\n };\n\n let fanamex = this.registerForm.get('faname').value;\n let facontactnox = this.registerForm.get('facontactno').value;\n let monamex = this.registerForm.get('moname').value;\n let mocontactnox = this.registerForm.get('mocontactno').value;\n let paaddressx = this.registerForm.get('paaddress').value;\n let guname = this.registerForm.get('guname').value;\n let gucontactnox = this.registerForm.get('gucontactno').value;\n let guaddressx = this.registerForm.get('guaddress').value;\n let user = this.global.userid; \n let period = this.global.periodid;\n \n v = `${period},${user},'${fanamex}','${facontactnox}','${monamex}','${mocontactnox}','${paaddressx}','${guname}','${gucontactnox}','${guaddressx}', ${getterms},${ngender},'${addressx}', '${bdatex}', '${placebirthx}', '${telnox}', '${cpnox}', '${emailx}', ${levelx},${strandx}`; \n let p = `call enrollme(${v})`;\n \n if (this.selectedLevel.id==undefined) {\n alert('No Selected Level');\n } else if (this.selectedLevel.id>0){\n this.showConfigResponse(p);} \n\n } //submit\n \n\n getreg(){\n let abirthdate:any;\n this.genServ.GetDataNoLimit('studdata', 'sub,faname,facontactno,moname,mocontactno,paaddress,guname,gucontactno,guaddress, terms,gender, address,birthdate, placebirth, telno, cpno, email',[\"sub\"],[this.global.userid]).subscribe((d) => {\n this.tblData = d;\n \n this.r_faname = d[0].faname;\n this.r_facontactno = d[0].facontactno;\n this.r_moname = d[0].moname;\n this.r_mocontactno = d[0].mocontactno; \n this.r_paaddress = d[0].paaddress; \n this.r_guname = d[0].guname; \n this.r_gucontactno = d[0].gucontactno;\n this.r_guaddress = d[0].guaddress ;\n this.r_terms = d[0].terms ;\n \n //this.r_gender = d[0].gender;\n \n if (d[0].gender==1)\n {\n this.genderget = 'male';\n \n }\n \n if (d[0].gender==2)\n {\n this.genderget = 'female';\n }\n\n this.r_address = d[0].address;\n this.r_birthdate = d[0].birthdate;\n // this.r_birthdatesource = d[0].birthdate; \n\n //this.r_birthdate = this.datepipe.transform(d[0].birthdate, 'MM/dd/yyyy');\n\n this.r_placebirth = d[0].placebirth;\n this.r_telno = d[0].telno;\n this.r_cpno = d[0].cpno;\n this.r_email = d[0].email;\n\n });\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p).subscribe(\n resp => {\n let x = parseInt(resp.body);\n //alert(x);\n if (x == 0) {\n Swal.fire(\"Duplicate!\", \"You have previously registered. Please contact the finance office at (02) 982-1232 for more details. Thank you. \", \"error\"); \n } else if (x > 0) {\n Swal.fire(\"Enrollment Successful!\", \"Please deposit your payment to our BDO Account# 0041-7000-3309 and email the scanned copy to cashier@spcmakati.edu.ph. Check your mailbox for the bank settlement details. Thank you. \", \"success\");\n this.sendemail();\n this.tf =0;\n this.mf=0;\n this.lf=0;\n this.of=0;\n }\n },\n resp => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n\n // this.closeme();\n }\n \n ngAfterViewInit() {\n let a = window.localStorage.getItem('onEnrollLevel') || \"\";\n let x = JSON.parse(a);\n this.popLevel.selectedData = x;\n this.popLevel.fnSelectData(x);\n // this.selectedLevel = x;\n }\n // for the search object\n initProperties() {\n \n var leveltblHeader = [\n { key: \"code\", value: \"Code\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" },\n { key: \"class\", value: \"Class\", hKey: \"class\" }\n ];\n \n this.prLevel = {\n table: \"level\", tableHeader: leveltblHeader,\n label: \"*Grade Level\", tblHeaderHidden: \"assessmenttot,dp,tf,mf,of,lf,gradelevel,assessmenttotgov,dpgov,tfgov,mfgov,ofgov,lfgov,assessmenttotpriv,dppriv,tfpriv,mfpriv,ofpriv,lfpriv\", wc: 0\n };\n \n var specstblHeader = [\n { key: \"code\", value: \"Code\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" }\n ];\n \n \n this.prSpecs = {\n table: \"specs\", tableHeader: specstblHeader,\n label: \"Specialization\", tblHeaderHidden: \"\", wc: 0\n };\n \n this.prStrand = {\n table: \"strand\", tableHeader: specstblHeader,\n label: \"*Strands(for Senior High ONLY)\", tblHeaderHidden: \"\", wc: 0\n };\n \n this.prAmt = {\n label: \"Assessment Total\",\n valueX: 0.00\n };\n \n this.prDP = {\n label: \"Down Payment: \",\n valueX: 0.00\n };\n \n }\n \n // selected data event(html)\n // this is for the where clause of the object seacrh link to the display of records(grid)\n \n \n getAmt(event) {\n this.amt = event;\n }\n getDP(event) {\n this.DP = event;\n }\n \n \n getLevel(event) {\n this.selectedLevel = event;\n \n\n this.assessmenttotal = 0;\n this.dp = 0;\n this.tf = 0;\n this.of = 0;\n this.mf = 0;\n this.lf = 0;\n\n if (event != undefined) {\n this.stoten =0;\n this.nto12 =0;\n this.eto12 =0;\n \n this.assessmenttotal = this.selectedLevel.assessmenttot; \n this.dp = this.selectedLevel.dp;\n this.tf = this.selectedLevel.tf;\n this.of = this.selectedLevel.of;\n this.mf = this.selectedLevel.mf;\n this.lf = this.selectedLevel.lf;\n\n this.assessmenttotalgov = this.selectedLevel.assessmenttotgov; \n this.dpgov = this.selectedLevel.dpgov;\n this.tfgov = this.selectedLevel.tfgov;\n this.ofgov = this.selectedLevel.ofgov;\n this.mfgov = this.selectedLevel.mfgov;\n this.lfgov = this.selectedLevel.lfgov;\n\n this.assessmenttotalpriv = this.selectedLevel.assessmenttotpriv; \n this.dppriv = this.selectedLevel.dppriv;\n this.tfpriv = this.selectedLevel.tfpriv;\n this.ofpriv = this.selectedLevel.ofpriv;\n this.mfpriv = this.selectedLevel.mfpriv;\n this.lfpriv = this.selectedLevel.lfpriv;\n \n\n // window.localStorage.setItem('onEnrollLevel', JSON.stringify(event));\n if(this.selectedLevel.gradelevel>6 && this.selectedLevel.gradelevel<11)\n {\n this.stoten = 1;\n }\n if(this.selectedLevel.gradelevel>8 && this.selectedLevel.gradelevel<13)\n {\n this.nto12 = 1;\n }\n if(this.selectedLevel.gradelevel>10 && this.selectedLevel.gradelevel<13)\n {\n this.eto12 = 1;\n //////\n let schooltypex = this.registerForm.get('schooltype').value;\n \n if (schooltypex=='spcm')\n {\n this.assessmenttotal = this.selectedLevel.assessmenttot; \n this.dp = this.selectedLevel.dp;\n this.tf = this.selectedLevel.tf;\n this.of = this.selectedLevel.of;\n this.mf = this.selectedLevel.mf;\n this.lf = this.selectedLevel.lf;\n \n }\n if (schooltypex=='private')\n {\n this.assessmenttotal = this.selectedLevel.assessmenttotpriv; \n this.dp = this.selectedLevel.dppriv;\n this.tf = this.selectedLevel.tfpriv;\n this.of = this.selectedLevel.ofpriv;\n this.mf = this.selectedLevel.mfpriv;\n this.lf = this.selectedLevel.lfpriv;\n \n \n }\n if (schooltypex=='public')\n {\n this.assessmenttotal = this.selectedLevel.assessmenttotgov; \n this.dp = this.selectedLevel.dpgov;\n this.tf = this.selectedLevel.tfgov;\n this.of = this.selectedLevel.ofgov;\n this.mf = this.selectedLevel.mfgov;\n this.lf = this.selectedLevel.lfgov; \n }\n }\n\n }}\n\n \n getSpecs(event) {\n \n if (event != undefined) {\n this.selectedSpecs = event;\n }\n }\n \n getStrand(event) {\n this.selectedStrand = event;\n\n if (event != undefined) {\n this.selectedStrand = event;\n }\n }\n \n getData(wc?) {\n let params: Dsmodel = {\n cols: \"e.date,u.name,l.name levelname, l.assessmenttot,l.dp,l.tf,l.mf,l.of,l.lf\",\n table: \"enrollment e\",\n wc: wc ? wc : \"\",\n order: \"e.id desc\",\n limit: `0, 10000`,\n join: \"left join level l on l.id =e.level left join sub u on u.id=e.sub\"\n };\n this.genServ.getDataWithJoinClause(params).subscribe(d => {\n this.tblData = d;\n }); \n }\n \n\n \n\n sendemail()\n {\n \n \n let name = this.global.username;\n let useremail = this.registerForm.get('email').value;\n let levelselected = this.selectedLevel.name;\n\n let a: MailInfo = {\n from: \"spcmfinance@gmail.com\",\n to: `${useremail}`,\n subject: `${name} : Application for Enrollment`,\n message: `Welcome to School Year 2020-2021!

\n In order for your account to be officially enrolled,


\n please deposit your Payment to our BDO Bank with details below:
\n
\n Account No.: 0041-7000-3309
\n Account Name: St. Paul College of Makati
\n
\n Tuition Fee: ${this.tf}\n
\n Student Services: ${this.lf}\n
\n Miscellaneous Fee: ${this.mf}\n
\n Other Fee: ${this.of}\n
\n Total Assessment: ${this.assessmenttotal}
\n
\n Down Payment: ${this.dp}\n
\n Grade Level: ${levelselected}
\n\n\n Please contact the finance office at (02) 982-1232 for more details. Thank you.
\n
\n `, password: '0917tyhKoiP',\n smtp: \"smtp.gmail.com\",\n enableSSL: true,\n port: 587\n }; \n\n this.genServ.sendEmail(a).subscribe(); \n this.router.navigate(['/admin']);\n\n }\n\n\n reloadData() {\n this.popTBl.refresh();\n }\n \n getUserName()\n {\n this.uName = this.global\n }\n \n onSelect(e) {\n this.selectedSub = e.data;\n console.debug(e);\n }\n}\n","
\n
Validate Application
\n Click refresh to view all pending requests\n
\n  \n\n \n
\n \n \n ","\nimport { MailInfo } from \"../dsmodel.Interface\";\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { GeneralServiceService } from '../general-service.service';\nimport { Subscription } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FrmApproveComponent } from '../frm-approve/frm-approve.component';\nimport { Globals } from '../globals';\nimport Swal from 'sweetalert2';\nvar jsPDF = require('jspdf');\nrequire('jspdf-autotable');\n\nimport { Dsmodel } from '../dsmodel.Interface';\n\n\n@Component({\n selector: 'app-registrationcheck',\n templateUrl: './registrationcheck.component.html',\n styleUrls: ['./registrationcheck.component.css']\n})\nexport class RegistrationcheckComponent implements OnInit {\n data: Subscription;\n tblData = [];\n tblHeader = [\n { key: 'e.id', value: 'Doc #', hKey: 'id', o: 1 },\n { key: 'l.name as levelX', value: 'Level', hKey: 'levelX', o: 1 },\n { key: 'DATE_FORMAT(e.date,\"%m-%d-%Y\") AS dateFiled', value: 'Date Filed', hKey: 'dateFiled', o: 0 },\n { key: 'u.name', value: 'Name', hKey: 'name', o: 0 },\n { key: 'l.dp', value: 'DP', hKey: 'dp', o: 0 },\n { key: 'e.email', value: 'eMail Address', hKey: 'email', o: 0 },\n { key: \"e.paid\", value: 'Status', hKey: 'paid', o: 0 },\n ];\n caption = \"\";\n tblHeaderHidden = \",e.sub\";\n col1: string = this.tblHeader.map(x => x.key).join(',');\n cols = this.col1.concat(this.tblHeaderHidden);\n join = {\n j1: 'l.id,p.id,u.id',\n j2: 'e.level,e.period,e.sub',\n j3: 'level l,period p,sub u',\n j4: 'LEFT,LEFT,LEFT'\n };\n isSearching: boolean = false;\n optionsProperties: any;\n email: any;\n fullname: any;\n amount: any;\n\n o2Header = [\n { value: 'Name', hKey: 'name' },\n { value: 'Level', hKey: 'level' },\n { value: 'eMail Address', hKey: 'email' },\n { value: 'Paid', hKey: 'paid' }\n ];\n selectedPeriod: any;\n\n constructor(\n private gs: GeneralServiceService,\n public modal: NgbModal,\n public globals: Globals\n ) { }\n\n ngOnInit() {\n this.initProperties();\n this.getLeaveList();\n }\n\n initProperties() {\n this.selectedPeriod = this.globals.periodid\n let a = this.tblHeader.filter((v) => v.o === 1);\n this.optionsProperties = { o1: a, o2: this.o2Header }\n }\n\n mapOt(d) {\n this.tblData = d.map(x => {\n return {\n id: x.id,\n sub: x.sub,\n levelX: x.levelX,\n name: x.name,\n dateFiled: x.dateFiled,\n dp: x.dp,\n email: x.email,\n paid: x.paid === 1 ? 'Approved' : x.status === 2 ? 'Declined' : 'Pending',\n }\n });\n }\n\n getLeaveList() {\n this.isSearching = false;\n let j = this.join;\n this.data = this.gs.GetDataForTrans('enroll e', this.cols, 0, 1000, ['e.paid', 'e.period'], [0, this.globals.periodid], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n }\n\n onNextPage() {\n let c = this.tblData.length;\n let j = this.join;\n if (this.isSearching !== true) {\n this.data = this.gs.GetDataForTrans('enroll e', this.cols, c, 10, ['e.paid', 'e.period'], [0, this.globals.periodid], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.tblData = this.tblData.concat(d));\n }\n }\n\n onSearch(e) {\n this.isSearching = true;\n let j = this.join;\n let a: number = e.options2 === \"pending\" ? 0 : e.options2 === \"declined\" ? 2 : 1;\n switch (e.options) {\n case \"level\":\n this.data = this.gs.GetDataForTrans('enroll e', this.cols, 0, 1000, ['e.name', 'paid', 'period'], [Number(e.term), a, this.selectedPeriod], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n break;\n case \"paid\":\n this.data = this.gs.GetDataForTrans('enroll e', this.cols, 0, 1000, ['e.paid', 'paid', 'period'], [e.term, a, this.selectedPeriod], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n break;\n default:\n this.data = this.gs.GetDataForTrans('enroll e', this.cols, 0, 1000, ['e.level', 'paid', 'period'], [e.term, a, this.selectedPeriod], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n }\n }\n\n onSelect(e) {\n const mr = this.modal.open(FrmApproveComponent);\n let a = {\n id: e.id,\n sub: e.sub,\n name: e.name,\n levelX: e.levelX,\n status: e.paid,\n email: e.emailX\n };\n \n mr.componentInstance.propertiesX = a;\n mr.componentInstance.title = \"Payment\";\n mr.componentInstance.onSuccess.subscribe((x) => {\n\n this.fullname = e.name;\n this.email = e.email;\n this.amount = x.data;\n let user = this.globals.userid;\n let studname = e.name;\n\n let v = `${e['id']}`;\n let p = \"\";\n\n if (x.mode === 1) {\n //p = `call confirmpaymentenr(${v})`;\n p = `call confirmpaymentenr(${e['id']}, '${studname}', '${x.data}',${e['sub']}, ${user})`;\n this.sendemail(); \n this.showConfigResponse(p); \n } else if (x.mode === 2) {\n p = `call deleteenr(${e['id']}, ${user})`; \n\n Swal.fire(`Enrollment Request Deleted!`, \"\", \"success\");\n this.showConfigResponse(p);\n } \n \n });\n }\n\n showConfigResponse(p) {\n this.gs.getConfigResponse(p)\n .subscribe(resp => {\n let x = parseInt(resp.body);\n if (x) {\n Swal.fire(`Payment Confirmation sent via email. Record Updated!`, \"\", \"success\");\n }\n },\n (resp) => alert(resp.error.ExceptionMessage),\n () => this.getLeaveList()\n );\n }\n\n onRefresh() {\n this.getLeaveList();\n }\n\n \n print() {\n var name = this.globals.period['name'];\n var imgData = this.globals.hitcLogo;\n var columns = [\n { title: 'Doc #', dataKey: 'docno', o: 1 },\n { title: 'Employee', dataKey: 'employeeX', o: 1 },\n { title: 'Type', dataKey: 'leaveX', o: 0 },\n { title: 'Date Filed', dataKey: 'dateFiled', o: 0 },\n { title: 'Date From', dataKey: 'dateFrom', o: 0 },\n { title: 'Date To', dataKey: 'dateTo', o: 0 },\n { title: 'Status', dataKey: 'status', o: 0 }\n ];\n var doc = new jsPDF('l', 'pt', 'legal');\n var totalPagesExp = \"{total_pages_count_string}\";\n doc.autoTable(columns, this.tblData, {\n startY: false, // false (indicates margin top value) or a number\n tableWidth: 'auto', // 'auto', 'wrap' or a number\n showHead: 'everyPage', // 'everyPage', 'firstPage', 'never'\n tableLineColor: 200, // number, array (see color section below)\n tableLineWidth: 0,\n headStyles: {\n fontStyle: 'bold',\n halign: 'center'\n },\n margin: { top: 160 },\n columnStyles: {\n amt: {\n halign: 'right',\n fontStyle: 'bold'\n },\n },\n didDrawPage: function (dataToPrint) {\n doc.addImage(imgData, 'PNG', 25, 35, 80, 60);\n doc.setFontSize(18);\n doc.text(`Leave Request`, 110, 80);\n doc.setFontSize(14);\n doc.text(`${name}`, 40, 120);\n doc.setFontSize(12);\n // FOOTER\n var str = \"Page \" + dataToPrint.pageCount;\n // Total page number plugin only available in jspdf v1.0+\n if (typeof doc.putTotalPages === 'function') {\n str = str + \" of \" + totalPagesExp;\n }\n doc.setFontSize(10);\n var pageHeight = doc.internal.pageSize.height || doc.internal.pageSize.getHeight();\n doc.text(str, dataToPrint.settings.margin.left, pageHeight - 10);\n }\n });\n if (typeof doc.putTotalPages === 'function') {\n doc.putTotalPages(totalPagesExp);\n }\n var blob = doc.output('blob');\n window.open(URL.createObjectURL(blob));\n\n }//print()\n\n\n ngOnDestroy(): void {\n this.data.unsubscribe();\n }\n\n sendemail()\n {\n let name = this.fullname;\n let useremail = this.email;\n //let levelselected = this.selectedLevel.name;\n let amount = this.amount;\n\n let a: MailInfo = {\n from: \"spcmfinance@gmail.com\",\n to: `${useremail}`,\n subject: `${name} : Payment Confirmation`,\n message: `
Dear Mr/Ms ${name},
\n

\n This is to confirm your payment with details below .

\n


\n \n

\n Deposited to Account No.: 0041-7000-3309
\n
\n

\n Amount Deposited: ${this.amount}\n

\n Congratulations! You are now officially enrolled.\n

\n Please contact the finance office at (02) 982-1232 for more details. Thank you.
\n
\n `, password: '0917tyhKoiP',\n smtp: \"smtp.gmail.com\",\n enableSSL: true,\n port: 587\n }; \n this.gs.sendEmail(a).subscribe(); \n //this.router.navigate(['/login']);\n\n } \n\n}\n","
\n\n
\n Reports Generator\n
\n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
","import { Component, OnInit, ElementRef, ViewChild, AfterViewInit } from '@angular/core';\nimport { PopulateTableForReportsComponent } from '../populate-table-for-reports/populate-table-for-reports.component';\nimport * as jsPDF from 'jspdf'\n/* var jsPDF = require('jspdf');\nrequire('jspdf-autotable'); */\n//import jsPDF from 'jspdf';\nimport 'jspdf-autotable';\n\n@Component({\n selector: 'app-report-viewer',\n templateUrl: './report-viewer.component.html',\n styleUrls: ['./report-viewer.component.css']\n})\nexport class ReportViewerComponent implements OnInit, AfterViewInit {\n @ViewChild(PopulateTableForReportsComponent, { static: false }) popTbl: PopulateTableForReportsComponent;\n title = 'app works!';\n prTable: any;\n data: any;\n\n constructor() {\n\n }\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n this.popTbl.loadData();\n }\n\n initProperties() {\n var tblHeader =\n [\n { key: 'code', value: 'Code', hKey: 'code' },\n { key: 'name', value: 'Name', hKey: 'name' },\n { key: 'basicpay', value: 'Basic Pay', hKey: 'basicpay' }\n ];\n this.prTable = {\n table: \"employee\", tblHeader: tblHeader,\n ps: 10, tblHeaderHidden: \"\"\n };\n }\n\n /* {key: 'position', value:'Position', hKey: 'position' },\n {key: 'basicpay', value:'Basic Pay', hKey: 'basicpay' },\n {key: 'pagibig', value:'Pagibig #', hKey: 'pagibig' },\n {key: 'sss', value:'SSS #', hKey: 'sss' },\n {key: 'philhealth', value:'Philhealth #', hKey: 'philhealth' } */\n\n getData(event) {\n this.data = event;\n /* for(let i in this.data){\n if(this.data[i].active==1){\n this.data[i].active=\"Active\";\n }else if(this.data[i].active==0){\n this.data[i].active=\"InActive\";\n }\n //console.log(this.data[i].active);\n } */\n this.print(this.data);\n }\n\n print(dataToPrint) {\n var columns = [\n { title: \"Name\", dataKey: \"name\" },\n { title: \"Total\", dataKey: \"total\" },\n ];\n var data = dataToPrint;\n\n /* var doc = new jsPDF('p', 'pt', 'a4');\n doc.autoTable(columns, data, {\n margin: { top: 60 },\n addPageContent: function (data) {\n doc.setFontSize(18);\n doc.text(\"Report\", 40, 30);\n }\n });\n var blob=doc.output('blob');\n window.open(URL.createObjectURL(blob)); */\n\n }//print()\n\n /* getActiveData(event){\n let activeData=[];\n for(let i in event){\n if(event[i].active==\"1\"){\n activeData.push(event[i]);\n }\n //console.log(this.data[i].active);\n }\n this.print(activeData);\n } */\n\n getSalaryDiffDataForReports() {\n let event = this.popTbl.getTableDataForReports();\n let a = 0, b = 0, c = 0;\n for (let i in event) {\n let x = parseFloat(event[i].basicpay);\n if (x > 10000 && x < 20000) {\n a++;\n } else if (x > 20000 && x < 30000) {\n b++;\n } else if (x > 30000 && x < 40000) {\n c++;\n }\n //console.log(event[i].basicpay);\n }\n let salaryDiff = [\n { name: \"> 10000 < 20000\", total: a },\n { name: \"> 20000 < 30000\", total: b },\n { name: \"> 30000 < 40000\", total: c }\n ];\n this.print(salaryDiff);\n //console.log(`a: ${a}, b: ${b}, c: ${c},`);\n }\n}\n","
\n
Pending Enrollment Request
\n \n
\n \n
\n \n \n ","import {formatDate} from '@angular/common';\nimport { MailInfo } from \"../dsmodel.Interface\";\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { GeneralServiceService } from '../general-service.service';\nimport { Subscription } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FrmApproveComponent } from '../frm-approve/frm-approve.component';\nimport { Globals } from '../globals';\nimport Swal from 'sweetalert2';\nvar jsPDF = require('jspdf');\nrequire('jspdf-autotable');\n\nimport { Dsmodel } from '../dsmodel.Interface';\n\n@Component({\n selector: 'app-reqenroll',\n templateUrl: './reqenroll.component.html',\n styleUrls: ['./reqenroll.component.css']\n})\nexport class ReqenrollComponent implements OnInit {\n data: Subscription;\n tblData = [];\n tblHeader = [\n { key: 'e.id', value: 'Doc #', hKey: 'id', o: 1 },\n { key: 'l.name as levelX', value: 'Level', hKey: 'levelX', o: 1 },\n { key: 'DATE_FORMAT(e.date,\"%m-%d-%Y\") AS dateFiled', value: 'Date Filed', hKey: 'dateFiled', o: 0 },\n { key: 'u.name', value: 'Name', hKey: 'name', o: 0 },\n { key: 'l.dp', value: 'DP', hKey: 'dp', o: 0 },\n { key: 'e.email', value: 'eMail Address', hKey: 'email', o: 0 },\n ];\n caption = \"\";\n tblHeaderHidden = \"\";\n col1: string = this.tblHeader.map(x => x.key).join(',');\n cols = this.col1.concat(this.tblHeaderHidden);\n join = {\n j1: 'l.id,p.id,u.id',\n j2: 'e.level,e.period,e.sub',\n j3: 'level l,period p,sub u',\n j4: 'LEFT,LEFT,LEFT'\n };\n isSearching: boolean = false;\n optionsProperties: any;\n email: any;\n fullname: any;\n amount: any;\n today: any;\n\n o2Header = [\n { value: 'Name', hKey: 'name' },\n { value: 'Level', hKey: 'level' },\n { value: 'eMail Address', hKey: 'email' },\n ];\n selectedPeriod: any;\n\n constructor(\n private gs: GeneralServiceService,\n public modal: NgbModal,\n public globals: Globals\n ) { }\n\n ngOnInit() {\n this.today = new Date().toISOString().split('T')[0];\n\n this.initProperties();\n this.getLeaveList();\n\n }\n\n initProperties() {\n this.selectedPeriod = this.globals.periodid\n let a = this.tblHeader.filter((v) => v.o === 1);\n this.optionsProperties = { o1: a, o2: this.o2Header }\n }\n\n mapOt(d) {\n this.tblData = d.map(x => {\n return {\n id: x.id,\n levelX: x.levelX,\n name: x.name,\n dateFiled: x.dateFiled,\n dp: x.dp,\n email: x.email,\n paid: x.paid === 1 ? 'Approved' : x.status === 2 ? 'Declined' : 'Pending',\n }\n });\n }\n\n getLeaveList() {\n this.isSearching = false;\n let j = this.join;\n this.data = this.gs.GetDataForTrans('enroll e', this.cols, 0, 1000, ['e.paid', 'e.period'], [0, this.globals.periodid], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n }\n\n onNextPage() {\n let c = this.tblData.length;\n let j = this.join;\n if (this.isSearching !== true) {\n this.data = this.gs.GetDataForTrans('enroll e', this.cols, c, 10, ['e.paid', 'e.period'], [0, this.globals.periodid], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.tblData = this.tblData.concat(d));\n }\n }\n\n onSearch(e) {\n this.isSearching = true;\n let j = this.join;\n let a: number = e.options2 === \"pending\" ? 0 : e.options2 === \"declined\" ? 2 : 1;\n switch (e.options) {\n case \"level\":\n this.data = this.gs.GetDataForTrans('enroll e', this.cols, 0, 1000, ['e.name', 'paid', 'period'], [Number(e.term), a, this.selectedPeriod], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n break;\n case \"paid\":\n this.data = this.gs.GetDataForTrans('enroll e', this.cols, 0, 1000, ['e.paid', 'paid', 'period'], [e.term, a, this.selectedPeriod], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n break;\n default:\n this.data = this.gs.GetDataForTrans('enroll e', this.cols, 0, 1000, ['e.level', 'paid', 'period'], [e.term, a, this.selectedPeriod], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n }\n }\n\n onSelect(e) {\n \n }\n\n showConfigResponse(p) {\n \n }\n\n onRefresh() {\n this.getLeaveList();\n }\n\n \n print() {\n var name = this.globals.periodNameNew;\n let mydate = formatDate(this.today, 'MM/dd/YYYY', 'en');\n\n //var imgData = this.globals.hitcLogo;\n var columns = [\n { title: 'Doc #', dataKey: 'id', o: 1 },\n { title: 'Level', dataKey: 'levelX', o: 1 },\n { title: 'Date', dataKey: 'dateFiled', o: 1 },\n { title: 'Name', dataKey: 'name', o: 0 },\n { title: 'DP', dataKey: 'dp', o: 1 },\n { title: 'eMail Address', dataKey: 'email', o: 1 }\n ];\n var doc = new jsPDF('l', 'pt', 'legal');\n var totalPagesExp = \"{total_pages_count_string}\";\n doc.autoTable(columns, this.tblData, {\n startY: false, // false (indicates margin top value) or a number\n tableWidth: 'auto', // 'auto', 'wrap' or a number\n showHead: 'everyPage', // 'everyPage', 'firstPage', 'never'\n tableLineColor: 200, // number, array (see color section below)\n tableLineWidth: 0,\n headStyles: {\n fontStyle: 'bold',\n halign: 'center'\n },\n margin: { top: 160 },\n columnStyles: {\n amt: {\n halign: 'right',\n fontStyle: 'bold'\n },\n },\n didDrawPage: function (dataToPrint) {\n // doc.addImage(imgData, 'PNG', 25, 35, 80, 60);\n doc.setFontSize(18);\n doc.text(`Pending Enrollment Request`, 410, 80);\n doc.setFontSize(14);\n doc.text('School Year: ', 40, 120);\n doc.text('As of: ', 40, 141);\n doc.text(`${name}`, 170, 120);\n doc.text(`${mydate}`, 170, 141);\n doc.setFontSize(12);\n // FOOTER\n var str = \"Page \" + dataToPrint.pageCount;\n // Total page number plugin only available in jspdf v1.0+\n if (typeof doc.putTotalPages === 'function') {\n str = str + \" of \" + totalPagesExp;\n }\n doc.setFontSize(10);\n var pageHeight = doc.internal.pageSize.height || doc.internal.pageSize.getHeight();\n doc.text(str, dataToPrint.settings.margin.left, pageHeight - 10);\n }\n });\n if (typeof doc.putTotalPages === 'function') {\n doc.putTotalPages(totalPagesExp);\n }\n var blob = doc.output('blob');\n window.open(URL.createObjectURL(blob));\n\n }//print()\n\n\n ngOnDestroy(): void {\n this.data.unsubscribe();\n }\n\n sendemail()\n {\n let name = this.fullname;\n let useremail = this.email;\n //let levelselected = this.selectedLevel.name;\n let amount = this.amount;\n\n let a: MailInfo = {\n from: \"spcmfinance@gmail.com\",\n to: `${useremail}`,\n subject: `${name} : Payment Confirmation`,\n message: `
Dear Mr/Ms ${name},
\n

\n This is to confirm your payment with details below .

\n


\n \n

\n Deposited to Account No.: 0041-7000-3309
\n
\n

\n Amount Deposited: ${this.amount}\n

\n Congratulations! You are now officially enrolled.\n

\n Please contact the finance office at (02) 982-1232 for more details. Thank you.
\n
\n `, password: '0917tyhKoiP',\n smtp: \"smtp.gmail.com\",\n enableSSL: true,\n port: 587\n }; \n this.gs.sendEmail(a).subscribe(); \n //this.router.navigate(['/login']);\n\n } \n\n}\n","
\n
Pending Registration Request
\n \n
\n \n
\n \n \n ","import {formatDate} from '@angular/common';\nimport { MailInfo } from \"../dsmodel.Interface\";\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { GeneralServiceService } from '../general-service.service';\nimport { Subscription } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FrmApproveComponent } from '../frm-approve/frm-approve.component';\nimport { Globals } from '../globals';\nimport Swal from 'sweetalert2';\nvar jsPDF = require('jspdf');\nrequire('jspdf-autotable');\n\nimport { Dsmodel } from '../dsmodel.Interface';\n\n\n@Component({\n selector: 'app-reqregister',\n templateUrl: './reqregister.component.html',\n styleUrls: ['./reqregister.component.css']\n})\nexport class ReqregisterComponent implements OnInit {\n data: Subscription;\n email: any;\n fullname: any;\n amount: any;\n today: any;\n\n tblData = [];\n tblHeader = [\n { key: 'r.id', value: 'Doc #', hKey: 'id', o: 1 },\n { key: 'l.name as levelX', value: 'Level', hKey: 'levelX', o: 1 },\n { key: 'DATE_FORMAT(r.date,\"%m-%d-%Y\") AS dateFiled', value: 'Date', hKey: 'dateFiled', o: 0 },\n { key: 'r.fname', value: 'First Name', hKey: 'fname', o: 0 }, \n { key: 'r.lname', value: 'Last Name', hKey: 'lname', o: 0 }, \n { key: 'l.dp', value: 'DP', hKey: 'dp', o: 0 },\n { key: 'r.email', value: 'eMail Address', hKey: 'email', o: 0 },\n ];\n caption = \"\";\n tblHeaderHidden = \"\";\n col1: string = this.tblHeader.map(x => x.key).join(',');\n cols = this.col1.concat(this.tblHeaderHidden);\n join = {\n j1: 'l.id',\n j2: 'r.level,p.id',\n j3: 'level l,period p',\n j4: 'LEFT,LEFT'\n };\n isSearching: boolean = false;\n optionsProperties: any;\n o2Header = [\n { value: 'Last Name', hKey: 'lname' },\n { value: 'First Name', hKey: 'fname' },\n { value: 'eMail Address', hKey: 'email' }\n ];\n selectedPeriod: any;\n\n constructor(\n private gs: GeneralServiceService,\n public modal: NgbModal,\n public globals: Globals\n ) { }\n\n ngOnInit() {\n this.today = new Date().toISOString().split('T')[0];\n\n this.initProperties();\n this.getLeaveList();\n }\n\n initProperties() {\n this.selectedPeriod = this.globals.periodid\n let a = this.tblHeader.filter((v) => v.o === 1);\n this.optionsProperties = { o1: a, o2: this.o2Header }\n }\n \n getLeaveList() {\n this.isSearching = false;\n let j = this.join;\n this.data = this.gs.GetDataForTrans('registration r', this.cols, 0, 1000, ['r.paid', 'r.period'], [0, this.globals.periodid], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n }\n\n mapOt(d) {\n this.tblData = d.map(x => {\n return {\n id: x.id,\n levelX: x.levelX,\n fname: x.fname,\n lname: x.lname,\n dateFiled: x.dateFiled,\n dp: x.dp,\n email: x.email,\n paid: x.paid === 1 ? 'Approved' : x.status === 2 ? 'Declined' : 'Pending',\n }\n });\n }\n\n\n \n onSelect(e) {\n \n }\n\n showConfigResponse(p) {\n }\n\n sendemail()\n {\n \n } \n\n onRefresh() {\n this.getLeaveList();\n }\n\n \n print() {\n var name = this.globals.periodNameNew;\n let mydate = formatDate(this.today, 'MM/dd/YYYY', 'en');\n\n //var imgData = this.globals.hitcLogo;\n var columns = [\n { title: 'Doc #', dataKey: 'id', o: 1 },\n { title: 'Level', dataKey: 'levelX', o: 1 },\n { title: 'Date', dataKey: 'dateFiled', o: 1 },\n { title: 'First Name', dataKey: 'fname', o: 0 },\n { title: 'Last Name', dataKey: 'lname', o: 0 },\n { title: 'DP', dataKey: 'dp', o: 1 },\n { title: 'eMail Address', dataKey: 'email', o: 1 }\n ];\n var doc = new jsPDF('l', 'pt', 'legal');\n var totalPagesExp = \"{total_pages_count_string}\";\n doc.autoTable(columns, this.tblData, {\n startY: false, // false (indicates margin top value) or a number\n tableWidth: 'auto', // 'auto', 'wrap' or a number\n showHead: 'everyPage', // 'everyPage', 'firstPage', 'never'\n tableLineColor: 200, // number, array (see color section below)\n tableLineWidth: 0,\n headStyles: {\n fontStyle: 'bold',\n halign: 'center'\n },\n margin: { top: 160 },\n columnStyles: {\n amt: {\n halign: 'right',\n fontStyle: 'bold'\n },\n },\n didDrawPage: function (dataToPrint) {\n // doc.addImage(imgData, 'PNG', 25, 35, 80, 60);\n doc.setFontSize(18);\n doc.text(`Pending Registration Request`, 410, 80);\n doc.setFontSize(14);\n doc.text('School Year: ', 40, 120);\n doc.text('As of: ', 40, 141);\n doc.text(`${name}`, 170, 120);\n doc.text(`${mydate}`, 170, 141);\n doc.setFontSize(12);\n // FOOTER\n var str = \"Page \" + dataToPrint.pageCount;\n // Total page number plugin only available in jspdf v1.0+\n if (typeof doc.putTotalPages === 'function') {\n str = str + \" of \" + totalPagesExp;\n }\n doc.setFontSize(10);\n var pageHeight = doc.internal.pageSize.height || doc.internal.pageSize.getHeight();\n doc.text(str, dataToPrint.settings.margin.left, pageHeight - 10);\n }\n });\n if (typeof doc.putTotalPages === 'function') {\n doc.putTotalPages(totalPagesExp);\n }\n var blob = doc.output('blob');\n window.open(URL.createObjectURL(blob));\n\n }//print()\n\n\n ngOnDestroy(): void {\n this.data.unsubscribe();\n }\n\n}\n","import { Directive, HostListener, Output, EventEmitter } from '@angular/core';\n\n@Directive({\n selector: '[scrollTracker]'\n})\nexport class ScrollTrackerDirective {\n\n @Output() scrolled = new EventEmitter();\n\n @HostListener('scroll', ['$event'])\n onScroll(event) {\n // do tracking\n // console.log('scrolled', event.target.scrollTop);\n // Listen to click events in the component\n let tracker = event.target;\n let endReached = false;\n let limit = tracker.scrollHeight - tracker.clientHeight;\n \n //console.log(event.target.scrollTop, limit);\n if (event.target.scrollTop === limit) {\n //alert('end reached');\n endReached = true;\n }\n\n this.scrolled.emit({\n pos: event.target.scrollTop,\n endReached\n })\n }\n\n}\n","
\r\n\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
Filter Options : \r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { NgbDropdownConfig } from '@ng-bootstrap/ng-bootstrap';\r\nimport { isNgTemplate } from '@angular/compiler';\r\n\r\n@Component({\r\n selector: 'app-search-bar',\r\n templateUrl: './search-bar.component.html',\r\n styleUrls: ['./search-bar.component.css']\r\n})\r\nexport class SearchBarComponent implements OnInit, AfterViewInit {\r\n @Input() properties: any;\r\n @Output() searchEvent = new EventEmitter();\r\n\r\n selectedDDLSearchVal = \"\";\r\n selectedDDLSearch = \"\";\r\n hkey = \"\";\r\n\r\n constructor(\r\n config: NgbDropdownConfig\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.selectedDDLSearch = this.properties[0].key;\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n searchData(term) {\r\n this.searchEvent.emit({ term: term, wc: this.selectedDDLSearch, wcKey: this.hkey });\r\n }\r\n\r\n\r\n\r\n SearchBy(key, val, term, hkey) {\r\n this.selectedDDLSearch = this.properties[key].key;\r\n this.selectedDDLSearchVal = val;\r\n this.hkey = hkey;\r\n this.searchData(term);\r\n }\r\n\r\n onKeyUp(term: string) {\r\n this.searchData(term);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n ****\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\n\n@Component({\n selector: 'app-searching-operations',\n templateUrl: './searching-operations.component.html',\n styleUrls: ['./searching-operations.component.css']\n})\nexport class SearchingOperationsComponent implements OnInit {\n @Input() searchOptions: any[] = [];\n @Output() onSearchEvent = new EventEmitter();\n @Output() onRefreshEvent = new EventEmitter();\n\n searchForm = this.fb.group({\n term: [''],\n options: [''],\n options2: ['']\n });\n\n constructor(\n private fb: FormBuilder\n ) { }\n\n ngOnInit() {\n }\n\n onSearch() {\n this.onSearchEvent.emit(this.searchForm.value);\n }\n\n onRefresh() {\n this.onRefreshEvent.emit();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\nimport {GeneralServiceService} from '../general-service.service';\nimport {DataEntryBaseComponent} from '../data-entry-base/data-entry-base.component';\n\n@Component({\n selector: 'app-set-access',\n templateUrl: './set-access.component.html',\n styleUrls: ['./set-access.component.css']\n})\nexport class SetAccessComponent implements OnInit {\n\n accesslevelData: any;\n prMenu: any;\n selectedData: any={};\n config: any;\n\n constructor(\n private genServ: GeneralServiceService,\n private formBuilder: FormBuilder\n ) { }\n\n ngOnInit() {\n \n }\n\n loadData(){\n this.genServ.GetDataNoLimit('menu', 'name').subscribe((d)=>{\n this.accesslevelData=d;\n });\n }\n\n}\n","
\r\n

Settings

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { DataEntryFormComponent } from '../data-entry-form/data-entry-form.component';\nimport { GeneralServiceService } from '../general-service.service';\nimport { Globals } from '../globals';\nimport { PopulateTextboxComponent } from '../populate-textbox/populate-textbox.component';\nimport { Router } from '@angular/router';\nimport Swal from 'sweetalert2';\n\n@Component({\n selector: 'app-settings',\n templateUrl: './settings.component.html',\n styleUrls: ['./settings.component.css']\n})\nexport class SettingsComponent implements OnInit {\n @ViewChild(PopulateTextboxComponent, { static: false }) popPeriod: PopulateTextboxComponent;\n @Output() onSuccess = new EventEmitter();\n config: any = [];\n data: any = [];\n periodName: any = [];\n selectedPeriod: any = null;\n currentPeriod: any;\n prPeriod: { table: string; tableHeader: any; disabled: boolean; label: string; tblHeaderHidden: string; wc: number; };\n\n constructor(\n public activeModal: NgbActiveModal,\n public router: Router,\n public genServ: GeneralServiceService,\n public globals: Globals\n ) {\n this.currentPeriod = this.globals.period;\n }\n\n ngOnInit() {\n this.initProperties();\n this.getCurrentPeriod();\n }\n\n getCurrentPeriod() {\n if (this.globals.period['id']) {\n this.genServ.getSDataById('period', this.globals.period['id'], 'code,name,posted,dateFr').subscribe((d) => {\n this.popPeriod.selectedData = d[0];\n });\n }\n }\n\n initProperties() {\n var periodtblHeader = [\n { key: 'code', value: 'Code', hKey: 'code' },\n { key: 'name', value: 'Name', hKey: 'name' },\n { key: 'posted', value: 'Posted', hKey: 'posted' }\n ];\n this.prPeriod = {\n table: \"period\", tableHeader: periodtblHeader, disabled: false,\n label: \"Period\", tblHeaderHidden: \"dateFr\",\n wc: 0\n };\n }\n\n getPeriod(e) {\n this.selectedPeriod = e;\n }\n\n getSelectedPeriod(event) {\n this.selectedPeriod = event;\n }\n\n updateSetting() {\n this.globals.storeOnLocalStorage(this.selectedPeriod, 'period');\n this.activeModal.close();\n Swal.fire(\n 'Updated!',\n `Pay period changed to (${this.selectedPeriod.name})`,\n 'success'\n );\n this.onSuccess.emit(1);\n //this.router.navigate(['/admin']);\n }\n}\n","
\n
\n
\n
\n

HITC Payroll

\n
\n
\n
Message here
\n

Site Administration

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

Leave

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

Email

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

Content for tab 3.

\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-site-administration',\n templateUrl: './site-administration.component.html',\n styleUrls: ['./site-administration.component.css']\n})\nexport class SiteAdministrationComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","\n\n","import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';\nimport { Validators } from '@angular/forms';\n\nimport { GeneralServiceService } from '../general-service.service';\nimport { DataEntryBaseComponent } from '../data-entry-base/data-entry-base.component';\n\n@Component({\n selector: 'app-sss-base-entry',\n templateUrl: './sss-base-entry.component.html',\n styleUrls: ['./sss-base-entry.component.css']\n})\nexport class SssBaseEntryComponent implements OnInit {\n\n @ViewChild(DataEntryBaseComponent, { static: false }) popTBl: DataEntryBaseComponent;\n\n prInc: any;\n selectedData: any = {};\n config = [\n {\n type: 'input',\n label: 'Compensation From',\n name: 'compensationFrom',\n placeholder: 'Compensation From',\n value: '',\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: 'input',\n label: 'Compensation To',\n name: 'compensationTo',\n placeholder: 'Enter Compensation To Name',\n value: '',\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: 'input',\n label: 'Employee Share',\n name: 'ee',\n placeholder: 'Enter Employee Share To Name',\n value: '',\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: 'input',\n label: 'Employer Share',\n name: 'er',\n placeholder: 'Enter Employer Share To Name',\n value: '',\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: 'button',\n label: 'Save',\n name: 'submit',\n disabled: true,\n title: \"Income\"\n }\n ];\n\n constructor(\n private genServ: GeneralServiceService\n ) { }\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n this.reloadData();\n }\n\n reloadData() {\n this.popTBl.refresh();\n }\n\n initProperties() {\n //Income Transaction Properties\n var tblHeader =\n [\n { key: 'compensationFrom', value: 'Compensation From', hKey: 'compensationFrom' },\n { key: 'compensationTo', value: 'Compensation To', hKey: 'compensationTo' },\n { key: 'ee', value: 'Employee Share', hKey: 'ee' },\n { key: 'er', value: 'Employer Share', hKey: 'er' }\n ];\n this.prInc = {\n table: \"sssbase\", tblHeader: tblHeader,\n ps: 10, tblHeaderHidden: \"\"\n };\n }\n\n getSelected(event) {\n this.selectedData = event.data;\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p)\n .subscribe(resp => {\n let x = parseInt(resp.body);\n if (x == 2) {\n alert(`Duplicated Compensation From`);\n } else if (x == 1) {\n alert(`Updated Record!`);\n } else if (x == 3) {\n alert(`Duplicated Compensation To`);\n }\n },\n (resp) => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n }\n\n submit(event) {\n let value = event.value;\n let p = \"\";\n let v = `'${value.compensationFrom}','${value.compensationTo}',\n '${value.ee}', '${value.er}'`;\n\n if (event.mode == 1) {\n p = `call insertSSSBase(${v})`;\n } else if (event.mode == 2) {\n v += `,${event.id}, '${this.selectedData.compensationFrom}','${this.selectedData.compensationTo}'`;\n p = `call updateSSSBase(${v})`;\n }\n this.showConfigResponse(p);\n }//submit\n\n}\n","
\n\n\n","import { Component, OnInit, ViewChild, AfterViewInit } from \"@angular/core\";\nimport { map } from \"rxjs/operators\";\nimport { Validators } from \"@angular/forms\";\n\nimport { GeneralServiceService } from \"../general-service.service\";\nimport { DataEntryBaseComponent } from \"../data-entry-base/data-entry-base.component\";\nimport Swal from \"sweetalert2\";\n\n//import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-student',\n templateUrl: './student.component.html',\n styleUrls: ['./student.component.css']\n})\nexport class StudentComponent implements OnInit, AfterViewInit {\n @ViewChild(DataEntryBaseComponent, { static: false })\n popTBl: DataEntryBaseComponent;\n x = 0;\n prSub: any;\n selectedData: any = {};\n config = [\n {\n type: \"input\",\n label: \"LRN\",\n name: \"code\",\n placeholder: \"Enter LRN\",\n value: \"\",\n validation: [Validators.required, Validators.minLength(2)]\n },\n {\n type: \"input\",\n label: \"Name\",\n name: \"name\",\n placeholder: \"Enter Name(eg: dela Cruz, Juan E.)\",\n value: \"\",\n validation: [Validators.required, Validators.minLength(3)]\n },\n {\n type: \"input\",\n label: \"Last Name\",\n name: \"lname\",\n placeholder: \"Enter LastName\",\n value: \"\",\n validation: [Validators.required, Validators.minLength(3)]\n },\n {\n type: \"input\",\n label: \"eMail Address\",\n name: \"email\",\n placeholder: \"Enter eMail Address\",\n value: \"\",\n validation: [Validators.required, Validators.email]\n },\n {\n type: \"button\",\n label: \"Save\",\n name: \"submit\",\n disabled: true,\n title: \"Student Entry\"\n }\n ];\n showLoading: boolean;\n\n constructor(private genServ: GeneralServiceService) {}\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n this.reloadData();\n }\n\n reloadData() {\n this.popTBl.refresh();\n }\n\n initProperties() {\n //Income Transaction Properties\n var tblHeader = [\n { key: \"code\", value: \"LRN\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" },\n { key: \"lname\", value: \"Last Name\", hKey: \"lname\" },\n { key: \"email\", value: \"eMail Address\", hKey: \"email\" }\n ];\n this.prSub = {\n table: \"sub\",\n tblHeader: tblHeader,\n ps: 10,\n tblHeaderHidden: \"\"\n };\n }\n\n delete(e) {\n if (confirm(`This will delete the record ${this.selectedData.name}`)) {\n this.genServ.deleteV2(\"sub\", \"id=\" + e).subscribe(() => {\n this.reloadData();\n });\n }\n }\n\n getSelected(event) {\n this.selectedData = event.data;\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p).subscribe(\n resp => {\n let x = parseInt(resp.body);\n if (x == 2) {\n Swal.fire(\"Cannot save\", \"Duplicate Code\", \"error\"); \n\n } else if (x == 1) {\n Swal.fire(\"Success\", \"Record updated\", \"success\"); \n } else if (x == 3) {\n Swal.fire(\"Cannot save\", \"Duplicate Name\", \"error\"); \n }\n },\n resp => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n }\n\n submit(event) {\n let value = event.value;\n let v = `'${value.code}','${value.name}','${value.lname}','${value.email}'`; // this is current value endoded\n let pr = \"\";\n\n if (event.mode == 1) {\n pr = `call InsertSub(${v})`; \n } else if (event.mode == 2) {\n \n let b = `'${value.code}','${value.name}','${value.lname}','${value.email}',${event.id},'${this.selectedData.code}','${this.selectedData.name}'`;\n pr = `call UpdateSub(${b})`;\n \n \n }\n this.showConfigResponse(pr);\n \n \n }\n\n}\n","
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n
{{caption}}
\n {{header.value}}\n
\n {{header.hKey=='active' ? \n (item[header.hKey]== 1 ? 'Active' : 'Not Active') \n : item[header.hKey]}}\n
\n
","import { Component, Input, Output, EventEmitter, HostListener} from '@angular/core';\n\n@Component({\n selector: 'app-table-comp',\n templateUrl: './table-comp.component.html',\n styleUrls: ['./table-comp.component.css']\n})\nexport class TableCompComponent{\n @Input() caption='List of Employees';\n @Input() tblHeader: any;\n @Input() tblData: any;\n selectedData:any;\n @Output() nextPageEvent = new EventEmitter();\n @Output() selectDataEvent= new EventEmitter();\n @Output() selectDataEventDbl= new EventEmitter();\n i=0;\n isLoading=false;\n\n selectData(data: any){\n this.selectedData=data;\n this.selectDataEvent.emit({data: data});\n //console.log(this.selectedData);\n }\n\n selectDataDbl(data: any){\n this.selectedData=data;\n this.selectDataEvent.emit({data: data, dbl: 1});\n this.selectDataEventDbl.emit(data);\n //console.log(this.selectedData);\n }\n\n updateScrollPos(e) {\n if(e.endReached){\n this.nextPageEvent.emit();\n }\n }\n\n}//Component\n","
\n

List of {{pr.title}} Request

\n \n
\n
\n \n \n
\n
\n\n
","import { Component, OnInit, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-table-modal-view',\n templateUrl: './table-modal-view.component.html',\n styleUrls: ['./table-modal-view.component.css']\n})\nexport class TableModalViewComponent implements OnInit {\n @Input() pr: any = {};\n constructor(\n public ac: NgbActiveModal\n ) { }\n\n ngOnInit() {\n }\n\n}\n","\n
\n \n
\n \n \n \n
\n
\n\n
\n\n\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport {NgbDropdownConfig} from '@ng-bootstrap/ng-bootstrap';\nimport {GeneralServiceService} from '../general-service.service';\nimport { Observable} from 'rxjs'\nimport {Globals} from '../globals';\n\n@Component({\n selector: 'app-table-with-searchbar',\n templateUrl: './table-with-searchbar.component.html',\n styleUrls: ['./table-with-searchbar.component.css']\n})\nexport class TableWithSearchbarComponent implements OnInit {\n\n tblData$: Observable;\n tblData: any[];\n @Input() table;\n @Input() tblHeader: any;\n @Input() pageSize;\n @Input() tblHeaderHidden;\n @Input() wc;\n @Input() lj: any;\n caption=\"\";\n cols=\"\";\n @Output() selectDataEvent= new EventEmitter();\n selectedDDLSearchVal=\"\";\n selectedDDLSearch=\"\";\n\n constructor(\n private genServ: GeneralServiceService,\n public globals: Globals\n ) { }\n\n ngOnInit(){\n this.fnCols();\n this.loadData();\n }\n\n fnCols(){\n this.selectedDDLSearch=this.tblHeader[0].key;\n this.selectedDDLSearchVal=this.tblHeader[0].value;\n this.caption=`List of ${this.table}`;\n for(let i in this.tblHeader){\n if(Number(i)==this.tblHeader.length-1){\n this.cols+=this.tblHeader[i].key;\n }else{\n this.cols+=this.tblHeader[i].key+\",\";\n }\n }\n if(this.tblHeaderHidden!=\"\"){\n this.cols+=`,${this.tblHeaderHidden}`;\n } \n }\n\n loadData(){\n if(this.wc){\n if(this.lj){\n this.tblData$=this.genServ.GetDataForTrans(this.table, this.cols,0,this.pageSize,[this.wc['where']], [this.wc['term']],\n this.lj['lj1'],this.lj['lj2'],this.lj['lj3'],this.lj['lj4']);\n }else{\n this.tblData$=this.genServ.FilterData(\n this.table, this.cols, 0, this.pageSize, [this.wc.wc], [this.wc.term]\n ); \n } \n }else if(this.wc==0){\n this.tblData$=this.genServ.getData(\n this.table, this.cols, 0, this.pageSize\n ); \n }\n \n //this.tblData$=this.genServ.getData(this.q);\n this.toArray();\n }\n\n toArray(){\n this.tblData$.subscribe((data) => {\n this.tblData = data;\n });\n }\n\n searchData(term: string){\n if(term!=\"\"){\n //this.q=`SELECT code,name,position from ${this.table} WHERE code like'%${term}%' || name like'%${term}%' LIMIT 0, ${this.pageSize}`;\n //this.loadData();\n if(this.wc){\n if(this.lj){\n console.log(this.lj);\n this.tblData$=this.genServ.GetDataForTrans(this.table, this.cols,0,this.pageSize,[this.selectedDDLSearch, 'period'], [term, this.globals.period.id],\n this.lj['lj1'],this.lj['lj2'],this.lj['lj3'],this.lj['lj4']);\n }else{\n this.tblData$=this.genServ.FilterData(\n this.table, this.cols, 0 , this.pageSize,\n [this.selectedDDLSearch, this.wc.wc], [term, this.wc.term]\n );\n } \n }else if(this.wc==0){\n if(this.lj){\n this.tblData$=this.genServ.GetDataForTrans(this.table, this.cols,0,this.pageSize,[this.selectedDDLSearch, this.wc.wc], [term, this.wc.term],\n this.lj['lj1'],this.lj['lj2'],this.lj['lj3'],this.lj['lj4']);\n }else{\n this.tblData$=this.genServ.FilterData(\n this.table, this.cols, 0 , this.pageSize, [this.selectedDDLSearch], [term]\n );\n } \n }\n this.toArray();\n }else{\n this.loadData();\n }\n }\n\n SearchBy(key, val, term){\n this.selectedDDLSearch=key;\n this.selectedDDLSearchVal=val;\n this.searchData(term);\n //console.log(`k: ${key} v: ${val}`)\n }\n\n nextPage(term?: string) {\n let d2$;\n if (term) { \n d2$= this.genServ.getData(\n this.table, this.cols, this.tblData.length, this.pageSize, term\n );\n } else {\n if(this.wc){\n console.log(`${JSON.stringify(this.wc)} -- ${this.wc.term}`);\n d2$=this.genServ.FilterData(\n this.table, this.cols, this.tblData.length, this.pageSize,\n [this.wc.wc], [this.wc.term]\n );\n }else{\n d2$= this.genServ.getData(\n this.table, this.cols, this.tblData.length, this.pageSize\n );\n } \n }//if term\n if (d2$) {\n d2$.subscribe((data) => {\n data.forEach(i => {\n this.tblData.push(i);\n })\n });\n }\n //let d2$ = this.genServ.getData(this.q);\n }//nextPage()\n\n onKeyUp(term: string){\n this.searchData(term);\n }\n\n selectedData(event){\n //this.selectedDataVal=event;\n //console.log(this.selectedDataVal);\n this.selectDataEvent.emit(event);\n }\n\n}\n","
\n
\n \n \n \n
\n
\n \n \n
\n
\n
\n \n Personal Info\n \n
\n
\n\n
\n
\n
\n
\n
\n
","import { Component, ViewChild, AfterViewInit, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { DynamicFormComponent } from '../dynamic-form-module/containers/dynamic-form/dynamic-form.component';\n\n@Component({\n selector: 'app-tabular-form',\n templateUrl: './tabular-form.component.html',\n styleUrls: ['./tabular-form.component.css']\n})\nexport class TabularFormComponent implements OnInit, AfterViewInit {\n @ViewChild(DynamicFormComponent, { static: false }) form: DynamicFormComponent;\n\n @Input() empData: any = {};\n position = [\"IT Specialist\", \"Admin\", \"Marketing\", \"System Developer\"];\n gender = [\"Male\", \"Female\"];\n config = [\n {\n type: 'input',\n label: 'Code',\n name: 'code',\n placeholder: 'Required*, [letters, number] minimun length 1',\n value: this.empData.code,\n disabled: true\n },\n {\n type: 'input',\n label: 'Name',\n name: 'name',\n placeholder: 'Enter Employee Name*',\n disabled: true,\n value: ''\n },\n {\n type: 'select',\n label: 'Position',\n name: 'position',\n options: this.position,\n placeholder: 'Select an option*',\n value: '',\n validation: [Validators.required]\n },\n {\n type: 'input',\n label: 'Basic Pay',\n name: 'basicpay',\n placeholder: 'Enter Basic Pay*',\n disabled: false,\n value: ''\n },\n {\n type: 'input',\n label: 'Pagibig',\n name: 'pagibig',\n placeholder: 'Enter Pagibig Number*',\n disabled: false,\n value: ''\n },\n {\n type: 'input',\n label: 'SSS',\n name: 'sss',\n placeholder: 'Enter SSS Number*',\n disabled: false,\n value: ''\n },\n {\n type: 'input',\n label: 'Philhealth',\n name: 'philhealth',\n placeholder: 'Enter Philhealth Number*',\n disabled: false,\n value: ''\n },\n {\n type: 'button',\n label: 'Save',\n name: 'submit',\n disabled: false\n }\n ];\n\n config2 = [\n {\n type: 'input',\n label: 'Age',\n name: 'age',\n placeholder: 'Required*, [letters, number] minimun length 1',\n value: '',\n validation: [Validators.required, Validators.pattern(\"^[0-9]*$\")]\n },\n {\n type: 'input',\n label: 'Adress',\n name: 'address',\n placeholder: 'Enter Employee Name*',\n value: '',\n validation: [Validators.required]\n },\n {\n type: 'date',\n label: 'Birthday',\n name: 'birthday',\n placeholder: 'Birth Date',\n value: ''\n },\n {\n type: 'select',\n label: 'Gender',\n name: 'gender',\n options: this.gender,\n placeholder: 'Select Gender*',\n value: '',\n validation: [Validators.required]\n },\n {\n type: 'button',\n label: 'Save',\n name: 'submit',\n disabled: false\n }\n ];\n\n constructor() { }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n /* let previousValid = this.form.valid;\n console.log(`Prev Valid: ${previousValid}`);\n this.form.changes.subscribe(() => {\n if (this.form.valid !== previousValid) {\n previousValid = this.form.valid;\n this.form.setDisabled('submit', !previousValid);\n }\n }); */\n\n for (let i = 0; i < this.config2.length - 1; i++) {\n this.form.setValue(this.config2[i].name, this.empData[this.config2[i].name]);\n }//for\n }\n\n test() {\n alert(`tetst`);\n }\n}\n","
\n
\n {{properties.label}}\n
\n \n
","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-text-box',\n templateUrl: './text-box.component.html',\n styleUrls: ['./text-box.component.css']\n})\nexport class TextBoxComponent implements OnInit {\n @Input() properties: any;\n @Output() setData= new EventEmitter();\n //val=\"\";\n val: any;\n //txtData=\"\";\n txtData: any;\n\n constructor() { }\n\n ngOnInit() {\n //this.val=this.properties.valueX;\n }\n\n getAmount(event){\n this.val=event;\n this.setData.emit(event);\n }\n\n getData(event){\n this.setData.emit(event);\n }\n\n}\n","\n\n","import { Component, OnInit, ViewChild, AfterViewInit } from \"@angular/core\";\nimport { Validators } from \"@angular/forms\";\n\nimport { GeneralServiceService } from \"../general-service.service\";\nimport { DataEntryBaseComponent } from \"../data-entry-base/data-entry-base.component\";\n\n@Component({\n selector: \"app-user-data-entry\",\n templateUrl: \"./user-data-entry.component.html\",\n styleUrls: [\"./user-data-entry.component.css\"]\n})\nexport class UserDataEntryComponent implements OnInit {\n @ViewChild(DataEntryBaseComponent, { static: false })\n popTBl: DataEntryBaseComponent;\n\n prUser: any;\n selectedData: any = {};\n config: any;\n accessLevel: any = [];\n\n constructor(private genServ: GeneralServiceService) {}\n\n ngOnInit() {\n this.initProperties();\n }\n\n ngAfterViewInit() {\n this.reloadData();\n }\n\n reloadData() {\n this.popTBl.refresh();\n }\n\n loadAccesslevel() {\n this.genServ.GetDataNoLimit(\"accesslevel\", \"code,name\").subscribe(d => {\n d.forEach(v => {\n this.accessLevel.push({ id: v.id, v: v.name });\n });\n });\n }\n\n initProperties() {\n //Employee Form Properties\n this.loadAccesslevel();\n this.config = [\n {\n type: \"input\",\n label: \"Code\",\n name: \"code\",\n placeholder: \"Enter User Code*\",\n value: \"\",\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: \"input\",\n label: \"Name\",\n name: \"name\",\n placeholder: \"Enter User Name*\",\n value: \"\",\n validation: [Validators.required, Validators.minLength(1)]\n },\n {\n type: \"pass\",\n label: \"Password\",\n name: \"pword\",\n value: \"\",\n validation: [Validators.required, Validators.maxLength(15)]\n },\n {\n type: \"select\",\n label: \"Access Level\",\n name: \"accesslevel\",\n options: this.accessLevel,\n placeholder: \"Select an option*\",\n value: \"\",\n validation: [Validators.required]\n },\n {\n type: \"button\",\n label: \"Save\",\n name: \"submit\",\n disabled: true,\n title: \"User\"\n }\n ];\n\n var tblHeader = [\n { key: \"code\", value: \"Code\", hKey: \"code\" },\n { key: \"name\", value: \"Name\", hKey: \"name\" },\n { key: \"accesslevel\", value: \"Access Level\", hKey: \"accesslevel\" }\n ];\n this.prUser = {\n table: \"user\",\n tblHeader: tblHeader,\n title: \"User\",\n ps: 10,\n tblHeaderHidden: \"\"\n };\n }\n\n getSelected(event) {\n this.selectedData = event;\n }\n\n showConfigResponse(p) {\n this.genServ.getConfigResponse(p).subscribe(\n resp => {\n let x = parseInt(resp.body);\n if (x == 2) {\n alert(`Duplicated Code`);\n } else if (x == 1) {\n alert(`Updated Record!`);\n } else if (x == 3) {\n alert(`Duplicated Name`);\n }\n },\n resp => alert(resp.error.ExceptionMessage),\n () => this.reloadData()\n );\n }\n\n submit(event) {\n let value = event.value;\n let levelIndex = this.accessLevel.findIndex(x => x.v == value.accesslevel);\n let level = this.accessLevel[levelIndex].id;\n let v = `'${value.code}','${value.name}','${value.pword}', ${level}`;\n //alert(level);\n let p = \"\";\n if (event.mode == 1) {\n p = `call insertUser(${v})`;\n } else if (event.mode == 2) {\n v += `,'${this.selectedData.data.code}','${this.selectedData.data.name}',${event.id}`;\n p = `call updateUser(${v})`;\n }\n //console.log(event);\n this.showConfigResponse(p);\n } //submit\n} //class\n","
\r\n
List of Validated Payments
\r\n
\r\n
\r\n\r\n

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

\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n","import {formatDate} from '@angular/common';\nimport { MailInfo } from \"../dsmodel.Interface\";\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { GeneralServiceService } from '../general-service.service';\nimport { Subscription } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FrmApproveComponent } from '../frm-approve/frm-approve.component';\nimport { Globals } from '../globals';\nimport Swal from 'sweetalert2';\nvar jsPDF = require('jspdf');\nrequire('jspdf-autotable');\n\nimport { Dsmodel } from '../dsmodel.Interface';\n\n\n@Component({\n selector: 'app-validatedpayments',\n templateUrl: './validatedpayments.component.html',\n styleUrls: ['./validatedpayments.component.css']\n})\nexport class ValidatedpaymentsComponent implements OnInit {\n data: Subscription;\n tblData = [];\n tblHeader = [\n { key: 'p.id', value: 'Doc #', hKey: 'id', o: 1 },\n { key: 'DATE_FORMAT(p.date,\"%m-%d-%Y\") AS dateFiled', value: 'Date', hKey: 'dateFiled', o: 0 },\n { key: 'p.name', value: 'Name', hKey: 'name', o: 0 },\n { key: 'p.amount', value: 'Amount', hKey: 'amount', o: 0 },\n ];\n caption = \"\";\n tblHeaderHidden = \"\";\n col1: string = this.tblHeader.map(x => x.key).join(',');\n cols = this.col1.concat(this.tblHeaderHidden);\n join = {\n j1: 'r.sub,p.id',\n j2: 'p.sub,r.level',\n j3: 'enroll r, level l',\n j4: 'LEFT,LEFT'\n };\n isSearching: boolean = false;\n optionsProperties: any;\n email: any;\n fullname: any;\n amount: any;\n getdate = new Date();\n today : any;\n //todayto: any;\n\n\n o2Header = [\n { value: 'Date', hKey: 'date' },\n { value: 'Name', hKey: 'name' },\n { value: 'Amount', hKey: 'amount' }\n \n ];\n selectedPeriod: any;\n\n constructor(\n private gs: GeneralServiceService,\n public modal: NgbModal,\n public globals: Globals\n ) { }\n\n ngOnInit() {\n this.today = new Date().toISOString().split('T')[0];\n //this.todayto = new Date().toISOString().split('T')[0];\n this.initProperties();\n this.getLeaveList();\n }\n\n initProperties() {\n this.selectedPeriod = this.globals.periodid\n let a = this.tblHeader.filter((v) => v.o === 1);\n this.optionsProperties = { o1: a, o2: this.o2Header }\n }\n\n mapOt(d) {\n this.tblData = d.map(x => {\n return {\n id: x.id,\n name: x.name,\n dateFiled: x.dateFiled,\n amount: x.amount\n \n }\n });\n }\n\n getLeaveList() {\n //let mydate = formatDate(new Date(), 'yyyy-MM-dd', 'en');\n let mydate = formatDate(this.today, 'yyyy-MM-dd', 'en');\n //let mydateto = formatDate(this.todayto, 'yyyy-MM-dd', 'en');\n//alert(mydatefr);\n//alert(mydateto);\n this.isSearching = false;\n let j = this.join;\n this.data = this.gs.GetDataForTrans('paymentdet p', this.cols, 0, 1000, ['p.date'], [mydate], j.j1, j.j2, j.j3, j.j4)\n .subscribe(d => this.mapOt(d));\n }\n\n onNextPage() {\n \n }\n\n onSearch(e) {\n \n }\n\n onSelect(e) {\n \n }\n\n showConfigResponse(p) {\n \n }\n\n onRefresh() {\n this.getLeaveList();\n }\n\n \n print() {\n var name = this.globals.periodNameNew;\n let mydate = formatDate(this.today, 'MM/dd/YYYY', 'en');\n\n //var imgData = this.globals.hitcLogo;\n var columns = [\n { title: 'Doc #', dataKey: 'id', o: 1 },\n { title: 'Name', dataKey: 'name', o: 1 },\n { title: 'Amount', dataKey: 'amount', o: 0 }\n ];\n var doc = new jsPDF('l', 'pt', 'legal');\n var totalPagesExp = \"{total_pages_count_string}\";\n doc.autoTable(columns, this.tblData, {\n startY: false, // false (indicates margin top value) or a number\n tableWidth: 'auto', // 'auto', 'wrap' or a number\n showHead: 'everyPage', // 'everyPage', 'firstPage', 'never'\n tableLineColor: 200, // number, array (see color section below)\n tableLineWidth: 0,\n headStyles: {\n fontStyle: 'bold',\n halign: 'center'\n },\n margin: { top: 160 },\n columnStyles: {\n amt: {\n halign: 'right',\n fontStyle: 'bold'\n },\n },\n didDrawPage: function (dataToPrint) {\n // doc.addImage(imgData, 'PNG', 25, 35, 80, 60);\n doc.setFontSize(18);\n doc.text(`Daily Collection Report`, 410, 80);\n doc.setFontSize(14);\n doc.text('School Year: ', 40, 120);\n doc.text('Date: ', 40, 141);\n doc.text(`${name}`, 170, 120);\n doc.text(`${mydate}`, 170, 141);\n doc.setFontSize(12);\n // FOOTER\n var str = \"Page \" + dataToPrint.pageCount;\n // Total page number plugin only available in jspdf v1.0+\n if (typeof doc.putTotalPages === 'function') {\n str = str + \" of \" + totalPagesExp;\n }\n doc.setFontSize(10);\n var pageHeight = doc.internal.pageSize.height || doc.internal.pageSize.getHeight();\n doc.text(str, dataToPrint.settings.margin.left, pageHeight - 10);\n }\n });\n if (typeof doc.putTotalPages === 'function') {\n doc.putTotalPages(totalPagesExp);\n }\n var blob = doc.output('blob');\n window.open(URL.createObjectURL(blob));\n\n }//print()\n\n\n ngOnDestroy(): void {\n this.data.unsubscribe();\n }\n\n sendemail()\n {\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 * In development mode, to ignore zone related error stack frames such as\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\n * import the following file, but please comment it out in production mode\n * because it will have performance impact when throw error\n */\n// import 'zone.js/dist/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\ndocument.addEventListener('DOMContentLoaded', () => {\n platformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n});\n"],"sourceRoot":"webpack:///"}